[发明专利]一种TCP粘包处理方法、系统及存储介质在审
申请号: | 202110772488.X | 申请日: | 2021-07-08 |
公开(公告)号: | CN113556331A | 公开(公告)日: | 2021-10-26 |
发明(设计)人: | 付庆 | 申请(专利权)人: | 深圳华臻信息技术有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04W28/06 |
代理公司: | 深圳茂达智联知识产权代理事务所(普通合伙) 44394 | 代理人: | 骆晶 |
地址: | 518000 广东省深圳市龙华区龙华*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 tcp 处理 方法 系统 存储 介质 | ||
本发明公开了一种TCP粘包处理方法、系统及存储介质,所述方法包括:在接收到TCP消息时,对所述TCP消息进行MSG_PEEK标记,所述TCP消息包括消息头;采用MSG_PEEK机制从TCP消息接收队列中预先读取所述TCP消息的数据;当预先读取到的TCP消息的数据长度大于或等于所述消息头时,从所述TCP消息的消息头中获取消息长度;清除所述MSG_PEEK标记;从所述TCP消息接收队列中再次读取与所述消息长度相对应的数据;当再次读取到的数据等于所述消息长度时,接收完整的数据包,并对所述数据包进行处理。本发明能保证每次读取到的消息边界清晰,均是完整的应用层消息,从而巧妙的解决了TCP粘包问题。
技术领域
本发明涉及TCP粘包处理领域,尤其涉及一种TCP粘包处理方法、系统及存储介质。
背景技术
目前,基站系统普遍采用分布式架构,对于宏站主要由基带处理单元、射频单元组成,对于室分系统由基带单元、扩展单元、射频单元组成,不同网元之间物理上通过光纤连接,可以实现灵活组网;基带单元和扩展单元需要支持多光口,根据组网场景基带单元可以接射频单元,也可以接扩展单元,扩展单元再接射频单元。基带单元需要控制所连接的扩展单元、射频单元,不同网元之间需要采用一种通信机制实现基带单元对网元的管理与控制,比如配置下发、状态查询,升级等操作。
由于TCP(传输控制协议)自身特性,发送端可能会将多次间隔较小且数据量较小的应用层数据,合并成一个大的数据块,然后进行封包发送到接收端,接收端难以区分,需要应用层采用合适的拆包策略。
其中,现有技术中常见的方法是接收端将每次接收到的数据放到缓冲区,其中,每次接收到的数据可能是一个完整的数据包,也可能是多个完整数据包,也可能包含多个数据包但最后一包数据不完整,接收端再从缓冲区中根据消息头找到消息边界处理每一包数据,不完整的数据包保留到缓冲区下下一个接收周期再进行解析,需要考虑的场景与异常处理比较多。
发明内容
本发明的主要目的在于提供一种TCP粘包处理方法、系统及存储介质,旨在保证每次读取到的消息均是完整的应用层消息,从而巧妙的解决TCP粘包问题。
为实现上述目的,本发明提供一种TCP粘包处理方法,所述方法包括以下步骤:
在接收到TCP消息时,对所述TCP消息进行MSG_PEEK标记,所述TCP消息包括消息头;
采用MSG_PEEK机制从TCP消息接收队列中预先读取所述TCP消息的数据;
当预先读取到的TCP消息的数据长度大于或等于所述消息头时,从所述TCP消息的消息头中获取消息长度;
清除所述MSG_PEEK标记;
从所述TCP消息接收队列中再次读取与所述消息长度相对应的数据;
当再次读取到的数据等于所述消息长度时,接收完整的数据包,并对所述数据包进行处理。
本发明进一步的技术方案是,所述当预先读取到的TCP消息的数据长度大于或等于所述消息头时,从所述TCP消息的消息头中获取消息长度的步骤之前还包括:
判断读取到的TCP消息的数据长度是否大于或等于消息头的消息长度;
若否,则返回执行所述采用MSG_PEEK机制从TCP消息接收队列中预先读取所述TCP消息的数据的步骤;
若是,则执行所述当预先读取到的TCP消息的数据长度大于或等于所述消息头时,从所述TCP消息的消息头中获取消息长度的步骤。
本发明进一步的技术方案是,所述当再次读取到的数据等于所述消息长度时,接收完整的数据包,并对所述数据包进行处理的步骤之前还包括:
判断再次读取到的数据是否等于所述消息长度;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳华臻信息技术有限公司,未经深圳华臻信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110772488.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:闸机断电自锁机构
- 下一篇:一种燃油喷嘴试验件防积碳结构及方法