[发明专利]一种UDP数据包处理方法及装置在审
申请号: | 202011471542.9 | 申请日: | 2020-12-14 |
公开(公告)号: | CN112637162A | 公开(公告)日: | 2021-04-09 |
发明(设计)人: | 王奎 | 申请(专利权)人: | 上海金仕达软件科技有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L1/00 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 李伟 |
地址: | 201203 上海市中国*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 udp 数据包 处理 方法 装置 | ||
本申请提供的一种UDP数据包处理方法及装置,通过实时接收UDP数据包,该UDP数据包内包含UDP数据包序号;检测UDP数据包内的递增序号,检查UDP数据包的连续性;当出现不连续时,将UDP数据包缓存至排序队列,并在排序队列中对接收到的UDP数据包按序号进行排序处理;当满足判定UDP数据包发生丢包的预设条件时,则判定UDP数据包发生丢包,进行UDP数据包的处理或通知硬件辅助进行丢包处理。本申请中的排序队列缓存算法能快速识别和恢复乱序数据流处理,对丢包情况能对硬件进行快速重置和恢复,通过对软硬件结合的方式对UDP数据包的乱序和丢包进行精准界定,进而实现提高UDP数据包处理速度和可靠性。
技术领域
本申请涉及信息数据处理技术领域,更具体地,尤其涉及一种UDP数据包处理方法及装置。
背景技术
在处理UDP(User Datagram Protocol,用户数据报协议)数据流的系统中,在高速UDP数据处理环境下,UDP数据包会采用UDP方式进行传输,应用层在接收到UDP数据包后,按照UDP数据包的序号对UDP数据包依次进行处理。但是,由于UDP是一种不可靠的传输协议,其存在天然的丢包和乱序特性,因而可能导致应用层接收到的UDP数据包顺序不连续,如果收到的是非连续的UDP数据包,硬件层逻辑由于其时序逻辑无法处理,就会导致硬件处理逻辑异常,需要软件模块帮助其复位后重新处理,从而影响了UDP数据包的处理速度和可靠性。
发明内容
本申请提供了一种UDP数据包处理方法及装置,用以提高UDP数据包的处理速度和可靠性。
为了实现上述目的,本申请提供了以下技术方案:
一种UDP数据包处理方法,包括:
实时接收UDP数据包,所述UDP数据包内包含UDP数据包序号;
检测所述UDP数据包内的递增序号,检查所述UDP数据包的连续性;
当出现不连续时,将所述UDP数据包缓存至排序队列,并在所述排序队列中对接收到的所述UDP数据包按序号进行排序处理;
当满足判定所述UDP数据包发生丢包的预设条件时,则判定所述UDP数据包发生丢包,进行所述UDP数据包的处理或通知硬件辅助进行丢包处理。
优选的,所述检测所述UDP数据包内的递增序号,检查所述UDP数据包的连续性,具体为:
通过使用序号计数器检测所述UDP数据包内的递增序号,检查所述UDP数据包的连续性。
优选的,所述通过使用序号计数器检测所述UDP数据包内的递增序号,检查所述UDP数据包的连续性,具体为:
通过使用序号计数器检测所述UDP数据包内的递增序号;
在接收到第一个UDP数据包时,对所述第一个UDP数据包进行解析并记录所述第一个UDP数据包内的序号;
每接收一个UDP数据包,对所述UDP数据包内的序号进行依次递增;
将所述UDP数据包内的序号与软件变量记录的序号进行对比;
当所述UDP数据包内的序号与所述软件变量记录的序号一致时,则确定所述UDP数据包为连续的。
优选的,所述当出现不连续时,将所述UDP数据包缓存至排序队列,并在所述排序队列中对接收到的所述UDP数据包按序号进行排序处理,具体为:
当所述UDP数据包内的序号与所述软件变量记录的序号不一致时,则确定所述UDP数据包为不连续的;
若所述UDP数据包内的序号小于所述软件变量记录的序号,则将所述UDP数据包丢弃;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海金仕达软件科技有限公司,未经上海金仕达软件科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011471542.9/2.html,转载请声明来源钻瓜专利网。