报文传输方法、系统、装置、设备及可读存储介质制造方法及图纸

技术编号:38819044 阅读:16 留言:0更新日期:2023-09-15 19:58
本申请提供一种报文传输方法、系统、装置、设备及可读存储介质,应用于网络设备,通过向预先开辟的栈内存申请报文管理头内存,并依次修改报文管理头中数据指向待发送报文中每一个等长分片的存储位置,从而实现获取报文管理头中数据可以直接定位到每一等长分片并发送,并在所述待发送报文的每一分片发送完成后自动回收报文管理头内存,降低了相关技术中分片报文内存资源申请和分片拷贝所带来的CPU资源以及内存带宽资源消耗,无分片报文拷贝发送过程减少了报文传输时延。程减少了报文传输时延。程减少了报文传输时延。

【技术实现步骤摘要】
报文传输方法、系统、装置、设备及可读存储介质


[0001]本申请涉及通信
,尤其涉及一种报文传输方法、系统、装置、设备及可读存储介质。

技术介绍

[0002]最大传输单元用于定义网络中传输的报文的最大长度的属性。在网络设备需要传输的报文的长度大于所述最大传输单元时,则需要对该报文进行分片,由接收该报文的网络设备再将接收的报文分片重组。
[0003]相关技术中,网络设备在对待传输报文进行分片处理时,向操作系统申请多个分片报文内存空间,并将所述待传输报文的分片分别拷贝到分片报文数据段对应的内存中再发送,导致了CPU资源和内存带宽的资源浪费,同时存在较大的传输时延,影响了上层业务的性能。

技术实现思路

[0004]有鉴于此,为解决上述技术问题,本申请提供一种报文传输方法、系统、装置、设备及可读存储介质。
[0005]具体地,本申请是通过如下技术方案实现的:
[0006]根据本申请实施例的第一方面,提供一种报文传输方法,应用于网络设备,所述方法包括:
[0007]获取目标报文,并在所述网络设备的系统内存中存储所述目标报文,所述目标报文包括K个分片报文,每个分片报文的长度均相同,K为正整数;
[0008]在栈内存中分配M个内存空间,通过所述M个内存空间存储所述目标报文的前M个分片报文对应的M个报文管理头,每个报文管理头对应一个分片报文,M为正整数且不大于K;其中,所述报文管理头至少包括分片报文的起始内存位置和数据长度;
[0009]依次获取每个报文管理头中的起始内存位置和数据长度,并基于所述起始内存位置和数据长度依次发送每个报文管理头对应的分片报文;在所述M个分片报文发送完成后,判断是否已发送所述目标报文的最后一个分片报文,如果否,则通过所述内存空间存储已发送分片报文后的分片报文对应的报文管理头,返回执行依次获取每个报文管理头中的起始内存位置和数据长度操作,直到发送所述K个分片报文中的最后一个分片报文,以使对端网络设备接收到所述K个分片报文。
[0010]根据本申请实施例的第二方面,提供一种报文传输方法,应用于网络设备,所述方法包括:
[0011]在接收到对端网络设备发送的分片报文时,若所述网络设备的状态为第一状态,则确定所述分片报文中是否包括分片管理头,若是,则从所述分片管理头中解析出校验数据,若基于所述校验数据确定所述分片报文是首个分片报文,则在所述网络设备的系统内存中申请新内存空间,从所述分片报文中去除所述分片管理头,并将去除所述分片管理头
后的分片报文存储到所述新内存空间,并将所述网络设备的状态修改为第二状态;
[0012]若所述网络设备的状态为第二状态,则确定所述分片报文是否为最后一个分片报文;如果否,则在当前内存空间的前一个分片报文的后面存储所述分片报文;如果是,则从所述分片报文中去除补充数据,并在当前内存空间的前一个分片报文的后面存储去除补充数据后的分片报文,将所述网络设备的状态修改为第一状态。
[0013]根据本申请实施例的第三方面,提供一种报文传输系统,所述系统包括第一网络设备和第二网络设备;
[0014]所述第一网络设备用于获取目标报文,并在所述网络设备的系统内存中存储所述目标报文,所述目标报文包括K个分片报文,每个分片报文的长度均相同,K为正整数;在栈内存中分配M个内存空间,通过所述M个内存空间存储所述目标报文的前M个分片报文对应的M个报文管理头,每个报文管理头对应一个分片报文,M为正整数且不大于K;其中,所述报文管理头至少包括分片报文的起始内存位置和数据长度;
[0015]所述第一网络设备用于依次获取每个报文管理头中的起始内存位置和数据长度,并基于所述起始内存位置和数据长度依次发送每个报文管理头对应的分片报文;在所述M个分片报文发送完成后,判断是否已发送所述目标报文的最后一个分片报文,如果否,则通过所述内存空间存储已发送分片报文后的分片报文对应的报文管理头,返回执行依次获取每个报文管理头中的起始内存位置和数据长度操作,直到发送所述K个分片报文中的最后一个分片报文,以使对端网络设备接收到所述K个分片报文;
[0016]所述第二网络设备用于在接收到对端网络设备发送的分片报文时,若所述网络设备的状态为第一状态,则确定所述分片报文中是否包括分片管理头,若是,则从所述分片管理头中解析出校验数据,若基于所述校验数据确定所述分片报文是首个分片报文,则在所述网络设备的系统内存中申请新内存空间,从所述分片报文中去除所述分片管理头,并将去除所述分片管理头后的分片报文存储到所述新内存空间,并将所述网络设备的状态修改为第二状态;
[0017]若所述网络设备的状态为第二状态,则确定所述分片报文是否为最后一个分片报文;如果否,则在当前内存空间的前一个分片报文的后面存储所述分片报文;如果是,则从所述分片报文中去除补充数据,并在当前内存空间的前一个分片报文的后面存储去除补充数据后的分片报文,将所述网络设备的状态修改为第一状态。
[0018]根据本申请实施例的第四方面,提供一种报文传输装置,应用于网络设备,所述装置包括:
[0019]报文获取模块,用于获取目标报文,并在所述网络设备的系统内存中存储所述目标报文,所述目标报文包括K个分片报文,每个分片报文的长度均相同,K为正整数;
[0020]管理头分配模块,用于在栈内存中分配M个内存空间,通过所述M个内存空间存储所述目标报文的前M个分片报文对应的M个报文管理头,每个报文管理头对应一个分片报文,M为正整数且不大于K;其中,所述报文管理头至少包括分片报文的起始内存位置和数据长度;
[0021]报文发送模块,用于依次获取每个报文管理头中的起始内存位置和数据长度,并基于所述起始内存位置和数据长度依次发送每个报文管理头对应的分片报文;在所述M个分片报文发送完成后,判断是否已发送所述目标报文的最后一个分片报文,如果否,则通过
所述内存空间存储已发送分片报文后的分片报文对应的报文管理头,返回执行依次获取每个报文管理头中的起始内存位置和数据长度操作,直到发送所述K个分片报文中的最后一个分片报文,以使对端网络设备接收到所述K个分片报文。
[0022]根据本申请实施例的第五方面,提供一种报文传输装置,应用于网络设备,所述装置包括:
[0023]第一状态处理模块,用于在接收到对端网络设备发送的分片报文时,若所述网络设备的状态为第一状态,则确定所述分片报文中是否包括分片管理头,若是,则从所述分片管理头中解析出校验数据,若基于所述校验数据确定所述分片报文是首个分片报文,则在所述网络设备的系统内存中申请新内存空间,从所述分片报文中去除所述分片管理头,并将去除所述分片管理头后的分片报文存储到所述新内存空间,并将所述网络设备的状态修改为第二状态;
[0024]第二状态处理模块,用于若所述网络设备的状态为第二状态,则确定所述分片报文是否为最后一个分片报文;如果否,则在当前内存空间的前一个分片报文的后面存储所述分片报文;如果是,则从所述分片报文中去除补本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种报文传输方法,其特征在于,应用于网络设备,所述方法包括:获取目标报文,并在所述网络设备的系统内存中存储所述目标报文,所述目标报文包括K个分片报文,每个分片报文的长度均相同,K为正整数;在栈内存中分配M个内存空间,通过所述M个内存空间存储所述目标报文的前M个分片报文对应的M个报文管理头,每个报文管理头对应一个分片报文,M为正整数且不大于K;其中,所述报文管理头至少包括分片报文的起始内存位置和数据长度;依次获取每个报文管理头中的起始内存位置和数据长度,并基于所述起始内存位置和数据长度依次发送每个报文管理头对应的分片报文;在所述M个分片报文发送完成后,判断是否已发送所述目标报文的最后一个分片报文,如果否,则通过所述内存空间存储已发送分片报文后的分片报文对应的报文管理头,返回执行依次获取每个报文管理头中的起始内存位置和数据长度操作,直到发送所述K个分片报文中的最后一个分片报文,以使对端网络设备接收到所述K个分片报文。2.根据权利要求1所述的方法,其特征在于,所述获取目标报文包括:在已获取的待分片报文前新增分片管理头,得到新增分片管理头后的报文作为第一报文;基于所述第一报文生成所述目标报文,其中,所述目标报文的第一个分片报文包括所述分片管理头,所述分片管理头用于使对端网络设备基于所述分片管理头识别出当前分片报文是所述目标报文的第一个分片报文。3.根据权利要求2所述的方法,其特征在于,所述基于所述第一报文生成所述目标报文,包括:基于预设报文分片长度和数量K确定所述目标报文的总长度;基于所述目标报文的总长度和所述第一报文的长度,得到最后一个分片报文的补齐长度;在所述第一报文后增加所述补齐长度的补齐数据,得到所述目标报文,其中,所述补齐数据为所述系统内存中的随机值。4.根据权利要求1所述的方法,其特征在于,所述报文管理头包括数据起始地址指针和数据长度,数据起始地址指针用于指向分片报文在系统内存中的起始内存位置,数据长度是所述分片报文的数据长度;所述通过所述内存空间存储已发送分片报文后的分片报文对应的报文管理头,包括:若已发送分片报文后的剩余分片报文片数N大于或等于M,则将M个内存空间中的数据起始地址指针修改为依次指向已发送分片报文后的M个分片报文的起始内存位置,将M个内存空间中的数据长度依次修改为已发送分片报文后的M个分片报文的数据长度;若已发送分片报文后的剩余分片报文片数N小于M,则将M个内存空间中第1至N个内存空间中的数据起始地址指针修改为依次指向已发送分片报文后的N个分片报文的起始内存位置,将所述第1至N个内存空间中的数据长度依次修改为已发送分片报文后的N个分片报文的数据长度。5.一种报文传输方法,其特征在于,应用于网络设备,所述方法包括:在接收到对端网络设备发送的分片报文时,若所述网络设备的状态为第一状态,则确定所述分片报文中是否包括分片管理头,若是,则从所述分片管理头中解析出校验数据,若
基于所述校验数据确定所述分片报文是首个分片报文,则在所述网络设备的系统内存中申请新内存空间,从所述分片报文中去除所述分片管理头,并将去除所述分片管理头后的分片报文存储到所述新内存空间,并将所述网络设备的状态修改为第二状态;若所述网络设备的状态为第二状态,则确定所述分片报文是否为最后一个分片报文;如果否,则在当前内存空间的前一个分片报文的后面存储所述分片报文;如果是,则从所述分片报文中去除补充数据,并在当前内存空间的前一个分片报文的后面存储去除补充数据后的分片报文,将所述网络设备的状态修改为第一状态。6.根据权利要求5所述的方法,其特征在于,所述确定所述分片报文中是否包括分片管理头,包括:获取所述分片报文中处于预设位置的数据,若获取的数据与预设的分片头标识匹配成功,则确定所述分片报文包括分片管理头;所述校验数据至少包括第一分片片数和整包长度;所述从所述分片管理头中解析出校验数据,基于校验数据确定所述分片报文是否为首个分片报文包括:基于所述整包长度和所述分片报文的报文长度确定第二分片片数,并判断所述第一分片片数和所述第二分片片数是否相同;如果是,则确定所述分片报文是首个分片报文;如果否,则确定所述分片报文并非首个分片报文。7.根据权利要求5所述的方法,其特征在于,所述分片管理头还包括最后一个分片报文的补齐长度;所述从所述分片报文中去除所述分片管理头前,还包括:向系统内存申请存储空间,并将所述分片管理头中携带的补齐长度存储到所述存储空间;所述从所述分片报文中去除补充数据,包括:从所述存储空间中获取所述最后一个分片报文的补齐长度,并从所述分片报文的后面去除所述补齐长度的补充数据。8.一种报文传输系统,其特征在于,所述系统包括第一网络设备和第二网络设备;所述第一网络设备用于获取目标报文,并在所述网络设备的系统内存中存储所述目标报文,所述目标报文包括K个分片报文,每个分片报文的长度均相同,K为正整数;在栈内存中分配M个内存空间,通过所述M个内存空间存储所述目标报文的前M个分片报文对应的M个报文管理头,每个报文管理头对应一个分片报文,M为正整数且不大于K;其中,所述报文管理头至少包括分片报文的起始内存位置和数据长度;所述第一网络设备用于依次获取每个报文管理头中的起始内存位置和数据长度,并基于所述起始内存位置和数据长度依次发送每个报文管理头对应的分片报文;在所述M个分片报文发送完成后,判断是否已发送所述目标报文的最后一个分片报文,如果否,则通过所述内存空间存储已发送分片报文后的分片报文对应的报文管理头,返回执行依次获取每个报文管理头中的起始内存位置和数据长度操作,直到发送所述K个分片报文中的最后一个分片报文,以使对端网络设备接收到所述K个分片报文;所述第二网络设备用于在接收到对端网络设备发送的分片报文时,若所述网络设备的状态为第一状态,则确定所述分片报文中是否包括分片管理头,若是,则从所述分片管理头中解析出...

【专利技术属性】
技术研发人员:唐双程航
申请(专利权)人:新华三技术有限公司
类型:发明
国别省市:

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

1