当前位置:主页 > 查看内容

面试官:你解释一下什么是TCP的固定窗口和滑动窗口

发布时间:2021-08-10 00:00| 位朋友查看

简介:固定窗口 TCP 还提供了流量控制机制。 流量控制可以调整给定会话中源和目的之间的数据流速,有助于保持 TCP 传输的可靠性。 流量控制的实施方法包括限制一次可以转发的数据段数量,并要求在发送更多数据段之前确认接收。 要实施流量控制,TCP 要确定的第一件……

固定窗口

TCP 还提供了流量控制机制。 流量控制可以调整给定会话中源和目的之间的数据流速,有助于保持 TCP 传输的可靠性。 流量控制的实施方法包括限制一次可以转发的数据段数量,并要求在发送更多数据段之前确认接收。

要实施流量控制,TCP 要确定的第一件事是目的设备可以接受的数据段数量。 TCP 报头包括一个称为“窗口大小”的 16 位字段。 这是 TCP 会话的目的设备一次可以接受和处理的字节数。 通过源和目标之间的三次握手,会话开始时即可确定初始窗口大小。 一旦同意,源设备必须根据窗口大小限制发送到目的设备的数据段数量。 只有源设备收到数据段已接收的确认之后,才能继续发送更多会话数据。

在接收确认的延迟过程中,发送方不会发送任何额外数据段。 如果网络拥堵,或者接收主机资源紧张,延迟时间可能就更长。 延迟时间越长,该会话过程的有效传输速率越低, 当运行多个会话时,减缓每个会话的数据传输有助于减少网络和目的设备上的资源冲突。

请参看上图中对窗口大小和确认消息的简易展示。 在本例中,TCP 会话的初始窗口大小为 3000 字节。 此会话的发送方在传输 3000 字节后等待这些数据的确认消息,以便继续传输更多数据段。 一旦发送方收到接收方发送的确认消息,它就可以传输另外 3000 字节的数据段。

TCP 使用窗口大小尝试管理传输速率,将其调整为网络和目的设备可以支持的最大速度,同时最大限度减少损失和重新传输。

TCP滑动窗口

我们也可以通过动态窗口大小来控制数据流量。 当网络资源受到限制时,TCP 可以减小窗口的大小,这样,目的主机就需要更加频繁地确认所接收的数据段。 由于源主机需要更加频繁地等待数据确认,这便可以大大降低传输的速率。

接收主机将窗口大小值发送到发送主机,表示其准备接收的字节数。 如果目的主机由于缓冲内存受限需要降低通信速率,那么它向源主机发送的确认信息中可以包含一个较小的窗口大小值。

如图所示,如果接收主机发生拥堵,它可以向发送主机发送指定了较小窗口大小的数据段。 图中显示,其中一个数据段丢失了。 接收方将返回数据段的 TCP 报头中的窗口字段值由 3,000 减为 1,500,即将窗口大小改为 1,500。

在没有数据丢失或资源限制的情况下传输一段时间后,接收方开始增加窗口字段,这样可以减少网络开销,因为必须发送的确认减少。 窗口大小持续增加,直至出现数据丢失,然后窗口大小随之减少。

窗口大小的这种动态增减是 TCP 中的一个持续不断的过程。 在高效网络中,由于不丢失数据,窗口可能会相当大。 在基层基础设施面临压力的网络中,窗口可能会很小。


本文转载自网络,原文链接:http://mp.weixin.qq.com/s?__biz=MjM5MTA0NzUwMA==&mid=2650607457&idx=2&sn=d4bfc2dda3e47ff5976f2f529771ee6b&chksm=beb2254289c5ac54a96f819cd4998a1e85b92df9600f42d413bb98b91b660b667d7ef0551c2b&mpshare=1&s
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:多线程中如何使用gdb精确定位死锁问题 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐