CN113259256A - 一种重复数据包过滤方法、系统及可读存储介质 - Google Patents
一种重复数据包过滤方法、系统及可读存储介质 Download PDFInfo
- Publication number
- CN113259256A CN113259256A CN202110799439.5A CN202110799439A CN113259256A CN 113259256 A CN113259256 A CN 113259256A CN 202110799439 A CN202110799439 A CN 202110799439A CN 113259256 A CN113259256 A CN 113259256A
- Authority
- CN
- China
- Prior art keywords
- data packet
- data
- sequence number
- array
- repeated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/23—Bit dropping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
Abstract
本发明公开的一种重复数据包过滤方法、系统及可读存储介质,方法包括:建立用于保存已接收数据包的序号值的数组;接收数据包,并获取所述数据包的数据序号;将所述数据序号对数组大小取余,得到位置下标;提取所述数组中位于所述位置下标处的元素序号;判断所述数据序号与所述元素序号是否一致;若是,则丢弃所述数据包;若否,则用所述数据序号替换所述元素序号,并保存数据包。本发明通过用数据包序号对数组大小取余得到其对应的位置,再比较对应位置上记录的序号值是否与当前相同,就可以判断出是否为重复包,算法的核心就是寻址一步到位,算法实现很清楚简单,识别重复包速度却很快,占用CPU非常少。
Description
技术领域
本发明涉及网络数据传输技术领域,具体涉及一种重复数据包过滤方法、系统及可读存储介质。
背景技术
在网络数据的传输中,为了保证时效性,通常会采用UDP(User DatagramProtocol,用户数据报协议)传输数据包。当使用UDP传输数据包时,发送端为了对抗丢包会采用多种策略,比如:当接收端明确通知发送端某些数据包丢了,发送端再重复发一次该数据包;通过某种策略,发送端可以猜测出某些数据包丢了,则也会重复发送这些数据包;发送端会使用固定的倍率来重复发送所有的数据包。无论用哪种策略,发送端都是通过发送重复数据包来对抗网络丢包,导致接收端会收到大量的重复数据包,重复的数据包到达接收端后必须被过滤掉,避免对客户端的请求做频繁的处理,例如在发送音频时,若接收端不过滤重复数据包会影响音频的声音质量。
现有技术的过滤算法的存在CPU消耗太大的问题,因为每来一个数据包都要遍历整个数组才能确认是否为重复数据包,在负载量大的数据传输上,会非常消耗CPU资源。因此,如何设计一种重复数据包过滤方法,降低CPU消耗量,是本领域技术人员亟待解决的技术问题。
发明内容
鉴于上述问题,本发明的目的是提供一种重复数据包过滤方法、系统和可读存储介质,解决现有技术中CPU消耗量过大的问题。
本发明第一方面提供了一种重复数据包过滤方法,包括以下步骤:
建立用于保存已接收数据包的序号值的数组,所述数组的大小为N,其中,N为大于1的整数;
接收数据包,并获取所述数据包的数据序号;
将所述数据序号对N取余,得到位置下标;
提取所述数组中位于所述位置下标处的元素序号;
判断所述数据序号与所述元素序号是否一致;
若是,则丢弃所述数据包;
若否,则用所述数据序号替换所述元素序号,并保存数据包。
本方案中,
在所述建立用于保存已接收数据包的序号值的数组之后,还包括:
对所述数组中的元素进行初始化。
本方案中,
在所述接收数据包之后,还包括:
将本次收到数据包的时间作为当前时间,计算当前时间与上一次收到数据包的时间的时间差;
若所述时间差大于预设值,则对所述数组中的元素进行初始化。
本方案中,
所述对所述数组中的元素进行初始化,具体为:
将所述数组中的元素的初始值设置为小于0的整数。
本方案中,
所述对所述数组中的元素进行初始化,具体为:
将所述数组中的元素的初始值设置为有符号整数。
本方案中,还包括:
在预设时间范围内获取接收端设备的运算能力值和占用率;
根据所述运算能力值和占用率计算所述数组大小N的值;
初始化所述数组,进行数据包过滤。
本方案中,所述判断所述数据序号与所述元素序号是否一致,还包括:
设置重复数据包计数器;
若所述数据序号与所述元素序号一致,则所述重复数据包计数器加1;
当所述重复数据包计数器的数值大于预设的重复阈值时,获取当前网络环境信息;
将所述网络环境信息和重复数据包计数器数值发送至服务器;
所述服务器根据接收的网络环境信息和重复数据包计数器数值进行分析,得到分析结果信息;
根据分析结果信息调整数据包的发送规则。
本方案中,所述服务器根据接收的网络环境信息和重复数据包计数器数值进行分析具体为:
将所述网络环境信息和重复数据包计数器数值输入至预设的环境神经网络模型中,输出分析结果信息。
本方案中,还包括:
当重复数据包计数器达到预设判断阈值时,存储重复数据包的内容,得到第一数据包;
当下一次接收到数据序号与所述元素序号一致时,存储重复数据包的内容,得到第二数据包;
比较第一数据包和第二数据包的特征值;
若所述特征值不一致,则发送提醒信息。
本方案中,还包括:
获取接收端当前的使用环境,得到使用环境信息;
根据使用环境信息和用户信息确定需求信息;
根据所述需求信息确定数据包的发送规则。
本发明第二方面还提供一种重复数据包过滤系统,包括存储器和处理器,所述存储器中包括重复数据包过滤方法程序,所述重复数据包过滤方法程序被所述处理器执行时实现如下步骤:
建立用于保存已接收数据包的序号值的数组,所述数组的大小为N,其中,N为大于1的整数;
接收数据包,并获取所述数据包的数据序号;
将所述数据序号对N取余,得到位置下标;
提取所述数组中位于所述位置下标处的元素序号;
判断所述数据序号与所述元素序号是否一致;
若是,则丢弃所述数据包;
若否,则用所述数据序号替换所述元素序号,并保存数据包。
本方案中,
在所述建立用于保存已接收数据包的序号值的数组之后,还包括:
对所述数组中的元素进行初始化。
本方案中,
在所述接收数据包之后,还包括:
将本次收到数据包的时间作为当前时间,计算当前时间与上一次收到数据包的时间的时间差;
若所述时间差大于预设值,则对所述数组中的元素进行初始化。
本方案中,
所述对所述数组中的元素进行初始化,具体为:
将所述数组中的元素的初始值设置为小于0的整数。
本发明第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中包括机器的一种重复数据包过滤方法程序,所述重复数据包过滤方法程序被处理器执行时,实现如上述任一项所述的一种重复数据包过滤方法的步骤。
本发明公开的一种重复数据包过滤方法和系统和可读存储介质,方法包括:建立用于保存已接收数据包的序号值的数组;接收数据包,并获取所述数据包的数据序号;将所述数据序号对数组大小取余,得到位置下标;提取所述数组中位于所述位置下标处的元素序号;判断所述数据序号与所述元素序号是否一致;若是,则丢弃所述数据包;若否,则用所述数据序号替换所述元素序号,并保存数据包。本发明通过用数据包序号对数组大小取余得到其对应的位置,再比较对应位置上记录的序号值是否与当前相同,就可以判断出是否为重复包,算法的核心就是寻址一步到位,算法实现很清楚简单,识别重复包速度却很快,占用CPU非常少。
附图说明
图1示出了本申请一种重复数据包过滤方法的方法流程图;
图2示出了本申请一种重复数据包过滤方法的算法流程图;
图3示出了本发明一种重复数据包过滤系统的系统框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
本申请第一方面提供了一种重复数据包过滤方法,图1示出了本申请一种重复数据包过滤方法的方法流程图,图2示出了本申请一种重复数据包过滤方法的算法流程图。
如图1所示,本申请公开了一种重复数据包过滤方法,包括以下步骤:
S102,建立用于保存已接收数据包的序号值的数组,所述数组的大小为N,其中,N为大于1的整数;
S104,接收数据包,并获取所述数据包的数据序号;
S106,将所述数据序号对N取余,得到位置下标;
S108,提取所述数组中位于所述位置下标处的元素序号;
S110,判断所述数据序号与所述元素序号是否一致;
S112,若是,则丢弃所述数据包;
S114,若否,则用所述数据序号替换所述元素序号,并保存数据包。
需要说明的是,建立的数组buff作用与现有技术中的相似,均用于保存接收到的数据包的序号。数组的大小即为数组中元素的个数,将接收到的数据包的数据序号对数组buff中元素的个数取余,得到数组的位置下标。即:当数组的大小N=50时,接收到数据序号seq_1为85的数据包,得到位置下标index=seq_1%N=35,找到位于数组buff中35所处位置所对应的元素,即buff[index]=buff[35],判断buff[35]的值是否为85,若否,则表示序号为85的数据包是第一次接收到,那么将直接令buff[35]=85;若是,则表示序号为85的数据包已经存在,属于重复数据包,可以丢弃。需要说明的是,由于数据包的序号是从0开始依次增加的,当数组大小为50时,序号为35和85所计算出来的下标均为35,由于85和35之间已经经历了50个数据包,在发送速度不快的情况下,可以认定在发送85号数据包时,35号数据包已经顺利送达。当然,数组大小可以根据业务需要和数据包性质进行调整,当短时间内发送的数据包众多的情况下,数组大小也可以相应增加,这是本领域技术人员容易实现的,此处不再赘述。
可以理解的是,本发明实施例所提供的重复数据包过滤方法,无需在接收数据包时遍历数组中的全部元素,只需要通过当前包序号对buff大小取余得到其对应的位置,再比较对应位置上记录的序号值是否与当前相同,就可以判断出是否为重复包,算法的核心就是寻址一步到位,算法实现很清楚简单,识别重复包速度却很快,占用CPU非常少。
根据本发明实施例,在所述建立用于保存已接收数据包的序号值的数组之后,还包括:
对所述数组中的元素进行初始化。
需要说明的是,在建立数组之后,先对数组中的元素进行初始化,初始化的元素数值应当避免与接收到的数据包序号对应的元素一致。
根据本发明实施例,在所述接收数据包之后,还包括:
将本次收到数据包的时间作为当前时间,计算当前时间与上一次收到数据包的时间的时间差;
若所述时间差大于预设值,则对所述数组中的元素进行初始化。
需要说明的是,如果两次接收到数据包的时间过长,说明数组内数据已经过时,不能再作为重复包的判断依据,需要立即对数组中的元素初始化。具体实现如下:定义一个大小为4字节的无符号变量lasttime,保存本次收包时的时间戳;当收到一个数据包时,获取当前时间,记为nowtime,单位为秒,计算当前时间和上次收包时间差值,记为timediff,单位为秒,如果timediff太大,说明buff内部数据已经过时,不能再作为重复包的判断依据,需要立即重新初始化buff;更新lasttime为当前时间,并认为当前包为有效包,记录其包序号到buff中;timediff的阈值根据业务特点定义,本实施例中可以设置为2秒,及timediff> 2表示buff过时,需要重新初始化。
根据本发明实施例,所述对所述数组中的元素进行初始化,具体为:
将所述数组中的元素的初始值设置为小于0的整数。
需要说明的是,由于数据包的序号是从0开始的无符号整数,因此将数组中的元素全部初始化为小于0的整数,不会与任何数据包的序号重复。
根据本发明实施例,所述对所述数组中的元素进行初始化,还可以为:
将所述数组中的元素的初始值设置为有符号整数。
需要说明的是,由于数据包的序号是从0开始的无符号整数,因此,将数组中的元素全部初始化为有符号整数,不会与任何数据包的序号重复。
根据本发明实施例,所述数据包具体为音频包。
需要说明的是,重复的音频到达接收端后必须被过滤掉,否则音频包的会影响音频的声音质量,因此本发明实施例具体可以应用在音频发送上。
根据本发明实施例,数组的大小取值范围为5至655之间的任意整数,优选为200。
需要说明的是,数组容量越小,剔除重复数据的误差越大,但是数组容量越大,占用内存越多,数组大小可以根据业务需要和数据包性质进行调整,在数据包为音频包的前提下,本发明实施例所采用的数组大小为200。
根据本发明实施例,所述时间差大于预设值具体为:
所述时间差大于2秒。
需要说明的是,在数据包为音频包的前提下,预设值优选为2秒能够达到过滤重复包和初始化数组两者平衡较好的效果。
根据本发明实施例,还包括:
在预设时间范围内获取接收端设备的运算能力值和占用率;
根据所述运算能力值和占用率计算所述数组大小N的值;
初始化所述数组,进行数据包过滤。
需要说明的是,数组的大小是可以动态变化的,具体可以根据接收端的运算能力和占用率去动态调整。其中所述运算能力为接收端处理器的运算处理能力,所述占用率为接收端处理器在处理任务时的资源占用比率,都可以通过数值的方式获得。在运算能力强和占用率较低的时候,可以把数组的大小调整大一些,因为这时候的算力充足,还可以减少数组判断过滤循环的次数。如果运算能力小,且占用率高,则需要降低数组的大小,以减少消耗处理器的资源,保证处理器能够平稳运行其他程序,也能够进行数据包过滤。预设的时间范围可以是10分钟或者30分钟,也就是说10分钟或者30分钟会动态调整一次数组的大小。
根据本发明实施例,所述判断所述数据序号与所述元素序号是否一致,还包括:
设置重复数据包计数器;
若所述数据序号与所述元素序号一致,则所述重复数据包计数器加1;
当所述重复数据包计数器的数值大于预设的重复阈值时,获取当前网络环境信息;
将所述网络环境信息和重复数据包计数器数值发送至服务器;
所述服务器根据接收的网络环境信息和重复数据包计数器数值进行分析,得到分析结果信息;
根据分析结果信息调整数据包的发送规则。
需要说明的是,在进行重复数据包过滤时,往往存在数据包重复过多的情况,本发明针对重复的时候可以进行计数,每重复一次,计数器加一,当所述重复数据包计数器的数值大于预设的重复阈值时,此时可能是由于发送规则或者网络状态造成的,所以此时需要获取当前网络环境信息。其中网络环境信息包括但不限于网络噪声、网络带宽、网络延迟、网络吞吐率等。然后将所述网络环境信息和重复数据包计数器数值发送至服务器,服务器根据接收的网络环境信息和重复数据包计数器数值进行分析,得到分析结果信息。分析结果包括网络当前的状态是否适应重发的规则以及重发的策略等内容。服务器可以通过大数据或者云计算的方式计算得到分析结果。并且根据分析结果信息调整数据包的发送规则,也就是重复发送数据包的规则,可以是每个数据包发送2次;或随机重复发送数据包,根据反馈信息再重复发送丢失的包。
根据本发明实施例,所述服务器根据接收的网络环境信息和重复数据包计数器数值进行分析具体为:
将所述网络环境信息和重复数据包计数器数值输入至预设的环境神经网络模型中,输出分析结果信息。
需要说明的是,本发明还能够通过神经网络模型进行分析,所述的神经网络通过大量的历史数据进行训练得到。具体的训练过程为:获取历史状态数据;对所述历史状态数据进行预处理,得到训练数组;将所述训练数组发送至初始化的神经网络模型中进行训练;获取训练后的神经网络模型的误差率;若所述误差率小于预设的误差率阈值,则停止训练,得到预设的环境神经网络模型。通过预设的环境神经网络模型可以快速的得到分析结果,然后根据分析结果进行决策。
根据本发明实施例,还包括:
当重复数据包计数器达到预设判断阈值时,存储重复数据包的内容,得到第一数据包;
当下一次接收到数据序号与所述元素序号一致时,存储重复数据包的内容,得到第二数据包;
比较第一数据包和第二数据包的特征值;
若所述特征值不一致,则发送提醒信息。
需要说明的是,由于数据在发送过程中,可能会存在多种的情况,例如,网络噪声或者脉冲跳变等,可能会造成一些数据位的信息发生跳变,也就是说可能数据序号一致,但是其中数据的内容不一致,因为数据的序号可能由于网络问题导致了跳变,导致序号重复。在这种情况下,需要进行数据内容的判断,为了降低判断的复杂度,所以在重复次数到达了判断阈值时,才进行判断。所述判断阈值和重复阈值可以不同,判断阈值可以设置2-3;而重复阈值可以设置为5-10,也就是说判断阈值往往低于重复阈值。在重复次数到达判断阈值后,存储数据包的内容,然后在下次重复的时候,判断特征值是否相同。如果相同,说明是重复的数据包,如果不相同,则说明是网络状态造成的,可能会出现大量的数据序号的跳变。其中特征值的计算可以采用哈希算法。通过本发明的方法可以提高数据的准确率。
根据本发明实施例,还包括:
获取接收端当前的使用环境,得到使用环境信息;
根据使用环境信息和用户信息确定需求信息;
根据所述需求信息确定数据包的发送规则。
需要说明的是,由于用户端也就是接收端的使用环境和场景不同,例如,看视频直播,进行网络会议,下载文档。每种环境和场景下,对重复数据包过滤的需求或者时长要求不同,在进行网络会议时,需要快速确定重复数据包,并进行过滤,以免造成过大的延迟;但在下载文档时,由于对时效性要求不高,所以可以相对增加对重复数据包过滤的时长。因此,本发明还能够根据接收端当前的使用环境,以及用户信息确定需求信息。其中,用户信息为预先收集的用户对网络传输的要求以及习惯信息;需求信息为当前使用环境下用户对数据传输的延时以及重复包和丢包率的要求信息。然后根据需求信息就能够确定数据包的发送规则,例如,在下载文档时,可以多次重复发送数据包,以确定下载文档的准确性;在进行网络会议时,需要识别重复包的速度快,所以可以间隔重复发送数据包或减少重复数据包的发送。
图3示出了本发明一种重复数据包过滤系统的系统框图。
如图3所示,本发明公开了一种重复数据包过滤系统3,包括存储器31和处理器32,所述存储器31中包括重复数据包过滤方法程序,所述重复数据包过滤方法程序被所述处理器32执行时实现如下步骤:
建立用于保存已接收数据包的序号值的数组,所述数组的大小为N,其中,N为大于1的整数;
接收数据包,并获取所述数据包的数据序号;
将所述数据序号对N取余,得到位置下标;
提取所述数组中位于所述位置下标处的元素序号;
判断所述数据序号与所述元素序号是否一致;
若是,则丢弃所述数据包;
若否,则用所述数据序号替换所述元素序号,并保存数据包。
需要说明的是,建立的数组buff作用与现有技术中的相似,均用于保存接收到的数据包的序号。数组的大小即为数组中元素的个数,将接收到的数据包的数据序号对数组buff中元素的个数取余,得到数组的位置下标。即:当数组的大小N=50时,接收到数据序号seq_1为85的数据包,得到位置下标index=seq_1%N=35,找到位于数组buff中35所处位置所对应的元素,即buff[index]=buff[35],判断buff[35]的值是否为85,若否,则表示序号为85的数据包是第一次接收到,那么将直接令buff[35]=85;若是,则表示序号为85的数据包已经存在,属于重复数据包,可以丢弃。需要说明的是,由于数据包的序号是从0开始依次增加的,当数组大小为50时,序号为35和85所计算出来的下标均为35,由于85和35之间已经经历了50个数据包,在发送速度不快的情况下,可以认定在发送85号数据包时,35号数据包已经顺利送达。当然,数组大小可以根据业务需要和数据包性质进行调整,当短时间内发送的数据包众多的情况下,数组大小也可以相应增加,这是本领域技术人员容易实现的,此处不再赘述。
可以理解的是,本发明实施例所提供的重复数据包过滤方法,无需在接收数据包时遍历数组中的全部元素,只需要通过当前包序号对buff大小取余得到其对应的位置,再比较对应位置上记录的序号值是否与当前相同,就可以判断出是否为重复包,算法的核心就是寻址一步到位,算法实现很清楚简单,识别重复包速度却很快,占用CPU非常少。
根据本发明实施例,在所述建立用于保存已接收数据包的序号值的数组之后,还包括:
对所述数组中的元素进行初始化。
需要说明的是,在建立数组之后,先对数组中的元素进行初始化,初始化的元素数值应当避免与接收到的数据包序号对应的元素一致。
根据本发明实施例,在所述接收数据包之后,还包括:
将本次收到数据包的时间作为当前时间,计算当前时间与上一次收到数据包的时间的时间差;
若所述时间差大于预设值,则对所述数组中的元素进行初始化。
需要说明的是,如果两次接收到数据包的时间过长,说明数组内数据已经过时,不能再作为重复包的判断依据,需要立即对数组中的元素初始化。具体实现如下:定义一个大小为4字节的无符号变量lasttime,保存本次收包时的时间戳;当收到一个数据包时,获取当前时间,记为nowtime,单位为秒,计算当前时间和上次收包时间差值,记为timediff,单位为秒,如果timediff太大,说明buff内部数据已经过时,不能再作为重复包的判断依据,需要立即重新初始化buff;更新lasttime为当前时间,并认为当前包为有效包,记录其包序号到buff中;timediff的阈值根据业务特点定义,本实施例中可以设置为2秒,及timediff> 2表示buff过时,需要重新初始化。
根据本发明实施例,所述对所述数组中的元素进行初始化,具体为:
将所述数组中的元素的初始值设置为小于0的整数。
需要说明的是,由于数据包的序号是从0开始的无符号整数,因此将数组中的元素全部初始化为小于0的整数,不会与任何数据包的序号重复。
根据本发明实施例,所述对所述数组中的元素进行初始化,还可以为:
将所述数组中的元素的初始值设置为有符号整数。
需要说明的是,由于数据包的序号是从0开始的无符号整数,因此,将数组中的元素全部初始化为有符号整数,不会与任何数据包的序号重复。
根据本发明实施例,所述数据包具体为音频包。
需要说明的是,重复的音频到达接收端后必须被过滤掉,否则音频包的会影响音频的声音质量,因此本发明实施例具体可以应用在音频发送上。
根据本发明实施例,数组的大小取值范围为5至655之间的任意整数,优选为200。
需要说明的是,数组容量越小,剔除重复数据的误差越大,但是数组容量越大,占用内存越多,数组大小可以根据业务需要和数据包性质进行调整,在数据包为音频包的前提下,本发明实施例所采用的数组大小为200。
根据本发明实施例,所述时间差大于预设值具体为:
所述时间差大于2秒。
需要说明的是,在数据包为音频包的前提下,预设值优选为2秒能够达到过滤重复包和初始化数组两者平衡较好的效果。
根据本发明实施例,还包括:
在预设时间范围内获取接收端设备的运算能力值和占用率;
根据所述运算能力值和占用率计算所述数组大小N的值;
初始化所述数组,进行数据包过滤。
需要说明的是,数组的大小是可以动态变化的,具体可以根据接收端的运算能力和占用率去动态调整。其中所述运算能力为接收端处理器的运算处理能力,所述占用率为接收端处理器在处理任务时的资源占用比率,都可以通过数值的方式获得。在运算能力强和占用率较低的时候,可以把数组的大小调整大一些,因为这时候的算力充足,还可以减少数组判断过滤循环的次数。如果运算能力小,且占用率高,则需要降低数组的大小,以减少消耗处理器的资源,保证处理器能够平稳运行其他程序,也能够进行数据包过滤。预设的时间范围可以是10分钟或者30分钟,也就是说10分钟或者30分钟会动态调整一次数组的大小。
根据本发明实施例,所述判断所述数据序号与所述元素序号是否一致,还包括:
设置重复数据包计数器;
若所述数据序号与所述元素序号一致,则所述重复数据包计数器加1;
当所述重复数据包计数器的数值大于预设的重复阈值时,获取当前网络环境信息;
将所述网络环境信息和重复数据包计数器数值发送至服务器;
所述服务器根据接收的网络环境信息和重复数据包计数器数值进行分析,得到分析结果信息;
根据分析结果信息调整数据包的发送规则。
需要说明的是,在进行重复数据包过滤时,往往存在数据包重复过多的情况,本发明针对重复的时候可以进行计数,每重复一次,计数器加一,当所述重复数据包计数器的数值大于预设的重复阈值时,此时可能是由于发送规则或者网络状态造成的,所以此时需要获取当前网络环境信息。其中网络环境信息包括但不限于网络噪声、网络带宽、网络延迟、网络吞吐率等。然后将所述网络环境信息和重复数据包计数器数值发送至服务器,服务器根据接收的网络环境信息和重复数据包计数器数值进行分析,得到分析结果信息。分析结果包括网络当前的状态是否适应重发的规则以及重发的策略等内容。服务器可以通过大数据或者云计算的方式计算得到分析结果。并且根据分析结果信息调整数据包的发送规则,也就是重复发送数据包的规则,可以是每个数据包发送2次;或随机重复发送数据包,根据反馈信息再重复发送丢失的包。
根据本发明实施例,所述服务器根据接收的网络环境信息和重复数据包计数器数值进行分析具体为:
将所述网络环境信息和重复数据包计数器数值输入至预设的环境神经网络模型中,输出分析结果信息。
需要说明的是,本发明还能够通过神经网络模型进行分析,所述的神经网络通过大量的历史数据进行训练得到。具体的训练过程为:获取历史状态数据;对所述历史状态数据进行预处理,得到训练数组;将所述训练数组发送至初始化的神经网络模型中进行训练;获取训练后的神经网络模型的误差率;若所述误差率小于预设的误差率阈值,则停止训练,得到预设的环境神经网络模型。通过预设的环境神经网络模型可以快速的得到分析结果,然后根据分析结果进行决策。
根据本发明实施例,还包括:
当重复数据包计数器达到预设判断阈值时,存储重复数据包的内容,得到第一数据包;
当下一次接收到数据序号与所述元素序号一致时,存储重复数据包的内容,得到第二数据包;
比较第一数据包和第二数据包的特征值;
若所述特征值不一致,则发送提醒信息。
需要说明的是,由于数据在发送过程中,可能会存在多种的情况,例如,网络噪声或者脉冲跳变等,可能会造成一些数据位的信息发生跳变,也就是说可能数据序号一致,但是其中数据的内容不一致,因为数据的序号可能由于网络问题导致了跳变,导致序号重复。在这种情况下,需要进行数据内容的判断,为了降低判断的复杂度,所以在重复次数到达了判断阈值时,才进行判断。所述判断阈值和重复阈值可以不同,判断阈值可以设置2-3;而重复阈值可以设置为5-10,也就是说判断阈值往往低于重复阈值。在重复次数到达判断阈值后,存储数据包的内容,然后在下次重复的时候,判断特征值是否相同。如果相同,说明是重复的数据包,如果不相同,则说明是网络状态造成的,可能会出现大量的数据序号的跳变。其中特征值的计算可以采用哈希算法。通过本发明的方法可以提高数据的准确率。
根据本发明实施例,还包括:
获取接收端当前的使用环境,得到使用环境信息;
根据使用环境信息和用户信息确定需求信息;
根据所述需求信息确定数据包的发送规则。
需要说明的是,由于用户端也就是接收端的使用环境和场景不同,例如,看视频直播,进行网络会议,下载文档。每种环境和场景下,对重复数据包过滤的需求或者时长要求不同,在进行网络会议时,需要快速确定重复数据包,并进行过滤,以免造成过大的延迟;但在下载文档时,由于对时效性要求不高,所以可以相对增加对重复数据包过滤的时长。因此,本发明还能够根据接收端当前的使用环境,以及用户信息确定需求信息。其中,用户信息为预先收集的用户对网络传输的要求以及习惯信息;需求信息为当前使用环境下用户对数据传输的延时以及重复包和丢包率的要求信息。然后根据需求信息就能够确定数据包的发送规则,例如,在下载文档时,可以多次重复发送数据包,以确定下载文档的准确性;在进行网络会议时,需要识别重复包的速度快,所以可以间隔重复发送数据包或减少重复数据包的发送。
本发明第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中包括机器的一种重复数据包过滤方法程序,所述重复数据包过滤方法程序被处理器执行时,实现如上述任一项所述的一种重复数据包过滤方法的步骤。
本发明公开的一种重复数据包过滤方法和系统和可读存储介质,包括:建立用于保存已接收数据包的序号值的数组;接收数据包,并获取所述数据包的数据序号;将所述数据序号对数组大小取余,得到位置下标;提取所述数组中位于所述位置下标处的元素序号;判断所述数据序号与所述元素序号是否一致;若是,则丢弃所述数据包;若否,则用所述数据序号替换所述元素序号,并保存数据包。通过用数据包序号对数组大小取余得到其对应的位置,再比较对应位置上记录的序号值是否与当前相同,就可以判断出是否为重复包,算法的核心就是寻址一步到位,算法实现很清楚简单,识别重复包速度却很快,占用CPU非常少。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (10)
1.一种重复数据包过滤方法,其特征在于,包括以下步骤:
建立用于保存已接收数据包的序号值的数组,所述数组的大小为N,其中,N为大于1的整数;
接收数据包,并获取所述数据包的数据序号;
将所述数据序号对N取余,得到位置下标;
提取所述数组中位于所述位置下标处的元素序号;
判断所述数据序号与所述元素序号是否一致;
若是,则丢弃所述数据包;
若否,则用所述数据序号替换所述元素序号,并保存数据包。
2.根据权利要求1所述的重复数据包过滤方法,其特征在于,
在所述建立用于保存已接收数据包的序号值的数组之后,还包括:
对所述数组中的元素进行初始化。
3.根据权利要求2所述的重复数据包过滤方法,其特征在于,
在所述接收数据包之后,还包括:
将本次收到数据包的时间作为当前时间,计算当前时间与上一次收到数据包的时间的时间差;
若所述时间差大于预设值,则对所述数组中的元素进行初始化。
4.根据权利要求2所述的重复数据包过滤方法,其特征在于,所述判断所述数据序号与所述元素序号是否一致,还包括:
设置重复数据包计数器;
若所述数据序号与所述元素序号一致,则所述重复数据包计数器加1;
当所述重复数据包计数器的数值大于预设的重复阈值时,获取当前网络环境信息;
将所述网络环境信息和重复数据包计数器数值发送至服务器;
所述服务器根据接收的网络环境信息和重复数据包计数器数值进行分析,得到分析结果信息;
根据分析结果信息调整数据包的发送规则。
5.根据权利要求2所述的重复数据包过滤方法,其特征在于,还包括:
在预设时间范围内获取接收端设备的运算能力值和占用率;
根据所述运算能力值和占用率计算所述数组大小N的值;
初始化所述数组,进行数据包过滤。
6.一种重复数据包过滤系统,其特征在于,包括存储器和处理器,所述存储器中包括重复数据包过滤方法程序,所述重复数据包过滤方法程序被所述处理器执行时实现如下步骤:
建立用于保存已接收数据包的序号值的数组,所述数组的大小为N,其中,N为大于1的整数;
接收数据包,并获取所述数据包的数据序号;
将所述数据序号对N取余,得到位置下标;
提取所述数组中位于所述位置下标处的元素序号;
判断所述数据序号与所述元素序号是否一致;
若是,则丢弃所述数据包;
若否,则用所述数据序号替换所述元素序号,并保存数据包。
7.根据权利要求6所述的重复数据包过滤系统,其特征在于,
在所述建立用于保存已接收数据包的序号值的数组之后,还包括:
对所述数组中的元素进行初始化。
8.根据权利要求7所述的重复数据包过滤系统,其特征在于,
在所述接收数据包之后,还包括:
将本次收到数据包的时间作为当前时间,计算当前时间与上一次收到数据包的时间的时间差;
若所述时间差大于预设值,则对所述数组中的元素进行初始化。
9.根据权利要求7所述的重复数据包过滤系统,其特征在于,所述判断所述数据序号与所述元素序号是否一致,还包括:
设置重复数据包计数器;
若所述数据序号与所述元素序号一致,则所述重复数据包计数器加1;
当所述重复数据包计数器的数值大于预设的重复阈值时,获取当前网络环境信息;
将所述网络环境信息和重复数据包计数器数值发送至服务器;
所述服务器根据接收的网络环境信息和重复数据包计数器数值进行分析,得到分析结果信息;
根据分析结果信息调整数据包的发送规则。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括一种重复数据包过滤方法程序,所述重复数据包过滤方法程序被处理器执行时,实现如权利要求1至5中任一项所述的一种重复数据包过滤方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110799439.5A CN113259256B (zh) | 2021-07-15 | 2021-07-15 | 一种重复数据包过滤方法、系统及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110799439.5A CN113259256B (zh) | 2021-07-15 | 2021-07-15 | 一种重复数据包过滤方法、系统及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113259256A true CN113259256A (zh) | 2021-08-13 |
CN113259256B CN113259256B (zh) | 2021-09-21 |
Family
ID=77180442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110799439.5A Active CN113259256B (zh) | 2021-07-15 | 2021-07-15 | 一种重复数据包过滤方法、系统及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113259256B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113810471A (zh) * | 2021-08-18 | 2021-12-17 | 深圳市元征科技股份有限公司 | 一种数据传输方法、发送设备及接收设备 |
CN114979038A (zh) * | 2022-05-20 | 2022-08-30 | 杭州康吉森自动化科技有限公司 | 数据包过滤方法及装置 |
RU2790636C1 (ru) * | 2022-06-06 | 2023-02-28 | Акционерное общество "Научно-производственное предприятие " Цифровые решения" | Способ определения дублирующихся пакетов в потоке сетевого трафика |
WO2023071467A1 (zh) * | 2021-10-25 | 2023-05-04 | 北京字节跳动网络技术有限公司 | 数据去重方法、装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020054570A1 (en) * | 2000-11-09 | 2002-05-09 | Kenji Takeda | Data communication system, data communication method, and recording medium with data communication program recorded thereon |
CN102831127A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 重复数据处理方法、装置及系统 |
CN107204834A (zh) * | 2017-05-25 | 2017-09-26 | 复旦大学 | 一种基于udt协议的高速网络可靠传输的控制方法 |
CN107579804A (zh) * | 2017-07-17 | 2018-01-12 | 福建星网锐捷通讯股份有限公司 | 一种过滤重复数据的方法和系统 |
CN108241615A (zh) * | 2016-12-23 | 2018-07-03 | 中国电信股份有限公司 | 数据去重方法和装置 |
US20200413299A1 (en) * | 2018-08-15 | 2020-12-31 | Tencent Technology (Shenzhen) Company Limited | Multichannel data transmission method and apparatus |
-
2021
- 2021-07-15 CN CN202110799439.5A patent/CN113259256B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020054570A1 (en) * | 2000-11-09 | 2002-05-09 | Kenji Takeda | Data communication system, data communication method, and recording medium with data communication program recorded thereon |
CN102831127A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 重复数据处理方法、装置及系统 |
CN108241615A (zh) * | 2016-12-23 | 2018-07-03 | 中国电信股份有限公司 | 数据去重方法和装置 |
CN107204834A (zh) * | 2017-05-25 | 2017-09-26 | 复旦大学 | 一种基于udt协议的高速网络可靠传输的控制方法 |
CN107579804A (zh) * | 2017-07-17 | 2018-01-12 | 福建星网锐捷通讯股份有限公司 | 一种过滤重复数据的方法和系统 |
US20200413299A1 (en) * | 2018-08-15 | 2020-12-31 | Tencent Technology (Shenzhen) Company Limited | Multichannel data transmission method and apparatus |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113810471A (zh) * | 2021-08-18 | 2021-12-17 | 深圳市元征科技股份有限公司 | 一种数据传输方法、发送设备及接收设备 |
WO2023071467A1 (zh) * | 2021-10-25 | 2023-05-04 | 北京字节跳动网络技术有限公司 | 数据去重方法、装置及存储介质 |
CN114979038A (zh) * | 2022-05-20 | 2022-08-30 | 杭州康吉森自动化科技有限公司 | 数据包过滤方法及装置 |
RU2790636C1 (ru) * | 2022-06-06 | 2023-02-28 | Акционерное общество "Научно-производственное предприятие " Цифровые решения" | Способ определения дублирующихся пакетов в потоке сетевого трафика |
Also Published As
Publication number | Publication date |
---|---|
CN113259256B (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113259256B (zh) | 一种重复数据包过滤方法、系统及可读存储介质 | |
CN107864084B (zh) | 数据包的传输方法和装置 | |
EP1335525B1 (en) | Method for probing the peer-to-peer quality of service (QOS) | |
CN106612284B (zh) | 一种流数据的传输方法和装置 | |
CN106972985B (zh) | 加速dpi设备数据处理与转发的方法和dpi设备 | |
US8886615B2 (en) | Web service performance optimization by adaptively using compression | |
CN113038187B (zh) | 视频体验质量公平的实用网络带宽分配方法、设备及介质 | |
MXPA04005740A (es) | Sistema y metodo para modificar una corriente de video con base en un cliente o en un ambiente de red. | |
CN113891175B (zh) | 直播推流方法、装置及系统 | |
CN111371887B (zh) | 物联网日志传输方法、客户端、服务端、设备及存储介质 | |
CN111291770A (zh) | 一种参数配置方法及装置 | |
Rahman et al. | SABA: Segment and buffer aware rate adaptation algorithm for streaming over HTTP | |
CN113364698A (zh) | 带宽估计方法、系统、电子设备与存储介质 | |
US11196649B2 (en) | Processing local area network diagnostic data | |
CN110620807B (zh) | 文件传输方法、服务器、系统、设备以及存储介质 | |
CN109039811B (zh) | 用于网络性能监控的网络数据包包头压缩方法及装置 | |
CN108259576B (zh) | 一种软硬件实时信息传输系统和方法 | |
JP4535275B2 (ja) | 帯域制御装置 | |
CN110868373A (zh) | 多媒体数据传输方法、装置及计算机可读存储介质 | |
CN110266814B (zh) | 传输方法及传输装置 | |
EP3811572B1 (en) | Processing local area network diagnostic data | |
CN113490154A (zh) | 广播数据传输方法、装置、终端设备及存储介质 | |
KR20220116899A (ko) | 인공지능을 이용한 실시간 ip망 성능 평가 방법 및 장치 | |
CN113676341A (zh) | 一种质差评估方法及相关设备 | |
CN114666398B (zh) | 应用分类方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |