MSS和tcp窗口大小

时间:2012-11-08 10:42:34

标签: networking tcp

在A和B之间的通信期间, 当A向B发送数据时,段大小将取决于B的窗口大小。 最初,在B成功接收数据后,它会使窗口大小加倍并继续。 现在B知道它的MSS。因此,在将段大小发送到A时,可以确保它不超过MSS值。 那么为什么B必须首先通知MSS到A?

2 个答案:

答案 0 :(得分:7)

段大小取决于发送方和接收方各自连接的网络的数据链路层的MTU大小。

路径MTU发现可用于发现发送方和接收方之间的最小MTU大小,以动态确定发送方和接收方之间的最佳最大分段大小(避免IP分段)(假设发送方与接收方之间的所有路由器荣誉) do_not_fragment位。)

您似乎将流控制和滑动窗口与最大段大小混为一谈。


根据评论

更新

  

窗口大小是否不能超过MSS?我没有找到他们之间的关系。

不,那不是。

  

窗口大小是否完全取决于发送方和接收方的缓冲区大小,而MSS取决于MTU?

MSS和MTU大小是需要上下文的术语,因为它们具有不同的含义,具体取决于上下文。

在考虑转移的一个方向时,需要考虑两个“窗口”:

  • 接收窗口。用于实现Flow Control,由接收方维护和指定。它受到接收器从一个时刻到下一个时刻缓冲的能力的限制。接收窗口定义在发送方确认之前可以发送多少数据。另见BDP。 MSS与接收窗口无关。
  • 拥塞窗口。用于实现Congestion Control。由发件人维护和使用。拥塞窗口大小实际上是MSS的倍数。
  

A和B的窗口大小可能不同,但由于它们共享的公共链接,MSS会重新编号吗?

MSS不需要对称。不能保证或要求所采用的路径从A到B是相同的,因为它是从B到A。

我建议你在这里阅读整篇文章:http://en.wikipedia.org/wiki/Transmission_Control_Protocol因为有图表可以帮助理解。

答案 1 :(得分:1)

  

分段大小将取决于B的窗口大小

路径MTU上的

。这两个数字中的较低者适用。路径MTU对于给定路径是恒定的;根据接收器的套接字接收缓冲区,慢启动等的状态,广告窗口大小是动态的