TCP 接收窗口何时通告?

TCP 接收窗口何时通告?

我正在尝试了解 TCP 三次握手和流量控制。我读过并且我理解在三次握手中发送方和接收方就序列号和确认号达成一致。

还,文章提到,在建立连接时会公布接收窗口:

假设我们想从节点 A 向节点 B 发送一个 150000 字节的文件。TCP 可以将该文件拆分为 100 个数据包,每个数据包 1500 字节。现在假设当节点 A 和 B 之间的连接建立时,节点 B 会通告一个 45000 字节的接收窗口,因为它确实想帮助我们进行数学运算。

我的问题是,接收窗口第一次建立是在什么时候?期间三次握手或三次握手?

答案1

是在三次握手期间还是在三次握手之后?

它是由应用程序在握手之前设置的:

应用程序确定初始窗口大小,您可以在初始同步(三次握手)时看到每个设备的此大小。Windows 默认对以太网使用 8760 字节,但可以在注册表中更改。8760 这个数字是 6 x 1460,这是完整以太网帧可以携带的数据量,也是默认情况下以太网的 MSS,在同步期间共享。在调整窗口大小时,6-8 倍的数据包大小被认为是最有效的。在互联网的旧时代(20 世纪 80 年代初),当 X.25 等协议盛行时,通常建议用户采用小得多的数据报大小 576(来自 RFC 791),尽管现在不再需要,但您可能会因此遇到更小的 MSS 和窗口大小设置。

网络上发生的错误越少,允许的窗口越大,用于传输数据的带宽也越多。大窗口的唯一问题是,如果在任何时候发生传输故障,则必须重新发送整个段,从而占用带宽。

使用 TCP 协议时需要注意的一点是窗口大小的缓慢增加。例如,如果您使用 FTP 发送 10Mb 的文件,则在以最佳速度传输之前可能需要 1Mb 的传输量。这是因为窗口大小一开始很小,因此大部分初始流量是标头而不是数据。使用 FTP 下载小文件无法达到最佳数据下载速度,下载大文件效率更高。此机制称为慢启动,在 RFC 2001 中有概述。

来源传输控制协议、三次握手、TCP 滑动窗口

相关内容