CN112637162A - 一种udp数据包处理方法及装置 - Google Patents

一种udp数据包处理方法及装置 Download PDF

Info

Publication number
CN112637162A
CN112637162A CN202011471542.9A CN202011471542A CN112637162A CN 112637162 A CN112637162 A CN 112637162A CN 202011471542 A CN202011471542 A CN 202011471542A CN 112637162 A CN112637162 A CN 112637162A
Authority
CN
China
Prior art keywords
data packet
udp
udp data
packet
sequence number
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.)
Pending
Application number
CN202011471542.9A
Other languages
English (en)
Inventor
王奎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Kingstar Fintech Co Ltd
Original Assignee
Shanghai Kingstar Fintech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Kingstar Fintech Co Ltd filed Critical Shanghai Kingstar Fintech Co Ltd
Priority to CN202011471542.9A priority Critical patent/CN112637162A/zh
Publication of CN112637162A publication Critical patent/CN112637162A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供的一种UDP数据包处理方法及装置,通过实时接收UDP数据包,该UDP数据包内包含UDP数据包序号;检测UDP数据包内的递增序号,检查UDP数据包的连续性;当出现不连续时,将UDP数据包缓存至排序队列,并在排序队列中对接收到的UDP数据包按序号进行排序处理;当满足判定UDP数据包发生丢包的预设条件时,则判定UDP数据包发生丢包,进行UDP数据包的处理或通知硬件辅助进行丢包处理。本申请中的排序队列缓存算法能快速识别和恢复乱序数据流处理,对丢包情况能对硬件进行快速重置和恢复,通过对软硬件结合的方式对UDP数据包的乱序和丢包进行精准界定,进而实现提高UDP数据包处理速度和可靠性。

Description

一种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数据包丢弃;
若所述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数据包处理速度和可靠性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的数据处理系统结构示意图;
图2为本申请实施例提供的一种UDP数据包处理方法流程示意图;
图3为本申请实施例提供的一种UDP数据包处理装置结构示意图;
图4为本申请实施例提供的一种电子设备结构示意图。
具体实施方式
本申请的发明人在发明创造过程中发现,在高速UDP数据处理环境下,实时在线数据流的处理过程中,很难界定丢包和乱序的情况,只能在收到全部的UDP数据包之后才能确定是否丢包,而且丢包的判断依赖于对所有完整的UDP数据包的对比分析,但在实时数据流处理过程中,很难确定什么时候才能收到全部的UDP数据包,因此,需要对UDP数据包的乱序和丢包进行精准界定,来确保UDP数据包处理速度和可靠性。
为此,本申请提供一种UDP数据包处理方法及装置,应用于图1所示的应用场景的数据处理系统,该数据处理系统包括:硬件网卡10和软件处理20,由于硬件的时序性,很难处理丢包的情况,在出现丢包的情况下,需要软件协助硬件进行设备重置或补充,因此,在处理实时行情类数据时,就需要通过软硬件结合的方式对UDP数据包的乱序和丢包进行精准界定,进而实现提高UDP数据包处理速度和可靠性。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图2,为本申请实施例提供的一种UDP数据包处理方法流程示意图。如图2所示,本申请实施例提供的一种UDP数据包处理方法,该方法具体包括如下步骤:
S201:实时接收UDP数据包,所述UDP数据包内包含UDP数据包序号。
S202:检测所述UDP数据包内的递增序号,检查所述UDP数据包的连续性。
本申请实施例中,上述所述检测所述UDP数据包内的递增序号,检查所述UDP数据包的连续性,具体通过使用序号计数器检测所述UDP数据包内的递增序号,检查所述UDP数据包的连续性。
需要说明的是,通过检查UDP数据包内的递增序号,检查接收到的UDP数据包的连续性。具体的,在软件接收到第一个UDP数据包后,解析并记录UDP数据包内的序号,每接收到一个新的UDP数据包的软件序号进行递增(+1),并对比新收到的UDP数据包内的序号,如果相等,则说明UDP数据包连续,直接进行处理;如果不相等,则说明UDP数据包不连续,需要进行进一步的丢包检测。
实际应用中,上述所述通过使用序号计数器检测所述UDP数据包内的递增序号,检查所述UDP数据包的连续性,具体包括如下步骤:
通过使用序号计数器检测所述UDP数据包内的递增序号;
在接收到第一个UDP数据包时,对所述第一个UDP数据包进行解析并记录所述第一个UDP数据包内的序号;
每接收一个UDP数据包,对所述UDP数据包内的序号进行依次递增;
将所述UDP数据包内的序号与软件变量记录的序号进行对比;
当所述UDP数据包内的序号与所述软件变量记录的序号一致时,则确定所述UDP数据包为连续的。
S203:当出现不连续时,将所述UDP数据包缓存至排序队列,并在所述排序队列中对接收到的所述UDP数据包按序号进行排序处理。
本申请实施例中,通过上述步骤S202若确定所述UDP数据包出现不连续,则需要将接收到的UDP数据包缓存至排序队列,并在排序队列中对接收到的UDP数据包按序号进行排序处理。
实际应用中,上述所述当出现不连续时,将所述UDP数据包缓存至排序队列,并在所述排序队列中对接收到的所述UDP数据包按序号进行排序处理,具体包括如下步骤:
当所述UDP数据包内的序号与所述软件变量记录的序号不一致时,则确定所述UDP数据包为不连续的;
若所述UDP数据包内的序号小于所述软件变量记录的序号,则将所述UDP数据包丢弃;
若所述UDP数据包内的序号大于所述软件变量记录的序号,则将所述UDP数据包缓存至排序队列;
在所述排序队列中对接收到的所述UDP数据包按序号进行排序处理。
需要说明的是,如果收到的UDP数据包内的序号和软件变量记录的序号不一致,说明中间有丢失UDP数据包或有重复包,其中,如果UDP数据包的序号小于软件变量记录的序号,直接将该UDP数据包丢弃,如果UDP数据包的序号大于当前软件变量记录的序号+1,则需要将UDP数据包缓存至排序队列,在排序队列中对接收到的UDP数据包按序号进行排序处理。
S204:当满足判定所述UDP数据包发生丢包的预设条件时,则判定所述UDP数据包发生丢包,进行所述UDP数据包的处理或通知硬件辅助进行丢包处理。
本申请实施例中,可以通过排序队列的长度或当前时间与丢包开始时间的间隔来判定UDP数据包是否发生丢包,因此,如果按时间计算队列长度,则需要记录第一次不连续的时刻的时间点为丢包开始时间(条件:UDP数据包的序号不连续,排序队列为空)。
实际应用中,在接收到新的UDP数据包时,如果UDP数据包的序号和软件记录的序号(+1)不一致,则需同时检查排序队列长度,若排序队列的长度超过某个最大允许限值,则认为UDP数据包发生丢包;如果按时间间隔方式判定丢包,则通过比较新收到的UDP数据包的当前时间和丢包开始时间的间隔时间,当间隔时间超过可接受的时间间隔,则认为UDP数据包发生丢包。
进一步的,需要说明的是,上述所述当满足判定所述UDP数据包发生丢包的预设条件时,则判定所述UDP数据包发生丢包,进行所述UDP数据包的处理或通知硬件辅助进行丢包处理,具体可以包括:
当判定所述UDP数据包发生丢包的预设条件为所述排序队列的预设限值时,检测所述排序队列的长度,当所述排序队列的长度超过所述预设限值时,则判定所述UDP数据包发生丢包,进行所述UDP数据包的处理或通知硬件辅助进行丢包处理;
或;
当判定所述UDP数据包发生丢包的预设条件为预设时间间隔时,确定所述UDP数据包的当前时间,当所述当前时间与所述丢包开始时间的间隔超过所述预设时间间隔时,则判定所述UDP数据包发生丢包,进行所述UDP数据包的处理或通知硬件辅助进行丢包处理。
在实际应用中,如果排序队列超过预设长度或时间间隔超过预设时间间隔,则可以判定所述UDP数据包为丢包,需要对所述UDP数据包进行丢包处理,常见的丢包处理包括:申请重传、告警或发送日志等,对于本申请实施例提供的数据处理系统中的软硬件来说,需要通过软件实现重置硬件模块,重新加载硬件配置,再按照新的序号重新进行数据处理。
S205:当所述UDP数据包内的序号能衔接所述序号计数器时,则按照排序后的顺序将所述排序队列中的所述UDP数据包发送给应用层进行处理,并增加所述序号计数器,将所述排序队列中的所述UDP数据包删除。
在实际应用中,如果新收到的UDP数据包的序号等于软件记录的序号+1,则进行当前UDP数据包的处理或通知硬件进行处理,检查排序队列,从当前UDP数据包的序号递增处理排队队列里的UDP数据包,将处理完连续的UDP数据包从排序队列中删除。
本申请实施例提供的UDP数据包处理方法,通过实时接收UDP数据包,所述UDP数据包内包含UDP数据包序号;检测所述UDP数据包内的递增序号,检查所述UDP数据包的连续性;当出现不连续时,将所述UDP数据包缓存至排序队列,并在所述排序队列中对接收到的所述UDP数据包按序号进行排序处理;当满足判定所述UDP数据包发生丢包的预设条件时,则判定所述UDP数据包发生丢包,进行所述UDP数据包的处理或通知硬件辅助进行丢包处理。本申请中的排序队列缓存算法能快速识别和恢复乱序数据流处理,对丢包情况能对硬件进行快速重置和恢复,通过对软硬件结合的方式对UDP数据包的乱序和丢包进行精准界定,进而实现提高UDP数据包处理速度和可靠性。
请参阅图3,基于上述实施例公开的一种UDP数据包处理方法,本实施例对应公开了一种UDP数据包处理装置,该装置具体可以包括:
第一处理单元301,用于实时接收UDP数据包,所述UDP数据包内包含UDP数据包序号;
第二处理单元302,用于检测所述UDP数据包内的递增序号,检查所述UDP数据包的连续性;
第三处理单元303,用于当出现不连续时,将所述UDP数据包缓存至排序队列,并在所述排序队列中对接收到的所述UDP数据包按序号进行排序处理;
第四处理单元304,用于当满足判定所述UDP数据包发生丢包的预设条件时,则判定所述UDP数据包发生丢包,进行所述UDP数据包的处理或通知硬件辅助进行丢包处理。
第五处理单元305:用于当所述UDP数据包内的序号能衔接所述序号计数器时,则按照排序后的顺序将所述排序队列中的所述UDP数据包发送给应用层进行处理,并增加所述序号计数器,将所述排序队列中的所述UDP数据包删除。
其中,上述所述第二处理单元302具体用于:
通过使用序号计数器检测所述UDP数据包内的递增序号,检查所述UDP数据包的连续性。
优选的,上述所述第二处理单元302具体用于:
通过使用序号计数器检测所述UDP数据包内的递增序号;
在接收到第一个UDP数据包时,对所述第一个UDP数据包进行解析并记录所述第一个UDP数据包内的序号;
每接收一个UDP数据包,对所述UDP数据包内的序号进行依次递增;
将所述UDP数据包内的序号与软件变量记录的序号进行对比;
当所述UDP数据包内的序号与所述软件变量记录的序号一致时,则确定所述UDP数据包为连续的。
优选的,上述第三处理单元303具体用于:
当所述UDP数据包内的序号与所述软件变量记录的序号不一致时,则确定所述UDP数据包为不连续的;
若所述UDP数据包内的序号小于所述软件变量记录的序号,则将所述UDP数据包丢弃;
若所述UDP数据包内的序号大于所述软件变量记录的序号,则将所述UDP数据包缓存至排序队列;
在所述排序队列中对接收到的所述UDP数据包按序号进行排序处理。
优选的,上述第四处理单元304具体用于:
当判定所述UDP数据包发生丢包的预设条件为所述排序队列的预设限值时,检测所述排序队列的长度,当所述排序队列的长度超过所述预设限值时,则判定所述UDP数据包发生丢包,进行所述UDP数据包的处理或通知硬件辅助进行丢包处理;
或;
当判定所述UDP数据包发生丢包的预设条件为预设时间间隔时,确定所述UDP数据包的当前时间,当所述当前时间与所述丢包开始时间的间隔超过所述预设时间间隔时,则判定所述UDP数据包发生丢包,进行所述UDP数据包的处理或通知硬件辅助进行丢包处理。
所述UDP数据包处理装置包括处理器和存储器,上述第一处理单元、第二处理单元、第三处理单元和第四处理单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来达到通过软硬件结合的方式对UDP数据包的乱序和丢包进行精准界定,进而实现提高UDP数据包处理速度和可靠性。
本申请实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述UDP数据包处理方法。
本申请实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述UDP数据包处理方法。
本申请实施例提供了一种电子设备,如图4所示,该电子设备40包括至少一个处理器401、以及与所述处理器连接的至少一个存储器402、总线403;其中,所述处理器401、所述存储器402通过所述总线403完成相互间的通信;处理器401用于调用所述存储器402中的程序指令,以执行上述的所述UDP数据包处理方法。
本文中的电子设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
实时接收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数据包的处理或通知硬件辅助进行丢包处理。
进一步的,该方法还包括:
当所述UDP数据包内的序号能衔接所述序号计数器时,则按照排序后的顺序将所述排序队列中的所述UDP数据包发送给应用层进行处理,并增加所述序号计数器,将所述排序队列中的所述UDP数据包删除。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种UDP数据包处理方法,其特征在于,包括:
实时接收UDP数据包,所述UDP数据包内包含UDP数据包序号;
检测所述UDP数据包内的递增序号,检查所述UDP数据包的连续性;
当出现不连续时,将所述UDP数据包缓存至排序队列,并在所述排序队列中对接收到的所述UDP数据包按序号进行排序处理;
当满足判定所述UDP数据包发生丢包的预设条件时,则判定所述UDP数据包发生丢包,进行所述UDP数据包的处理或通知硬件辅助进行丢包处理。
2.根据权利要求1所述的方法,其特征在于,所述检测所述UDP数据包内的递增序号,检查所述UDP数据包的连续性,具体为:
通过使用序号计数器检测所述UDP数据包内的递增序号,检查所述UDP数据包的连续性。
3.根据权利要求2所述的方法,其特征在于,所述通过使用序号计数器检测所述UDP数据包内的递增序号,检查所述UDP数据包的连续性,具体为:
通过使用序号计数器检测所述UDP数据包内的递增序号;
在接收到第一个UDP数据包时,对所述第一个UDP数据包进行解析并记录所述第一个UDP数据包内的序号;
每接收一个UDP数据包,对所述UDP数据包内的序号进行依次递增;
将所述UDP数据包内的序号与软件变量记录的序号进行对比;
当所述UDP数据包内的序号与所述软件变量记录的序号一致时,则确定所述UDP数据包为连续的。
4.根据权利要求3所述的方法,其特征在于,所述当出现不连续时,将所述UDP数据包缓存至排序队列,并在所述排序队列中对接收到的所述UDP数据包按序号进行排序处理,具体为:
当所述UDP数据包内的序号与所述软件变量记录的序号不一致时,则确定所述UDP数据包为不连续的;
若所述UDP数据包内的序号小于所述软件变量记录的序号,则将所述UDP数据包丢弃;
若所述UDP数据包内的序号大于所述软件变量记录的序号,则将所述UDP数据包缓存至排序队列;
在所述排序队列中对接收到的所述UDP数据包按序号进行排序处理。
5.根据权利要求1所述的方法,其特征在于,所述当满足判定所述UDP数据包发生丢包的预设条件时,则判定所述UDP数据包发生丢包,进行所述UDP数据包的处理或通知硬件辅助进行丢包处理,具体为:
当判定所述UDP数据包发生丢包的预设条件为所述排序队列的预设限值时,检测所述排序队列的长度,当所述排序队列的长度超过所述预设限值时,则判定所述UDP数据包发生丢包,进行所述UDP数据包的处理或通知硬件辅助进行丢包处理;
或;
当判定所述UDP数据包发生丢包的预设条件为预设时间间隔时,确定所述UDP数据包的当前时间,当所述当前时间与所述丢包开始时间的间隔超过所述预设时间间隔时,则判定所述UDP数据包发生丢包,进行所述UDP数据包的处理或通知硬件辅助进行丢包处理。
6.根据权利要求3所述的方法,其特征在于,还包括:
当所述UDP数据包内的序号能衔接所述序号计数器时,则按照排序后的顺序将所述排序队列中的所述UDP数据包发送给应用层进行处理,并增加所述序号计数器,将所述排序队列中的所述UDP数据包删除。
7.一种UDP数据包处理装置,其特征在于,包括:
第一处理单元,用于实时接收UDP数据包,所述UDP数据包内包含UDP数据包序号;
第二处理单元,用于检测所述UDP数据包内的递增序号,检查所述UDP数据包的连续性;
第三处理单元,用于当出现不连续时,将所述UDP数据包缓存至排序队列,并在所述排序队列中对接收到的所述UDP数据包按序号进行排序处理;
第四处理单元,用于当满足判定所述UDP数据包发生丢包的预设条件时,则判定所述UDP数据包发生丢包,进行所述UDP数据包的处理或通知硬件辅助进行丢包处理。
8.根据权利要求7所述的装置,其特征在于,所述第二处理单元具体用于:
通过使用序号计数器检测所述UDP数据包内的递增序号,检查所述UDP数据包的连续性。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在的设备执行如权利要求1至6中任一项所述的UDP数据包处理方法。
10.一种电子设备,其特征在于,所述电子设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如权利要求1至6中任一项所述的UDP数据包处理方法。
CN202011471542.9A 2020-12-14 2020-12-14 一种udp数据包处理方法及装置 Pending CN112637162A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011471542.9A CN112637162A (zh) 2020-12-14 2020-12-14 一种udp数据包处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011471542.9A CN112637162A (zh) 2020-12-14 2020-12-14 一种udp数据包处理方法及装置

Publications (1)

Publication Number Publication Date
CN112637162A true CN112637162A (zh) 2021-04-09

Family

ID=75313042

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011471542.9A Pending CN112637162A (zh) 2020-12-14 2020-12-14 一种udp数据包处理方法及装置

Country Status (1)

Country Link
CN (1) CN112637162A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113992306A (zh) * 2021-09-26 2022-01-28 北京连山科技股份有限公司 一种多链路数据重传方法及系统
CN115134434A (zh) * 2022-06-17 2022-09-30 奇安信科技集团股份有限公司 会话连接的监控方法及装置
CN115982090A (zh) * 2023-03-17 2023-04-18 珠海星云智联科技有限公司 软硬件协同实现远端内存访问的方法和装置
CN117527714A (zh) * 2024-01-04 2024-02-06 柏科数据技术(深圳)股份有限公司 数据报文的读取方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101321036A (zh) * 2008-06-28 2008-12-10 华为技术有限公司 一种数据包处理方法、装置和系统
CN101800632A (zh) * 2009-02-09 2010-08-11 中兴通讯股份有限公司 用户数据报协议传输模式下丢包补偿方法与装置
CN102546081A (zh) * 2010-12-21 2012-07-04 中兴通讯股份有限公司 丢包检测方法、系统和媒体客户端
CN106792262A (zh) * 2016-12-05 2017-05-31 乐视控股(北京)有限公司 视频数据传输方法及装置
CN107147481A (zh) * 2017-07-19 2017-09-08 北京数码视讯科技股份有限公司 丢包重传方法、装置及电子设备
CN110430024A (zh) * 2019-07-23 2019-11-08 视联动力信息技术股份有限公司 一种数据传输方法、装置、电子设备及存储介质
CN110474721A (zh) * 2019-08-30 2019-11-19 视联动力信息技术股份有限公司 视频数据传输方法、装置及计算机可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101321036A (zh) * 2008-06-28 2008-12-10 华为技术有限公司 一种数据包处理方法、装置和系统
CN101800632A (zh) * 2009-02-09 2010-08-11 中兴通讯股份有限公司 用户数据报协议传输模式下丢包补偿方法与装置
CN102546081A (zh) * 2010-12-21 2012-07-04 中兴通讯股份有限公司 丢包检测方法、系统和媒体客户端
CN106792262A (zh) * 2016-12-05 2017-05-31 乐视控股(北京)有限公司 视频数据传输方法及装置
CN107147481A (zh) * 2017-07-19 2017-09-08 北京数码视讯科技股份有限公司 丢包重传方法、装置及电子设备
CN110430024A (zh) * 2019-07-23 2019-11-08 视联动力信息技术股份有限公司 一种数据传输方法、装置、电子设备及存储介质
CN110474721A (zh) * 2019-08-30 2019-11-19 视联动力信息技术股份有限公司 视频数据传输方法、装置及计算机可读存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113992306A (zh) * 2021-09-26 2022-01-28 北京连山科技股份有限公司 一种多链路数据重传方法及系统
CN115134434A (zh) * 2022-06-17 2022-09-30 奇安信科技集团股份有限公司 会话连接的监控方法及装置
CN115982090A (zh) * 2023-03-17 2023-04-18 珠海星云智联科技有限公司 软硬件协同实现远端内存访问的方法和装置
CN117527714A (zh) * 2024-01-04 2024-02-06 柏科数据技术(深圳)股份有限公司 数据报文的读取方法、装置、设备及存储介质
CN117527714B (zh) * 2024-01-04 2024-03-15 柏科数据技术(深圳)股份有限公司 数据报文的读取方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN112637162A (zh) 一种udp数据包处理方法及装置
EP3780541B1 (en) Identity information identification method and device
US8473789B2 (en) Memory leak monitoring system and associated methods
CN108205424B (zh) 基于磁盘的数据迁移方法、装置及电子设备
CN111917740B (zh) 一种异常流量告警日志检测方法、装置、设备及介质
CN110768912A (zh) Api网关限流方法及装置
CN109951494B (zh) 仿真数据处理方法、装置、仿真设备及存储介质
CN109560976B (zh) 一种消息延迟的监控方法及装置
CN111600894B (zh) 一种网络攻击检测方法及装置
CN114374566B (zh) 一种攻击检测方法及装置
US20230153432A1 (en) Method and Device for Determining Malicious File
CN110096363A (zh) 一种网络事件与进程的关联方法及装置
CN109428682B (zh) 一种消息处理确认方法及装置
CN112256551A (zh) 一种远程日志抓取方法、装置、电子设备和存储介质
CN108573172B (zh) 一种数据校验、存储方法及装置
CN110069217B (zh) 一种数据存储方法及装置
CN112152872B (zh) 一种网络亚健康检测方法及装置
CN111159009B (zh) 一种日志服务系统的压力测试方法及装置
CN111709748A (zh) 一种具有业务属性的交易执行方法、装置及电子设备
CN115811483A (zh) 一种网络状态监测方法、装置、电子设备和存储介质
CN109039695B (zh) 业务故障处理方法、装置及设备
CN110795239A (zh) 应用内存泄露的检测方法及装置
CN105022959A (zh) 一种移动终端恶意代码分析设备及分析方法
CN114979236A (zh) 数据传输方法、装置、存储介质以及电子设备
CN114003907A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210409

RJ01 Rejection of invention patent application after publication