计算机网络基础|TCP流量控制与拥塞控制总结

可变长的滑动窗口
TCP采用可变长的滑动窗口,使得发送端与接收端可根据自己的CPU和数据缓存资源对数据发送和接收能力来作出动态调整。
滑动窗口的初始大小由连接双方在连接建立过程中协商确定,在传输连接建立阶段,在分段头部的窗口字段中写入的数值就是一方给另一方所设置的窗口大小。
【计算机网络基础|TCP流量控制与拥塞控制总结】窗口大小的单位是字节。 在通信过程中,任何一方都可根据自己的资源使用情况,动态地调整窗口的大小,并将相应的数值写入当前要发送给对方的分段的头部窗口字段中
利用滑动窗口实现流量控制
一般总是希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失。
流量控制就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。 利用滑动窗口机制可以很方便地在 TCP 连接上实现流量控制。
在建立连接时,通信双方使用SYN报文或者ACK报文段中的窗口字段捎带着各自的接收窗口尺寸,即通知对方从而确定对方发送窗口的上限。在数据传输过程中,发送方按接收方通知的窗口尺寸和序列号发送一定量的数据,接收方根据接收缓冲区的使用情况动态调整接收窗口尺寸,并在发送TCP报文段或确认段时捎带新的窗口尺寸和确认号通知发送方
计算机网络基础|TCP流量控制与拥塞控制总结
文章图片

如图假设主机A向主机B发送数据。双发确认的窗口值为400.一个报文段为100B长,序号的初始值为1(SEQ=1)。主机B进行了3次流量控制。第一次将窗口减小为300B,第二次将窗口又减为200B,最后一次减至0,即不允许对方再发送数据了。这种暂停状态将一直持续到主机B重新发出一个新的窗口值为止。
拥塞控制
在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏——产生拥塞
出现资源拥塞的条件:
对资源需求的总和 > 可用资源
若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。
在以太网的环境下,当发送端不知道对方窗口大小时,便直接向网络发送多个报文段,直到收到对方通告的窗口的大小为止。但如果在发送方和接收方有多台路由器和较慢的链路时,就会出现一些问题,一些中间路由器必须缓存分组,并有可能耗尽存储空间,将严重降低TCP连接的吞吐量。这时采用了一种称为慢启动的算法,慢启动为发送方的TCP增加一个拥塞窗口,当与另一个网络的主机建立TCP连接时,拥塞窗口被初始化为1个报文段,每收到一个ACK,拥塞窗口就增加一个报文段。发送端取拥塞窗口与通告窗口中的最小值作为发送上限。拥塞窗口是发送方使用的流量控制,而通告窗口则是接收方使用的流量控制
开始时发送一个报文段,然后等待ACK。当收到该ACK时,拥塞窗口从1增加为2,即可发送两个报文段。当收到这两个报文段的ACK时,拥塞窗口就增加为4.这是一种指数增加的关系。在某些互联网的中间某些点上可能达到了互联网的容量,于是中间路由器开始丢弃分组,这时通知发送方它的拥塞窗口开的过大。
拥塞控制与流量控制的关系

  • 拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。
  • 拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。
  • 流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制。
  • 流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。

    推荐阅读