94-TCP是如何使用滑动窗口进行流量控制

文章目录

  • 1.什么是滑动窗口
  • 2.为什么要进行流量控制
  • 3.为什么要用滑动窗口进行流量控制

1.什么是滑动窗口

在 TCP 的报头中有一个字段叫做接收通告窗口,这个字段由接收端填充,是接收端告诉发送端自己还有多少缓冲区可以接收数据。于是发送端就可以根据这个接收端的处理能力来发送数据,而不会导致接收端处理不过来。所以发送端就会有一个发送窗口,这个发送窗口的大小是由接收端填充的接收通告窗口的大小决定的,并且窗口的位置会随着发送端数据的发送和接收到接收端对数据的确认而不断的向右滑动,将之称为滑动窗口。
94-TCP是如何使用滑动窗口进行流量控制_第1张图片
94-TCP是如何使用滑动窗口进行流量控制_第2张图片

2.为什么要进行流量控制

一般来说,我们总是希望数据传输得更快一些,不会一次只发一个字节。但是如果发送方把数据发得过快,接受方就可能来不及接收,这就会造成数据的丢失。 所谓流量控制就是让发送方的发送速率不要太快,要让接收方来的及接收

3.为什么要用滑动窗口进行流量控制

TCP每发送一个数据,都需要进行一次应答。当收到了上一个应答,在发下一个数据,但这种方式效率比较低。数据包往返时间越长,通信的效率就越低。
为了解决这个问题,TCP引入了窗口概念。即在接收窗口范围内的数据,无需等待确认,可以继续发送窗口内数据,直到把发送窗口数据传输完毕。
窗口的实现实际上是在操作系统开辟一个缓存空间(空间和序号都是有限的,并且要循环使用,一般为环形队列),发送主机在等到确认应答返回之前,必须在缓冲区保留已发送窗口的数据(超时重传)。收到应答后,将此数据清除。

你可能感兴趣的:(计算机网络,tcp/ip,网络,网络协议)