网络传输粘包的处理

粘包产生的原因

1.发送端数据由于nagle算法,将多个业务数据包压成一个TCP包发送

2.接收端数据缓冲区读数据一次读入了多个包的数据

 

拆包产生原因:

1.发送端由于消息超过了MSS(最大报文段长度)限制大小被拆成多个TCP报文发送

2.接收端数据缓冲区一次读入了非整数个包的数据

 

处理粘包或者分包的策略基本就两种:

1.每个数据前后加特殊字符,比如ftp方式,这样方式容易出错,如果数据本身含有特殊字符就会发生分隔错误

2.业务数据加业务协议头标识业务数据的长度,在读取的时候能够确定向后读取数据的长度作为一个业务数据的边界

 

业务消息的可靠性

TCP协议保证了传输层的可靠性,如何保证业务处理层的可靠性?request-respone方式或者类似fix协议一样的业务层协议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值