Netty进阶——粘包与半包(滑动窗口)

Posted 小志的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Netty进阶——粘包与半包(滑动窗口)相关的知识,希望对你有一定的参考价值。

  • TCP 以一个段(segment)为单位,每发送一个段就需要进行一次确认应答(ack)处理,但如果这么做,缺点是包的往返时间越长性能就越差。
  • 为了解决此问题,引入了窗口概念,窗口大小即决定了无需等待应答而可以继续发送的数据最大值。
  • 窗口实际就起到一个缓冲区的作用,同时也能起到流量控制的作用。
    (1)、图中深色的部分即要发送的数据,高亮的部分即窗口;
    (2)、窗口内的数据才允许被发送,当应答未到达前,窗口必须停止滑动;
    (3)、如果 1001~2000 这个段的数据 ack 回来了,窗口就可以向前滑动;
    (4)、接收方也会维护一个窗口,只有落在窗口内的数据才能允许接收。

以上是关于Netty进阶——粘包与半包(滑动窗口)的主要内容,如果未能解决你的问题,请参考以下文章

Netty进阶——粘包与半包(现象分析)

Netty进阶——粘包与半包(现象分析)

Netty进阶——粘包与半包(代码示例)

Netty进阶——粘包与半包(短链接方式解决粘包问题)

Netty进阶——粘包与半包(短链接方式解决粘包问题)

Netty进阶——粘包与半包(固定长度方式解决粘包问题)