[发明专利]一种重复数据包过滤方法、系统及可读存储介质有效
申请号: | 202110799439.5 | 申请日: | 2021-07-15 |
公开(公告)号: | CN113259256B | 公开(公告)日: | 2021-09-21 |
发明(设计)人: | 员召伟 | 申请(专利权)人: | 全时云商务服务股份有限公司 |
主分类号: | H04L12/801 | 分类号: | H04L12/801;H04L12/815;H04L29/06 |
代理公司: | 北京惟盛达知识产权代理事务所(普通合伙) 11855 | 代理人: | 董鸿柏 |
地址: | 100010 北京市东城区青*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 重复 数据包 过滤 方法 系统 可读 存储 介质 | ||
本发明公开的一种重复数据包过滤方法、系统及可读存储介质,方法包括:建立用于保存已接收数据包的序号值的数组;接收数据包,并获取所述数据包的数据序号;将所述数据序号对数组大小取余,得到位置下标;提取所述数组中位于所述位置下标处的元素序号;判断所述数据序号与所述元素序号是否一致;若是,则丢弃所述数据包;若否,则用所述数据序号替换所述元素序号,并保存数据包。本发明通过用数据包序号对数组大小取余得到其对应的位置,再比较对应位置上记录的序号值是否与当前相同,就可以判断出是否为重复包,算法的核心就是寻址一步到位,算法实现很清楚简单,识别重复包速度却很快,占用CPU非常少。
技术领域
本发明涉及网络数据传输技术领域,具体涉及一种重复数据包过滤方法、系统及可读存储介质。
背景技术
在网络数据的传输中,为了保证时效性,通常会采用UDP(User DatagramProtocol,用户数据报协议)传输数据包。当使用UDP传输数据包时,发送端为了对抗丢包会采用多种策略,比如:当接收端明确通知发送端某些数据包丢了,发送端再重复发一次该数据包;通过某种策略,发送端可以猜测出某些数据包丢了,则也会重复发送这些数据包;发送端会使用固定的倍率来重复发送所有的数据包。无论用哪种策略,发送端都是通过发送重复数据包来对抗网络丢包,导致接收端会收到大量的重复数据包,重复的数据包到达接收端后必须被过滤掉,避免对客户端的请求做频繁的处理,例如在发送音频时,若接收端不过滤重复数据包会影响音频的声音质量。
现有技术的过滤算法的存在CPU消耗太大的问题,因为每来一个数据包都要遍历整个数组才能确认是否为重复数据包,在负载量大的数据传输上,会非常消耗CPU资源。因此,如何设计一种重复数据包过滤方法,降低CPU消耗量,是本领域技术人员亟待解决的技术问题。
发明内容
鉴于上述问题,本发明的目的是提供一种重复数据包过滤方法、系统和可读存储介质,解决现有技术中CPU消耗量过大的问题。
本发明第一方面提供了一种重复数据包过滤方法,包括以下步骤:
建立用于保存已接收数据包的序号值的数组,所述数组的大小为N,其中,N为大于1的整数;
接收数据包,并获取所述数据包的数据序号;
将所述数据序号对N取余,得到位置下标;
提取所述数组中位于所述位置下标处的元素序号;
判断所述数据序号与所述元素序号是否一致;
若是,则丢弃所述数据包;
若否,则用所述数据序号替换所述元素序号,并保存数据包。
本方案中,
在所述建立用于保存已接收数据包的序号值的数组之后,还包括:
对所述数组中的元素进行初始化。
本方案中,
在所述接收数据包之后,还包括:
将本次收到数据包的时间作为当前时间,计算当前时间与上一次收到数据包的时间的时间差;
若所述时间差大于预设值,则对所述数组中的元素进行初始化。
本方案中,
所述对所述数组中的元素进行初始化,具体为:
将所述数组中的元素的初始值设置为小于0的整数。
本方案中,
所述对所述数组中的元素进行初始化,具体为:
将所述数组中的元素的初始值设置为有符号整数。
本方案中,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于全时云商务服务股份有限公司,未经全时云商务服务股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110799439.5/2.html,转载请声明来源钻瓜专利网。