[发明专利]用于有长度限制的网络传输协议中分片传输数据包的方法有效
| 申请号: | 201811042294.9 | 申请日: | 2018-09-07 |
| 公开(公告)号: | CN109257143B | 公开(公告)日: | 2021-07-06 |
| 发明(设计)人: | 王鑫鹏;南亮 | 申请(专利权)人: | 武汉虹信科技发展有限责任公司 |
| 主分类号: | H04L1/00 | 分类号: | H04L1/00;H04L29/06;H04W28/06 |
| 代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 严彦 |
| 地址: | 430205 湖北省武*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 用于 长度 限制 网络 传输 协议 分片 数据包 方法 | ||
本发明提供一种用于有长度限制的网络传输协议中分片传输数据包的方法,其特征在于:在传输层,发送端将大数据包分割成若干可以一次发送成功的数据片,接收端收到一个数据包的全部的数据片后,按顺序组装数据包完毕后发送给应用层;发送端分割数据片时,增加保证数据片准确传输的头部结构;接收端收齐一个完整的数据包后,剥离头部结构,组装完毕后发往应用层。本发明技术方案将在网络服务程序中发挥重要作用,能够提供网络运营效率,在通信行业具有重大的市场价值。
技术领域
本发明涉及一种分片传输大数据包的方法,可用于使用有长度限制的网络传输协议传输超过协议限制的最大长度的数据包。
背景技术
在某些应用场景中,网络传输使用的传输协议对传输的数据包存在长度限制,而应用层要传输的大数据包可能会超出限制长度,例如:
用lora等串口协议传输超过256字节的数据包。lora可用于无线远距离传输,但传输速度极慢,传输的数据包太大会非常耗时且不稳定。
为满足这些特定的应用场景,需要在应用层限制数据包的大小;这样使得应用层的业务逻辑受到传输层的限制,不利用应用层的开发和维护。
发明内容
本发明提供了一种新的对大数据包进行分片重组的传输方法。
本发明技术方案提供一种用于有长度限制的网络传输协议中分片传输数据包的方法,在传输层,发送端将大数据包分割成若干可以一次发送成功的数据片,接收端收到一个数据包的全部的数据片后,按顺序组装数据包完毕后发送给应用层;发送端分割数据片时,增加保证数据片准确传输的头部结构;接收端收齐一个完整的数据包后,剥离头部结构,组装完毕后发往应用层;
增加头部结构的实现方式为,
在每片数据的头部增加一个片头部,片头部包含下列字段,
片id,按数据片在数据包的位置顺序从1开始编号;
片size,提供本数据片的内容的长度;
数据包id,标记应用层传输过来的要发送的数据包,从0开始累加,当累加到数据类型允许的最大值时,重新从0开始累加;
Flag,标识是否分片;
对于数据包的第一个数据片增加数据包头部,数据包头部包含数据包长度。
而且,对于数据包的第一个数据片增加数据包头部时,数据包头部包含crc校验字段,用于传输层对数据可靠性进行校验,确保接收到的数据完全正确。
而且,在传输层,需要发送数据包时,判断数据包的长度是否超过网络传输协议限制,如果未超过,则在数据前增加片头部,其中,片id为1;flag为0,表示未分片;
如果超过限制,则需要分片,将数据分成符合网络传输协议限制的若干片,在每片数据前加上片头部,并对各个字段赋值,其中片id从1开始,按顺序累加;flag标记为1,表示是分片数据。
而且,接收端从网络上接收到数据后,首先读取数据的片头部;
如果片头部的flag标记为0,则表示此数据片是一个完整的数据包,去掉片头部后,直接将数据内容发送给应用层;
如果片头部的flag标记为1,则表示这是一个分片数据。读取片头部里的数据包id字段,在缓冲区里查找,是否有元素的数据包id字段和收到的数据片的数据包id相同。
而且,当在缓冲区里查找的结果是,没有元素的数据包id字段和收到的数据片的数据包id相同,说明收到了一个新的数据包,则在缓冲区里取一个未使用的元素,存储此数据片对应的数据包的数据,将元素的数据包id赋值为此数据片的数据包id,记录当前时间到元素的时间戳字段,将数据片加入到元素的数据片队列中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉虹信科技发展有限责任公司,未经武汉虹信科技发展有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811042294.9/2.html,转载请声明来源钻瓜专利网。





