关于tcp:tcp-window

58次阅读

共计 808 个字符,预计需要花费 3 分钟才能阅读完成。

概念

TCP 协定中的 window,用于向对端发送本人的 TCP 接管音讯的缓冲区大小。其作用为疏导对方在必要的时候调整数据发送的速度,以便本地能够的解决缓冲区的音讯,避免缓冲区被填满,从而产生有效的音讯传输。

例子

在 TCP 两端进行数据传输的过程中,会不断更新本人的 window,从而实现流量管制的目标。一个形象的例子为 TCP 两端通过一根水管 (TCP 连贯) 连贯,两端各有一个水桶(接收缓冲区)用来接管对端流过来的水(发送的数据)。而 window 就用来示意以后水桶残余的闲暇容量(残余的接收缓冲区大小)。如果 window 过小,对端就会缩小发送水流(数据)速度,留更多的工夫以便水桶中的水被应用(数据被利用应用)。在桶中的水(数据)被耗费后,window 变大,再进步水流(发送数据)的速度。

Window scale

window 的大小最后被定义为 2 个 byte,最大能够示意 65535Byte。随着网络带宽的进步,不能满足大数据量的利用需要。为了进步 window 大小,并且尽可能的缩小对已有利用的影响,TCP 协定并没有间接减少 window 的位数,而是通过 Window scale 对 window 进行裁减。在反对 Window scale 的状况下,理论的 window 大小(由 Calculated window size 代表)为 windowWindow size scaling factor。最大为 655352^14,略微小于 1GB,远高于以前的 65535B。

在 TCP3 次握手的时候,单方会协商是否反对 Window scale,如果反对 Window scale 则在第一个音讯(SYN 或者 SYN,ACK)中携带 Window scale Option。只有单方都反对 Window scale 时,后续单方才会应用 Window scale。

参考资料
https://blog.csdn.net/TWTFHVK…
https://www.qacafe.com/resour…

正文完
 0