技术干货@IT·互联网

TCP的拆包粘包问题

2017-11-20  本文已影响0人  咖啡爷爷
介绍

TCP网络传输层协议,当经过三次握手以后,TCP点到点建立一条套节字通道,由于网络的复杂性,导致数据可能会分N个报文进行传送。在服务端可能一次或多次才能接收完成,系统本身也是缓存一定大小数据进行传送,保证传输的性能最大化。而同样是传输层协议UDP则不会有这样的问题,UDP是基于报文发送的,从UDP的帧结构可以看出,在UDP首部采用了16bit来指示UDP数据报文的长度,因此在应用层能很好的将不同的数据报文区分开,从而避免粘包和拆包的问题。而TCP基于字节流传输,虽然应用层和TCP传输层之间的数据交互是大小不等的数据块,但TCP把这些数据块仅仅看成一连串的无结构的字节流,无边界。从TCP帧结构看出,TCP报文头部没有表示数据长度的字段。

现象的描述
发生的原因
问题的解决方案
现有框架
上一篇 下一篇

猜你喜欢

热点阅读