码迷,mamicode.com
首页 > 其他好文 > 详细

tcp粘包、拆包

时间:2017-10-12 19:10:05      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:nbsp   com   发送   缓冲区   发送数据   多次   ack   全面   .com   

粘包、拆包发生原因:
发生TCP粘包或拆包有很多原因,现列出常见的几点,可能不全面,欢迎补充,
1、要发送的数据大于TCP发送缓冲区剩余空间大小,将会发生拆包。
2、待发送数据大于MSS(最大报文长度),TCP在传输前将进行拆包。
3、要发送的数据小于TCP发送缓冲区的大小,TCP将多次写入缓冲区的数据一次发送出去,将会发生粘包。
4、接收数据端的应用层没有及时读取接收缓冲区中的数据,将发生粘包。

现在假设客户端向服务端连续发送了两个数据包,用packet1和packet2来表示,那么服务端收到的数据可以分为三种,现列举如下:

技术分享

 

 

技术分享

 

 

技术分享

tcp粘包、拆包

标签:nbsp   com   发送   缓冲区   发送数据   多次   ack   全面   .com   

原文地址:http://www.cnblogs.com/lnas01/p/7657302.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!