锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / C++行业技术开源 / 通信残包、SOCKET残包、套接字残包、TCP残包
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

通信残包、SOCKET残包、套接字残包、TCP残包


通信残包是指接收时收到了不完整的包,如果是开头部分,可能结合后续接收数据能够恢复,如果是后半部分,数据恢复不了,只能丢弃。在网络堵塞时,看视频经常会有马赛克画面部分不清楚,有时候会卡住,这时候多少也有数据,但是数据量小,肯定大部分都是残包,发给视频解码器,视频解码不了,就会马赛克或卡顿。所以通信开发,长连接大量数据传输接收要考虑残包处理,而短连接数据量小时一般不考虑残包情况。


SOCKET残包、套接字残包、TCP残包

SOCKET残包、套接字残包和TCP残包是一个意思,如下面协议解释来理解残包。

            1:包头标志:8:CC:前半段内容
2:后半段内容:包尾标志。
3: 部分内容

上面第2个包就是连包,第3个是残包,无开头标志和结束标志,0x8cc是包长度。

前面讲到视频播放器接收通信残包,导致有马赛克画面部分不清楚,哪把有效数据给编码器不就能解决问题了吗?这只是理想,很难实现,现代的编码协议非常复杂,编码器解包一次,在外面再做一次验证解包,没有必要。现代的解码器一般能够处理好一些数据不一致问题,不会死机。

另外在无线通信和卫星通信时,容易有残包,丢失部分数据也会导致残包,在无线通信和卫星通信时,通信介质不稳定带来接收异常或中断,就有了丢失部分数据情况。这时候经常要用类似CRC机制来进行验证,如果不是完整的包,不进行处理。如果是紧急的数据,可以回复重传包,让发送方再传一次。

普通开发时,只要包长不大于最大传输单元(Maximum Transmission Unit,MTU),一般不会有残包。现代的光纤传输技术和有线局域网数据传输都比较可靠。

在网络设备遇到极端情况下,CPU过高机器发热时,通信紊乱状态下,也可能会有残包,在软件遇到特别通信异常时,要考虑环境问题。

友情链接
版权所有 Copyright(c)2004-2024 锐英源软件
统一社会信用代码:91410105098562502G 豫ICP备08007559号 最佳分辨率 1440*900
地址:郑州市金水区文化路97号郑州大学北区院内南门附近