TCP里滑动窗口,拥塞窗口和缓存是同一个东西吗?

如题,TCP里滑动窗口,拥塞窗口和(发送和接收)缓存的这三者是同一个东西吗?
我的理解是:

  • 滑动窗口管理的是已发送但还没有收到确认的分组
  • (发送和接收)缓存 管理的是需要发送/接收到的分组
  • 拥塞窗口是根据拥塞控制来判断网络中可承受的分组数量,也是发送方每次发送的分组长度

在TCP的流量控制里,接收方会将接收缓存告知给发送方。
不知道这么理解是否正确,请指教。

阅读 3.5k
2 个回答

滑动窗口和拥塞窗口是概念层面的东西,缓存(应该是数据收发缓冲区)是实体层面的东西,
一般来说一个缓冲区中只有一部分数据可以被发送,我们称之为窗口值。
一般缓冲区中窗口值的大小 = min(滑动窗口 , 拥塞窗口)即由双方共同决定。
推荐看下谢希仁的计算机网络,讲的比较清楚。

基本正确。

滑动窗口

这是发送端的动态概念。控制报文发送,避免发送接收端承受不了的数量的报文。发送窗口大小由接收端在TCP Header中通告,窗口区间可更细分为已发送未确认区间未发送但可发送区间, 窗口左边是已发送已确认区间,右边是未发送且不能发送区间....

注意,这里说的可发送不考虑拥塞..

缓存

基本正确。更准确地,发送缓存是指滑动窗口中的右边三个区间的总和,接收缓存指接收到但还没有递交给应用层的报文

拥塞窗口

也是发送端的动态概念。控制报文发送,避免发送过多报文引起网络拥塞。窗口大小由具体采用的拥塞控制协议决定。


另外,发送端真正能发送报文受到滑动窗口和拥塞窗口的同时制约...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进