(三十)运输层--总结
总结
本文对运输层要点进行总结。
- 运输层的作用
运输层提供应用进程间的逻辑通信,也就是说,运输层之间的通信并不是真正在两个运输层之间直接传送数据。
运输层向应用层屏蔽了下面网络的细节,如网络拓扑、所采用的的路由选择协议等。它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。
- 运输层与网络层的区别
网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。
- 运输层主要的协议有哪些
运输层有两个主要的协议:TCP和UDP。它们都有复用和分用,以及检错的功能。
当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工通信的可靠信道。
当运输层采用无连接的UDP协议时,这种逻辑通信信道仍然是一条不可靠信道。
- UDP协议与TCP协议的特点
UDP协议的主要特点:
(1)无连接
(2)尽最大努力交付
(3)面向报文
(4)无拥塞控制
(5)支持一对一、一对多、多对一、多对多的交互通信
(6)首部开销小(只有四个字段:源端口、目的端口、长度、检验和)
TCP协议的主要特点:
(1)面向连接
(2)每一条TCP连接只能是点对点的(一对一)
(3)提供可靠交付的服务
(4)提供全双工通信
(5)面向字节流
- 拥塞控制
在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种情况就叫做拥塞。拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。
为了进行拥塞控制,TCP的发送方要维持一个拥塞窗口 cwnd 的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态变化着。发送方让自己的发送窗口取为拥塞窗口和接收方的接收窗口中较小的一个。
TCP的拥塞控制采用了四种算法,即慢开始、拥塞避免、快重传、快恢复。在网络层,也可以使路由器采用适当的分组丢弃策略(主动队列管理AQM),以减少网络拥塞的发生。
- 流量控制
流量控制是一个端到端的问题,是接收端抑制发送端发送数据的速率,以便使接收端来得及接收。拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器、以及与降低网络传输性能有关的所有因素。
- 运输连接
运输连接有三个阶段,即:连接建立、数据传送、连接释放。
主动发起TCP连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫做服务器。TCP的连接建立采用三报文握手机制。服务器要确认客户的连接请求,然后客户要对服务器的确认进行确认。
TCP的连接释放采用四报文握手机制,任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后就进入半关闭状态。当另一方也没有数据再发送时,则发送连接释放的通知,对方确认后就完全关闭了TCP连接。
- 端口号
两台计算机中的进程要互相通信,不仅要知道对方的IP地址(为了找到对方的计算机),而且还要知道对方的端口号(为了找到对方计算机中的应用进程)。
运输层的端口号分为服务器端使用的端口号(0~1023指派给熟知端口,1024~49151是登记端口号)和客户端暂时使用的端口号(49152~65535)。
TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点。这样的端点就叫做套接字(socket)
- 停止等待协议
停止等待协议能够在不可靠的传输网络上实现可靠的通信。每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。分组需要进行编号。
- 连续ARQ协议
连续ARQ协议可提高信道利用率。发送方维持一个发送窗口,凡位于发送窗口内的分组都可连续发送出去,而不需要等待对方的确认。接收方一般采用累积确认,对按序到达的最后一个分组发送确认,表明到这个分组为止的所有分组都已正确收到了。