CN114465694B - 报文传输方法及装置 - Google Patents

报文传输方法及装置 Download PDF

Info

Publication number
CN114465694B
CN114465694B CN202210015958.2A CN202210015958A CN114465694B CN 114465694 B CN114465694 B CN 114465694B CN 202210015958 A CN202210015958 A CN 202210015958A CN 114465694 B CN114465694 B CN 114465694B
Authority
CN
China
Prior art keywords
message
selected tunnel
queue
tunnel
matrix
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
Application number
CN202210015958.2A
Other languages
English (en)
Other versions
CN114465694A (zh
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.)
Ruijie Networks Co Ltd
Original Assignee
Ruijie Networks 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 Ruijie Networks Co Ltd filed Critical Ruijie Networks Co Ltd
Priority to CN202210015958.2A priority Critical patent/CN114465694B/zh
Publication of CN114465694A publication Critical patent/CN114465694A/zh
Application granted granted Critical
Publication of CN114465694B publication Critical patent/CN114465694B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种报文传输方法及装置,该方法包括:确定第一报文是否匹配中设定特征表;若匹配中,则将第一报文缓存到第一缓存队列中;将第一缓存队列中的选定报文进行切分;将得到的每个分片报文填入设定矩阵后计算冗余编码,并将得到的各个冗余编码填入设定矩阵中;分别将设定矩阵的各个有效元素封装成携带第一选定隧道报文;按照设定顺序发送各个第一选定隧道报文,以使第一选定隧道的对端网络设备根据各个第一选定隧道报文携带的第一报文队列的标识和在设定矩阵中的位置标识还原第一报文队列;若接收到各个第二隧道报文,则根据各个第二隧道报文携带的第二报文队列的标识和在设定矩阵中的位置标识还原第二报文队列。该方案可以确保业务质量。

Description

报文传输方法及装置
技术领域
本发明涉及通信技术领域,尤指一种报文传输方法及装置。
背景技术
软件定义广域网(Software Defined Wide Area Network,SDWAN)是将软件定义网络(Software Defined Network,SDN)应用到广域网(Wide Area Network,WAN)中的技术,用于连接广阔地理范围的企业网络、数据中心、互联网应用、云服务等等,旨在帮助用户降低WAN的开支、提高网络连接灵活性。
SDWAN包括多个接入网络设备、多个汇聚网络设备和SDN控制器,多个接入网络设备和多个汇聚网络设备之间可以建立隧道,基于隧道传输报文,SDN控制器负责流量控制以确保整个网络正常转发报文。
接入网络设备和汇聚网络设备之间建立隧道后,通过隧道传输报文,由于网络受各种因素的影响,有时会出现丢包的问题,目前,主要是通过重传的机制解决丢包的问题,来确保业务质量,对于普通的业务,例如,浏览网页、查询信息等等,重传的机制可以很好地解决丢包的问题,但是对于实时性要求较高的业务,例如视频、音频等等,重传虽然能够解决丢包的问题,但是不能确保业务质量,会大大影响用户体验。
发明内容
本发明实施例提供一种报文传输方法及装置,用以解决现有技术中存在的不能确保业务质量,会大大影响用户体验的问题。
根据本发明实施例,提供一种报文传输方法,应用于软件定义广域网SDWAN中各个隧道两端的接入网络设备和汇聚网络设备中,所述方法包括:
确定通过选定隧道表中的第一选定隧道接收到的第一报文是否匹配中设定特征表;
若确定所述第一报文匹配中所述设定特征表,则将所述第一报文缓存到所述第一选定隧道的第一缓存队列中;
根据所述第一报文的第一报文长度与所述第一缓存队列除所述第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值、以及所述第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长,将所述第一缓存队列中的选定报文以所述设定报文长度为单位进行切分;
将得到的每个分片报文填入设定矩阵后计算冗余编码,并将得到的各个冗余编码填入所述设定矩阵中;
按照所述第一选定隧道的封装格式分别将所述设定矩阵的各个有效元素封装成携带所述第一报文队列的标识和在所述设定矩阵中的位置标识的第一选定隧道报文;
按照设定顺序发送各个第一选定隧道报文,以使所述第一选定隧道的对端网络设备根据各个第一选定隧道报文携带的所述第一报文队列的标识和在所述设定矩阵中的位置标识还原所述第一报文队列;以及,
若通过第二选定隧道接收到携带第二报文队列的标识和在所述设定矩阵中的位置标识的各个第二隧道报文,则根据各个第二隧道报文携带的所述第二报文队列的标识和在所述设定矩阵中的位置标识还原所述第二报文队列。
具体的,根据所述第一报文的第一报文长度与所述第一缓存队列除所述第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值、以及所述第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长,将所述第一缓存队列中的选定报文以所述设定报文长度为单位进行切分,具体包括:
确定所述第一报文的第一报文长度与所述第一缓存队列除所述第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值,并监控所述第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长;
若确定所述第一总和超过所述第一设定值,则将所述第一报文队列以设定报文长度为单位进行切分;或者,
若确定所述第一缓存时长超过所述设定时长,则将所述第一缓存队列的所有报文以所述设定报文长度为单位进行切分。
具体的,将得到的每个分片报文填入设定矩阵后计算冗余编码,并将得到的各个冗余编码填入所述设定矩阵中,具体包括:
将得到的每个分片报文按照切分顺序填入设定矩阵除最后一行和最后一列之外的各个元素中;
分别对所述设定矩阵中每行的各个分片报文和每列的各个分片报文计算冗余编码;
将得到的各个冗余编码填入所述设定矩阵对应的行或者对应的列的最后一个元素。
可选的,若各个接入网络设备、各个汇聚网络设备分别与所述SDWAN包括的软件定义网络SDN控制器通信连接,还包括:
对于各个接入网络设备,起机后,从所述SDN控制器获取所述设定特征表;或者,
若接收到所述SDN控制器发送的所述第一选定隧道的丢包率达标通知,则将所述第一选定隧道移出所述选定隧道表;或者,
若监控到设置的各个隧道中的第三选定隧道的丢包率超过第二设定值,则确定所述选定隧道表中是否包括所述第三选定隧道,若确定所述选定隧道表中未包括所述第三选定隧道,则将所述第三选定隧道添加到所述选定隧道表中。
可选的,对于各个汇聚网络设备,根据各个第二隧道报文携带的所述第二报文队列的标识和在所述设定矩阵中的位置标识还原所述第二报文队列之后,还包括:
确定所述设定特征表是否包括所述第二报文队列的设定特征,并确定所述选定隧道表是否包括所述第二选定隧道;
若确定所述设定特征表未包括所述第二报文队列的设定特征,则将所述第二报文队列的设定特征添加到所述设定特征表中;
若确定所述选定隧道表未包括所述第二选定隧道,则将所述第二选定隧道添加到所述选定隧道表中。
根据本发明实施例,还提供一种报文传输装置,应用于软件定义广域网SDWAN中各个隧道两端的接入网络设备和汇聚网络设备中,所述装置包括:
确定模块,用于确定通过选定隧道表中的第一选定隧道接收到的第一报文是否匹配中设定特征表;
缓存模块,用于若确定所述第一报文匹配中所述设定特征表,则将所述第一报文缓存到所述第一选定隧道的第一缓存队列中;
切分模块,用于根据所述第一报文的第一报文长度与所述第一缓存队列除所述第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值、以及所述第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长,将所述第一缓存队列中的选定报文以所述设定报文长度为单位进行切分;
计算模块,用于将得到的每个分片报文填入设定矩阵后计算冗余编码,并将得到的各个冗余编码填入所述设定矩阵中;
封装模块,用于按照所述第一选定隧道的封装格式分别将所述设定矩阵的各个有效元素封装成携带所述第一报文队列的标识和在所述设定矩阵中的位置标识的第一选定隧道报文;
发送模块,用于按照设定顺序发送各个第一选定隧道报文,以使所述第一选定隧道的对端网络设备根据各个第一选定隧道报文携带的所述第一报文队列的标识和在所述设定矩阵中的位置标识还原所述第一报文队列;以及,
还原模块,用于若通过第二选定隧道接收到携带第二报文队列的标识和在所述设定矩阵中的位置标识的各个第二隧道报文,则根据各个第二隧道报文携带的所述第二报文队列的标识和在所述设定矩阵中的位置标识还原所述第二报文队列。
具体的,所述切分模块,用于根据所述第一报文的第一报文长度与所述第一缓存队列除所述第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值、以及所述第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长,将所述第一缓存队列中的选定报文以所述设定报文长度为单位进行切分,具体用于:
确定所述第一报文的第一报文长度与所述第一缓存队列除所述第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值,并监控所述第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长;
若确定所述第一总和超过所述第一设定值,则将所述第一报文队列以设定报文长度为单位进行切分;或者,
若确定所述第一缓存时长超过所述设定时长,则将所述第一缓存队列的所有报文以所述设定报文长度为单位进行切分。
具体的,所述计算模块,用于将得到的每个分片报文填入设定矩阵后计算冗余编码,并将得到的各个冗余编码填入所述设定矩阵中,具体用于:
将得到的每个分片报文按照切分顺序填入设定矩阵除最后一行和最后一列之外的各个元素中;
分别对所述设定矩阵中每行的各个分片报文和每列的各个分片报文计算冗余编码;
将得到的各个冗余编码填入所述设定矩阵对应的行或者对应的列的最后一个元素。
可选的,若各个接入网络设备、各个汇聚网络设备分别与所述SDWAN包括的软件定义网络SDN控制器通信连接,还包括第一处理模块,用于:
对于各个接入网络设备,起机后,从所述SDN控制器获取所述设定特征表;或者,
若接收到所述SDN控制器发送的所述第一选定隧道的丢包率达标通知,则将所述第一选定隧道移出所述选定隧道表;或者,
若监控到设置的各个隧道中的第三选定隧道的丢包率超过第二设定值,则确定所述选定隧道表中是否包括所述第三选定隧道,若确定所述选定隧道表中未包括所述第三选定隧道,则将所述第三选定隧道添加到所述选定隧道表中。
可选的,对于各个汇聚网络设备,还包括第二处理模,用于:
在所述还原模块执行根据各个第二隧道报文携带的所述第二报文队列的标识和在所述设定矩阵中的位置标识还原所述第二报文队列之后,确定所述设定特征表是否包括所述第二报文队列的设定特征,并确定所述选定隧道表是否包括所述第二选定隧道;
若确定所述设定特征表未包括所述第二报文队列的设定特征,则将所述第二报文队列的设定特征添加到所述设定特征表中;
若确定所述选定隧道表未包括所述第二选定隧道,则将所述第二选定隧道添加到所述选定隧道表中。
根据本发明实施例,还提供一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存储的程序时,实现上述的方法步骤。
根据本发明实施例,还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法步骤。
本发明有益效果如下:
本发明实施例提供一种报文传输方法及装置,通过确定通过选定隧道表中的第一选定隧道接收到的第一报文是否匹配中设定特征表;若确定所述第一报文匹配中所述设定特征表,则将所述第一报文缓存到所述第一选定隧道的第一缓存队列中;根据所述第一报文的第一报文长度与所述第一缓存队列除所述第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值、以及所述第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长,将所述第一缓存队列中的选定报文以所述设定报文长度为单位进行切分;将得到的每个分片报文填入设定矩阵后计算冗余编码,并将得到的各个冗余编码填入所述设定矩阵中;按照所述第一选定隧道的封装格式分别将所述设定矩阵的各个有效元素封装成携带所述第一报文队列的标识和在所述设定矩阵中的位置标识的第一选定隧道报文;按照设定顺序发送各个第一选定隧道报文,以使所述第一选定隧道的对端网络设备根据各个第一选定隧道报文携带的所述第一报文队列的标识和在所述设定矩阵中的位置标识还原所述第一报文队列;以及,若通过第二选定隧道接收到携带第二报文队列的标识和在所述设定矩阵中的位置标识的各个第二隧道报文,则根据各个第二隧道报文携带的所述第二报文队列的标识和在所述设定矩阵中的位置标识还原所述第二报文队列。该方案中,可以通过将报文进行切分、编码发送的方式,确保隧道的对端网络设备可以还原出发送的报文,即使出现丢包,也可以根据冗余编码还原出原来发送的报文,从而无需进行重传就可以确保对端正确接收到报文,相对于重传的方式,可以确保报文传输的实时性,确保业务质量,大大提升用户体验。
附图说明
图1为本发明实施例中一种报文传输方法的流程图;
图2为本发明实施例中一种报文传输装置的结构示意图;
图3为本申请示出的一种电子设备的结构示意图。
具体实施方式
针对现有技术中存在的不能确保业务质量,会大大影响用户体验的问题,本发明实施例提供一种报文传输方法,应用于SDWAN中各个隧道两端的接入网络设备和汇聚网络设备中,该方法的流程如图1所示,具体执行步骤如下所示:
S11:确定通过选定隧道表中的第一选定隧道接收到的第一报文是否匹配中设定特征表。
通常,各个接入网络设备或者各个汇聚网络设备上会设置至少一个隧道,这样就需要维护选定隧道表,将选定的隧道加入选定隧道表中,其中,选定隧道表中任一个接收到报文的隧道都可以定义为第一选定隧道,该报文可以定义为第一报文;还可以根据实际需要配置设定特征表。
SDWAN中的各个隧道可以但不限于为虚拟专用网络(Virtual Private Network,VPN)隧道。
S12:若确定第一报文匹配中设定特征表,则将第一报文缓存到第一选定隧道的第一缓存队列中。
可以为每个选定隧道设定一个缓存队列,第一选定隧道的缓存队列可以定义为第一缓存队列。
S13:根据第一报文的第一报文长度与第一缓存队列除第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值、以及第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长,将第一缓存队列中的选定报文以设定报文长度为单位进行切分。
由于第一报文是最新加入第一缓存队列的,可以将第一缓存队列中除第一报文之外的报文定义为第一报文队列,第一报文的报文长度可以定义为第一报文长度,第一报文队列的报文长度可以定义为第二报文长度,第一报文长度与第二报文长度的总和可以定义为第一总和,然后将第一总和与第一设定值进行比较;并且,第一缓存队列中的每个报文进入第一缓存队列的缓存时长是不一样的,第一缓存队列中的第一个报文的缓存时长可以定义为第一缓存时长,还可以将第一缓存时长与设定时长进行比较;然后基于上述两个比较结果将第一缓存队列中的部分报文(可以定义为选定报文)以设定报文长度为单位进行切分。
其中,第一设定值、设定时长和设定报文长度可以根据实际需要进行设定。
S14:将得到的每个分片报文填入设定矩阵后计算冗余编码,并将得到的各个冗余编码填入设定矩阵中。
设定矩阵可以但不限于设定为2×2矩阵、3×3矩阵、4×4矩阵等等。
S15:按照第一选定隧道的封装格式分别将设定矩阵的各个有效元素封装成携带第一报文队列的标识和在设定矩阵中的位置标识的第一选定隧道报文。
由于切分以后得到的分片报文的数量和冗余编码的数量的总和可能少于设定矩阵的元素的数量,也就是说经过S14后,设定矩阵的有些元素可能为空,而这些空元素都是无效元素,并且,每个选定隧道都有各自的封装格式,因此,为了节省隧道的带宽资源,只是需要将设定矩阵的各个有效元素分别封装成携带第一报文队列的标识和在设定矩阵中的位置标识的第一选定隧道报文即可,至于空元素则无需发送。
S16:按照设定顺序发送各个第一选定隧道报文,以使第一选定隧道的对端网络设备根据各个第一选定隧道报文携带的第一报文队列的标识和在设定矩阵中的位置标识还原第一报文队列。
设定顺序可以根据实际需要进行设定,例如,可以按照各个第一选定隧道报文对应的设定矩阵中的元素的位置顺序发送,也可以随机进行发送,等等。经试验证明,随机发送可以确保对端网络设备更好地还原报文,即使各个第一选定隧道报文在传输的时候出现连续丢包,由于设定顺序是随机的,丢弃的报文在设定矩阵中的位置并不一定是连续的,从而确保对端网络设备可以正确还原第一报文队列。
S17:若通过第二选定隧道接收到携带第二报文队列的标识和在设定矩阵中的位置标识的各个第二隧道报文,则根据各个第二隧道报文携带的第二报文队列的标识和在设定矩阵中的位置标识还原第二报文队列。
第二选定隧道与第一选定隧道可以相同也可以不同,第二报文队列与第一报文队列是不同的。
需要说明的是,S11-S16与S17并没有严格的先后顺序,只是为了便于标记不同的步骤,可能先执行S11-S16再执行S17,也可能先执行S17再执行S11-S16,当然也可能同时执行S11-S16与S17。
该方案中,可以通过将报文进行切分、编码发送的方式,确保隧道的对端网络设备可以还原出发送的报文,即使出现丢包,也可以根据冗余编码还原出原来发送的报文,从而无需进行重传就可以确保对端正确接收到报文,相对于重传的方式,可以确保报文传输的实时性,确保业务质量,大大提升用户体验。
具体的,上述S13中的根据第一报文的第一报文长度与第一缓存队列除第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值、以及第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长,将第一缓存队列中的选定报文以设定报文长度为单位进行切分,实现过程具体包括:
确定第一报文的第一报文长度与第一缓存队列除第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值,并监控第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长;
若确定第一总和超过第一设定值,则将第一报文队列以设定报文长度为单位进行切分;或者,
若确定第一缓存时长超过设定时长,则将第一缓存队列的所有报文以设定报文长度为单位进行切分。
在根据第一报文的第一报文长度与第一缓存队列除第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值、以及第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长,将第一缓存队列中的选定报文以设定报文长度为单位进行切分时,可以同时确定第一报文的第一报文长度与第一缓存队列除第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值、并监控第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长,只要有一个条件满足,即第一总和超过第一设定值或者第一缓存时长超过设定时长,就可以对选定报文进行切分,只是两者情况下切分的报文不同:若确定第一总和超过第一设定值,则将第一报文队列以设定报文长度为单位进行切分;或若确定第一缓存时长超过设定时长,则将第一缓存队列的所有报文以设定报文长度为单位进行切分。
具体的,上述S14中的将得到的每个分片报文填入设定矩阵后计算冗余编码,并将得到的各个冗余编码填入设定矩阵中,实现过程具体包括:
将得到的每个分片报文按照切分顺序填入设定矩阵除最后一行和最后一列之外的各个元素中;
分别对设定矩阵中每行的各个分片报文和每列的各个分片报文计算冗余编码;
将得到的各个冗余编码填入设定矩阵对应的行或者对应的列的最后一个元素。
在将得到的每个分片报文填入设定矩阵后计算冗余编码,并将得到的各个冗余编码填入设定矩阵中时,具体可以将得到的每个分片报文按照切分顺序填入设定矩阵除最后一行和最后一列之外的各个元素中,然后分别对设定矩阵中每行的各个分片报文和每列的各个分片报文计算冗余编码,最后将得到的各个冗余编码填入设定矩阵对应的行或者对应的列的最后一个元素,这样就可以填满整个设定矩阵。当然这里仅仅是列举了一种方式进行说明,还有很多其他的方式,例如,可以将得到的每个分片报文按照切分顺序填入设定矩阵除第一行和第一列之外的各个元素中,然后分别对设定矩阵中每行的各个分片报文和每列的各个分片报文计算冗余编码,最后将得到的各个冗余编码填入设定矩阵对应的行或者对应的列的第一个元素,也可以实现将得到的每个分片报文填入设定矩阵后计算冗余编码,并将得到的各个冗余编码填入设定矩阵中,其他各种可能的实现方式不再一一赘述。
其中,冗余编码可以但不限于采用异或编码。
可选的,若各个接入网络设备、各个汇聚网络设备分别与SDWAN包括的SDN控制器通信连接,上述还包括:
对于各个接入网络设备,起机后,从SDN控制器获取设定特征表;或者,
若接收到SDN控制器发送的第一选定隧道的丢包率达标通知,则将第一选定隧道移出选定隧道表;或者,
若监控到设置的各个隧道中的第三选定隧道的丢包率超过第二设定值,则确定选定隧道表中是否包括第三选定隧道,若确定选定隧道表中未包括第三选定隧道,则将第三选定隧道添加到选定隧道表中。
对于各个接入网络设备来说,可以去监控设置的各个隧道的丢包率,若各个隧道中的选定隧道(可以定义为第三选定隧道)的丢包率超过第二设定值,也就是说第三选定隧道丢包太多了,则需要将第三选定隧道添加到选定隧道表中,由于选定隧道表可能已包括第三选定隧道,因此,首先需要确定选定隧道表中是否包括第三选定隧道,若确定选定隧道表中未包括第三选定隧道,则将第三选定隧道添加到选定隧道表中。其中,第二设定值可以根据实际需要进行设定。
虽然接入网络设备可以监控各个隧道的丢包率,由于发送冗余编码的方式会消耗隧道的带宽资源,因此,在必要的时候可以停止某些隧道采用冗余编码的方式传输报文,具体可以由SDN控制器来监控各个隧道的丢包率,若监控到第一选定隧道的丢包率达标后,可以但不限于监控到丢包率小于第二设定值,也就是说第一选定隧道的丢包少了,可以向对应的接入网络设备发送第一选定隧道的丢包率达标通知,接入网络设备接收到该丢包率达标通知后,将第一选定隧道移出选定隧道表,后续就不会对第一选定隧道的报文进行上述方式的传输了。
接入网络设备可以但不限于起机后,从SDN控制器获取设定特征表。
可选的,对于各个汇聚网络设备,上述S17中的根据各个第二隧道报文携带的第二报文队列的标识和在设定矩阵中的位置标识还原第二报文队列之后,上述还包括:
确定设定特征表是否包括第二报文队列的设定特征,并确定选定隧道表是否包括第二选定隧道;
若确定设定特征表未包括第二报文队列的设定特征,则将第二报文队列的设定特征添加到设定特征表中;
若确定选定隧道表未包括第二选定隧道,则将第二选定隧道添加到选定隧道表中。
对于汇聚网络设备,没有必要从SDN控制器获取设定特征表,可以通过学习的方式来建立,具体在根据各个第二隧道报文携带的第二报文队列的标识和在设定矩阵中的位置标识还原第二报文队列之后,确定设定特征表是否包括第二报文队列的设定特征,并确定选定隧道表是否包括第二选定隧道,若确定设定特征表未包括第二报文队列的设定特征,则将第二报文队列的设定特征添加到设定特征表中,若确定选定隧道表未包括第二选定隧道,则将第二选定隧道添加到选定隧道表中,也就是说,汇聚网络设备只是对于接收到的采用冗余编码方式传输的报文进行回复时才会继续采用冗余编码的方式传输报文。
基于同一发明构思,本发明实施例提供一种报文传输装置,应用于SDWAN中各个隧道两端的接入网络设备和汇聚网络设备中,该装置的结构如图2所示,包括:
确定模块21,用于确定通过选定隧道表中的第一选定隧道接收到的第一报文是否匹配中设定特征表;
缓存模块22,用于若确定第一报文匹配中设定特征表,则将第一报文缓存到第一选定隧道的第一缓存队列中;
切分模块23,用于根据第一报文的第一报文长度与第一缓存队列除第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值、以及第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长,将第一缓存队列中的选定报文以设定报文长度为单位进行切分;
计算模块24,用于将得到的每个分片报文填入设定矩阵后计算冗余编码,并将得到的各个冗余编码填入设定矩阵中;
封装模块25,用于按照第一选定隧道的封装格式分别将设定矩阵的各个有效元素封装成携带第一报文队列的标识和在设定矩阵中的位置标识的第一选定隧道报文;
发送模块26,用于按照设定顺序发送各个第一选定隧道报文,以使第一选定隧道的对端网络设备根据各个第一选定隧道报文携带的第一报文队列的标识和在设定矩阵中的位置标识还原第一报文队列;以及,
还原模块27,用于若通过第二选定隧道接收到携带第二报文队列的标识和在设定矩阵中的位置标识的各个第二隧道报文,则根据各个第二隧道报文携带的第二报文队列的标识和在设定矩阵中的位置标识还原第二报文队列。
该方案中,可以通过将报文进行切分、编码发送的方式,确保隧道的对端网络设备可以还原出发送的报文,即使出现丢包,也可以根据冗余编码还原出原来发送的报文,从而无需进行重传就可以确保对端正确接收到报文,相对于重传的方式,可以确保报文传输的实时性,确保业务质量,大大提升用户体验。
具体的,切分模块23,用于根据第一报文的第一报文长度与第一缓存队列除第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值、以及第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长,将第一缓存队列中的选定报文以设定报文长度为单位进行切分,具体用于:
确定第一报文的第一报文长度与第一缓存队列除第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值,并监控第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长;
若确定第一总和超过第一设定值,则将第一报文队列以设定报文长度为单位进行切分;或者,
若确定第一缓存时长超过设定时长,则将第一缓存队列的所有报文以设定报文长度为单位进行切分。
具体的,计算模块24,用于将得到的每个分片报文填入设定矩阵后计算冗余编码,并将得到的各个冗余编码填入设定矩阵中,具体用于:
将得到的每个分片报文按照切分顺序填入设定矩阵除最后一行和最后一列之外的各个元素中;
分别对设定矩阵中每行的各个分片报文和每列的各个分片报文计算冗余编码;
将得到的各个冗余编码填入设定矩阵对应的行或者对应的列的最后一个元素。
可选的,若各个接入网络设备、各个汇聚网络设备分别与SDWAN包括的软件定义网络SDN控制器通信连接,还包括第一处理模块,用于:
对于各个接入网络设备,起机后,从SDN控制器获取设定特征表;或者,
若接收到SDN控制器发送的第一选定隧道的丢包率达标通知,则将第一选定隧道移出选定隧道表;或者,
若监控到设置的各个隧道中的第三选定隧道的丢包率超过第二设定值,则确定选定隧道表中是否包括第三选定隧道,若确定选定隧道表中未包括第三选定隧道,则将第三选定隧道添加到选定隧道表中。
可选的,对于各个汇聚网络设备,还包括第二处理模,用于:
在所述还原模块执行根据各个第二隧道报文携带的第二报文队列的标识和在设定矩阵中的位置标识还原第二报文队列之后,确定设定特征表是否包括第二报文队列的设定特征,并确定选定隧道表是否包括第二选定隧道;
若确定设定特征表未包括第二报文队列的设定特征,则将第二报文队列的设定特征添加到设定特征表中;
若确定选定隧道表未包括第二选定隧道,则将第二选定隧道添加到选定隧道表中。
本申请实施例还提供了一种电子设备,请参见图3所示,包括处理器310、通信接口320、存储器330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。
存储器330,用于存放计算机程序;
处理器310,用于执行存储器330上所存放的程序时,实现上述实施例中任一所述的报文传输方法。
通信接口320用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
该方案中,可以通过将报文进行切分、编码发送的方式,确保隧道的对端网络设备可以还原出发送的报文,即使出现丢包,也可以根据冗余编码还原出原来发送的报文,从而无需进行重传就可以确保对端正确接收到报文,相对于重传的方式,可以确保报文传输的实时性,确保业务质量,大大提升用户体验。
相应地,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的报文传输方法。
该方案中,可以通过将报文进行切分、编码发送的方式,确保隧道的对端网络设备可以还原出发送的报文,即使出现丢包,也可以根据冗余编码还原出原来发送的报文,从而无需进行重传就可以确保对端正确接收到报文,相对于重传的方式,可以确保报文传输的实时性,确保业务质量,大大提升用户体验。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (12)

1.一种报文传输方法,应用于软件定义广域网SDWAN中各个隧道两端的接入网络设备和汇聚网络设备中,其特征在于,所述方法包括:
确定通过选定隧道表中的第一选定隧道接收到的第一报文是否匹配中设定特征表;
若确定所述第一报文匹配中所述设定特征表,则将所述第一报文缓存到所述第一选定隧道的第一缓存队列中;
根据所述第一报文的第一报文长度与所述第一缓存队列除所述第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值、以及所述第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长,将所述第一缓存队列中的选定报文以设定报文长度为单位进行切分;
将得到的每个分片报文填入设定矩阵后计算冗余编码,并将得到的各个冗余编码填入所述设定矩阵中;
按照所述第一选定隧道的封装格式分别将所述设定矩阵的各个有效元素封装成携带所述第一报文队列的标识和在所述设定矩阵中的位置标识的第一选定隧道报文;
按照设定顺序发送各个第一选定隧道报文,以使所述第一选定隧道的对端网络设备根据各个第一选定隧道报文携带的所述第一报文队列的标识和在所述设定矩阵中的位置标识还原所述第一报文队列;以及,
若通过第二选定隧道接收到携带第二报文队列的标识和在所述设定矩阵中的位置标识的各个第二隧道报文,则根据各个第二隧道报文携带的所述第二报文队列的标识和在所述设定矩阵中的位置标识还原所述第二报文队列。
2.如权利要求1所述的方法,其特征在于,根据所述第一报文的第一报文长度与所述第一缓存队列除所述第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值、以及所述第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长,将所述第一缓存队列中的选定报文以所述设定报文长度为单位进行切分,具体包括:
确定所述第一报文的第一报文长度与所述第一缓存队列除所述第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值,并监控所述第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长;
若确定所述第一总和超过所述第一设定值,则将所述第一报文队列以设定报文长度为单位进行切分;或者,
若确定所述第一缓存时长超过所述设定时长,则将所述第一缓存队列的所有报文以所述设定报文长度为单位进行切分。
3.如权利要求1所述的方法,其特征在于,将得到的每个分片报文填入设定矩阵后计算冗余编码,并将得到的各个冗余编码填入所述设定矩阵中,具体包括:
将得到的每个分片报文按照切分顺序填入设定矩阵除最后一行和最后一列之外的各个元素中;
分别对所述设定矩阵中每行的各个分片报文和每列的各个分片报文计算冗余编码;
将得到的各个冗余编码填入所述设定矩阵对应的行或者对应的列的最后一个元素。
4.如权利要求1所述的方法,其特征在于,若各个接入网络设备、各个汇聚网络设备分别与所述SDWAN包括的软件定义网络SDN控制器通信连接,还包括:
对于各个接入网络设备,起机后,从所述SDN控制器获取所述设定特征表;或者,
若接收到所述SDN控制器发送的所述第一选定隧道的丢包率达标通知,则将所述第一选定隧道移出所述选定隧道表;或者,
若监控到设置的各个隧道中的第三选定隧道的丢包率超过第二设定值,则确定所述选定隧道表中是否包括所述第三选定隧道,若确定所述选定隧道表中未包括所述第三选定隧道,则将所述第三选定隧道添加到所述选定隧道表中。
5.如权利要求1-4任一所述的方法,其特征在于,对于各个汇聚网络设备,根据各个第二隧道报文携带的所述第二报文队列的标识和在所述设定矩阵中的位置标识还原所述第二报文队列之后,还包括:
确定所述设定特征表是否包括所述第二报文队列的设定特征,并确定所述选定隧道表是否包括所述第二选定隧道;
若确定所述设定特征表未包括所述第二报文队列的设定特征,则将所述第二报文队列的设定特征添加到所述设定特征表中;
若确定所述选定隧道表未包括所述第二选定隧道,则将所述第二选定隧道添加到所述选定隧道表中。
6.一种报文传输装置,应用于软件定义广域网SDWAN中各个隧道两端的接入网络设备和汇聚网络设备中,其特征在于,所述装置包括:
确定模块,用于确定通过选定隧道表中的第一选定隧道接收到的第一报文是否匹配中设定特征表;
缓存模块,用于若确定所述第一报文匹配中所述设定特征表,则将所述第一报文缓存到所述第一选定隧道的第一缓存队列中;
切分模块,用于根据所述第一报文的第一报文长度与所述第一缓存队列除所述第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值、以及所述第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长,将所述第一缓存队列中的选定报文以设定报文长度为单位进行切分;
计算模块,用于将得到的每个分片报文填入设定矩阵后计算冗余编码,并将得到的各个冗余编码填入所述设定矩阵中;
封装模块,用于按照所述第一选定隧道的封装格式分别将所述设定矩阵的各个有效元素封装成携带所述第一报文队列的标识和在所述设定矩阵中的位置标识的第一选定隧道报文;
发送模块,用于按照设定顺序发送各个第一选定隧道报文,以使所述第一选定隧道的对端网络设备根据各个第一选定隧道报文携带的所述第一报文队列的标识和在所述设定矩阵中的位置标识还原所述第一报文队列;以及,
还原模块,用于若通过第二选定隧道接收到携带第二报文队列的标识和在所述设定矩阵中的位置标识的各个第二隧道报文,则根据各个第二隧道报文携带的所述第二报文队列的标识和在所述设定矩阵中的位置标识还原所述第二报文队列。
7.如权利要求6所述的装置,其特征在于,所述切分模块,用于根据所述第一报文的第一报文长度与所述第一缓存队列除所述第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值、以及所述第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长,将所述第一缓存队列中的选定报文以所述设定报文长度为单位进行切分,具体用于:
确定所述第一报文的第一报文长度与所述第一缓存队列除所述第一报文之外的第一报文队列的第二报文长度的第一总和是否超过第一设定值,并监控所述第一缓存队列中的第一个报文的第一缓存时长是否超过设定时长;
若确定所述第一总和超过所述第一设定值,则将所述第一报文队列以设定报文长度为单位进行切分;或者,
若确定所述第一缓存时长超过所述设定时长,则将所述第一缓存队列的所有报文以所述设定报文长度为单位进行切分。
8.如权利要求6所述的装置,其特征在于,所述计算模块,用于将得到的每个分片报文填入设定矩阵后计算冗余编码,并将得到的各个冗余编码填入所述设定矩阵中,具体用于:
将得到的每个分片报文按照切分顺序填入设定矩阵除最后一行和最后一列之外的各个元素中;
分别对所述设定矩阵中每行的各个分片报文和每列的各个分片报文计算冗余编码;
将得到的各个冗余编码填入所述设定矩阵对应的行或者对应的列的最后一个元素。
9.如权利要求6所述的装置,其特征在于,若各个接入网络设备、各个汇聚网络设备分别与所述SDWAN包括的软件定义网络SDN控制器通信连接,还包括第一处理模块,用于:
对于各个接入网络设备,起机后,从所述SDN控制器获取所述设定特征表;或者,
若接收到所述SDN控制器发送的所述第一选定隧道的丢包率达标通知,则将所述第一选定隧道移出所述选定隧道表;或者,
若监控到设置的各个隧道中的第三选定隧道的丢包率超过第二设定值,则确定所述选定隧道表中是否包括所述第三选定隧道,若确定所述选定隧道表中未包括所述第三选定隧道,则将所述第三选定隧道添加到所述选定隧道表中。
10.如权利要求6-9任一所述的装置,其特征在于,对于各个汇聚网络设备,还包括第二处理模,用于:
在所述还原模块执行根据各个第二隧道报文携带的所述第二报文队列的标识和在所述设定矩阵中的位置标识还原所述第二报文队列之后,确定所述设定特征表是否包括所述第二报文队列的设定特征,并确定所述选定隧道表是否包括所述第二选定隧道;
若确定所述设定特征表未包括所述第二报文队列的设定特征,则将所述第二报文队列的设定特征添加到所述设定特征表中;
若确定所述选定隧道表未包括所述第二选定隧道,则将所述第二选定隧道添加到所述选定隧道表中。
11.一种电子设备,其特征在于,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存储的程序时,实现权利要求1-5任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
CN202210015958.2A 2022-01-07 2022-01-07 报文传输方法及装置 Active CN114465694B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210015958.2A CN114465694B (zh) 2022-01-07 2022-01-07 报文传输方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210015958.2A CN114465694B (zh) 2022-01-07 2022-01-07 报文传输方法及装置

Publications (2)

Publication Number Publication Date
CN114465694A CN114465694A (zh) 2022-05-10
CN114465694B true CN114465694B (zh) 2024-02-23

Family

ID=81410306

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210015958.2A Active CN114465694B (zh) 2022-01-07 2022-01-07 报文传输方法及装置

Country Status (1)

Country Link
CN (1) CN114465694B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252444A (zh) * 2008-04-03 2008-08-27 华为技术有限公司 报文特征的检测方法及装置
US7760636B1 (en) * 2004-01-26 2010-07-20 Cisco Technology, Inc. Retransmission and flow control in a logical network tunnel
CN101789908A (zh) * 2010-03-04 2010-07-28 成都市华为赛门铁克科技有限公司 分片报文接收处理方法及装置
CN102917076A (zh) * 2012-11-16 2013-02-06 网宿科技股份有限公司 基于冗余编码的http报文传输、发送和接收方法
CN103401775A (zh) * 2013-07-18 2013-11-20 杭州华为数字技术有限公司 源报文转换装置及其报文转换方法、目标报文转换装置及其报文转换方法
CN109618020A (zh) * 2018-12-25 2019-04-12 北京物芯科技有限责任公司 一种分片报文的网络地址转换方法及装置
CN110764709A (zh) * 2019-10-28 2020-02-07 锐捷网络股份有限公司 报文的处理方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7760636B1 (en) * 2004-01-26 2010-07-20 Cisco Technology, Inc. Retransmission and flow control in a logical network tunnel
CN101252444A (zh) * 2008-04-03 2008-08-27 华为技术有限公司 报文特征的检测方法及装置
CN101789908A (zh) * 2010-03-04 2010-07-28 成都市华为赛门铁克科技有限公司 分片报文接收处理方法及装置
CN102917076A (zh) * 2012-11-16 2013-02-06 网宿科技股份有限公司 基于冗余编码的http报文传输、发送和接收方法
CN103401775A (zh) * 2013-07-18 2013-11-20 杭州华为数字技术有限公司 源报文转换装置及其报文转换方法、目标报文转换装置及其报文转换方法
CN109618020A (zh) * 2018-12-25 2019-04-12 北京物芯科技有限责任公司 一种分片报文的网络地址转换方法及装置
CN110764709A (zh) * 2019-10-28 2020-02-07 锐捷网络股份有限公司 报文的处理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种基于自适应缓存机制的报文分类算法;张建宇;韦韬;邹维;;计算机研究与发展(第02期);全文 *

Also Published As

Publication number Publication date
CN114465694A (zh) 2022-05-10

Similar Documents

Publication Publication Date Title
CN108965484B (zh) 一种物联网数据的传输方法、系统及终端
CN106850402B (zh) 消息的传输方法和装置
US10817460B2 (en) RDMA data sending and receiving methods, electronic device, and readable storage medium
CN111263402B (zh) 数据传输方法、装置及电子设备
CN103971687A (zh) 一种语音识别系统中的负载均衡实现方法和装置
CN109379764B (zh) 报文发送方法及装置
CN114401208B (zh) 数据传输方法、装置、电子设备和存储介质
CN109120385B (zh) 一种基于数据传输系统的数据传输方法、装置及系统
EP3672189B1 (en) Data transmission method, device and system
CN114465694B (zh) 报文传输方法及装置
US10171548B2 (en) Method and system for efficient enrichment of upper layer protocol content in transmission control program (TCP) based sessions
WO2021036189A1 (zh) Rdma数据发送及接收方法、电子设备及可读存储介质
CN114157716B (zh) 基于区块链的数据处理方法、装置和电子设备
CN110460486A (zh) 服务节点的监控方法及系统
CN104796735B (zh) 一种视频数据传输方法及装置
CN114915656B (zh) 一种车联网终端接入方法、装置、存储介质及电子设备
CN113259689A (zh) 一种分布式视频存储方法、装置及电子设备
US20230105937A1 (en) Systems and methods for seamless reset for seamless redundancy of tsn/detnet
CN111865884B (zh) 一种报文处理方法、装置及设备
CN114142968A (zh) 一种数据包传输方法、装置、终端设备和存储介质
CN112564856A (zh) 报文处理方法、装置以及计算机可读存储介质
CN110876164A (zh) 一种触发轮询的参数的设置方法、装置及计算机可读存储介质
CN113411266B (zh) 基于隔离装置的云数据传输方法及系统、终端、存储介质
CN115484004B (zh) 报错报文重试方法、装置、电子设备及存储介质
CN116527202A (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