TCP传输控制协议的粘包的产生与解决

TCP是一对一的面向连接的传输控制协议。

在TCP协议中存在一种问题——粘包

字面解释下,就是两个包子粘一起了馅多皮厚一口吃不下,😝😝

在网上查找一圈资料参考,做下记录和总结。

1. TCP粘包是什么,什么是粘包?

多个数据段被连续的储存在缓冲区,当读取的时候没有进行有效或精确的拆分从而发生粘包。

2. 粘包产生的原因?

TCP是一种面向连接流传输协议,在收发两端间进行通讯,如果要发送的数据小于TCP发送缓冲区的大小,TCP将多次写入缓冲区的数据一次发送出去发生粘包,接收数据端的应用层没有及时读取接收缓冲区中的数据发生粘包。

3. 如何解决粘包问题?

  1. 每个发送数据增加包头信息,使接收端根据包头信息去获取数据。
  2. 定长统一数据长度,长度不够的使用指定字符补足,接收端根据约定长度读取。
  3. 定界符划分在不同数据之间指定分割的定界符,接收端根据定界符进行拆分。

发表评论

电子邮件地址不会被公开。 必填项已用*标注