报文发送方法、装置、设备和可读存储介质制造方法及图纸

技术编号:37821830 阅读:20 留言:0更新日期:2023-06-09 09:57
本申请涉及数据传输领域,尤其是报文发送方法、装置、设备和可读存储介质,方法包括:获取待发送队列、CPU每次发送的报文数量、目标报文发送间隔;根据报文数量和目标报文发送间隔,发送待发送报文;目标报文发送间隔的获取过程包括:获取CPU时钟精度、预设的CPU报文发送间隔和多个模拟报文;基于报文数量和预设的CPU报文发送间隔,发送判断模拟报文是否全部发送成功;若是,则将预设的CPU报文发送间隔作为目标报文发送间隔;若否,则根据CPU时钟精度、预设的CPU报文发送间隔,得到新的CPU报文发送间隔并作为预设的CPU报文发送间隔,直至模拟报文全部发送成功,获取目标报文发送间隔。本申请具有减少丢包数量的效果。本申请具有减少丢包数量的效果。本申请具有减少丢包数量的效果。

【技术实现步骤摘要】
报文发送方法、装置、设备和可读存储介质


[0001]本申请涉及数据传输的
,尤其是涉及一种报文发送方法、装置、设备和可读存储介质。

技术介绍

[0002]一般的,在DPDK技术中,(Intel Data Plane Development Kit,数据平面开发套件),高性能测试仪中的CPU将多个报文发送至硬件端口,再由硬件端口将多个报文转发至网络,来测试网速。
[0003]但是当硬件端口出现故障时,高性能测试仪需要更换硬件端口,可能出现CPU的发送频率大于硬件端口的发送频率,导致的丢包问题。
[0004]因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。

技术实现思路

[0005]为了实现丢包数量的减少,本申请提供一种报文发送方法、装置、设备和可读存储介质。
[0006]第一方面,本申请提供一种报文发送方法,采用如下的技术方案:一种报文发送方法,包括:获取待发送队列,其中,待发送队列包括多个待发送报文;获取CPU每次发送的报文数量、CPU的目标报文发送间隔;根据CPU每次发送的报文数量和目标报文发送间隔,发送待发送队列中的多个待发送报文;其中,CPU的目标报文发送间隔的获取过程,包括:获取CPU时钟精度、预设的CPU报文发送间隔和多个模拟报文;基于所述CPU每次发送的报文数量和所述预设的CPU报文发送间隔,发送所述多个模拟报文,并判断所述多个模拟报文是否全部发送成功;若是,则将所述预设的CPU报文发送间隔作为CPU的目标报文发送间隔;若否,则根据所述CPU时钟精度、所述预设的CPU报文发送间隔,得到新的CPU报文发送间隔;将所述新的CPU报文发送间隔作为预设的CPU报文发送间隔,执行基于所述预设的CPU报文发送间隔和所述CPU每次发送的报文数量,发送所述多个模拟报文,并判断全部模拟报文是否全部发送成功,直至所述多个模拟报文全部发送成功,以获取CPU的目标报文发送间隔。
[0007]通过采用上述技术方案,获取待发送队列之后,获取CPU每次发送的报文数量,和能够保证报文发送过程不出现丢包的CPU的目标报文发送间隔,基于CPU时钟精度、CPU每次发送的报文数量和预设的CPU报文发送间隔,发送多个模拟报文,并判断多个模拟报文是否
全部发送成功;若是,则确定无丢包现象发生,可以将预设的CPU报文发送间隔作为CPU的目标报文发送间隔;若否,则表明仍有丢包现象发生,根据CPU时钟精度、预设的CPU报文发送间隔,得到新的报文发送间隔,本方案利用CPU时钟精度和预设的CPU报文发送间隔,调整发送间隔,可以减少由于CPU时钟精度小于硬件端口时钟精度带来的丢包的数量;直至多个模拟报文全部发送成功,以获取CPU的目标报文发送间隔;进而根据CPU每次发送的报文数量和目标报文发送间隔,发送待发送队列中的多个待发送报文,可以降低报文发送过程中丢包问题的出现概率,实现了通过调整发送间隔,间接调整发送频率,来降低丢包概率的报文发送方法。
[0008]本申请在一较佳示例中可以进一步配置为:在获取待发送队列之后,还包括:获取多个报文长度范围,其中,每一报文长度范围中包括的报文长度的数量相同;获取所述多个待发送报文各自对应的报文长度;根据所述多个待发送报文各自对应的报文长度和每一报文长度范围包括的多个报文长度,确定每一报文长度范围对应的若干待发送报文;其中,CPU的目标报文发送间隔包括所述多个报文长度范围各自对应的目标报文发送间隔,且,每一报文长度范围对应的目标报文发送间隔均通过所述CPU的目标报文发送间隔的获取过程获得;相应的,获取CPU每次发送的报文数量、CPU的目标报文发送间隔,根据报文数量和目标报文发送间隔,发送待发送队列中的多个待发送报文,包括:获取CPU每次发送的报文数量、每一报文长度范围对应的CPU的目标报文发送间隔,其中,在每一次获取目标报文发送间隔过程中利用的模拟报文的报文长度,包括每一报文长度范围对应的全部报文长度;针对每一报文长度范围,根据报文数量和报文长度范围对应的目标报文发送间隔,发送报文长度范围对应的若干待发送报文。
[0009]通过采用上述技术方案,获取多个报文长度范围,将不同报文长度分段,获取多个待发送报文各自对应的报文长度之后;根据多个待发送报文各自对应的报文长度和每一报文长度范围包括的多个报文长度,确定每一报文长度范围对应的若干待发送报文,为每一个待发送报文确定对应的报文长度范围之后;获取CPU每次发送的报文数量,并针对每一报文长度范围获取对应的目标报文发送间隔,让目标报文发送间隔灵活适配不同报文长度的报文,且,针对每一报文长度范围求取而不是针对每一个不同报文长度求取目标报文发送间隔,可以减少发送时匹配对应发送间隔浪费时间;最后,针对每一报文长度范围,根据CPU每次发送的报文数量和报文长度范围对应的目标报文发送间隔,发送报文长度范围对应的若干待发送报文,实现报文发送效率的提升。
[0010]本申请在一较佳示例中可以进一步配置为:在所述获取多个报文长度范围之后,还包括:根据全部报文长度范围各自对应的左端点或右端点,对全部报文长度范围排序,得到有顺序的多个报文长度范围,其中,每一报文长度范围包括唯一的左端点和右端点;相应的,获取每一报文长度范围对应的CPU的目标报文发送间隔,包括:基于多个报文长度范围的顺序,依次为每一报文长度范围确定目标报文发送间
隔。
[0011]通过采用上述技术方案,根据全部报文长度范围各自对应的左端点或右端点,对全部报文长度范围排序,得到有顺序的多个报文长度范围后,基于多个报文长度范围的顺序,依次为每一报文长度范围确定目标报文发送间隔,相较于同时获取全部的目标报文发送间隔时,可能出现重复获取或错误获取,本申请通过依次获取提升了获取过程的准确性与有效性。
[0012]本申请在一较佳示例中可以进一步配置为:所述基于多个报文长度范围的顺序,依次为每一报文长度范围确定目标报文发送间隔,包括:基于多个报文长度范围的顺序,在依次确定每一报文长度范围对应的目标报文发送间隔的过程中,将上一报文长度范围确定的目标报文发送间隔作为当前报文长度范围的预设的CPU报文发送间隔。
[0013]通过采用上述技术方案,在基于多个报文长度范围的顺序,依次确定每一报文长度范围对应的目标报文发送间隔的过程中,通过将上一报文长度范围确定的目标报文发送间隔作为当前报文长度范围的预设的CPU报文发送间隔,缩短获取当前报文长度范围对应的目标报文发送间隔的时间,提升目标报文发送间隔的获取效率。
[0014]本申请在一较佳示例中可以进一步配置为:在获取待发送队列之后,还包括:获取每一待发送报文的报文类型,其中,报文类型至少包括指令类报文和非指令类报文;针对每一待发送报文,判断报文类型是否为指令类报文;针对每一待发送报文,若是,则获取指令类报文对应的报文发送间隔,并将所述指令类报文对应的报文发送间隔,作为待发送报文的目标报文发送间隔,其中,指令类报文对应的报文发送间隔大于任一非指令类报文的目标报文发送间隔。
[0015]通过本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种报文发送方法,其特征在于,包括:获取待发送队列,其中,待发送队列包括多个待发送报文;获取CPU每次发送的报文数量、CPU的目标报文发送间隔;根据CPU每次发送的报文数量和目标报文发送间隔,发送待发送队列中的多个待发送报文;其中,CPU的目标报文发送间隔的获取过程,包括:获取CPU时钟精度、预设的CPU报文发送间隔和多个模拟报文;基于所述CPU每次发送的报文数量和所述预设的CPU报文发送间隔,发送所述多个模拟报文,并判断所述多个模拟报文是否全部发送成功;若是,则将所述预设的CPU报文发送间隔作为CPU的目标报文发送间隔;若否,则根据所述CPU时钟精度、所述预设的CPU报文发送间隔,得到新的CPU报文发送间隔;将所述新的CPU报文发送间隔作为预设的CPU报文发送间隔,执行基于所述预设的CPU报文发送间隔和所述CPU每次发送的报文数量,发送所述多个模拟报文,并判断全部模拟报文是否全部发送成功,直至所述多个模拟报文全部发送成功,以获取CPU的目标报文发送间隔。2.根据权利要求1所述的报文发送方法,其特征在于,在获取待发送队列之后,还包括:获取多个报文长度范围,其中,每一报文长度范围中包括的报文长度的数量相同;获取所述多个待发送报文各自对应的报文长度;根据所述多个待发送报文各自对应的报文长度和每一报文长度范围包括的多个报文长度,确定每一报文长度范围对应的若干待发送报文;其中,CPU的目标报文发送间隔包括所述多个报文长度范围各自对应的目标报文发送间隔,且,每一报文长度范围对应的目标报文发送间隔均通过所述CPU的目标报文发送间隔的获取过程获得;相应的,获取CPU每次发送的报文数量、CPU的目标报文发送间隔,根据报文数量和目标报文发送间隔,发送待发送队列中的多个待发送报文,包括:获取CPU每次发送的报文数量、每一报文长度范围对应的CPU的目标报文发送间隔,其中,在每一次获取目标报文发送间隔过程中利用的模拟报文的报文长度,包括每一报文长度范围对应的全部报文长度;针对每一报文长度范围,根据报文数量和报文长度范围对应的目标报文发送间隔,发送报文长度范围对应的若干待发送报文。3.根据权利要求2所述的报文发送方法,其特征在于,在所述获取多个报文长度范围之后,还包括:根据全部报文长度范围各自对应的左端点或右端点,对全部报文长度范围排序,得到有顺序的多个报文长度范围,其中,每一报文长度范围包括唯一的左端点和右端点;相应的,获取每一报文长度范围对应的CPU的目标报文发送间隔,包括:基于多个报文长度范围的顺序,依次为每一报文长度范围确定目标报文发送间隔。4.根据权利要求3所述的报文发送方法,其特征在于,所述基于多个报文长度范围的顺序,依次为每一报文长度范围确定目标报文发送间隔,包括:
基于多个报文长度范围的顺序,在依次确定每一报文长度范围对应的目标报文发送间隔的过程中,将上一报文长度范围确定的目标报文发送间隔作为当前报文长度范围的预设的CPU报文发送间隔。5.根据权利要求1所述的报文发送方法,其特征在于,在获取待发送队列之后,还包括:获取每一待发送报文的报文类型,其中,报文类型至少包括指令...

【专利技术属性】
技术研发人员:杨周亮
申请(专利权)人:北京信而泰科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1