五、运输层
文章目录
一、运输层协议概述
1. 进程间的通信
- 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最底层。
- 当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用剩下三层功能。
2. 网络层和运输层的区别
3. 运输层作用(基于端口的复用和分用功能)
- 在一台主机中经常有多个应用进程同时分别和另一台主机中的多个应用进程通信。
- 这表明运输层有一个很重要的功能——复用和分用
- 根据应用程序的不同需求,运输层需要有两种不同的运输协议,即面向连接的TCP和无连接的UDP
二、两种不同的运输协议
1. 概述
- 当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。
- 当运输层采用无连接的UDP协议时,这种逻辑通信信道是一条不可靠信道。
2. 协议名称
TCP/IP的运输层有两个主要的协议:
- 用户数据报协议UDP(User Datagram Protocol)
- 传输控制协议TCP(Transmission Control Protocol)
3. TCP与UDP
- 两个对等运输实体在通信时传送的数据单位叫做运输协议数据单元TPDU(Transport Protocol Data Unit)
- TCP传送的数据单位协议是TCP报文段
- UDP传送的数据单位协议是UDP报文或用户数据报
4. UDP的特点
- 提供无连接服务
- 在传送数据之前不需要先建立连接
- 传送的数据单位协议是UDP报文或用户数据报
- 对方的运输层在收到UDP报文后,不需要给出任何确认。
- 虽然UDP不提供可靠交付,但在某些情况下UDP是一种最有效的工作方式。
5. TCP的特点
- 提供面向连接的服务
- 传送的数据单位协议是TCP报文段。
- TCP不提供广播或多播服务
- 由于TCP要提供可靠的、面向连接的运输服务,因此不可避免的增加了许多开销。这使得协议数据单元的首部增大很多,还要占用许多处理机资源。
6. 运输层的端口
- 端口用一个16位端口号进行标志
- 端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的个进程。
- 由此可见,两个计算机中的进程要相互通信,不仅必须知道对方的IP地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用进程)。
7. 两大类端口
-
服务器使用的端口号
- 熟知端口:数值一般为0~1023(分配给一些常用的协议)
- 登记端口号:数值为1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在IANA登记,以防止重复。
-
客户端使用的端口号
- 又称为短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。
- 当服务器进程收到客户端进程的报文时,就知道中客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程使用。