CN113992609B - 一种处理多链路业务数据乱序的方法及系统 - Google Patents
一种处理多链路业务数据乱序的方法及系统 Download PDFInfo
- Publication number
- CN113992609B CN113992609B CN202111111768.2A CN202111111768A CN113992609B CN 113992609 B CN113992609 B CN 113992609B CN 202111111768 A CN202111111768 A CN 202111111768A CN 113992609 B CN113992609 B CN 113992609B
- Authority
- CN
- China
- Prior art keywords
- data
- transmitted
- service data
- service
- buffer area
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种处理多链路业务数据乱序的方法及系统,其方法包括:构建数据包缓冲区,为所述数据包缓冲区设置参数,获取用户上传的待传输业务数据并判断其是否需要缓冲,当所述待传输业务数据不需要缓冲时,将其直接输出到业务口,当所述待传输业务数据需要缓冲时,将所述待传输业务数据插入到所述数据包缓冲区中,接收缓冲后的待传输业务数据并将其输出到所述业务口。可以在不影响用户实际业务的情况下对传输过程中的乱序数据进行重排,保证了数据在传输过程中的稳定性和完整性,提高了数据的准确性以及用户的体验感。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种处理多链路业务数据乱序的方法及系统。
背景技术
随着信息化技术的不断发展和完善,现有的基于地面通信和卫星通信所带来的便利已经不能满足人们的需要,通信系统的结构已经越来越趋于立体化,机载通信技术作为立体化信息系统的一个重要环节,已经成为近年来的研究热点。同时,在信息化、网络化作战环境下机载通信网络作为信息的载体,具有举足轻重的作用。在军事应用中,机载通信网络具有异构节点、多通信链路,以及网络拓扑动态变化等特征。伴随着机载通信网络对数据传输性能的要求日益增高,多链路设备应运而生,现有的多链路设备通常包括一个主通信设备和多个从属通信设备,主通信设备可以同时与多个从属通信设备建立链路,进行数据传输。MRMC机载通信网络具有提高数据传输速率、增强数据传输的可靠性等优点,现有多链路设备传输数据时由于网络传输过程中,数据的多径效应导致出现乱序,如果再直接将乱序的数据包转发给用户设备,会影响的到用户的业务软件处理,如果业务软件没有对乱序数据的容忍处理,则会影响到实际的业务。
发明内容
针对上述所显示出来的问题,本发明公开了一种处理多链路业务数据乱序的方法及系统用以解决背景技术中提到的现有多链路设备传输数据时由于网络传输过程中,数据的多径效应导致出现乱序,如果再直接将乱序的数据包转发给用户设备,会影响的到用户的业务软件处理,如果业务软件没有对乱序数据的容忍处理,则会影响到实际的业务的问题。
一种处理多链路业务数据乱序的方法,包括以下步骤:
构建数据包缓冲区,为所述数据包缓冲区设置参数;
获取用户上传的待传输业务数据并判断其是否需要缓冲;
当所述待传输业务数据不需要缓冲时,将其直接输出到业务口;
当所述待传输业务数据需要缓冲时,将所述待传输业务数据插入到所述数据包缓冲区中,接收缓冲后的待传输业务数据并将其输出到所述业务口。
优选的,所述构建数据包缓冲区,为所述数据包缓冲区设置参数,包括:
确定目标主机RAM的空闲区域;
根据所述空闲区域的对应内存确定在目标主机RAM构建的数据缓冲区最优运行下的目标容量;
在所述空闲区域中基于目标容量对应的目标区域构建所述数据包缓冲区;
在所述数据包缓冲区中设置缓冲周期时长参数和单位时长内缓冲数据包参数。
优选的,所述获取用户上传的待传输业务数据并判断其是否需要缓冲,包括:
检测所述数据包缓冲区的缓冲队列中是否有待缓冲数据包,若是,确认所述待传输业务数据需要缓冲,否则,获取所述待传输业务数据的第一序列号;
确认所述第一序列号是否为系统期望的第二序列号,若是,确认所述待传输业务数据不需要缓冲。
优选的,所述当所述待传输业务数据不需要缓冲时,将其直接输出到业务口,包括:
接通与所述业务口的通信连接;
将所述待传输业务数据通过第一数据传输模式传输至所述业务口,实时检测数据传输过程中的误包率;
确认所述误包率是否大于等于预设概率,若是,切换第二数据传输模式继续进行待传输业务数据的传输工作;
在确认业务口接收到所述待传输业务数据后,断开与其的通信连接。
优选的,当所述待传输业务数据需要缓冲时,将所述待传输业务数据插入到所述数据包缓冲区中,接收缓冲后的待传输业务数据并将其输出到所述业务口,包括:
获取数据包缓冲区中待缓冲数据包的第三序列号;
将所述第一序列号与第三序列号进行比较,获取比较结果;
根据所述比较结果将待传输业务数据按照序列号从大到小的顺序插入到所述缓冲队列中,记录待传输业务数据的入队时间;
利用预设处理线程对所述待传输业务数据进行进行缓冲处理,将处理后的待传输业务数据输出到所述业务口;
其中,所述缓冲处理包括:序列重排。
优选的,在利用预设处理线程对所述待传输业务数据进行进行缓冲处理,将处理后的待传输业务数据输出到所述业务口之前,所述方法还包括:
统计所述缓冲队列中所有的待缓冲数据包的第一数量;
确认所述第一数量是否达到了数据包缓冲区最大缓冲数据包个数对应的第二数量,若是。直接将待传输业务数据传输至所述业务口,否则,生成待传输业务数据的等待指令;
基于所述等待指令,根据缓冲队列中的待缓冲数据包的缓冲顺序为每个待缓冲数据包进行编号;
根据待传输业务数据的入队时间和其目标编号以及预设最大缓冲时长确认是否需要等待缓冲处理。
优选的,所述利用预设处理线程对所述待传输业务数据进行进行缓冲处理的步骤包括:
根据所述待传输业务数据对应的数据资源构建预设乱序信息表项;
检测所述待传输业务数据中的乱序帧,根据所述乱序帧利用所述预设乱序信息表项确定待传输业务数据的乱序断点数据;
基于所述乱序断点数据,获取其对应的当前序列信息;
根据所述当前序列信息与所述乱序断点数据在待传输业务数据中的原始序列信息对所述待传输业务数据进行序列重排处理;
将序列重排后的待传输业务数据进行完整性检测,根据检测结果确认处理结果是否合格,若是,将其进行压缩打包,否则,重新对所述待传输业务数据进行序列重排处理直到其处理结果合格为止。
优选的,在利用预设处理线程对所述待传输业务数据进行进行缓冲处理,将处理后的待传输业务数据输出到所述业务口之前,所述方法还包括:
对所述待传输业务数据进行预处理以生成缓冲任务;
将所述缓冲任务送入到所述数据包缓冲区中以供其进行数据预读取;
根据预读取结果确认数据包缓冲区对应的网络节点的稳定度;
根据所述网络节点的稳定度为待传输业务设定预缓存区间以及为该预缓存区间设置预缓存值;
根据所述预缓存值在多个预设处理线程中选择第一预设处理线程对所述待传输业务数据进行预缓冲处理;
实时采集第一预设处理线程的处理数据,对所述处理数据进行分析以确定其中的未缓冲数据;
确认所述为缓冲数据是否为乱序数据,若是,确认需要启动第二预设处理线程辅助第一预设处理线程进行预缓冲处理工作,否则,无需进行后续操作;
获取第一预设处理线程在单独工作时的第一系统资源信息以及第二预设处理线程在单独工作时的第二系统资源信息;
对比所述第一系统资源信息和第二系统资源信息是否冲突,若是,重新选择第三预设处理线程进行辅助工作,否则,获取第一预设处理线程和第二预设处理线程同时工作时的第三系统资源信息;
确认所述第三系统资源信息中是否有待传输业务数据在预处理时的预定标记,若是,确认第一预设处理线程和第二预设处理线程兼容,否者,确认二者不兼容,发出警告提示。
优选的,所述根据所述空闲区域的对应内存确定在目标主机RAM构建的数据缓冲区最优运行下的目标容量,包括:
构建目标主机的RAM多任务内存分区模型;
对所述RAM多任务内存分区模型进行最大任务量运行模拟,获取模拟结果;
根据所述模拟结果确认目标主机的最大任务运行数量以及在该数量任务下的平均运存数据;
根据所述目标主机的最大任务运行数量以及在该数量任务下的平均运存数据以最优运行为目标构建目标主机的内容容量优化函数;
以数据缓冲区对目标主机内存的预设内存约束条件以及在数据缓冲区运行时的最小数据流量为基础,对所述目标主机的内存容量优化函数进行求解,获得求解结果;
根据所述求解结果对目标主机的运存进行优化,获得目标主机的闲置内存;
筛选出所述闲置内存与空闲区域的对应内存的重合部分对应的目标内存;
根据所述数据缓冲区的运行参数在所述目标内存中确定数据缓冲区在最优运行下的目标容量。
一种处理多链路业务数据乱序的系统,该系统包括:
构建模块,用于构建数据包缓冲区,为所述数据包缓冲区设置参数;
判断模块,用于获取用户上传的待传输业务数据并判断其是否需要缓冲;
输出模块,用于当所述待传输业务数据不需要缓冲时,将其直接输出到业务口;
插入模块,用于当所述待传输业务数据需要缓冲时,将所述待传输业务数据插入到所述数据包缓冲区中,接收缓冲后的待传输业务数据并将其输出到所述业务口。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
图1为本发明所提供的一种处理多链路业务数据乱序的方法的工作流程图;
图2为本发明所提供的一种处理多链路业务数据乱序的方法的另一工作流程图;
图3为本发明所提供的一种处理多链路业务数据乱序的方法的又一工作流程图;
图4为本发明所提供的一种处理多链路业务数据乱序的系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
随着信息化技术的不断发展和完善,现有的基于地面通信和卫星通信所带来的便利已经不能满足人们的需要,通信系统的结构已经越来越趋于立体化,机载通信技术作为立体化信息系统的一个重要环节,已经成为近年来的研究热点。同时,在信息化、网络化作战环境下机载通信网络作为信息的载体,具有举足轻重的作用。在军事应用中,机载通信网络具有异构节点、多通信链路,以及网络拓扑动态变化等特征。伴随着机载通信网络对数据传输性能的要求日益增高,多链路设备应运而生,现有的多链路设备通常包括一个主通信设备和多个从属通信设备,主通信设备可以同时与多个从属通信设备建立链路,进行数据传输。MRMC机载通信网络具有提高数据传输速率、增强数据传输的可靠性等优点,现有多链路设备传输数据时由于网络传输过程中,数据的多径效应导致出现乱序,如果再直接将乱序的数据包转发给用户设备,会影响的到用户的业务软件处理,如果业务软件没有对乱序数据的容忍处理,则会影响到实际的业务。为了解决上述问题,本实施例公开了一种处理多链路业务数据乱序的方法。
一种处理多链路业务数据乱序的方法,如图1所示,包括以下步骤:
步骤S101、构建数据包缓冲区,为所述数据包缓冲区设置参数;
步骤S102、获取用户上传的待传输业务数据并判断其是否需要缓冲;
步骤S1013、当所述待传输业务数据不需要缓冲时,将其直接输出到业务口;
步骤S104、当所述待传输业务数据需要缓冲时,将所述待传输业务数据插入到所述数据包缓冲区中,接收缓冲后的待传输业务数据并将其输出到所述业务口。
上述技术方案的工作原理为:构建数据包缓冲区,为所述数据包缓冲区设置参数,获取用户上传的待传输业务数据并判断其是否需要缓冲,当所述待传输业务数据不需要缓冲时,将其直接输出到业务口,当所述待传输业务数据需要缓冲时,将所述待传输业务数据插入到所述数据包缓冲区中,接收缓冲后的待传输业务数据并将其输出到所述业务口。
上述技术方案的有益效果为:通过构建数据包缓冲区来对用户上传的待传输业务数据进行传输过程中的缓冲乱序处理可以在不影响用户实际业务的情况下对传输过程中的乱序数据进行重排,保证了数据在传输过程中的稳定性和完整性,提高了数据的准确性以及用户的体验感,解决了现有技术中由于网络传输过程中,数据的多径效应导致出现乱序,如果再直接将乱序的数据包转发给用户设备,会影响的到用户的业务软件处理,如果业务软件没有对乱序数据的容忍处理,则会影响到实际的业务的问题。
在一个实施例中,如图2所示,所述构建数据包缓冲区,为所述数据包缓冲区设置参数,包括:
步骤S201、确定目标主机RAM的空闲区域;
步骤S202、根据所述空闲区域的对应内存确定在目标主机RAM构建的数据缓冲区最优运行下的目标容量;
步骤S203、在所述空闲区域中基于目标容量对应的目标区域构建所述数据包缓冲区;
步骤S204、在所述数据包缓冲区中设置缓冲周期时长参数和单位时长内缓冲数据包参数。
上述技术方案的有益效果为:通过根据目标主机RAM的空闲区域来构建最优运行的数据包缓冲区可以使得目标主机在进行业务数据传输的过程中有足够的后台资源保证,保证了业务传输的稳定性,提高了业务传输效率,进一步地,通过设置双参数来有效地限定对于业务数据的缓冲工作可以更加精确地对业务数据的乱序进行重排处理,进一步地提高了工作效率。
在一个实施例中,所述获取用户上传的待传输业务数据并判断其是否需要缓冲,包括:
检测所述数据包缓冲区的缓冲队列中是否有待缓冲数据包,若是,确认所述待传输业务数据需要缓冲,否则,获取所述待传输业务数据的第一序列号;
确认所述第一序列号是否为系统期望的第二序列号,若是,确认所述待传输业务数据不需要缓冲。
上述技术方案的有益效果为:可快速地根据待传输业务数据是否有对应的待缓冲数据包来判断其是否需要缓冲,进一步地,通过根据序列号来初步判断待传输业务数据是否出现乱序问题可以快速地对待传输业务数据的缓冲工作进行合理判断,提高了判断结果的准确性。
在一个实施例中,如图3所示,所述当所述待传输业务数据不需要缓冲时,将其直接输出到业务口,包括:
步骤S301、接通与所述业务口的通信连接;
步骤S302、将所述待传输业务数据通过第一数据传输模式传输至所述业务口,实时检测数据传输过程中的误包率;
步骤S303、确认所述误包率是否大于等于预设概率,若是,切换第二数据传输模式继续进行待传输业务数据的传输工作;
步骤S304、在确认业务口接收到所述待传输业务数据后,断开与其的通信连接。
上述技术方案的有益效果为:通过实时检测数据传输过程中的误包率进而智能地切换数据传输模式可以保证业务数据在传输过程中的稳定性,同时也可以使得多利安路设备实现对于待传输业务数据的完整传输,保证了数据的完整性。
在一个实施例中,当所述待传输业务数据需要缓冲时,将所述待传输业务数据插入到所述数据包缓冲区中,接收缓冲后的待传输业务数据并将其输出到所述业务口,包括:
获取数据包缓冲区中待缓冲数据包的第三序列号;
将所述第一序列号与第三序列号进行比较,获取比较结果;
根据所述比较结果将待传输业务数据按照序列号从大到小的顺序插入到所述缓冲队列中,记录待传输业务数据的入队时间;
利用预设处理线程对所述待传输业务数据进行进行缓冲处理,将处理后的待传输业务数据输出到所述业务口;
其中,所述缓冲处理包括:序列重排。
上述技术方案的有益效果为:通过根据序列号进行排序可以将缓冲队列中的待缓冲数据包进行合理排序,进而可以保证每个待缓冲数据包的缓冲工作的顺利进行,进一步地提高了工作效率和工作稳定性,进一步地,通过将缓冲处理后的业务数据输出到业务口可以使得接收设备通过业务口接收到乱序处理后的待传输业务数据以进行业务操作,进一步地提高了工作效率。
在一个实施例中,在利用预设处理线程对所述待传输业务数据进行进行缓冲处理,将处理后的待传输业务数据输出到所述业务口之前,所述方法还包括:
统计所述缓冲队列中所有的待缓冲数据包的第一数量;
确认所述第一数量是否达到了数据包缓冲区最大缓冲数据包个数对应的第二数量,若是。直接将待传输业务数据传输至所述业务口,否则,生成待传输业务数据的等待指令;
基于所述等待指令,根据缓冲队列中的待缓冲数据包的缓冲顺序为每个待缓冲数据包进行编号;
根据待传输业务数据的入队时间和其目标编号以及预设最大缓冲时长确认是否需要等待缓冲处理;
在本实施例中,上述根据待传输业务数据的入队时间和其目标编号以及预设最大缓冲时长确认是否需要等待缓冲处理包括:
如果目标编号比最后一次输出的包编号大,则不再等待,向用户口输出待传输业务数据,更新最后一次输出的用户数据包编号;
如果目标编号等于最后一次输出的包编号+1,则不再等待,向用户口输出待传输业务数据,更新最后一次输出的用户数据包编号;
如果缓冲队列中的待缓冲数据包个数超过了预设的最大缓冲包个数,则不再等待,向用户口输出待传输业务数据,更新最后一次输出的用户数据包编号;
否则
如果数据包缓冲区中有数据待重新排序,则使用最大等待时间(最大等待时间=预设的最长等待时间-当前队列中最先入队的那个包的入队时间)进行睡眠;
否则,预设线程进入到永久睡眠模式,直到收到唤醒信号。
上述技术方案的有益效果为:通过对缓冲队列中的待缓冲数据包进行分析以确认是否可以对待传输数据包进行缓冲处理可以提前计算出待缓冲数据的缓冲可能性,避免用户花费大量时间等待而最终无法对待传输业务数据进行缓冲工作情况的发生,实现了智能判断,进一步地提高了用户的体验感。
在一个实施例中,所述利用预设处理线程对所述待传输业务数据进行进行缓冲处理的步骤包括:
根据所述待传输业务数据对应的数据资源构建预设乱序信息表项;
检测所述待传输业务数据中的乱序帧,根据所述乱序帧利用所述预设乱序信息表项确定待传输业务数据的乱序断点数据;
基于所述乱序断点数据,获取其对应的当前序列信息;
根据所述当前序列信息与所述乱序断点数据在待传输业务数据中的原始序列信息对所述待传输业务数据进行序列重排处理;
将序列重排后的待传输业务数据进行完整性检测,根据检测结果确认处理结果是否合格,若是,将其进行压缩打包,否则,重新对所述待传输业务数据进行序列重排处理直到其处理结果合格为止。
上述技术方案的有益效果为:通过判断待传输业务数据中的乱序断点数据可以有效地评估出待传输业务数据中的乱序数据进而有针对性地对其进行乱序重排,避免了对于无需操作数据的处理过程,进一步地提高了工作效率。
在一个实施例中,在利用预设处理线程对所述待传输业务数据进行进行缓冲处理,将处理后的待传输业务数据输出到所述业务口之前,所述方法还包括:
对所述待传输业务数据进行预处理以生成缓冲任务;
将所述缓冲任务送入到所述数据包缓冲区中以供其进行数据预读取;
根据预读取结果确认数据包缓冲区对应的网络节点的稳定度;
根据所述网络节点的稳定度为待传输业务设定预缓存区间以及为该预缓存区间设置预缓存值;
根据所述预缓存值在多个预设处理线程中选择第一预设处理线程对所述待传输业务数据进行预缓冲处理;
实时采集第一预设处理线程的处理数据,对所述处理数据进行分析以确定其中的未缓冲数据;
确认所述为缓冲数据是否为乱序数据,若是,确认需要启动第二预设处理线程辅助第一预设处理线程进行预缓冲处理工作,否则,无需进行后续操作;
获取第一预设处理线程在单独工作时的第一系统资源信息以及第二预设处理线程在单独工作时的第二系统资源信息;
对比所述第一系统资源信息和第二系统资源信息是否冲突,若是,重新选择第三预设处理线程进行辅助工作,否则,获取第一预设处理线程和第二预设处理线程同时工作时的第三系统资源信息;
确认所述第三系统资源信息中是否有待传输业务数据在预处理时的预定标记,若是,确认第一预设处理线程和第二预设处理线程兼容,否者,确认二者不兼容,发出警告提示。
上述技术方案的有益效果为:通过对待传输业务数据进行预缓冲处理可以最大限度地对待传输业务数据进行完整的缓冲处理,降低了数据包缓存区的运行负载,提高了数据缓冲处理效率,进一步地,通过选择额外的预设处理线程来辅助选择的预设处理线程进行数据的预缓冲处理工作可以保证预缓冲工作的工作效率,同时也可以避免单个处理线程工作量过大导致负载过大运行异常情况的发生,提高了稳定性,进一步地通过确定辅助处理线程和选择的预设处理线程之间的兼容和冲突性可以保证二者相互工作的稳定性,进一步地提高了预缓冲工作的工作效率。
在一个实施例中,所述根据所述空闲区域的对应内存确定在目标主机RAM构建的数据缓冲区最优运行下的目标容量,包括:
构建目标主机的RAM多任务内存分区模型;
对所述RAM多任务内存分区模型进行最大任务量运行模拟,获取模拟结果;
根据所述模拟结果确认目标主机的最大任务运行数量以及在该数量任务下的平均运存数据;
根据所述目标主机的最大任务运行数量以及在该数量任务下的平均运存数据以最优运行为目标构建目标主机的内容容量优化函数;
以数据缓冲区对目标主机内存的预设内存约束条件以及在数据缓冲区运行时的最小数据流量为基础,对所述目标主机的内存容量优化函数进行求解,获得求解结果;
根据所述求解结果对目标主机的运存进行优化,获得目标主机的闲置内存;
筛选出所述闲置内存与空闲区域的对应内存的重合部分对应的目标内存;
根据所述数据缓冲区的运行参数在所述目标内存中确定数据缓冲区在最优运行下的目标容量。
上述技术方案的有益效果为:通过构建目标主机的内存容量优化函数来对目标主机的运行内存进行优化可以最大化地解放目标主机的运存容量,从而可以在空闲区域对应的内存和目标主机的闲置内存的重合部分更加精准地去确定数据缓冲区最优运行下的目标容量,保证了数据缓冲区在工作时的稳定运行,提高了稳定性,同时也间接地提高了对于业务数据的缓冲处理效率。
在一个实施例中,包括:
依据用户数据的序列号线性单调递增的特性,采用双参数buffer进行缓冲,记为udq,参数1:缓冲的时间,参数2:缓冲的包个数;缓冲区数据由一个单独的线程进行监控处理。
当有业务数据包到来时:
首先检查udq是否为空,
如果udq不为空,则与缓冲队列中的包进行包序列号比较,按照序列号由小到大的顺序插入到udq中,记录该包入队时间,通知udq处理线程进行后续的处理;
如果udq为空,并且该数据包的序列号不是所期望的序列号,放到udq中,记录该包入队时间,通知udq处理线程进行后续的处理;
否则,认为该数据包不需要缓冲,直接输出到业务口,同时更新最后一次输出的业务包编号。
udq处理线程处理流程:
从前到后依次遍历udq中的包,
如果该包在队列中的时间超过了预设的最大缓冲时间,则不再等待,向用户口输出该包,更新最后一次输出的用户数据包编号;
如果包编号号比最后一次输出的包编号大,则不再等待,向用户口输出该包,更新最后一次输出的用户数据包编号;
如果该包编号等于最后一次输出的包编号+1,则不再等待,向用户口输出该包,更新最后一次输出的用户数据包编号;
如果队列中的包个数,超过了预设的最大缓冲包个数,则不再等待,向用户口输出该包,更新最后一次输出的用户数据包编号;
否则
如果udq中有数据待重新排序,则使用最大等待时间(最大等待时间=预设的最长等待时间-当前队列中最先入队的那个包的入队时间)进行睡眠;
否则,线程进入到永久睡眠模式,直到收到唤醒信号。
上述技术方案的有益效果为:通过双参数缓冲区处理,能够在不影响实际业务的情况下,对乱序的数据包进行了重排,提高了多链路设备的数据传输质量。
本实施例还公开了一种处理多链路业务数据乱序的系统,如图4所示,该系统包括:
构建模块401,用于构建数据包缓冲区,为所述数据包缓冲区设置参数;
判断模块402,用于获取用户上传的待传输业务数据并判断其是否需要缓冲;
输出模块403,用于当所述待传输业务数据不需要缓冲时,将其直接输出到业务口;
插入模块404,用于当所述待传输业务数据需要缓冲时,将所述待传输业务数据插入到所述数据包缓冲区中,接收缓冲后的待传输业务数据并将其输出到所述业务口。
上述技术方案的工作原理及有益效果在方法权利要求中已经说明,此处不再赘述。
本领域技术用户员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (8)
1.一种处理多链路业务数据乱序的方法,其特征在于,包括以下步骤:
构建数据包缓冲区,为所述数据包缓冲区设置参数;
获取用户上传的待传输业务数据并判断其是否需要缓冲;
当所述待传输业务数据不需要缓冲时,将其直接输出到业务口;
当所述待传输业务数据需要缓冲时,将所述待传输业务数据插入到所述数据包缓冲区中,接收缓冲后的待传输业务数据并将其输出到所述业务口;
所述构建数据包缓冲区,为所述数据包缓冲区设置参数,包括:
确定目标主机RAM的空闲区域;
根据所述空闲区域的对应内存确定在目标主机RAM构建的数据缓冲区最优运行下的目标容量;
在所述空闲区域中基于目标容量对应的目标区域构建所述数据包缓冲区;
在所述数据包缓冲区中设置缓冲周期时长参数和单位时长内缓冲数据包参数;
所述根据所述空闲区域的对应内存确定在目标主机RAM构建的数据缓冲区最优运行下的目标容量,包括:
构建目标主机的RAM多任务内存分区模型;
对所述RAM多任务内存分区模型进行最大任务量运行模拟,获取模拟结果;
根据所述模拟结果确认目标主机的最大任务运行数量以及在该数量任务下的平均运存数据;
根据所述目标主机的最大任务运行数量以及在该数量任务下的平均运存数据以最优运行为目标构建目标主机的内容容量优化函数;
以数据缓冲区对目标主机内存的预设内存约束条件以及在数据缓冲区运行时的最小数据流量为基础,对所述目标主机的内存容量优化函数进行求解,获得求解结果;
根据所述求解结果对目标主机的运存进行优化,获得目标主机的闲置内存;
筛选出所述闲置内存与空闲区域的对应内存的重合部分对应的目标内存;
根据所述数据缓冲区的运行参数在所述目标内存中确定数据缓冲区在最优运行下的目标容量。
2.根据权利要求1所述处理多链路业务数据乱序的方法,其特征在于,所述获取用户上传的待传输业务数据并判断其是否需要缓冲,包括:
检测所述数据包缓冲区的缓冲队列中是否有待缓冲数据包,若是,确认所述待传输业务数据需要缓冲,否则,获取所述待传输业务数据的第一序列号;
确认所述第一序列号是否为系统期望的第二序列号,若是,确认所述待传输业务数据不需要缓冲。
3.根据权利要求1所述处理多链路业务数据乱序的方法,其特征在于,所述当所述待传输业务数据不需要缓冲时,将其直接输出到业务口,包括:
接通与所述业务口的通信连接;
将所述待传输业务数据通过第一数据传输模式传输至所述业务口,实时检测数据传输过程中的误包率;
确认所述误包率是否大于等于预设概率,若是,切换第二数据传输模式继续进行待传输业务数据的传输工作;
在确认业务口接收到所述待传输业务数据后,断开与其的通信连接。
4.根据权利要求2所述处理多链路业务数据乱序的方法,其特征在于,当所述待传输业务数据需要缓冲时,将所述待传输业务数据插入到所述数据包缓冲区中,接收缓冲后的待传输业务数据并将其输出到所述业务口,包括:
获取数据包缓冲区中待缓冲数据包的第三序列号;
将所述第一序列号与第三序列号进行比较,获取比较结果;
根据所述比较结果将待传输业务数据按照序列号从大到小的顺序插入到所述缓冲队列中,记录待传输业务数据的入队时间;
利用预设处理线程对所述待传输业务数据进行缓冲处理,将处理后的待传输业务数据输出到所述业务口;
其中,所述缓冲处理包括:序列重排。
5.根据权利要求4所述处理多链路业务数据乱序的方法,其特征在于,在利用预设处理线程对所述待传输业务数据进行缓冲处理,将处理后的待传输业务数据输出到所述业务口之前,所述方法还包括:
统计所述缓冲队列中所有的待缓冲数据包的第一数量;
确认所述第一数量是否达到了数据包缓冲区最大缓冲数据包个数对应的第二数量,若是,直接将待传输业务数据传输至所述业务口,否则,生成待传输业务数据的等待指令;
基于所述等待指令,根据缓冲队列中的待缓冲数据包的缓冲顺序为每个待缓冲数据包进行编号;
根据待传输业务数据的入队时间和其目标编号以及预设最大缓冲时长确认是否需要等待缓冲处理。
6.根据权利要求4所述处理多链路业务数据乱序的方法,其特征在于,所述利用预设处理线程对所述待传输业务数据进行缓冲处理的步骤包括:
根据所述待传输业务数据对应的数据资源构建预设乱序信息表项;
检测所述待传输业务数据中的乱序帧,根据所述乱序帧利用所述预设乱序信息表项确定待传输业务数据的乱序断点数据;
基于所述乱序断点数据,获取其对应的当前序列信息;
根据所述当前序列信息与所述乱序断点数据在待传输业务数据中的原始序列信息对所述待传输业务数据进行序列重排处理;
将序列重排后的待传输业务数据进行完整性检测,根据检测结果确认处理结果是否合格,若是,将其进行压缩打包,否则,重新对所述待传输业务数据进行序列重排处理直到其处理结果合格为止。
7.根据权利要求4所述处理多链路业务数据乱序的方法,其特征在于,在利用预设处理线程对所述待传输业务数据进行缓冲处理,将处理后的待传输业务数据输出到所述业务口之前,所述方法还包括:
对所述待传输业务数据进行预处理以生成缓冲任务;
将所述缓冲任务送入到所述数据包缓冲区中以供其进行数据预读取;
根据预读取结果确认数据包缓冲区对应的网络节点的稳定度;
根据所述网络节点的稳定度为待传输业务设定预缓存区间以及为该预缓存区间设置预缓存值;
根据所述预缓存值在多个预设处理线程中选择第一预设处理线程对所述待传输业务数据进行预缓冲处理;
实时采集第一预设处理线程的处理数据,对所述处理数据进行分析以确定其中的未缓冲数据;
确认所述未缓冲数据是否为乱序数据,若是,确认需要启动第二预设处理线程辅助第一预设处理线程进行预缓冲处理工作,否则,无需进行后续操作;
获取第一预设处理线程在单独工作时的第一系统资源信息以及第二预设处理线程在单独工作时的第二系统资源信息;
对比所述第一系统资源信息和第二系统资源信息是否冲突,若是,重新选择第三预设处理线程进行辅助工作,否则,获取第一预设处理线程和第二预设处理线程同时工作时的第三系统资源信息;
确认所述第三系统资源信息中是否有待传输业务数据在预处理时的预定标记,若是,确认第一预设处理线程和第二预设处理线程兼容,否者,确认二者不兼容,发出警告提示。
8.一种处理多链路业务数据乱序的系统,其特征在于,该系统包括:
构建模块,用于构建数据包缓冲区,为所述数据包缓冲区设置参数;
判断模块,用于获取用户上传的待传输业务数据并判断其是否需要缓冲;
输出模块,用于当所述待传输业务数据不需要缓冲时,将其直接输出到业务口;
插入模块,用于当所述待传输业务数据需要缓冲时,将所述待传输业务数据插入到所述数据包缓冲区中,接收缓冲后的待传输业务数据并将其输出到所述业务口;
其中,所述构建数据包缓冲区,为所述数据包缓冲区设置参数,包括:
确定目标主机RAM的空闲区域;
根据所述空闲区域的对应内存确定在目标主机RAM构建的数据缓冲区最优运行下的目标容量;
在所述空闲区域中基于目标容量对应的目标区域构建所述数据包缓冲区;
在所述数据包缓冲区中设置缓冲周期时长参数和单位时长内缓冲数据包参数;
其中,所述根据所述空闲区域的对应内存确定在目标主机RAM构建的数据缓冲区最优运行下的目标容量,包括:
构建目标主机的RAM多任务内存分区模型;
对所述RAM多任务内存分区模型进行最大任务量运行模拟,获取模拟结果;
根据所述模拟结果确认目标主机的最大任务运行数量以及在该数量任务下的平均运存数据;
根据所述目标主机的最大任务运行数量以及在该数量任务下的平均运存数据以最优运行为目标构建目标主机的内容容量优化函数;
以数据缓冲区对目标主机内存的预设内存约束条件以及在数据缓冲区运行时的最小数据流量为基础,对所述目标主机的内存容量优化函数进行求解,获得求解结果;
根据所述求解结果对目标主机的运存进行优化,获得目标主机的闲置内存;
筛选出所述闲置内存与空闲区域的对应内存的重合部分对应的目标内存;
根据所述数据缓冲区的运行参数在所述目标内存中确定数据缓冲区在最优运行下的目标容量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111111768.2A CN113992609B (zh) | 2021-09-23 | 2021-09-23 | 一种处理多链路业务数据乱序的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111111768.2A CN113992609B (zh) | 2021-09-23 | 2021-09-23 | 一种处理多链路业务数据乱序的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113992609A CN113992609A (zh) | 2022-01-28 |
CN113992609B true CN113992609B (zh) | 2022-06-14 |
Family
ID=79736326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111111768.2A Active CN113992609B (zh) | 2021-09-23 | 2021-09-23 | 一种处理多链路业务数据乱序的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113992609B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117350283A (zh) * | 2023-10-11 | 2024-01-05 | 西安栗子互娱网络科技有限公司 | 文本缺陷检测方法、装置、设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572106A (zh) * | 2015-01-12 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种基于小内存处理大规模数据的并行程序开发方法 |
CN112035898A (zh) * | 2020-08-20 | 2020-12-04 | 郑州信大捷安信息技术股份有限公司 | 多节点多通道高速并行处理方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102685000B (zh) * | 2012-04-24 | 2017-12-19 | 中兴通讯股份有限公司 | 一种mp碎片序号同步实现方法、设备及系统 |
CN103561472B (zh) * | 2013-10-30 | 2016-07-06 | 中国人民解放军理工大学 | 一种多业务链路分发和重组装置及其方法 |
US20160127325A1 (en) * | 2014-10-29 | 2016-05-05 | Jens Odenheimer | Scrambling business data |
CN110943933B (zh) * | 2018-09-25 | 2023-09-01 | 华为技术有限公司 | 一种实现数据传输的方法、装置和系统 |
CN109547359A (zh) * | 2018-11-30 | 2019-03-29 | 高新兴科技集团股份有限公司 | Rtp数据包乱序重排方法、装置、存储介质及电子设备 |
-
2021
- 2021-09-23 CN CN202111111768.2A patent/CN113992609B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572106A (zh) * | 2015-01-12 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种基于小内存处理大规模数据的并行程序开发方法 |
CN112035898A (zh) * | 2020-08-20 | 2020-12-04 | 郑州信大捷安信息技术股份有限公司 | 多节点多通道高速并行处理方法及系统 |
Non-Patent Citations (1)
Title |
---|
《基于UDP的多链路协同通信算法的研究》;迟浩;《中国优秀硕士学位论文全文数据库》;20181231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113992609A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111683252B (zh) | 一种服务器以及一种视频压缩图像的输出系统和方法 | |
CN101800699A (zh) | 一种丢弃报文的方法及装置 | |
CN103647726A (zh) | 一种报文调度方法及装置 | |
CN112261142B (zh) | 一种rdma网络的数据重传方法、装置及fpga | |
CN202841192U (zh) | 一种支持广域网的高速、可靠的单向传输系统 | |
CN111147573A (zh) | 一种数据传输的方法和装置 | |
CN115174490B (zh) | 一种数据传输方法及网络应用终端 | |
CN113992609B (zh) | 一种处理多链路业务数据乱序的方法及系统 | |
CN114726676A (zh) | 一种can总线双通路备份中冗余消息处理方法 | |
CN102143053B (zh) | 传输数据的方法、装置和系统 | |
CN102006314B (zh) | 多服务器自适应任务调度方法及装置 | |
CN113259408A (zh) | 数据传输方法和系统 | |
CN109714223B (zh) | Nfv架构下实现网络业务接入动态负载分担功能的系统及其方法 | |
CN114827272B (zh) | 电力业务管理方法及其装置、变电站设备和存储介质 | |
US20050083837A1 (en) | Transmission system | |
CN112399381B (zh) | 一种数据传输方法及车载以太网络传输系统 | |
US7414991B2 (en) | Computing system and method to select data packet | |
CN110536467B (zh) | ZigBee网络化工业控制系统通信调度方法及其协调器 | |
CN109361620B (zh) | 一种数据发送的方法、装置、设备及存储介质 | |
JPH1196091A (ja) | 通信制御方法、通信制御装置及び通信制御プログラムを記録した記録媒体 | |
CN115277723B (zh) | 边缘采集历史模块基于缓冲事件的断点续传方法及系统 | |
CN102571430A (zh) | 一种网络设备间的同步方法及网络设备 | |
CN112511277B (zh) | 数据处理方法及装置 | |
CN115685817B (zh) | Can网络多节点通信时数据并发的处理方法、装置及介质 | |
CN111935313B (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 |