计算机网络 运输层

https://cloud.tencent.com/developer/article/1963303

1. 概述

当网络边缘的两台主机进行端到端的通信时,只有主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能

运输层有一个很重要的功能—复用和分用,发送方不同的应用进程都可以使用同一运输层协议传输数据,分用指的是接收方的运输层在剥去报文段首部把数据正确交付给目的应用程序

应用层对外服务运行后在TCP或UDP的某个端口侦听客户端的请求

1.1 运输层为相互通信的应用进程提供了逻辑通信

在这里插入图片描述

  • 两个主机进行通信实际上就是两个主机中的应用进程互相通信。

  • 应用进程之间的通信又称为端到端的通信。

  • 运输层的一个很重要的功能就是复用和分用。应用层不同进程的报文通过不同的端口向下交到运输层,再往下就共用网络层提供的服务。

  • “运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:运输层之间的通信好像是沿水平方向传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。

在这里插入图片描述

1.2 运输层的主要功能

  • 运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。

  • 运输层还要对收到的报文进行差错检测。

  • 运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。

1.3 运输层的两个重要协议

在这里插入图片描述
用户数据报协议 UDP User Datagram Protocal
UDP 在传送数据之前不需要先建立连接。对方的运输层在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式

运输层的 UDP 用户数据报与网际层的IP数据报有很大区别。IP 数据报要经过互连网中许多路由器的存储转发,但 UDP 用户数据报是在运输层的端到端抽象的逻辑信道中传送的

传输控制协议 TCP Transmssion Control Protocol
TCP 则提供面向连接的服务。TCP 不提供广播或多播服务。由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。

TCP 报文段是在运输层抽象的端到端逻辑信道中传送,这种信道是可靠的全双工信道。但这样的信道却不知道究竟经过了哪些路由器,而这些路由器也根本不知道上面的运输层是否建立了 TCP 连接。

1.4 运输层的端口

由于复用与分用,应用层的所有应用程序都可以通过传输层再传到网络层,运输层从网络层接收到数据后,必须分别交付给指明的各应用程序,所以给应用层的每个进程赋予一个明确的标志十分重要

但是运行在应用层的各种应用进程却不应当让计算机操作系统指派它的进程标识符。这是因为在因特网上使用的计算机的操作系统种类很多,而不同的操作系统又使用不同格式的进程标识符,进程的创建和撤销都是动态的,通信一方几乎无法识别对方机器上的进程

为了使运行不同操作系统的计算机的应用进程能够互相通信,就必须用统一的方法对 TCP/IP 体系的应用进程进行标志

运输层使用协议端口号(protocol port number),或通常简称为端口(port)。
虽然通信的终点是应用进程,但我们可以把端口想象是通信的终点,因为我们只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付目的进程)就由 TCP 来完成

也就是说一个应用程序,一个进程规定一个端口,一个计算计上打开的不同进程端口号不能相同,网页服务器的访问端口是80端口

注意:

  • 在协议栈层间的抽象的协议端口是软件端口。

  • 路由器或交换机上的端口是硬件端口。

  • 硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址

  • 端口用一个 16 位端口号进行标志。

  • 端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。

三类端口
① 熟知端口:数值一般为 0~1023,指派给TCP/IP最重要的一些应用程序

http:TCP 80端口
https:TCP 443端口
ftp:TCP 21端口
SMTP:TCP 25端口
共享文件夹:TCP 445端口
DNS:UDP 53端口
SQL:TCP 1433端口

② 登记端口号:数值为1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复

③ 客户端口号或短暂端口号:数值为49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用

你可以发现,当我们打开一个浏览器,浏览器里面打开多个窗口,那么一个窗口就和服务器建立了一个会话,不同的窗口源端口是不同的,这样才能保证不同网页正常的显示
浏览器是多进程的,有一个主控进程,以及每一个tab页面都会新开一个进程(某些情况下多个tab会合并进程)
在这里插入图片描述

1.5 判断是UDP还是TCP

QQ聊天使用的是UDP
不用建立连接,因为你并不知道两个人要说多久,而且虽然UDP不保证可靠性但是QQ尝试发送,没有发送成功会给用户反馈

QQ传输文件使用的是TCP

DNS是UDP

访问网站是TCP

1.6 windows防火墙的作用

为了让网络安全,我只要把我网络的所有端口都关闭别人就访问不到我,windows防火墙能让端口动态打开关闭,也就是我想和外面交流那么流量进出,不通信别人直接访问我就不行
所以我打开防火墙我就在网络上隐身了,被人想Ping我也Ping不通

但是木马程序windows防火墙控制不了,因为windows防火墙的本质是我主动连接外面可以,别人主动连接我就不行,木马病毒是在我的电脑上安装了一个软件主动访问了外面,这样防火墙就允许外部就可以访问我了

2. 用户数据报协议UDP

2.1 UDP概述

UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口的功能(复用和分用)和差错检测的功能

  • UDP 是无连接的,即发送数据之前不需要建立连接。

  • <
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值