您的位置:首页 > 理论基础 > 计算机网络

TCP网络通讯如何解决分包粘包问题

2017-08-26 19:59 267 查看


一、TCP粘包情况:

1. 发送端发送了数量比较的数据,接收端读取数据时候数据分批到达,造成一次发送多次读取;通常网络路由的缓存大小有关系,一个数据段大小超过缓存大小,那么就要拆包发送。

2. 发送端发送了几次数据,接收端一次性读取了所有数据,造成多次发送一次读取;通常是网络流量优化,把多个小的数据段集满达到一定的数据量,从而减少网络链路中的传输次数。

TCP粘包的解决方案有很多种方法,最简单的一种就是发送的数据协议定义发送的数据包的结构:

1. 数据头:数据包的大小,固定长度。

2. 数据内容:数据内容,长度为数据头定义的长度大小。

实际操作如下:

a)发送端:先发送数据包的大小,再发送数据内容。

b)接收端:先解析本次数据包的大小N,在读取N个字节,这N个字节就是一个完整的数据内容。

具体流程如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tcp 粘包