CN114666259A - 报文传输的方法、装置、设备、存储介质及系统 - Google Patents
报文传输的方法、装置、设备、存储介质及系统 Download PDFInfo
- Publication number
- CN114666259A CN114666259A CN202110221894.7A CN202110221894A CN114666259A CN 114666259 A CN114666259 A CN 114666259A CN 202110221894 A CN202110221894 A CN 202110221894A CN 114666259 A CN114666259 A CN 114666259A
- Authority
- CN
- China
- Prior art keywords
- message
- node information
- packet
- node
- list
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 291
- 238000000034 method Methods 0.000 title claims abstract description 245
- 238000012545 processing Methods 0.000 claims abstract description 109
- 230000008569 process Effects 0.000 claims description 104
- 230000006870 function Effects 0.000 claims description 72
- 238000004590 computer program Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 30
- 238000004891 communication Methods 0.000 description 25
- 230000006835 compression Effects 0.000 description 15
- 238000007906 compression Methods 0.000 description 15
- 230000010076 replication Effects 0.000 description 15
- 150000001875 compounds Chemical class 0.000 description 13
- 230000003287 optical effect Effects 0.000 description 10
- 101100064323 Arabidopsis thaliana DTX47 gene Proteins 0.000 description 6
- 101000840469 Arabidopsis thaliana Isochorismate synthase 1, chloroplastic Proteins 0.000 description 6
- 101150026676 SID1 gene Proteins 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 101100256921 Ajellomyces capsulatus SID3 gene Proteins 0.000 description 4
- 101100366400 Schizosaccharomyces pombe (strain 972 / ATCC 24843) spg1 gene Proteins 0.000 description 4
- 239000002131 composite material Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 101150096768 sid4 gene Proteins 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 101100365746 Caenorhabditis elegans sid-5 gene Proteins 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了报文传输的方法、装置、设备、存储介质及系统。第一设备获取第一报文,通过第一报文中的目的地址字段携带的第一部分,从第一报文的节点信息列表中确定第二设备的节点信息和第三设备的节点信息;第一设备基于第一报文生成包含第二设备节点信息的第二报文和包含第三设备节点信息的第三报文;第一设备向第二设备发送第二报文,向第三设备发送第三报文。本申请通过第一报文的第一部分,在传输报文时能够高效定位接收并处理报文的下一个设备,降低报文传输过程的开销。
Description
本申请要求于2020年12月22日提交的申请号为202011528118.3、发明名称为“发送报文的方法、设备和系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,特别涉及报文传输的方法、装置、设备、存储介质及系统。
背景技术
在通信网络中,通信设备以传输报文的方式来传输信息。随着通信技术的发展,通信设备之间传输报文的方式越来越多。以基于分段路由的第六版互联网协议(segmentrouting over internet protocol version 6,SRv6)场景传输报文为例,SRv6报文是在IPv6报文中插入分段路由扩展头(segment routing header,SRH),通过段列表(segmentlist)实现报文在报文传输路径中传输。例如,在组播技术中对SRH的段标识(segmentidentifier,SID)进行扩展,定义组播树的分叉数量和子树段标识数量,用于定位下一节点的SID在段列表中的位置,同时在报文复制之后移除其他节点的SID以及其他节点的子树SID,从而进行报文在报文传输路径中的传输。
然而,由于该方法提供的段列表将复制节点对应的SID和该复制节点复制后子树对应的SID排列在一起进行嵌套编码,导致编码结构复杂,且每一个节点复制报文之后都需对SID进行处理,使得报文的传输过程开销过大,传输效率过低。
发明内容
本申请提出一种报文传输的方法、装置、设备、存储介质及系统,用于降低报文在传输过程中的开销,提高传输效率。
第一方面,提供了一种报文传输的方法,以第一设备执行该方法为例对该方法进行介绍。第一设备获取携带目的地址字段和节点信息列表的第一报文,其中,节点信息列表包括第二设备的节点信息和第三设备的节点信息。第二设备和第三设备为第一报文的传输路径上的设备,可以是第一设备的下一跳设备,也可以不是第一设备的下一跳设备。例如,第一报文为SRv6报文,节点信息列表为段列表,第二设备的节点信息为第二设备的SID,第三设备的节点信息为第三设备的SID。目的地址字段包括第一部分,第一部分用于标识第二设备的节点信息和第三设备的节点信息在节点信息列表中的位置。同样以第一报文为SRv6报文为例,第一部分可以通过在SID的参数(argument,Args)字段中定义指针(pointer)实现,即第一部分为pointer。第一设备根据第一部分从节点信息列表中确定第二设备的节点信息和第三设备的节点信息。基于第一报文生成第二报文和第三报文,第二报文包含第二设备的节点信息,第三报文包含第三设备的节点信息。第一设备向第二设备发送该第二报文,向第三设备发送该第三报文。
该技术方案提供的报文传输的方法中,第一设备能够通过第一报文携带的第一部分和节点信息列表快速地定位下一个处理报文的设备,根据第一报文生成下一个处理报文的设备所需要接收的报文并传输该报文,减少了报文传输过程的开销,提高了报文传输的效率。
在一中可能的实现方式中,节点信息列表可以包括第一设备的节点信息,也可以不包括第一设备的节点信息。针对节点信息列表仅包括第一报文的传输路径上位于第一设备之后且对报文进行处理的设备的节点信息的情况,可使得节点信息列表所占空间减少,报文的传输效率也会提高。
在一种可能的实现方式中,所述第一部分指示所述第二设备的节点信息在所述节点信息列表中的位置为起始位置,所述第三设备的节点信息在所述节点信息列表中的位置为结束位置;或者,所述第一部分指示所述第二设备的节点信息在所述节点信息列表中的位置为起始位置以及所述第三设备在所述节点信息列表中的位置相对于所述第二设备在所述节点信息列表中的位置的偏移量。第一部分标识第二设备的节点信息和第三设备的节点信息在节点信息列表中的位置的方式比较灵活,通过第一部分和节点信息列表指示的信息,第一设备可以获得下一个处理报文的设备的数量以及下一个处理报文的设备的位置。
在一种可能的实现方式中,所述第一设备基于所述第一报文生成第二报文的方式包括:第一设备基于第一部分复制第一报文获得第四报文。第一设备将第二设备的节点信息添加到第四报文获得第二报文。由此,第二报文携带第二设备的节点信息,能够指示第二设备接收并处理报文。
在一种可能的实现方式中,第一设备为第一报文的传输路径上的入口节点。第一设备获取第一报文的方式包括:第一设备接收第五报文,并在第五报文的目的地址字段添加第一部分、第二部分,得到第一报文,其中,第二部分标识第一设备的地址。通过第二部分标识第一设备的地址,能够指示第一设备对第一报文进行处理。
在一种可能的实现方式中,第一设备为第一报文的传输路径上的中间节点。目的地址字段还包括第二部分,在所述第一设备基于所述第一报文生成第二报文和第三报文之前,还包括:所述第一设备确定所述第二部分与所述第一设备的地址匹配。通过确定第二部分与第一设备的地址匹配,从而使得第一设备对该第一报文进行处理。
在一种可能的实现方式中,第一报文为SRv6报文,节点信息列表携带在所述SRv6报文的分段路由头SRH中,节点信息列表为所述SRH的段列表;或者,第一报文为IPv6报文,节点信息列表携带在IPv6报文的路由头RH中,节点信息列表为所述RH的段列表;或者,第一报文为IPv6报文,节点信息列表携带在IPv6报文的目的选项头DOH中,节点信息列表为所述DOH的地址列表。该方法能够适用于多种类型的报文,使得该申请提供的报文传输的方法的应用场景范围更广。
在一种可能的实现方式中,第一报文、第二报文和第三报文中还携带第一标识,第一标识用于指示当前处理报文的设备的节点信息在所述节点信息列表中的位置。
在一种可能的实现方式中,第一报文还携带叶子标识,叶子标识用于指示第一设备为叶子节点。第一设备获取第一报文之后,第一设备基于叶子标识和第一部分,对复制的获得的第一报文进行解封装等处理操作。
在一种可能的实现方式中,节点信息列表携带所述叶子标识。可选地,叶子标识的长度至少为1比特。
在一种可能的实现方式中,第二部分包括公共前缀和节点标识,公共前缀包括对报文进行处理的设备的节点信息中的节点地址的相同部分,节点标识指示对报文进行处理的设备的节点信息中的节点地址的不同部分。由此报文的体积被减小,进一步提高了报文的传输效率。
在一种可能的实现方式中,节点信息列表包括段列表,段列表中的一个或多个段标识不包含公共前缀。
在一种可能的实现方式中,当节点信息列表包括段列表,则段列表中所述一个或多个段标识中的任一段标识的长度小于128比特。
在一种可能的实现方式中,公共前缀还包括功能标识,功能标识用于指示所述设备所要执行的功能。
第二方面,提供了一种报文传输的装置,所述装置应用于第一设备,所述装置包括:获取模块和发送模块。获取模块用于获取第一报文,第一报文携带目的地址字段和节点信息列表,节点信息列表包括第二设备的节点信息和第三设备的节点信息,目的地址字段包括第一部分;根据第一部分从节点信息列表中确定第二设备的节点信息和第三设备的节点信息,所述第一部分用于标识所述第二设备的节点信息和所述第三设备的节点信息在所述节点信息列表中的位置;获取模块还用于基于所述第一报文生成第二报文和第三报文,所述第二报文包含所述第二设备的节点信息,所述第三报文包含所述第三设备的节点信息;发送模块用于向所述第二设备发送所述第二报文,向所述第三设备发送所述第三报文。
在一种可能的实现方式中,第一部分指示所述第二设备的节点信息在所述节点信息列表中的位置为起始位置,所述第三设备的节点信息在所述节点信息列表中的位置为结束位置;或者,第一部分指示所述第二设备的节点信息在所述节点信息列表中的位置为起始位置以及所述第三设备在所述节点信息列表中的位置相对于所述第二设备在所述节点信息列表中的位置的偏移量。
在一种可能的实现方式中,获取模块用于基于第一部分复制第一报文获得第四报文;将第二设备的节点信息添加到第四报文获得第二报文。
在一种可能的实现方式中,第一设备为第一报文的传输路径上的入口节点。获取模块用于接收第五报文,在第五报文的目的地址字段添加第一部分、第二部分,得到所述第一报文,第二部分标识第一设备的地址。
在一种可能的实现方式中,第一设备为第一报文的传输路径上的中间节点,目的地址字段还包括第二部分,所述装置还包括确定模块。确定模块用于在获取模块用于基于第一报文生成第二报文和第三报文之前,确定第二部分与第一设备的地址匹配。
在一种可能的实现方式中,第一报文为SRv6报文,节点信息列表携带在SRv6报文的分段路由头SRH中,节点信息列表为SRH的段列表;或者,第一报文为IPv6报文,节点信息列表携带在IPv6报文的路由头RH中,节点信息列表为RH的段列表;或者,第一报文为IPv6报文,节点信息列表携带在IPv6报文的目的选项头DOH中,节点信息列表为所述DOH的地址列表。
在一种可能的实现方式中,第一报文、第二报文和第三报文中还携带第一标识,第一标识用于指示当前处理报文的设备的节点信息在节点信息列表中的位置。
在一种可能的实现方式中,第一报文还携带叶子标识,叶子标识用于指示第一设备为叶子节点。所述装置还包括解封装模块。该解封装模块用于在获取模块获取第一报文之后,基于叶子标识和第一部分,对复制的获得的第一报文进行解封装。
在一种可能的实现方式中,节点信息列表携带叶子标识。可选地,叶子标识的长度至少为1比特。
在一种可能的实现方式中,第二部分包括公共前缀和节点标识,公共前缀包括对报文进行处理的设备的节点信息中的节点地址的相同部分,节点标识指示对报文进行处理的设备的节点信息中的节点地址的不同部分。
在一种可能的实现方式中,节点信息列表包括段列表,段列表中的一个或多个段标识不包含所述公共前缀。
在一种可能的实现方式中,所述一个或多个段标识中的任一段标识的长度小于128比特。
在一种可能的实现方式中,公共前缀还包括功能标识,功能标识用于指示设备所要执行的功能。
第三方面,提供了一种报文传输设备,包括处理器,处理器与存储器耦合,存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以使报文传输设备实现如上第一方面或第一方面的任一种可能的实施方式中的报文传输的方法。
第四方面,提供了一种计算机可读存储介质,其上存储有至少一条指令,所述指令由处理器加载并执行,以使得计算机实现如上第一方面或第一方面任一种可能实现方式的报文传输的方法。
第五方面,提供了一种计算机程序产品,包括计算机程序,计算机程序被计算机执行时,实现如上第一方面或第一方面任一种可能实现方式的报文传输的方法。
第六方面,提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第一方面或第一方面的任一种可能的实施方式中的报文传输的方法。
作为一种示例性实施例,处理器为一个或多个,存储器为一个或多个。
作为一种示例性实施例,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如,只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
第七方面,提供了一种芯片,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行上述第一方面或第一方面的任一种可能的实施方式中的报文传输的方法。
第八方面,提供了另一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行上述第一方面或第一方面的任一种可能的实施方式中的报文传输的方法。
第九方面,提供了一种报文传输系统,所述报文传输系统包括第一设备、第二设备和第三设备,所述第一设备执行上述第一方面或第一方面的任一种可能的实施方式中的报文传输的方法,第二设备接收第一设备发送的第二报文,第三设备接收第一设备发送的第三报文。可选地,第二设备可采用第一设备处理第一报文的方式来处理第二报文,第三设备也可以采用第一设备处理第一报文的方式来处理第三报文。
附图说明
图1是本申请实施例提供的一种报文传输的方法的网络场景示意图;
图2是本申请实施例提供的一种报文传输的方法的流程示意图;
图3是本申请实施例提供的一种SRH扩展头的结构示意图;
图4是本申请实施例提供的一种扩展SID结构的示意图;
图5是本申请实施例提供的一种RH扩展头的示意图;
图6是本申请实施例提供的一种DOH扩展头的示意图;
图7是本申请实施例提供的一种报文传输路径的示意图;
图8是本申请实施例提供的一种节点信息列表的分层排列示意图;
图9本申请实施例提供的一种网络架构下各个节点传输的报文结构示意图;
图10是本申请实施例提供的一种报文传输路径的示意图;
图11是本申请实施例提供的一种节点信息列表的分层排列示意图;
图12是本申请实施例提供的一种网络架构下各个节点传输的报文结构示意图;
图13是本申请实施例提供的一种网络架构下各个节点传输的报文结构示意图;
图14是本申请实施例提供的一种报文传输的方法所使用的压缩编码方式的示意图;
图15是本申请实施例提供的一种报文传输的方法所使用的压缩编码方式的示意图;
图16是本申请实施例提供的一种报文传输的方法所使用的压缩编码方式的示意图;
图17是本申请实施例提供的一种报文传输的装置的结构示意图;
图18是本申请实施例提供的一种报文传输的装置的结构示意图;
图19是本申请实施例提供的一种报文传输的装置的结构示意图;
图20是本申请实施例提供的一种报文传输设备的结构示意图;
图21是本申请实施例提供的一种报文传输设备的结构示意图。
具体实施方式
下面将结合附图对本申请实施方式作进一步地详细描述。
为了降低报文传输过程的复杂性,减小报文传输的开销并提高报文传输的效率,本申请实施例提供了一种报文传输的方法,该方法可应用于图1所示的网络场景中。如图1所示,该网络场景中包括一个发送报文的设备1和多个接收报文的网络设备RT1-RT7,其中,RT1-RT7之间通过复制和转发设备1发出的报文。示例性地,本申请实施例中的设备1包括但不限于路由器、交换机、服务器等,网络设备RT1-RT7包括但不限于路由器、交换机、服务器等。多个接收报文的网络设备RT1-RT7中包括:入口节点、中间节点和出口节点。入口节点为报文传输路径中第一级开始传输的头节点设备;中间节点在报文传输路径中接收上一跳设备发送的报文,进行复制再转发给下一个对报文进行处理的设备。
在本实施例中,设备对报文进行处理指的是设备对报文进行复制转发、解封装以及继续上送给上层设备等一些不限于仅转发报文的操作。可选地,多个接收设备也可以包括只转发报文而不对报文进一步进行处理的中间设备,设备不对报文进行处理指的是设备直接转发报文给下一跳而不进行任何其他操作。为了简洁,在图1中省略;出口节点为报文传输路径的最后一级节点设备,出口节点接收到上一跳设备发送的报文后,则结束该报文在该路径上的传输,将该报文解封装并转发给下一跳设备,可选地,下一跳设备可以是用户设备,例如用户主机等。
在图1中,RT1作为入口节点,接收设备1发送的报文,同时复制转发报文给多个下一跳设备,即RT2和RT3。RT2和RT3作为中间节点接收RT1发送的报文,再复制转发给对应的多个下一跳设备,即RT2对应RT4和RT5,RT3对应RT6和RT7。RT4、RT5、RT6以及RT7作为多个接收设备中的最后一跳设备,接收对应的上一跳设备发送的报文,完成报文在该路径上的传输。
可选地,由RT1发送的报文中,携带了报文的传输路径,该传输路径以节点信息列表的形式体现。可选地,RT1发送的报文中还携带了指示设备在节点信息列表中位置和指示处理功能的信息。每一跳网络设备,依据报文携带的信息,对报文进行复制、更新、转发等处理。
结合图1所示的网络场景中,以第一设备执行该方法为例,对本申请实施例提供的报文传输的方法进行说明。为了减小报文传输的开销并提高报文传输的效率,本申请实施例将报文的节点信息列表携带在报文的扩展头中,并添加了指示下一个对报文进行处理的设备的指针。请参考图2,其示出了本申请实施例提供的一种报文传输的方法的流程图。该方法包括但不限于如下几个过程。
步骤201,第一设备获取第一报文,第一报文携带目的地址字段和节点信息列表,目的地址字段包括第一部分。
在本申请实施例中,节点信息列表包括第二设备的节点信息和第三设备的节点信息。第二设备和第三设备为第一报文的传输路径上的在第一设备之后的下一个需要对报文进行处理的设备,其中,设备对报文进行处理指包括设备对报文进行复制、解封装以及继续上送给上层设备等一些不限于仅转发报文的操作。
在一种实现中,节点信息列表可以包括第一设备以及第一报文的传输路径上位于第一设备之后且对报文进行处理的设备的节点信息,也可以仅包括第一报文的传输路径上位于第一设备之后且对报文进行处理的设备的节点信息。例如,节点信息列表包括第一设备、第二设备和第三设备的节点信息,或者节点信息列表包括第二设备和第三设备的节点信息且不包括第一设备的节点信息。针对节点信息列表仅包括第一报文的传输路径上位于第一设备之后且对报文进行处理的设备的节点信息的情况,可使得节点信息列表所占空间减少,报文的传输效率也会提高。
第一部分指示第二设备的节点信息在节点信息列表中的位置为起始位置,第三设备的节点信息在节点信息列表中的位置为结束位置;或者,第一部分指示第二设备的节点信息在节点信息列表中的起始位置以及第三设备在所述节点信息列表中的位置相对于所述第二设备在所述节点信息列表中的位置的偏移量。第一部分标识第二设备的节点信息和第三设备的节点信息在节点信息列表中的位置的方式比较灵活,通过第一部分和节点信息列表指示的信息,第一设备可以获得下一个处理报文的设备的数量以及下一个处理报文的设备的位置信息。
关于第一报文以及第一报文携带节点信息列表的方式,本申请实施例不进行限定,第一报文以及第一报文携带节点信息列表的方式包括但不限于如下几种。
方式1、第一报文为基于分段路由的IPv6(segment routing over IPv6,SRv6)报文,SRv6报文包括IPv6报文头,该IPv6报文头由IPv6基本头和SRH组成,其中,SRH为扩展头,用于携带节点信息列表。该种情况下,该节点信息列表是SRH的段列表。
请参考图3,其示出了本申请实施例提供的一种SRH扩展头。其中,SRH扩展头用于与IPv6基本头组成第一报文中的IPv6报文头。如图3所示,下一个报头(next header)长度为8比特(bit),用于标识在SRH之后的报文头的类型;扩展头长度(ext hdr len)长度为8bit,用于标识SRH头的长度,为段列表所占用的长度;路由类型(routing type)长度为8bit,用于标识路由头部类型;第一标识(segment left)长度为8bit,用于指示当前处理报文的设备的SID在段列表中的位置;最后索引(last entry)长度为8bit,用于标识在段列表中包含段列表的最后一个元素的索引;标识(flags)长度为8bit,是数据包的标识;标识(tag)长度为8bit,是同组数据包标识。
SRH中的节点信息列表称为段列表,报文传输路径上的设备在段列表中对应的节点信息称为设备的段标识(segment identifier,SID),段列表由报文传输路径中每一个设备的SID组成,每一条SID为一个IPv6地址的形式,占用长度为128bit。SRH的SID由三部分组成,包括:位置标识(locator)、功能(function)和参数(argument)。其中,地址(locator)是网络中为设备分配的节点地址,可用于路由和聚合;功能(function)是功能标识,用于指示本地指令,例如,本地指令可以为设备需要执行的一种转发动作;参数(argument)用于存放设备在执行指令时所需要的可变参数。在一种实现中,在SID的参数字段中定义的指针(pointer)为目的字段中的第一部分。
示例性的,pointer定义在SID的参数(argument,Args)字段中。第一设备对应的SID中的pointer用于指示第二设备和第三设备的SID在段列表中的位置,即第一设备之后需要对报文进行处理的下一级设备的起始位置和结束位置,例如,该第一设备的pointer指示第二设备的SID在段列表中的位置为起始位置和第三设备的SID在段列表中的位置为结束位置,也可以为第二设备的SID在段列表中位置为起始位置以及和第三设备的SID在段列表中位置相对于第二设备的SID在段列表中的位置的偏移量。第一设备可以根据pointer确定下一级处理报文的设备的位置以及进一步根据偏移量确定需要复制报文的份数。
在本申请实施例中,对SID进行了扩展,扩展后的SID的结构可如图4所示。图4中,扩展后的SID仍由三部分组成:位置标识(locator)、已划分的段类型(hierarchicalsegment type)和节点指针(pointer)。其中,位置标识(locator)仍为节点地址,可用于路由和聚合;已划分的段类型(hierarchical segment type)用于扩展后的SID存放重新定义的字段类型,在本实施例中,已划分的段类型仍用于存放功能标识,功能标识用于指示本地指令,本地指令指示该设备需要执行的转发动作;节点指针(pointer)可以包括pointer1和pointer2。仍以SID指示第一设备,位于第一设备之后的下一级对报文进行处理的设备为第二设备和第三设备为例,pointer1可用于指示第二设备的SID在段列表中的位置为起始位置,pointer2用于指示第三设备的SID在段列表中的位置为结束位置。可选地,pointer1可用于存放第二设备的SID在段列表中的位置为起始位置,pointer2用于指示第三设备在段列表中的位置相对于第二设备在段列表中的位置的偏移量,可以根据pointer2确定包括第二设备及第三设备的目标设备的数量,目标设备数量为第二设备和第三设备的设备数量总和,即第三设备在节点信息列表中的位置相对于第二设备在节点信息列表中的位置的偏移量。
方式2,第一报文为IPv6报文,该IPv6报文头由IPv6基本头和路由头(routingheader,RH)组成,RH扩展头携带节点信息列表,该节点信息列表是RH的段列表。段列表中每个节点信息的结构与图3所示的节点信息结构相似。请参考图5,其示出了本申请实施例提供的一种IPv6扩展头即RH。
方式3,第一报文为IPv6报文,该IPv6报文头由Pv6基本头和目的选项头(destination option header,DOH)组成,DOH扩展头携带节点信息列表,该节点信息列表是DOH的地址列表。段列表中每个节点信息的结构与图3所示的节点信息结构相似。请参考图6,其示出了本申请实施例提供的一种IPv6扩展头即DOH。
无论是上述哪种方式,以位于第一设备之后且对报文进行处理的设备包括第二设备和第三设备为例,节点信息列表包括第二设备的节点信息和第三设备的节点信息,第二设备和第三设备是第一报文的传输路径上位于第一设备之后的下一级对报文进行处理的设备。
请参考图7,其示出了本申请实施例提供的一种报文的传输路径的示意图。本实施例提供的传输路径是一种点到多点的路径。在本实施例中,将报文的传输路径从逻辑上分出层级,将路径经过同等分叉次数的节点作为同一级节点。如图7所示,A为第一级对报文进行处理的设备,B、C为第二级对报文进行处理的设备,B1、B2、B3、C1、C2、C3为第三级对报文进行处理的设备。进一步地,A为报文传输路径的入口节点,B、C分别为报文传输路径的中间节点,B1、B2、B3、C1、C2、C3分别为报文传输路径的出口节点。由图7可知,B、C为位于A点之后的下一级对报文进行处理的设备;B1、B2、B3为位于B点之后的下一级对报文进行处理的设备;C1、C2、C3点为位于C点之后的下一级对报文进行处理的设备。
图7仅是传输路径的示例性说明,针对不同传输路径,均可通过对应的节点信息列表的形式进行表示。节点信息列表按照逻辑层级从高到低进行排列,位于同一设备之后且对报文进行处理的同一层级设备的节点信息连续排列在一起。示例性地,以图7所示的传输路径所对应的节点信息列表的分层排列示意图。如图8所示,A节点为第一层(layer 1),B、C节点为第二层(layer 2),B1、B2、B3、C1、C2、C3为第三层(layer 3)。
示例性地,节点信息列表中的每一个设备的节点信息包括位置标识(locator)和节点指针(pointer)。对于任一设备,该任一设备的节点信息中的节点指针用于指示传输路径上位于该任一设备之后且对报文进行处理的设备的节点信息在节点信息列表中的位置。该任一设备的节点信息中的节点地址用于指示该任一设备在网络中的位置。
可选地,对报文进行处理的设备的节点信息还可以包括功能标识,该功能标识用于指示该对报文进行处理的设备对报文的操作指令,即所要实现的功能。本实施例中,每一条节点信息中的功能标识包括但不限于复制功能。利用本申请实施例提供的节点信息列表,简化了报文的编码过程,且通过节点信息列表指定的操作,可以控制报文传输的显示路径,减少了网络节点的维护工作,提高了报文传输的效率。
在一种实现方式中,目的地址字段包括第一部分,第一部分用于标识第二设备的节点信息和第三设备的节点信息在节点信息列表中的位置。针对第一设备为第一报文的传输路径上的中间节点的情况,该目的地址字段还包括第二部分,该第二部分用于指示第一设备在网络中的位置,例如该第二部分标识第一设备的地址。第二设备和第三设备中的任一设备的节点信息包括节点地址和节点指针,节点地址用于指示任一设备在网络中的位置,节点指针用于指示传输路径上位于第二设备和第三设备任一设备之后且对报文进行处理的设备的节点信息在节点信息列表中的位置。
需要说明的是,目的地址字段中的第二部分与第一设备的节点信息中包括的节点地址一致,目的地址字段中的第一部分与第一设备的节点指针一致,第一设备的节点信息可以包含在节点信息列表中。
可选地,第一设备获取第一报文,包括但不限于如下两种情况。
情况一:第一设备为第一报文的传输路径上的入口节点。第一设备接收第五报文,在第五报文的目的地址字段添加第一部分、第二部分,得到第一报文,其中,第二部分标识第一设备的地址。
示例性地,第五报文是入口节点接收到的的报文,例如,对应于图1所示的网络场景中,第五报文是指RT1从设备1接收到的报文。此外,在本实施例中,节点信息列表不仅包括第一报文的传输路径上位于第一设备之后的各个对报文进行处理的设备的节点信息,还包括第一设备的节点信息,又由于此实施例中第一设备为第一报文的传输路径上的入口节点,即节点信息列表包括了第一报文的传输路径上需要对报文进行处理的设备的节点信息。
示例性地,第一设备还对第五报文添加节点信息列表的方式包括:对第五报文添加IPv6扩展头,IPv6扩展头携带节点信息列表,节点信息列表包括第一设备的节点信息和位于第一设备之后的需要对报文进行处理的设备的节点信息。可选地,第一设备对第五报文添加第二部分和第一部分的方式包括:第一设备将IPv6扩展头携带的节点信息列表中第一设备对应的节点信息放入第五报文的目的地址字段,此时目的地址字段中存放的节点地址即为第二部分,存放的节点指针即为第一部分,由此实现基于第五报文得到第一报文。
情况二:第一设备为第一报文的传输路径上的中间节点。第一设备获取第一报文的方式包括:接收上一跳设备发送的第一报文。第一设备作为中间节点,无需再对接收到的报文进行添加第一部分、第二部分以及节点信息列表。第一设备接收到的第一报文中,已经携带了目的地址字段和节点信息列表,且目的地址字段中携带第一部分和第二部分。例如,对应于图1所示的网络场景中,RT2作为第一设备接收RT1发送的第一报文,第一报文携带第二部分、第一部分以及节点信息列表。
步骤202,第一设备根据第一部分从节点信息列表中确定第二设备的节点信息和第三设备的节点信息。
如前文所述,第一部分用于标识第二设备的节点信息和第三设备的节点信息在节点信息列表中的位置。第一设备获取第一报文后,从节点信息列表中确定报文的传输路径中位于第一设备之后的下一个对报文进行处理的设备也即第二设备的节点信息和第三设备的节点信息,进而生成需要分别发送给第二设备对应的第二报文和第三设备对应的第三报文。
需要说明的是,本实施例中的第二设备和第三设备用于表明在第一报文的传输路径上,位于第一设备之后的下一个对报文进行处理的设备的数量为两个,该两个设备可以应用本申请实施例提供的报文传输的方法继续转发报文。也就是说,在实际的实施过程中,第一设备获取第一报文后,从节点信息列表中确定报文的传输路径中位于第一设备之后的下一个对报文进行处理的设备还包括第四设备的节点信息和第五设备的节点信息,则位于第一设备之后的下一个对报文进行处理的设备的数量为四个,第一设备需要向第四设备和第五设备发送报文。同样第四设备和第五设备可以应用本申请实施例提供的报文传输的方法继续转发报文。
步骤203,第一设备基于第一报文生成第二报文和第三报文,第二报文包括第二设备的节点信息,第三报文包括第三设备的节点信息。
在本实施例中,第一设备可先基于第一报文携带的第一部分和节点信息列表获取第二设备对应的第二报文,第一设备再基于获取第二报文的方式获取第三设备对应的第三报文。当然,也可以先获取第三报文再获取第二报文,本申请实施例对第二报文和第三报文的获取顺序不进行限定。
在一种可能的实现方式中,第一设备基于第一报文生成第二报文,包括但不限于如下几个过程。
2031,第一设备基于第一部分复制第一报文,获得第四报文。
第一设备基于第一报文携带的第一部分确定下一级需要对报文进行处理的目标设备数量。例如,目标设备为第二设备及第三设备,目标设备数量即第二设备和第三设备的设备数量总和。第一设备再基于确定的目标设备数量确定复制第一报文数量。
示例性地,第一设备读取第一报文的目的地址字段,由目的地址字段的第二部分获取当前对报文进行处理的设备是第一设备,再由目的地址字段的功能标识获取第一设备所要执行的指令,在本实施例中,功能标识包括但不限于复制指令。第一设备从功能标识获取复制指令之后,又从目的地址字段读取第一部分。可选地,第一部分包括第二设备的节点信息和第三设备的节点信息在节点信息列表中的起始位置和结束位置。其中,第二设备的节点信息在节点信息列表中的位置为起始位置,第三设备的节点信息在节点信息列表中的位置为结束位置,节点信息列表中在起始位置和结束位置之间还可包括一个或多个第四设备的节点信息,该第四设备是位于第一设备之后除第二设备和第三设备之外需要对报文进行处理的设备。第一设备根据第一部分指示的信息获得第二设备和第三设备的数量,即第一报文需要复制的目标设备数量。
可选地,第一设备基于第一部分确定第二设备和第三设备的目标设备数量包括:基于第一部分指示第二设备和第三设备在节点信息列表中的起始位置和结束位置计算出偏移量,将偏移量作为目标设备数量。或者,第一部分包括第二设备的节点信息在节点信息列表中的起始位置以及第三设备在节点信息列表中的位置相对于第二设备在节点信息列表中的位置的偏移量,则第一设备读取第一部分携带的第二设备和第三设备的目标设备数量。例如,本实施例中目标设备数量为两份。将第一报文复制后得到的报文称为第四报文。
第一设备基于第一部分确定第二设备的节点信息在节点信息列表中的位置,基于第二设备的节点信息在节点信息列表中的位置获取第二设备的节点信息。也就是说,由于第一部分又指示了第二设备和第三设备的节点信息在节点信息列表中的位置,第一设备在获取第一报文需要复制的目标设备数量后,又根据第一部分的指示在节点信息列表中进行定位,获取第二设备和第三设备的节点信息。
2032,第一设备将第二设备的节点信息添加到第四报文,获得第二报文。
在一种可能的实现方式中,第一设备将第二设备的节点信息添加到第四报文,获得第二报文,包括如下几个步骤。
20321,第一设备基于第二设备的节点信息更新第四报文中的目的地址字段。
第一设备获取第二设备和第三设备的节点信息后,基于第二设备的节点信息更新第四报文中的目的地址字段,该更新之后的报文的目的地址字段携带更新后的第二部分和更新后的第一部分,更新后的第二部分即第二设备的节点地址,更新后的第一部分即第二设备的节点指针。更新后的第二部分用于指示第二设备在网络中的位置,更新后的第一部分用于指示在报文的传输路径上位于第二设备之后的下一个对报文进行处理的设备的节点信息在节点信息列表中的位置。
可选地,第一设备基于第二设备的节点信息更新其中一份第四报文中的目的地址字段,包括:第一设备将第二设备的节点信息填入其中一份第四报文的目的地址字段,此时第一部分被新的节点指针覆盖,将此时目的地址字段携带的节点指针记为更新后的第一部分,第二部分被新的节点地址覆盖,将此时目的地址字段携带的节点地址即为更新后的第二部分。
20322,第一设备基于更新之后的第四报文得到第二报文。
在一种可能的实现方式中,第一设备基于更新之后的第四报文得到第二报文,包括但不限于如下三种处理方式。
处理方式一,第一设备基于更新之后的第四报文得到第二报文,包括:将更新之后的第四报文作为第二报文。
第一设备对报文进行更新后,可以直接将更新后的第四报文作为第二报文,并进行下一步的发送操作,第一设备也可以对更新后的报文进行进一步处理,减小报文的开销。
处理方式二,第一设备基于更新之后的第四报文得到第二报文,包括:基于更新之后的第四报文中的更新后的第一部分指示传输路径上位于第二设备之后不存在对报文进行处理的设备,将更新之后的第四报文中的扩展头弹出,将弹出扩展头之后的报文作为第二报文。例如,IPv6报文头包括IPv6基本头和IPv6扩展头,关于该处理方式二中弹出IPv6扩展头的过程,更新之后的第四报文的结构不同,弹出的IPv6扩展头的内容不同。例如,更新之后的第四报文为IPv6报文,则弹出的IPv6扩展头为RH;或者,更新之后的第四报文为IPv6报文,则弹出的IPv6扩展头为DOH;或者,更新之后的第四报文为SRv6报文,则弹出的IPv6扩展头为SRH。
可选地,第一设备基于更新后的第一部分的值来确定传输路径上位于第二设备之后是否存在对报文进行处理的设备。以更新后的第一部分的值为参考值,第二设备之后不存在对报文进行处理的设备为例,例如,参考值可以为0,则更新后的第一部分为0,表示在报文的传输路径上,第二设备之后不存在对报文进行处理的设备,因而第一设备弹出更新之后的第四报文的IPv6扩展头,从而降低报文的开销。其中,IPv6报文头的结构详见下面处理方式三中的介绍,此处暂不赘述。
处理方式三,第一设备基于更新之后的第四报文得到第二报文,包括:对更新之后的第四报文中的节点信息列表进行处理,得到处理后的报文,基于处理后的报文获取第二报文,处理后的报文中的节点信息列表仅包括传输路径上位于第一设备之后且对报文进行处理的设备的节点信息。
为了进一步减小报文的开销,第一设备还可以对更新之后的第四报文的节点信息列表进行处理,在一种可能的实现方式中,通过第一设备有选择地移除节点信息列表中不必要分支设备的节点信息,使得处理后的节点信息列表只包括第二设备及该第二设备下的处理报文的设备的节点信息。由此得到的第二报文所携带的节点信息列表所占空间将会显著减少,报文的传输效率也会提高。
进一步地,针对处理方式三,得到处理后的报文之后,基于处理后的报文获取第二报文的方式,包括但不限于将处理后的报文作为第二报文,或者,基于处理之后的报文中的更新后的第一部分指示传输路径上位于第二设备之后不存在对报文进行处理的设备,将处理后的报文中的IPv6扩展头弹出,将弹出IPv6扩展头之后的报文作为第二报文。其中,IPv6报文头包括IPv6基本头和IPv6扩展头。关于该处理方式三中弹出IPv6扩展头的过程,处理后的报文的结构不同,弹出的IPv6扩展头的内容不同。例如,处理之后的报文为IPv6报文,则弹出的IPv6扩展头为RH;或者,处理之后的报文为IPv6报文,则弹出的IPv6扩展头为DOH;或者,处理之后的报文为SRv6报文,则弹出的IPv6扩展头为SRH。
需要说明的是,无论是上述哪一种处理方法,第一设备基于更新之后的第四报文得到的第二报文目的地址字段中携带的地址和指针与更新之后的第四报文所携带的更新后的第二部分和更新后的第一部分相同,也就是说,第二报文携带更新后的第二部分和更新后的第一部分。
进一步地,第一设备获取第三设备对应的第三报文的方式可参考上述获取第二报文的过程,此处不再赘述。
在一种可能的实现方式中,第一报文、第二报文以及第三报文还携带第一标识,第一标识用于指示当前处理报文的设备的节点信息在节点信息列表中的位置。可选地,第一标识可以为当前处理报文的设备的节点信息在节点信息列表中的排序,例如:当前处理报文的设备的节点信息在节点信息列表中排列在第三条,排序方式是从第一条节点信息起由0开始递增,则第一标识为2。可选地,第一设备基于第四报文获取第二报文或者第三报文时,均包括更新第四报文的第一标识的过程,以使得获取到的第二报文或者第三报文能够通过该第一标识来指示处理该第二报文或者第三报文的设备。例如,第一设备基于第二设备的节点信息更新其中一份第四报文中的目的地址字段之后,还包括:基于第二设备的节点信息更新第四报文的第一标识。
在报文的传输过程中,还可以设置指定设备,该指定设备既作为当前报文传输路径的中间节点连接其他路由器节点,也作为边缘设备连接用户的主机,即该设备既发送报文给下一跳处理报文的设备,也作为其他路径的出口节点将报文解封装,将具有上述功能的节点称为复合节点。由前文所述当前报文传输路径上的出口节点也需要对报文解封装,则报文传输过程中存在两种需要对报文解封装的节点,一种是上述的复合节点,一种是前文所述的出口节点,将该两种需要对报文解封装的节点称为叶子节点。由此本申请实施例对报文增加了一个标识,用于指示设备是否为复合节点或出口节点中的一种,即设备是否为叶子节点,在判断设备为叶子节点之后,进一步再通过第一部分判断该节点具体为复合节点还是出口节点,若该节点为复合节点,则另复制一份报文,对该复制的报文进行解封装;若该节点为出口节点,则直接对报文进行解封装。
在一种可能的实现方式中,第一报文还携带叶子标识,叶子标识用于指示第一设备是叶子节点。可选地,第一设备获取第一报文之后,还包括:第一设备基于第一报文携带的叶子标识指示第一设备为叶子节点,且第一部分指示传输路径上位于第一设备之后存在对报文进行处理的设备,第一设备复制至少一份第一报文,对该复制的至少一份第一报文进行解封装。需要说明的是,该复制的至少一份第一报文是第一设备基于第一部分和节点信息列表获取第二报文和第三报文之外,另复制的至少一份第一报文。例如,第一设备对该第四报文进行解封装后,再基于原有的第一报文执行基于第一部分和节点信息列表获取第二报文和第三报文的步骤。或者,第一设备基于第一报文携带的叶子标识指示第一设备为叶子节点,且第一部分指示传输路径上位于第一设备之后不存在对报文进行处理的设备,对第一报文进行解封装。可选地,第一设备基于第二设备的节点信息更新其中一份第四报文中的目的地址字段之后,还包括:基于第二设备的节点信息更新第四报文的叶子标识。
可选地,第一设备配置有两个叶子标识,两个叶子标识中的一个叶子标识用于指示第一设备是叶子节点,另一个叶子标识用于指示第一设备不是叶子节点,第一报文携带两个叶子标识中的其中一个叶子标识。例如,如果第一设备是叶子节点,则第一报文携带用于指示第一设备是叶子节点的叶子标识,如果第一设备不是叶子节点,则第一报文携带用于指示第一设备不是叶子节点的叶子标识。该种方式需要为一个设备配置两个叶子节点,基于不同情况携带不同的叶子标识。除了采用配置两个叶子标识的情况外,本申请实施例提供的方法还支持一个设备配置一个叶子标识,通过不同值来表示设备是否为叶子节点。示例性地,第一设备配置有一个叶子标识,一个叶子标识具有第一值和第二值,第一值用于指示第一设备是叶子节点,第二值用于指示第一设备不是叶子节点,第一报文中携带的叶子标识的值为第一值或第二值。例如,如果第一设备是叶子节点,则第一报文携带第一值的叶子标识,如果第一设备不是叶子节点,则第一报文携带第二值的叶子标识。
在报文的传输过程中,为了进一步减小报文的体积,提高传输效率,还可以使用公共前缀对报文进行编码,使得经公共前缀编码后的报文可以采用报头压缩技术进行压缩传输,进一步减小报文的开销。在一种可能的实现方式中,第二部分包括公共前缀和节点标识,公共前缀包括传输路径上对报文进行处理的各个设备的节点信息中的节点地址的相同部分,节点标识用于指示传输路径上对报文进行处理的各个设备的节点信息中的节点地址的不同部分。可选地,公共前缀还包括传输路径上对报文进行处理的各个设备相同的功能标识,该功能标识用于指示各个设备所要执行的功能。
此外,在另一种可能的实现方式中,节点信息列表包括段列表,段列表中的一个或多个段标识不包含公共前缀。可选地,一个或多个段标识中的任一段标识的长度小于128比特。
在报文的传输过程中,还可能存在一些不按照上述方法处理报文只转发报文的设备,只转发报文的中间路由器、交换机等。为了提高报文传输的效率,可以使报文穿越这些只转发报文的设备。在一种可能的实现方式中,第一设备为第一报文的传输路径上的中间节点,在第一设备基于第一报文获取第二设备对应的第二报文和第三设备对应的第三报文之前,还包括:第一设备确定第一报文中携带的第二部分为第一设备在网络中的地址,即第二部分与第一设备的地址匹配。若第二部分和第一设备在网络中的地址一致,则第一设备继续执行基于第一部分和节点信息列表获取第二设备对应的第二报文和第三设备对应的第三报文的步骤。
可选地,第一设备为第一报文的传输路径上的中间节点,在第一设备基于第一部分和节点信息列表获取第二设备对应的第二报文和第三设备对应的第三报文之前,还包括:第一设备确定第一报文的第二部分不是第一设备在网络中的地址,即第二部分与第一设备的地址不匹配,第一设备基于第一报文的第二部分转发第一报文。
在一种可能的实现方式中,第一设备为第一报文的传输路径上的出口节点,第一设备获取第一报文之后,还包括:基于第一部分指示传输路径上第一设备之后不存在对报文进行处理的设备,即第一设备为传输路径的出口节点,第一设备将第一报文解封装。
在一种可能的实现方式中,节点信息列表还包括第一报文传输路径上不对报文进行处理的设备的节点信息,在该实现方式中,不对报文进行处理的设备的节点信息中不存在复制指令,且第一部分仅指向一个下一跳设备在节点信息列表中的位置。
需要说明的是,第一设备在本地保存有转发信息库(forwarding informationbase,FIB)。FIB用于提供目的地址字段中各标识和指针对应的路由信息、指令信息以及处理信息等。可选地,FIB可以通过洪泛下发到第一报文传输路径上的各个设备中。
步骤204,第一设备向第二设备发送第二报文,向第三设备发送第三报文。
第一设备获取第二报文后,向第二设备发送第二报文,获取第三报文后,向第三设备发送第三报文。可选地,第一设备可以根据第二报文目的地址字段中携带的更新后的第二部分,找到第二设备在网络中的位置,向第二设备发送第二报文。本申请实施例不对发送第二报文和发送第三报文的先后顺序进行限定。
本申请实施例提供的方法通过添加节点信息列表和第一部分指示设备进行报文的传输。以报文从第一设备传输到第二设备以及第三设备为例,节点信息列表包括第二设备的节点信息和第三设备的节点信息,第一部分用于指示第二设备的节点信息和第三设备的节点信息在节点信息列表中的位置。本申请实施例提供的方法,在传输报文时能够根据第二设备的节点信息和第三设备的节点信息在节点信息列表中的位置快速定位接收并处理报文的下一个设备,简化了报文在传输过程中的步骤,降低了开销,提高了传输效率。
同时,本申请实施例还结合倒数第二跳弹出、叶子标识以及对节点信息列表进一步处理等方法,减小报文体积,进一步降低了报文传输的开销,提高了传输效率。
请参考图9,其示出了本申请实施例提供的一种网络架构下各个节点传输的报文结构示意图。本申请实施例按照如图7所示的报文传输路径进行报文的传输,所采用的IPv6扩展头为分段路由头SRH为例,对本申请实施例提供的方法进行举例说明。图9中,报文的第二列的节点表示节点地址,第三列的叶子表示节点指针。在本实施例的段列表中,序号并不存在于实际的报文中,而是表示每一条SID在段列表中的位置按照顺序依次递增,即紧挨着tag字段的128bit表示序号为0的一条SID,往下依次是序号为1、2、……8的各条SID。需要说明的是,在本实施例中,第一标识与SID的序号相同。例如,在A设备发送给B设备的报文中,B设备对应序号为1的SID,故该报文的第一标识为1。同理,在A设备点发送给C设备的报文中,第一标识为2。B设备发送给B1-B3设备的报文中,第一标识分别为3-5。C设备发送给C1-C3设备的报文中,第一标识分别为6-8。
在SRH头中,每一条SID包括节点地址、功能标识以及节点指针。在本实施例中,为A设备的SID配置了一个64位掩码的节点地址2001:db8:1:2::,用于路由和聚合;在该地址块后面紧接着的32位中配置了功能标识,本实施例的复制功能用1234:1234表示;在该功能标识后面紧接着的32位配置了节点指针,其中,前16位用于存放下一个对报文进行处理的设备的SID在段列表中的起始位置,后16位用于存放下一个对报文进行处理的设备的SID在段列表中的结束位置,本实施例用::1表示下一个对报文进行处理的设备的SID在段列表中的起始位置是SID序号为1的位置,用::2表示下一个对报文进行处理的设备的SID在段列表中的结束位置是SID序号为2的位置。由此,本实施例序号为0的SID表示为:2001:db8:1:2:1234:1234:1:2。
同理,B设备的节点地址为:2001:db8:1:3::,因此序号为1的SID表示为:2001:db8:1:3:1234:1234:3:5;C设备的节点地址为2001:db8:1:4::,因此序号为2的SID表示为:2001:db8:1:4:1234:1234:6:8;B1设备的节点地址为2001:db8:1:5::,因此序号为3的SID表示为:2001:db8:1:5:1234:1234:0:0;B2设备的节点地址为2001:db8:1:6::,因此序号为4的SID表示为:2001:db8:1:6:1234:1234:0:0;B3设备的节点地址为2001:db8:1:7::,因此序号为5的SID表示为:2001:db8:1:7:1234:1234:0:0;C1设备的节点地址为2001:db8:1:8::,因此序号为6的SID表示为:2001:db8:1:8:1234:1234:0:0;C2设备的节点地址为2001:db8:1:9::,因此序号为7的SID表示为:2001:db8:1:9:1234:1234:0:0;C3设备的节点地址为2001:db8:1:a::,因此序号为8的SID表示为:2001:db8:1:a:1234:1234:0:0。
需要说明的是,对应于如图2所示的报文传输的方法的流程图中,本实施例报文传输路径上的任一设备,在获取并发送报文时,可以被认为是第一设备,作为中间节点所接收的报文都可以被认为是第一报文,所发送的报文可以被认为是第二报文,且与该设备对应的多个下一跳对报文进行处理的设备可以被认为是第二设备和第三设备。也就是说,图2所示的报文传输的方法适用于本实施例报文传输路径上的每一设备。
在本实施例中,A作为第一设备,则A设备所执行的报文传输的方法,包括但不限于如下几个步骤。
9011、A设备获取A设备对应的报文,A设备对应的报文携带目的地址字段和节点信息列表,目的地址字段包括第二部分和第一部分。
可选地,A设备作为入口节点,获取A设备对应的报文包括但不限于:A设备获取第五报文,该第五报文是A设备接收到的待传输的报文;A设备对第五报文添加节点信息列表,即在本实施例中,将携带段列表的SRH作为IPv6扩展头对报文进行封装,其中本实施例的段列表携带A设备的SID;A设备基于A设备的节点信息对第五报文添加第一部分和第二部分,在本实施例中,A设备将段列表第一条SID(SID0),即2001:db8:1:2:1234:1234:1:2填入封装后报文的目的地址字段,得到A设备对应的报文。此时目的地址字段中的“:1:2”即为第一部分,“2001:db8:1:2:”即为第二部分。
9012、A设备根据第一部分从节点信息列表中确定B设备的节点信息和C设备的节点信息。
其中,第一部分用于标识第二设备的节点信息和第三设备的节点信息在节点信息列表中的位置。
9013、A设备基于A设备对应的报文获取B设备对应的报文和C设备对应的报文。
A设备获取A设备报文后,基报文中第一部分和节点信息列表分别生成B设备对应的报文以及C设备对应的报文。
可选地,A设备生成B设备对应的报文的步骤包括:A设备基于第一部分确定下一级需要对报文进行复制或处理的目标设备数量以及设备;A设备复制与目标设备数量相同的报文数量;A设备基于第一部分确定B设备的SID在段列表中的位置,基于B设备的SID在段列表中的位置获取B设备的SID;A设备基于B设备的SID更新其中一份复制报文中的目的地址字段;A设备基于更新之后的第四报文得到B设备对应的报文。
可选地,报文中还携带第一标识,第一标识用于指示当前处理报文的设备的SID在段列表中的位置。在A设备基于B设备的SID更新其中一份复制报文中的目的地址字段之后,A设备还基于B设备的SID更新复制的A设备对应的报文的第一标识。
示例性地,A设备读取目的地址字段(destination address,DA)字段,获取如下信息:1、报文的目的地址字段是A设备的SID。2、目的地址字段中的1234:1234指示复制指令。3、第一部分指示了下一个对报文进行处理的设备的SID在段列表中的起始位置是1,结束位置是2。基于上述信息,A设备确定B设备和C设备的目标设备数量为2,即A设备对应的报文需要复制两份,且复制后的报文所要发送的设备是段列表中位置为1和2的SID所指示的设备。A设备将报文复制两份,并基于第一部分的指示在段列表中定位到B设备和C设备的节点信息,即SID1和SID2,将SID1,即2001:db8:1:3:1234:1234:3:5填入其中一份复制的A设备对应的报文的DA字段,此时,复制报文的第一部分“:1:2”更新为更新后的第一部分“:3:5”,第二部分“2001:db8:1:2:”更新为更新后的第二部分“2001:db8:1:3:”。可选地,A设备对应的报文还携带有第一标识,A设备更新报文后,将报文中第一标识(segment left)字段由0置为1;A设备将SID2,即2001:db8:1:4:1234:1234:6:8填入另一份复制报文的DA字段,此时,复制报文的第一部分“:1:2”更新为更新后的第一部分“:6:8”,第二部分“2001:db8:1:2:”更新为第三地址“2001:db8:1:4:”,同时将报文中第一标识由0置为2。
9014、A设备向B设备发送对应的报文,向C设备发送对应的报文。
A设备分别根据DA字段中节点地址,即2001:db8:1:3:和2001:db8:1:4:指示的位置信息,将两份复制后的携带不同DA字段的报文分别作为B设备对应的报文和C设备对应的报文发送往对应的设备,即B、C设备。
报文发送到B设备,则B设备可执行上述图2所示的方法中第一设备所执行的功能,由于B设备在图9所示的网络架构中为中间节点,所执行的报文传输的方法,包括但不限于如下几个步骤。
9021、B设备获取B设备对应的报文,B设备对应的报文携带目的地址字段和节点信息列表,目的地址字段包括第二部分和第一部分。
B设备直接接收A设备发送的报文,并将该报文作为B设备对应的报文,按照上述图2所示的报文传输的方法进行对B设备对应的报文进行处理和传输。
9022、B设备根据第一部分从节点信息列表中确定B1-B3设备的节点信息。
其中,第一部分用于标识B1-B3设备的节点信息在节点信息列表中的位置。
9023、B设备基于B设备对应的报文获取B1-B3设备对应的报文。
B设备收到A设备发送的B设备对应的报文后,基于第一部分和节点信息列表获取B1-B3设备对应的报文。可选地,B设备读取B设备对应的报文的DA字段,获取如下信息:1、报文的目的地址字段是B设备的SID。2、目的地址字段中的1234:1234指示复制指令。3、第一部分指示了下一个对报文进行处理的设备在段列表中的起始位置是3,结束位置是5。B设备基于上述信息,确定下一个对报文进行处理的设备的目标设备数量为3,即B设备对应的报文需要复制三份,且复制后的报文所要发送的设备是序号为3、序号为4和序号为5的SID所指示的设备。B设备将报文复制三份,并基于第一部分的指示在段列表中定位到下一个对报文进行处理的设备的节点信息,即SID3、SID4和SID5。将SID3填入其中一份复制的报文的DA字段,此时,复制的报文的第一部分“:3:5”更新为“:0:0”,第二部分“2001:db8:1:3:”更新为“2001:db8:1:5:”,将报文中第一标识(segment left)由1置为3,得到一份报文;将SID4填入其中另一份复制的报文的DA字段,此时,复制的报文的第一部分“:3:5”更新为“:0:0”,第二部分“2001:db8:1:3:”更新为“2001:db8:1:6:”,将报文中第一标识(segment left)由1置为4,得到一份报文;将SID4填入其中剩余一份复制的报文的DA字段,此时,复制的报文的第一部分“:3:5”更新为“:0:0”,第二部分“2001:db8:1:3:”更新为“2001:db8:1:7:”,将报文中第一标识(segment left)由1置为5,得到一份报文。
9024、B设备分别向B1-B3设备发送对应的报文。
B设备再分别将得到的多个报文发送给在段列表的位置为第3、4、5的SID所指示的设备,即B1-B3设备。C设备收到A设备发送的报文后,也根据上述的方法,将报文复制三份,并对应修改DA字段和第一标识,再分别将对应的报文发送给在段列表的位置为第6、7、8的SID所指示的设备,即C1-C3设备,本申请实施例在此不做赘述。
B1设备接收到B设备发送的该B1设备对应的报文后,B1设备执行上述图2所示的方法中第一设备所执行的功能,由于B设备在图9所示的网络架构中为出口节点,作为第一设备,则B1设备所执行的报文传输的方法,包括但不限于如下几个步骤。
9031、B1设备获取B1设备对应的报文,B1设备对应的报文携带目的地址字段和节点信息列表,目的地址字段包括第一部分和第二部分。
B1设备接收B设备发送的报文。
9032、B1设备基于第一部分指示B1设备之后不存在对报文进行处理的设备,即B1设备为传输路径的出口节点,将B1设备对应的报文解封装。
示例性地,B1设备读取B1设备对应的报文的DA字段,获取如下信息:1、报文的目的地址字段是B1设备的SID。2、目的地址字段中的1234:1234指示复制指令。3、第一部分指示了本设备没有下一个对报文进行处理的设备。B1设备基于上述信息,得知该报文传输到本路径的最后一个设备,不再进行报文的复制,完成报文在该路径上的传输。可选地,由于B1为报文传输路径的出口节点,B1还可以对报文进行解封装。
同理,B2、B3设备接收到B设备发送的报文后,也根据上述B1设备处理报文的方法,完成报文在该路径上的传输。C1、C2、C3设备接收到C设备发送的报文后,也根据上述B1设备处理报文的方法,完成报文在该路径上的传输。本申请实施例在此不做赘述。
请参考图10,其示出了本申请实施例提供的一种报文传输路径。本示例的报文传输路径为多路径,即点到多点到点,用于负载均衡/主备保护/冗余保护等场景。在本示例中,将报文传输路径从逻辑上分出层级,将路径经过相同分叉次数的节点作为同一级节点。如图10所示,A点为第一级对报文进行处理的设备,B、C点为第二级对报文进行处理的设备,D、E、F、G为第三级对报文进行处理的设备,H为第四级对报文进行处理的设备。请参考图11,其示出了本申请实施例提供的一种节点信息列表的分级排列,与图10所示的报文传输路径相对应。可选地,与上述图10和图11相对应的报文传输的方法包括下述几个步骤。
在本实施例中,A作为第一设备,则A设备所执行的报文传输的方法,包括但不限于如下几个步骤。
10011、A设备获取A设备对应的报文,A设备对应的报文携带目的地址字段和节点信息列表,目的地址字段包括第二部分和第一部分。
A设备作为入口节点,获取A设备对应的报文包括但不限于:A设备获取第五报文,该第五报文是A设备接收到的待传输的报文;A设备对第五报文添加节点信息列表,即在本实施例中,将携带段列表的SRH作为IPv6扩展头对报文进行封装,其中本实施例的段列表携带A设备的SID;A设备基于A设备的节点信息对第五报文添加第一部分和第二部分,在本实施例中,A设备将段列表第一条SID(SID0)填入封装后报文的目的地址字段,得到A设备对应的报文。
10012、A设备根据第一部分从节点信息列表中确定B设备的节点信息和C设备的节点信息。
其中,第一部分用于标识B设备的节点信息和C设备的节点信息在节点信息列表中的位置。
10013、A设备基于A设备对应的报文获取B设备对应的报文和C设备对应的报文。
A设备获取A设备对应的报文后,基于第一部分和节点信息列表获取B设备对应的报文和C设备对应的报文。
可选地,A设备获取B设备对应的报文的步骤包括:A设备基于第一部分确定B设备和C设备的目标设备数量;A设备复制目标设备数量个A设备对应的报文;A设备基于第一部分确定B设备的SID在段列表中的位置,基于B设备的SID在段列表中的位置获取B设备的SID;A设备基于B设备的SID更新其中一份复制的A设备对应的报文中的目的地址字段;第一设备基于更新之后的第四报文得到B设备对应的报文。
可选地,报文中还携带第一标识,第一标识用于指示当前处理报文的设备的SID在段列表中的位置。在A设备基于B设备的SID更新其中一份复制的A设备对应的报文中的目的地址字段之后,A设备还基于B设备的SID更新复制的A设备对应的报文的第一标识。
示例性地,A设备读取DA字段,获取如下信息:复制指令;下一个对报文进行处理的设备的SID,在段列表起始位置是1,结束位置是2。A设备基于上述信息,得知该报文需要复制两份,且复制后的报文所要发送的设备是序号为1和序号为2的SID所指示的设备。A设备将报文复制两份,并在段列表中定位到SID1和SID2,将SID1填入其中一份复制的报文的DA字段,同时将报文中第一标识(segment left)由0置为1;将SID2填入另一份复制的报文的DA字段,同时将报文中第一标识由0置为2。
10014、A设备向B设备发送对应的报文,向C设备发送对应的报文。
A设备分别根据DA字段中的节点地址指示的网络中的位置,将两份复制后的携带不同DA字段的报文发送往对应的设备,即B、C设备。
同理,B设备收到A设备发送的报文后,也根据上述的方法,将报文复制两份,并对应修改DA字段和第一标识,再分别将对应的报文发送给序号3和4的SID所指示的设备,即D和E节点;C设备收到A节点发送的报文后,也根据上述的方法,将报文复制两份,并对应修改DA字段和第一标识,再分别将对应的报文发送给序号5和6的SID所指示的设备,即F和G设备。
D设备接收到B设备发送的该D设备对应的报文后,D设备执行上述图2所示的方法中第一设备所执行的功能,由于D设备在图10所示的传输路径中为中间节点,作为第一设备,则D设备所执行的报文传输的方法,包括但不限于如下几个步骤。
10021、D设备获取D设备对应的报文,D设备对应的报文携带目的地址字段和节点信息列表,目的地址字段包括第二部分和第一部分。
D设备直接接收B设备发送的报文,并将该报文作为D设备对应的报文。
10022、D设备根据第一部分从节点信息列表中确定H设备的节点信息。
其中,第一部分用于标识H设备的节点信息在节点信息列表中的位置。
10023、D设备基于D设备对应的报文获取H设备对应的报文。
D设备收到B设备发送的报文后,读取DA字段,获取如下信息:复制指令;本设备只有一个下一个对报文进行处理的设备,即序号7的SID所指示的设备。D设备基于上述信息,将报文复制一份,并对应修改DA字段和第一标识。
10024、D设备向H设备发送对应的报文。
D设备将报文发送给序号7的SID所指示的设备,即H设备。同理,E、F、G也按照D节点处理报文的方法,分别将报文复制更新后发送给H设备。
H设备分别接收到D、E、F、G发送的报文后,读取DA字段,得知本设备是本报文传输路径的最后一个节点,不再进行报文的复制,完成报文在该路径上的传输。可选地,由于H设备为报文传输路径的出口节点,H设备还可以对报文进行解封装。
请参考图12,其示出了本申请实施例提供的一种网络架构下各个节点传输的报文结构示意图。本实施例报文传输路径是如图7所示的路径。图12中,报文中第二列的“节点”表示节点地址,第三列的“叶子”表示节点指针。如图12所示,在本实施例中,入口节点A设备作为第一设备,所执行的报文传输的方法包括但不限于如下几个步骤。
12011、A设备获取A设备对应的报文,A设备对应的报文携带目的地址字段和节点信息列表,目的地址字段包括第二部分和第一部分。
A设备先将SRH作为IPv6扩展头对待传输报文进行封装,再将段列表第一条SID(SID0)填入封装后报文的目的地址字段,得到A设备对应的报文。
12012、A设备根据第一部分从节点信息列表中确定B设备的节点信息和C设备的节点信息。
其中,第一部分用于标识B设备的节点信息和C设备的节点信息在节点信息列表中的位置。
12013、A设备基于A设备对应的报文获取B设备对应的报文和C设备对应的报文。
可选地,A设备获取B设备对应的报文和C设备对应的报文的步骤包括:A设备基于第一部分确定B设备和C设备的目标设备数量;A设备复制目标设备数量个A设备对应的报文;A设备基于第一部分确定B设备的SID在段列表中的位置,基于B设备的SID在段列表中的位置获取B设备的SID;A设备基于B设备的SID更新其中一份复制的A设备对应的报文中的目的地址字段;A设备基于更新之后的第四报文得到B设备对应的报文。可选地,报文中还携带第一标识,第一标识用于指示当前处理报文的设备的SID在段列表中的位置。在A设备基于B设备的SID更新其中一份复制的A设备对应的报文中的目的地址字段之后,A设备还基于B设备的SID更新复制的A设备对应的报文的第一标识。A设备再基于相同的方法基于C设备的SID在段列表中的位置获取另一份更新后的报文。
A设备对更新之后的第四报文中的SID进行处理,得到处理后的报文,处理后的报文中的节点信息列表仅包括传输路径上位于A设备之后且对报文进行处理的设备的SID。
示例性地,A设备基于A设备对应的报文目的地址字段中的第一部分将报文复制两份,再基于第一部分在段列表中定位B设备和C设备的SID,基于定位到的SID分别对两份复制的报文的目的地址字段进行更新。得到更新后的报文后,A设备对更新之后的第四报文中的段列表进行处理,得到处理后的报文,使得处理后的报文中的段列表仅包括传输路径上位于A设备之后且对报文进行处理的设备的节点信息。
示例性地,A设备对两份更新后的报文分别修改段列表,其中,A设备发送给B设备的报文中,段列表中的报文传输路径包括的是由B设备开始到出口节点的路径,A设备发送给C设备的报文中,段列表中的报文传输路径包括的是由C设备开始到出口节点的路径,再将此时修改后的每个报文中序号为0的SID分别填到报文目的地址字段中,形成分别给B、C两设备的两份报文。
12014、A设备向B设备发送对应的报文,向C设备发送对应的报文。
A设备分别根据DA字段中节点地址指示的位置信息,将两份处理过段列表的报文发送往对应的设备,即B、C设备。
需要说明的是,此时两份报文的第一标识都为0,都指示当前处理报文的设备的SID在段列表中的位置为第一条,但A设备发送给B设备的报文中,第一标识0,即修改后段列表中序号为0的SID指示的是B设备;A发送给C的报文中,第一标识0,即修改后段列表中序号为0的SID指示的是C设备。
B设备接收到A设备发送的该B设备对应的报文后,B设备执行上述图2所示的方法中第一设备所执行的功能,由于B设备在图12所示的传输路径中为中间节点,作为第一设备,则B设备所执行的报文传输的方法,包括但不限于如下几个步骤。
12021、B设备获取B设备对应的报文,B设备对应的报文携带目的地址字段和节点信息列表,目的地址字段包括第二部分和第一部分。
B设备直接接收A设备发送的报文,并将该报文作为B设备对应的报文。
12022、B设备根据第一部分从节点信息列表中确定B1-B3设备的节点信息。
其中,第一部分用于标识B1-B3设备的节点信息在节点信息列表中的位置。
12023、B设备基于B设备对应的报文获取B1-B3设备对应的报文。
B设备接收到A设备发送的报文后,读取目的地址字段,获取复制指令、下一跳对报文进行处理的设备数量以及该下一跳设备在段列表中的位置。由此,B设备复制三份报文,将SID1、SID2以及SID3分别填入复制后报文的目的地址字段,再对应修改每一份报文的第一标识,形成三份报文。
12024、B设备分别向B1-B3设备发送对应的报文。
B设备将对应的报文分别发送给B1、B2以及B3设备。同理,C设备接收到A设备发送的报文后,也复制更新形成三份报文,再分别对应发送给C1、C2以及C3设备。该过程在此不再赘述。
B1设备接收到B设备发送的报文后,读取目的地址字段,得知B1设备是报文传输路径的出口节点,停止复制,完成报文在该路径上的传输;同理,B2、B3、C1、C2、C3设备也分别获知B2、B3、C1、C2、C3设备是报文传输路径的出口节点,完成报文在该路径上的传输。
请参考图13,其示出了本申请实施例提供的一种网络架构下各个节点传输的报文结构示意图。本实施例提供的方法可以在上述任一种报文的传输方法的基础上实现,本申请实施例对此不做限定。本示例的报文传输的方法是基于上述图12所示的方法实现的。图13中,报文中第二列的“节点”表示节点地址,第三列的“叶子”表示节点指针。
其中,A设备所执行的报文传输的方法与上述图12所示的A设备相同。B设备接收到A设备发送的该B设备对应的报文后,B设备执行上述图2所示的方法中第一设备所执行的功能,由于B设备在图12所示的传输路径中为中间节点,作为第一设备,则B设备所执行的报文传输的方法,包括但不限于如下几个步骤。
13011、B设备获取B设备对应的报文,B设备对应的报文携带目的地址字段和节点信息列表,目的地址字段包括第二部分和第一部分。
B设备直接接收A设备发送的报文,并将该报文作为B设备对应的报文。
13012、B设备根据第一部分从节点信息列表中确定B1-B3设备的节点信息。
其中,第一部分用于标识B1-B3设备的节点信息在节点信息列表中的位置。
13013、B设备基于B设备对应的报文获取B1-B3设备对应的报文。
B设备接收到A设备发送的报文,基于第一部分确定B1-B3设备的目标设备数量;B设备复制目标设备数量个B设备对应的报文;B设备基于第一部分确定B1-B3设备的节点信息在节点信息列表中的位置,基于B1设备的节点信息在节点信息列表中的位置获取B1设备的节点信息;B设备基于B1设备的节点信息更新其中一份复制的B设备对应的报文中的目的地址字段;B设备基于更新之后的第四报文得到B1设备对应的报文。
示例性地,B设备读取目的地址字段,获取复制指令、下一个对报文进行处理的设备数量以及该下一个设备在段列表中的位置。由此,B设备复制三份报文,将SID1、SID2以及SID3分别填入复制后报文的目的地址字段,再对应修改每一份报文的第一标识,形成三份报文。
可选地,B设备基于更新之后的第四报文得到B1设备对应的报文,包括:基于更新之后的第四报文中的更新后的第一部分指示传输路径上位于B1设备之后不存在对报文进行处理的设备,将更新之后的第四报文中的第六版互联网协议IPv6扩展头弹出,将弹出IPv6扩展头之后的报文作为B1设备对应的报文。
示例性地,B设备基于更新后报文目的地址字段携带的指针,指示B设备之后不存在对报文进行处理的设备,示例性地,B设备的下一个对报文进行处理的设备,即B1-B3为报文传输路径的出口节点,则B设备弹出更新后报文的IPv6扩展头,将不携带IPv6扩展头的报文作为B1-B3设备对应的报文。
13014、B设备分别向B1-B3设备发送对应的报文。
B设备将不携带IPv6扩展头的报文作为B1-B3设备对应的报文分别发送给B1-B3设备。同理,C设备接收到A设备发送的报文,复制三份该报文并分别复制更新报文之后,执行与上述B设备相同的处理报文的方法。
接下来,针对上述图2所示的报文传输的方法中涉及的采用公共前缀压缩报文头给出如下举例说明,包括但不限于如下三种压缩方式。
压缩方式一,请参考图14,其示出了本申请实施例提供的一种报文传输的方法所使用的压缩编码方式的示意图。
本申请实施例采用的压缩编码用于报头压缩。对于报头中存在的大量重复字段信息,可以使用公共前缀来减小报头的体积。本申请实施例为了减少报头的冗余信息,引入了公共前缀(common-prefix)进行报文的压缩编码。
各对报文进行处理的设备的节点信息中,可以使用一个公共前缀+节点标识来表示节点地址。在压缩编码的方式下,节点信息只需携带节点标识,无需携带完整的节点地址,由此,减小了节点信息列表的体积。同时,节点信息还可以再携带功能标识和节点指针。例如,本示例采用的是如图7所示的报文传输路径,采用的IPv6扩展头是SRH。本示例为各对报文进行处理的设备在段列表中的SID配置了一个公共前缀,该公共前缀的长度为96比特,节点标识的长度为16比特,功能标识的长度为8比特,节点指针的长度为8比特,其中,节点指针包括下一跳对报文进行处理的设备的起始位置和结束位置,两个字段各占4比特。在本示例的编码方式下,当前网络中的节点标识最多有65535个,报文中的SID个数最多有15个,每个设备的下一跳对报文进行处理的设备的数量最多有15个。
例如,在本示例中,为各对报文进行处理的设备SID配置的公共前缀为:2001:db8:3:4:5:6::/96;A/B/C/B1/B2/B3/C1/C2/C3的节点标识分别是A0/B0/C0/B1/B2/B3/C1/C2/C3;各设备的SID都配置0xFE来表示功能标识,则A设备发送给B设备的报文可以是如图14所示的报文。其中,IPv6报头的目的地址字段的“2001:db8:3:4:5:6:B0:FE35”表示目的设备为B设备,指令是复制,第一部分指向3-5。SRH扩展头中,第一标识置为1,段列表的“A0:FE12”表示序号为0的SID,指示A设备,指令为复制,节点指针指向1-2;“B0:FE35”表示序号为1的SID,指示B设备,指令为复制,节点指针指向3-5;“C0:FE68”表示序号为2的SID,指示C设备,指令为复制,节点指针指向6-8;“B1:FE00”表示序号为3的SID,指示B1设备,指令为复制,节点指针指向0-0;“B2:FE00”表示序号为4的SID,指示B2设备,指令为复制,节点指针指向0-0;“B3:FE00”表示序号为5的SID,指示B3设备,指令为复制,节点指针指向0-0;“C1:FE00”表示序号为6的SID,指示C1设备,指令为复制,节点指针指向0-0;“C2:FE00”表示序号为7的SID,指示C2设备,指令为复制,节点指针指向0-0;“C3:FE00”表示序号为8的SID,指示C3设备,指令为复制,节点指针指向0-0。由如图14所示的压缩编码方式可知,在利用公共前缀压缩后的报文头中,节点信息列表减少了一半的空间,这样报文体积减小,响应速度变快,提高了报文在报文传输路径中传输效率。
压缩方式二,请参考图15,其示出了本申请实施例提供的一种报文传输的方法所使用的压缩编码方式的示意图。
在报文传输路径中,可以指定一些设备作为中间节点的同时还作为出口节点,这种可能是该设备既作为网络域的中间节点连接其他的路由器节点,也作为边缘设备连接用户设备如用户主机,将这些既作为中间节点还作为出口节点的设备称为复合节点。例如,在如图7所示的报文传输路径中,指定B设备为复合节点,也就是说B设备一方面会将报文往B1/B2/B3发送,另一方面会将报文额外复制一份,对该额外复制的报文进行继续上送给上层设备或者解封装处理。也就是说,在本实施例提供的报文传输的方法中,存在两种需要对报文解封装的节点,一种是上述的复合节点,一种是前文所述的出口节点,将该两种需要对报文解封装的节点称为叶子节点。在本申请实施例提供的方法中,通过在每个设备的节点信息中携带叶子标识来指示该节点是否为叶子节点,即通过叶子标识指示该节点是否需要解封装。在判断设备为叶子节点之后,进一步再通过第一部分判断该节点具体为复合节点还是出口节点,若该节点为复合节点,则额外复制一份报文,对该复制的报文进行解封装;若该节点为出口节点,则直接对报文进行解封装。
可选地,可以为设备的节点信息分配两个叶子标识,分别为“该节点标识+该节点作为叶子节点”和“该节点标识+该节点不作为叶子节点”。可选地,将该两个叶子标识与该设备节点地址结合形成该设备的两种节点地址。例如,在上述压缩编码的方式中,对B设备分配::B001和::B002,分别用于表示“B节点标识+B节点作为叶子节点”和“B节点标识+B节点不作为叶子节点”。
可选地,还可以在设备的节点信息中分配一个独立的叶子标识,该叶子标识使用两个数值指示“本节点是否为叶子节点”。示例性地,在该压缩编码的方式下,节点信息的编码方式为:公共前缀占用96比特,节点标识占用16比特,功能标识占用7比特,叶子标识占用1比特,节点指针中的下一个对报文进行处理设备的起始位置占用4比特,结束位置占用4比特;叶子标识比特值为“1”则代表本节点是叶子节点,叶子标识比特值为“0”则代表本节点不是叶子节点。
例如,在如图7所示的报文传输路径中,IPv6扩展头是SRH。A设备发送给B设备的报文可以是如图15所示的报文结构。报文的公共前缀为2001:db8:3:4:5:6::/96;A/B/C/B1/B2/B3/C1/C2/C3的节点ID分别是A0/B0/C0/B1/B2/B3/C1/C2/C3;各设备节点信息都配置0xFE的功能标识来表示复制指令。其中,IPv6报头的目的地址字段的“2001:db8:3:4:5:6:B0:FF35”表示目的节点为B设备,指令是复制,叶子标识指示“本节点是叶子节点”,第一部分指向3-5,基于第一部分不为0,因此B设备是复合节点,需要将报文额外复制一份进行解封装。SRH扩展头中,第一标识置为1,段列表的“A0:FE12”表示序号为0的SID,指示A设备,指令为复制,叶子标识指示“本节点不是叶子节点”,第一部分指向1-2;“B0:FF35”表示序号为1的SID,指示B设备,指令为复制,叶子标识指示“本节点是叶子节点”,第一部分指向3-5,基于第一部分不为0,因此B设备是复合节点;“C0:FE68”表示序号为2的SID,指示C设备,指令为复制,叶子标识指示“本节点不是叶子节点”,第一部分指向6-8。
此外,在段列表中,“B1:FF00”表示序号为3的SID,指示B1设备,指令为复制,第一部分指向0-0,叶子标识指示“本节点是叶子节点”,基于第一部分为0,因此B1为出口节点,直接对报文进行解封装;“B2:FF00”表示序号为4的SID,指示B2设备,指令为复制,第一部分指向0-0,叶子标识指示“本节点是叶子节点”,基于第一部分为0,因此B2为出口节点;“B3:FF00”表示序号为5的SID,指示B3设备,指令为复制,第一部分指向0-0,叶子标识指示“本节点是叶子节点”,基于第一部分为0,因此B3为出口节点;“C1:FF00”表示序号为6的SID,指示C1节点,指令为复制,第一部分指向0-0,叶子标识指示“本节点是叶子节点”,基于第一部分为0,因此C1为出口节点;“C2:FF00”表示序号为7的SID,指示C2设备,指令为复制,第一部分指向0-0,叶子标识指示“本节点是叶子节点”,基于第一部分为0,因此C2为出口节点;“C3:FF00”表示序号为8的SID,指示C3设备,指令为复制,第一部分指向0-0,叶子标识指示“本节点是叶子节点”,基于第一部分为0,因此C3为出口节点。
其中,0xFE的二进制是1111,1110;前7比特全为1,标识本申请实施例的复制功能;第8比特是0,为叶子标识,标识本节点不为复合节点。0xFF的二进制是1111,1111;前7比特全为1,标识本申请实施例的复制功能;第8比特是1,标识本节点为复合节点。例如:B设备为0xFF,同时第一部分也指示B设备有下一个对报文进行处理的设备,因此B设备是复合节点;B1/B2/B3/C1/C2/C3设备是0xFF,同时第一部分指示B1/B2/B3/C1/C2/C3设备没有下一个对报文进行处理的设备,故B1/B2/B3/C1/C2/C3设备是出口节点。
压缩方式三,请参考图16,其示出了本申请实施例提供的一种报文传输的方法所使用的压缩编码方式的示意图。
在本实施例中,将如图14所示的公共前缀和每个对报文进行处理的设备的节点信息所携带的功能标识合并,作为本实施例的公共前缀。例如,将如图14所示的96比特公共前缀和8比特的功能标识合并成本实施例的104比特的公共前缀,使得原本的功能标识不必再占用每一条节点信息的空间,进一步减小了节点信息列表的体积。再例如,仍为公共前缀配置96比特的长度,且让该公共前缀携带功能标识,使得原本的功能标识不必再占用每一条节点信息的空间。在本示例中,每一个设备的节点信息还携带叶子标识和节点指针。其中,叶子标识占用8比特的长度,节点指针占用8比特的长度。
在如图7所示的报文传输路径中,IPv6扩展头是SRH。A设备发送给B设备的报文可以是如图16所示的编码方式。在本示例中,为各设备SID配置的公共前缀为:2001:db8:3:4:5:6,该公共前缀同时标识本实施例的功能,即所要执行的指令,A/B/C/B1/B2/B3/C1/C2/C3的节点ID分别是A0/B0/C0/B1/B2/B3/C1/C2/C3。IPv6报头的目的地址字段的“2001:db8:3:4:5:6:B0:0135”表示目的节点为B设备,指令是复制,本设备是叶子节点,第一部分指向3-5,本设备是复合节点。SRH扩展头中,当前节点标识置为1,地址列表的“A0:0012”表示序号为0的SID,指示A设备,指令为复制,本节点不是叶子节点,节点指针指向1-2;“B0:0135”表示序号为1的SID,指示B设备,指令为复制,本节点是叶子节点,节点指针指向3-5,本设备是复合节点;“C0:0068”表示序号为2的SID,指示C设备,指令为复制,本节点不是叶子节点,节点指针指向6-8;“B1:0100”表示序号为3的SID,指示B1设备,指令为复制,本节点是叶子节点,节点指针指向0-0,本节点是出口节点;“B2:0100”表示序号为4的SID,指示B2设备,指令为复制,本节点是叶子节点,节点指针指向0-0,本节点是出口节点;“B3:0100”表示序号为5的SID,指示B3设备,指令为复制,本节点是叶子节点,节点指针指向0-0,本节点是出口节点;“C1:FF00”表示序号为6的SID,指示C1设备,指令为复制,本节点是叶子节点,节点指针指向0-0,本节点是出口节点;“C2:FF00”表示序号为7的SID,指示C2设备,指令为复制,本节点是叶子节点,节点指针指向0-0,本节点是出口节点;“C3:FF00”表示序号为8的SID,指示C3设备,指令为复制,本节点是叶子节点,节点指针指向0-0,本节点是出口节点。
可选地,各对报文进行处理的设备还获取转发信息库(forwarding informationbase,FIB),其中,FIB包含一个128比特的IPv6地址的组成结构:公共前缀“2001:db8:3:4:5:6”指示报文传输路径上各对报文进行处理的设备的节点地址的相同部分和复制转发功能,长度为96比特;节点标识长度为16比特,用于与公共前缀中的相同部分组合成完整的节点地址,表示设备在网络中的位置;叶子标识长度为8比特,用于标识本节点是否为叶子节点;下一个对报文进行处理的设备的SID在段列表中的起始位置长度为4比特,结束位置长度为4比特。各设备收到报文后,读取目的地址字段,基于FIB查询到以上信息,再进行相应的报文复制、更新和传输。
请参考图17,其示出了本申请实施例提供的一种报文传输的装置。基于图17所示的如下多个模块,该图17所示的报文传输的装置能够执行图2-16所示的报文传输的方法中第一设备所执行的全部或部分操作。应理解到,该装置可以包括比所示模块更多的附加模块或者省略其中所示的一部分模块,本申请实施例对此并不进行限制。本申请实施例提供的装置应用于第一设备,包括:获取模块1701以及发送模块1704。
可选地,获取模块1701用于获取第一报文。其中,第一报文携带目的地址字段和节点信息列表,节点信息列表包括第二设备的节点信息和第三设备的节点信息,第二设备和第三设备为第一报文的传输路径上位于第一设备之后的下一个对报文进行处理的设备,目的地址字段包括第一部分和第二部分,第二部分用于指示第一设备在网络中的位置,第一部分用于指示第二设备和第三设备的节点信息在节点信息列表中的位置,第二设备和第三设备中的任一设备的节点信息包括节点地址和节点指针,节点地址用于指示任一设备在网络中的位置,节点指针用于指示传输路径上位于任一设备之后的下一个对报文进行处理的设备的节点信息在节点信息列表中的位置。
可选地,获取模块1701用于根据第一部分从节点信息列表中确定第二设备的节点信息和第三设备的节点信息,第一部分用于标识第二设备的节点信息和第三设备的节点信息在节点信息列表中的位置。
可选地,获取模块1701还用于基于第一报文生成第二报文和第三报文,第二报文包含第二设备的节点信息,第三报文包含第三设备的节点信息。
可选地,发送模块1704用于向第二设备发送第二报文,向第三设备发送第三报文。
可选地,第一部分包括第二设备的节点信息和第三设备的节点信息在节点信息列表中的起始位置和结束位置,其中,第二设备的节点信息在节点信息列表中的位置为起始位置,第三设备的节点信息在节点信息列表中的位置为结束位置;或者,第一部分指示第二设备的节点信息在节点信息列表中的起始位置以及第三设备在节点信息列表中的位置相对于第二设备在节点信息列表中的位置的偏移量。
可选地,获取模块1701用于基于第一部分复制第一报文获得第四报文;将第二设备的节点信息添加到第四报文,获得第二报文。
可选地,获取模块1701用于基于第一部分确定第二设备和第三设备的目标设备数量;复制与目标设备数量相等的第一报文;基于第二设备的节点信息获得第二报文,第二报文携带更新后的第二部分和更新后的第一部分,所述更新后的第二部分用于指示所述第二设备在网络中的位置,所述更新后的第一部分用于指示所述传输路径上在所述第二设备之后的下一个对报文进行处理的设备的节点信息在所述节点信息列表中的位置。
可选地,获取模块1701用于基于第一部分确定第二设备在节点信息列表中的位置,基于第二设备在节点信息列表中的位置获取第二设备的节点信息;基于第二设备的节点信息更新其中一份第四报文中的目的地址字段;基于更新之后的第四报文得到第二报文。
可选地,获取模块1701用于将更新之后的第四报文作为第二报文;或者,基于更新之后的第四报文中的更新后的第一部分指示传输路径上位于第二设备之后不存在对报文进行处理的设备,将更新之后的第四报文中的第六版互联网协议IPv6扩展头弹出,将弹出IPv6扩展头之后的报文作为第二报文。
可选地,获取模块1701用于对更新之后的第四报文中的节点信息列表进行处理,得到处理后的报文,处理后的报文中的节点信息列表仅包括传输路径上位于第一设备之后且对报文进行处理的节点信息;将处理后的报文作为第二报文,或者,基于处理后的报文中的更新后的第一部分指示传输路径上位于第二设备之后不存在对报文进行处理的设备,将处理后的报文中的IPv6扩展头弹出,将弹出IPv6扩展头之后的报文作为第二报文。
在一种可能的实现方式中,第一设备为第一报文的传输路径上的入口节点,获取模块1701用于获取第五报文,对第五报文添加第二部分、第一部分以及节点信息列表,得到第一报文,节点信息列表还包括第一设备的节点信息,第二部分和第一部分基于第一设备的节点信息得到。
示例性地,第一报文为SRv6报文,节点信息列表携带在SRv6报文的分段路由头SRH中,节点信息列表为SRH的段列表;或者,第一报文为IPv6报文,节点信息列表携带在IPv6报文的路由头RH中,节点信息列表为RH的段列表;或者,第一报文为IPv6报文,节点信息列表携带在IPv6报文的目的选项头DOH中,节点信息列表为DOH的地址列表。
在一种可能的实现方式中,第一报文、第二报文和第三报文中还携带第一标识,第一标识用于指示当前处理报文的设备的节点信息在节点信息列表中的位置。
在一种可能的实现方式中,第一报文还携带叶子标识,叶子标识用于指示第一设备是否为叶子节点,叶子节点为需要对第一报文进行解封装的设备。请参考图18,其示出了本申请实施例提供的一种报文传输的装置。在图17所示的装置的基础上,本申请实施例提供的装置还包括:解封装模块1702。解封装模块1702用于基于第一报文携带的叶子标识指示第一设备为叶子节点,且第一部分指示传输路径上位于第一设备之后存在对报文进行处理的设备,复制至少一份第一报文得到第四报文,对第四报文进行解封装。或者,解封装模块1702用于基于第一报文携带的叶子标识指示第一设备为叶子节点,且第一部分指示传输路径上位于第一设备之后不存在对报文进行处理的设备,对第一报文进行解封装。
示例性地,第一设备配置有两个叶子标识,两个叶子标识中的一个叶子标识用于指示第一设备是叶子节点,另一个叶子标识用于指示第一设备不是叶子节点,第一报文携带两个叶子标识中的其中一个叶子标识;或者,第一设备配置有一个叶子标识,一个叶子标识具有第一值和第二值,第一值用于指示第一设备是叶子节点,第二值用于指示第一设备不是叶子节点,第一报文中携带的叶子标识的值为第一值或第二值。
在一种可能的实现方式中,第二部分包括公共前缀和节点标识,公共前缀包括传输路径上对报文进行处理的各个设备的节点信息中的节点地址的相同部分,节点标识指示传输路径上对报文进行处理的各个设备的节点信息中的节点地址的不同部分。公共前缀还包括传输路径上对报文进行处理的各个设备相同的功能标识,功能标识用于指示各个设备所要执行的功能。
在一种可能的实现方式中,第一设备为第一报文的传输路径上的中间节点。请参考图19,其示出了本申请实施例提供的一种报文传输的装置,在图17所示的装置的基础上,本申请实施例提供的装置还包括:确定模块1703。可选地,确定模块1703用于在获取模块1701基于第一部分和节点信息列表获取第二设备对应的第二报文和第三设备对应的第三报文之前,确定第一报文中携带的第二部分为第一设备在网络中的地址,即第二部分与第一设备的地址匹配。可选地,发送模块1704,还用于在获取模块1701基于第一部分和节点信息列表获取第二设备对应的第二报文和第三设备对应的第三报文之前,还用于基于确定模块1703确定第一报文的第二部分不是第一设备在网络中的地址,基于第一报文携带的第二部分转发第一报文。
应理解的是,上述图17-19提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
参见图20,图20示出了本申请一个示例性实施例提供的报文传输设备2000的结构示意图。图20所示的报文传输设备2000可用于执行上述图2-16所示的报文传输的方法中第一设备所涉及的操作。该报文传输设备2000例如是交换机、路由器等,该报文传输设备2000可以由一般性的总线体系结构来实现。
如图20所示,报文传输设备2000包括至少一个处理器2001、存储器2003以及至少一个通信接口2004。
处理器2001例如是通用中央处理器(central processing unit,CPU)、数字信号处理器(digital signal processor,DSP)、网络处理器(network processer,NP)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-network processingunits,NPU)、数据处理单元(data processing unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器2001包括专用集成电路(application-specificintegrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。PLD例如是复杂可编程逻辑器件(complex programmable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。其可以实现或执行结合本发明实施例公开内容所描述的各种逻辑方框、模块和电路。所述处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。
可选的,报文传输设备2000还包括总线。总线用于在报文传输设备2000的各组件之间传送信息。总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图20中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器2003例如是独立存在,并通过总线与处理器2001相连接。存储器2003也可以和处理器2001集成在一起。
通信接口2004使用任何收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(RAN)或无线局域网(wireless local area networks,WLAN)等。通信接口2004可以包括有线通信接口,还可以包括无线通信接口。具体的,通信接口2004可以为以太(ethernet)接口、快速以太(fast ethernet,FE)接口、千兆以太(gigabit ethernet,GE)接口,异步传输模式(asynchronous transfer mode,ATM)接口,无线局域网(wireless local area networks,WLAN)接口,蜂窝网络通信接口或其组合。以太网接口可以是光接口,电接口或其组合。在本申请实施例中,通信接口2004可以用于报文传输设备2000与其他设备进行通信。
在具体实现中,作为一种实施例,处理器2001可以包括一个或多个CPU,如图20中所示的CPU0和CPU1。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,报文传输设备2000可以包括多个处理器,如图20中所示的处理器2001和处理器2005。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,报文传输设备2000还可以包括输出设备和输入设备。输出设备和处理器2001通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备和处理器2001通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器2003用于存储执行本申请方案的程序代码2010,处理器2001可以执行存储器2003中存储的程序代码2010。也即是,报文传输设备2000可以通过处理器2001以及存储器2003中的程序代码2010,来实现方法实施例提供的报文传输的方法。程序代码2010中可以包括一个或多个软件模块。可选地,处理器2001自身也可以存储执行本申请方案的程序代码或指令。
在具体实施例中,本申请实施例的报文传输设备2000可对应于上述各个报文传输的方法实施例中的第一设备,报文传输设备2000中的处理器2001读取存储器2003中的指令,使图20所示的报文传输设备2000能够执行第一设备所执行的全部或部分操作。
具体的,处理器2001用于通过通信接口向第二设备发送第二报文,第二报文包括更新后的第一部分和节点地址列表,更新后的第一部分用于指示第二设备的下一个对报文进行处理的设备在节点地址列表中的位置。其他可选的实施方式,为了简洁,在此不再赘述。
又例如,本申请实施例的报文传输设备2000可对应于上述各个方法实施例中的第二设备,报文传输设备2000中的处理器2001读取存储器2003中的指令,使图20所示的报文传输设备2000能够执行第二设备所执行的全部或部分操作。
具体的,处理器2001用于通过通信接口接收第一设备向第二设备发送的第二报文,第二报文包括更新后的第一部分和节点地址列表,更新后的第一部分用于指示第二设备的下一个对报文进行处理的设备在节点地址列表中的位置。其他可选的实施方式,为了简洁,在此不再赘述。
报文传输设备2000还可以对应于上述图17-19所示的报文传输的装置,报文传输的装置中的每个功能模块采用报文传输设备2000的软件实现。换句话说,报文传输的装置中包括的功能模块为报文传输设备2000的处理器2001读取存储器2003中存储的程序代码2010后生成的。
其中,图2-16所示的报文传输的方法的各步骤通过报文传输设备2000的处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。
参见图21,图21示出了本申请另一个示例性实施例提供的报文传输设备2100的结构示意图。图21所示的报文传输设备2100用于执行上述图2-16所示的报文传输的方法方法所涉及的全部或部分操作。该报文传输设备2100例如是交换机、路由器等,该报文传输设备2100可以由一般性的总线体系结构来实现。
如图21所示,报文传输设备2100包括:主控板2110和接口板2130。
主控板也称为主处理单元(main processing unit,MPU)或路由处理卡(routeprocessor card),主控板2110用于对网络设备2100中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板2110包括:中央处理器2111和存储器2112。
接口板2130也称为线路接口单元卡(line processing unit,LPU)、线卡(linecard)或业务板。接口板2130用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、POS(packet over SONET/SDH)接口等,以太网接口例如是灵活以太网业务接口()flexible ethernet clients,FlexE Clients)。接口板2130包括:中央处理器2131网络处理器2132、转发表项存储器2134和物理接口卡(ph10sical interface card,PIC)2133。
接口板2130上的中央处理器2131用于对接口板2130进行控制管理并与主控板2110上的中央处理器2111进行通信。
网络处理器2132用于实现报文的转发处理。网络处理器2132的形态可以是转发芯片。转发芯片可以是网络处理器(network processor,NP)。在一些实施例中,转发芯片可以通过专用集成电路(application-specific integrated circuit,ASIC)或现场可编程门阵列(field programmable gate array,FPGA)实现。具体而言,网络处理器2132用于基于转发表项存储器2134保存的转发表转发接收到的报文,如果报文的目的地址字段为网络设备2100的地址,则将该报文继续上送给上层设备至CPU(如中央处理器2131)处理;如果报文的目的地址字段不是网络设备2100的地址,则根据该目的地址字段从转发表中查找到该目的地址字段对应的下一跳和出接口,将该报文转发到该目的地址字段对应的出接口。其中,上行报文的处理可以包括:报文入接口的处理,转发表查找;下行报文的处理可以包括:转发表查找等等。在一些实施例中,中央处理器也可执行转发芯片的功能,比如基于通用CPU实现软件转发,从而接口板中不需要转发芯片。
物理接口卡2133用于实现物理层的对接功能,原始的流量由此进入接口板2130,以及处理后的报文从该物理接口卡2133发出。物理接口卡2133也称为子卡,可安装在接口板2130上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器2132处理。在一些实施例中,中央处理器2131也可执行网络处理器2132的功能,比如基于通用CPU实现软件转发,从而物理接口卡2133中不需要网络处理器2132。
可选地,报文传输设备2100包括多个接口板,例如报文传输设备2100还包括接口板2140,接口板2140包括:中央处理器2141、网络处理器2142、转发表项存储器2144和物理接口卡2143。接口板2140中各部件的功能和实现方式与接口板2130相同或相似,在此不再赘述。
可选地,报文传输设备2100还包括交换网板2120。交换网板2120也可以称为交换网板单元(switch fabric unit,SFU)。在报文传输设备有多个接口板的情况下,交换网板2120用于完成各接口板之间的数据交换。例如,接口板2130和接口板2140之间可以通过交换网板2120通信。
主控板2110和接口板耦合。例如。主控板2110、接口板2130和接口板2140,以及交换网板2120之间通过系统总线与系统背板相连实现互通。在一种可能的实现方式中,主控板2110和接口板2130及接口板2140之间建立进程间通信协议(inter-processcommunication,IPC)通道,主控板2110和接口板2130及接口板2140之间通过IPC通道进行通信。
在逻辑上,报文传输设备2100包括控制面和转发面,控制面包括主控板2110和中央处理器2111,转发面包括执行转发的各个组件,比如转发表项存储器2134、物理接口卡2133和网络处理器2132。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护网络设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器2132基于控制面下发的转发表对物理接口卡2133收到的报文查表转发。控制面下发的转发表可以保存在转发表项存储器2134中。在有些实施例中,控制面和转发面可以完全分离,不在同一网络设备上。
值得说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,报文传输设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,报文传输设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,报文传输设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的报文传输设备的数据接入和处理能力要大于集中式架构的报文传输设备。可选地,报文传输设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态报文传输设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
在具体实施例中,报文传输设备2100对应于上述图17所示的应用于第一设备的报文传输的装置。在一些实施例中,图17所示的报文传输的装置中的获取模块1701及发送模块1704相当于报文传输设备2100中的物理接口卡2133。
在一些实施例中,报文传输设备2100还对应于上述图18所示的应用于第一设备的报文传输的装置。在一些实施例中,图18所示的报文传输的装置中的获取模块1701及发送模块1704相当于报文传输设备2100中的物理接口卡2133;解封装模块1702相当于报文传输设备2100中的中央处理器2111或网络处理器2132。
在一些实施例中,报文传输设备2100还对应于上述图19所示的应用于第一设备的报文传输的装置。在一些实施例中,图19所示的报文传输的装置中的获取模块1701及发送模块1704相当于报文传输设备2100中的物理接口卡2133;解封装模块1703相当于报文传输设备2100中的中央处理器2111或网络处理器2132。
基于上述图20及图21所示的报文传输设备,本申请实施例还提供了一种报文传输系统,该系统包括:第一设备以及第二设备。可选的,第一设备为图20所示的报文传输设备2000或图21所示的报文传输设备2100,第二设备为图20所示的报文传输设备2000或图21所示的报文传输设备2100。
第一设备及第二设备所执行的报文传输的方法可参见上述图2-16所示实施例中的第一设备和第二设备的相关描述,此处不再加以赘述。
本申请实施例还提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第一设备所需执行的报文传输的方法。
本申请实施例还提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第二设备所需执行的报文传输的方法。
应理解的是,上述处理器可以是中央处理器(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data dateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
本申请实施例还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行以实现如上任一所述的报文传输的方法。
本申请实施例还提供了一种计算机程序(产品),当计算机程序被计算机执行时,可以使得处理器或计算机执行上述方法实施例中对应的报文传输的方法的各个步骤和/或流程。
本申请实施例还提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行上述各方面中的报文传输的方法。
本申请实施例还提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行上述各方面中的报文传输的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid statedisk)等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和模块,能够以软件、硬件、固件或者其任意组合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。作为示例,本申请实施例的方法可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质二者中。
用于实现本申请实施例的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
在本申请实施例的上下文中,计算机程序代码或者相关数据可以由任意适当载体承载,以使得设备、装置或者处理器能够执行上文描述的各种处理和操作。载体的示例包括信号、计算机可读介质等等。
信号的示例可以包括电、光、无线电、声音或其它形式的传播信号,诸如载波、红外信号等。
机器可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光存储设备、磁存储设备,或其任意合适的组合。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、设备和模块的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、设备或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例中方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种所述示例的范围的情况下,第一图像可以被称为第二图像,并且类似地,第二图像可以被称为第一图像。第一图像和第二图像都可以是图像,并且在某些情况下,可以是单独且不同的图像。
还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个第二报文是指两个或两个以上的第二报文。本文中术语“系统”和“网络”经常可互换使用。
应理解,在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。
还应理解,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中的字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
还应理解,术语“若”和“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“若确定...”或“若检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
还应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
以上描述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (30)
1.一种报文传输的方法,其特征在于,所述方法包括:
第一设备获取第一报文,所述第一报文携带目的地址字段和节点信息列表,所述节点信息列表包括第二设备的节点信息和第三设备的节点信息,所述目的地址字段包括第一部分;
所述第一设备根据所述第一部分从所述节点信息列表中确定所述第二设备的节点信息和所述第三设备的节点信息,所述第一部分用于标识所述第二设备的节点信息和所述第三设备的节点信息在所述节点信息列表中的位置;
所述第一设备基于所述第一报文生成第二报文和第三报文,所述第二报文包含所述第二设备的节点信息,所述第三报文包含所述第三设备的节点信息;
所述第一设备向所述第二设备发送所述第二报文,向所述第三设备发送所述第三报文。
2.根据权利要求1所述的方法,其特征在于,所述第一部分指示所述第二设备的节点信息在所述节点信息列表中的位置为起始位置,所述第三设备的节点信息在所述节点信息列表中的位置为结束位置;
或者,所述第一部分指示所述第二设备的节点信息在所述节点信息列表中的位置为起始位置以及所述第三设备在所述节点信息列表中的位置相对于所述第二设备在所述节点信息列表中的位置的偏移量。
3.根据权利要求1或2所述的方法,其特征在于,所述第一设备基于所述第一报文生成第二报文,包括:
所述第一设备基于所述第一部分复制所述第一报文,获得第四报文;
所述第一设备将所述第二设备的节点信息添加到所述第四报文获得所述第二报文。
4.根据权利要求1-3任一所述的方法,其特征在于,所述第一设备为所述第一报文的传输路径上的入口节点;
所述第一设备获取第一报文,包括:
所述第一设备接收第五报文,在所述第五报文的目的地址字段添加所述第一部分、第二部分,得到所述第一报文,所述第二部分标识所述第一设备的地址。
5.根据权利要求1-3任一所述的方法,其特征在于,所述第一设备为所述第一报文的传输路径上的中间节点,所述目的地址字段还包括第二部分,在所述第一设备基于所述第一报文生成第二报文和第三报文之前,还包括:
所述第一设备确定所述第二部分与所述第一设备的地址匹配。
6.根据权利要求1-5任一所述的方法,其特征在于,所述第一报文为基于分段路由的第六版互联网协议SRv6报文,所述节点信息列表携带在所述SRv6报文的分段路由头SRH中,所述节点信息列表为所述SRH的段列表;
或者,所述第一报文为IPv6报文,所述节点信息列表携带在所述IPv6报文的路由头RH中,所述节点信息列表为所述RH的段列表;
或者,所述第一报文为IPv6报文,所述节点信息列表携带在所述IPv6报文的目的选项头DOH中,所述节点信息列表为所述DOH的地址列表。
7.根据权利要求1-6任一所述的方法,其特征在于,所述第一报文、所述第二报文和所述第三报文中还携带第一标识,所述第一标识用于指示当前处理报文的设备的节点信息在所述节点信息列表中的位置。
8.根据权利要求1-7任一所述的方法,其特征在于,所述第一报文还携带叶子标识,所述叶子标识用于指示所述第一设备为叶子节点;
所述第一设备获取第一报文之后,还包括:
所述第一设备基于所述叶子标识和所述第一部分,对复制的获得的所述第一报文进行解封装。
9.根据权利要求8所述的方法,其特征在于,所述节点信息列表携带所述叶子标识。
10.根据权利要求4-8任一所述的方法,其特征在于,所述第二部分包括公共前缀和节点标识,所述公共前缀包括对报文进行处理的设备的节点信息中的节点地址的相同部分,所述节点标识指示对报文进行处理的设备的节点信息中的节点地址的不同部分。
11.根据权利要求10所述的方法,其特征在于,所述节点信息列表包括段列表,所述段列表中的一个或多个段标识不包含所述公共前缀。
12.根据权利要求11所述的方法,其特征在于,所述一个或多个段标识中的任一段标识的长度小于128比特。
13.根据权利要求10-12任一所述的方法,其特征在于,所述公共前缀还包括功能标识,所述功能标识用于指示所述设备所要执行的功能。
14.一种报文传输的装置,其特征在于,所述装置应用于第一设备,所述装置包括:
获取模块,用于获取第一报文,所述第一报文携带目的地址字段和节点信息列表,所述节点信息列表包括第二设备的节点信息和第三设备的节点信息,所述目的地址字段包括第一部分;
所述获取模块,还用于根据所述第一部分从所述节点信息列表中确定所述第二设备的节点信息和所述第三设备的节点信息,所述第一部分用于标识所述第二设备的节点信息和所述第三设备的节点信息在所述节点信息列表中的位置;
所述获取模块,还用于基于所述第一报文生成第二报文和第三报文,所述第二报文包含所述第二设备的节点信息,所述第三报文包含所述第三设备的节点信息;
发送模块,用于向所述第二设备发送所述第二报文,向所述第三设备发送所述第三报文。
15.根据权利要求14所述的装置,其特征在于,所述第一部分指示所述第二设备的节点信息在所述节点信息列表中的位置为起始位置,所述第三设备的节点信息在所述节点信息列表中的位置为结束位置;
或者,所述第一部分指示所述第二设备的节点信息在所述节点信息列表中的位置为起始位置以及所述第三设备在所述节点信息列表中的位置相对于所述第二设备在所述节点信息列表中的位置的偏移量。
16.根据权利要求14或15所述的装置,其特征在于,所述获取模块,用于基于所述第一部分复制所述第一报文获得第四报文,将所述第二设备的节点信息添加到所述第四报文,获得所述第二报文。
17.根据权利要求14-16任一所述的装置,其特征在于,所述第一设备为所述第一报文的传输路径上的入口节点;
所述获取模块,用于接收第五报文,在所述第五报文的目的地址字段添加所述第一部分、第二部分,得到所述第一报文,所述第二部分标识所述第一设备的地址。
18.根据权利要求14-16任一所述的装置,其特征在于,所述第一设备为所述第一报文的传输路径上的中间节点,所述目的地址字段还包括第二部分,所述装置还包括:
确定模块,用于在所述获取模块用于基于所述第一报文生成第二报文和第三报文之前,确定所述第二部分与所述第一设备的地址匹配。
19.根据权利要求14-18任一所述的装置,其特征在于,所述第一报文为基于分段路由的第六版互联网协议SRv6报文,所述节点信息列表携带在所述SRv6报文的分段路由头SRH中,所述节点信息列表为所述SRH的段列表;
或者,所述第一报文为IPv6报文,所述节点信息列表携带在所述IPv6报文的路由头RH中,所述节点信息列表为所述RH的段列表;
或者,所述第一报文为IPv6报文,所述节点信息列表携带在所述IPv6报文的目的选项头DOH中,所述节点信息列表为所述DOH的地址列表。
20.根据权利要求14-19任一所述的装置,其特征在于,所述第一报文、所述第二报文和所述第三报文中还携带第一标识,所述第一标识用于指示当前处理报文的设备的节点信息在所述节点信息列表中的位置。
21.根据权利要求14-20任一所述的装置,其特征在于,所述第一报文还携带叶子标识,所述叶子标识用于指示所述第一设备为叶子节点,所述装置还包括:解封装模块;
所述解封装模块,用于在所述获取模块获取第一报文之后,基于所述叶子标识和所述第一部分,对复制的获得的所述第一报文进行解封装。
22.根据权利要求21所述的装置,其特征在于,所述节点信息列表携带所述叶子标识。
23.根据权利要求17-21任一所述的装置,其特征在于,所述第二部分包括公共前缀和节点标识,所述公共前缀包括对报文进行处理的设备的节点信息中的节点地址的相同部分,所述节点标识指示对报文进行处理的设备的节点信息中的节点地址的不同部分。
24.根据权利要求23所述的装置,其特征在于,所述节点信息列表包括段列表,所述段列表中的一个或多个段标识不包含所述公共前缀。
25.根据权利要求24所述的装置,其特征在于,所述一个或多个段标识中的任一段标识的长度小于128比特。
26.根据权利要求23-25任一所述的装置,其特征在于,所述公共前缀还包括功能标识,所述功能标识用于指示所述设备所要执行的功能。
27.一种报文传输设备,其特征在于,所述报文传输设备包括处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以使得所述报文传输设备实现权利要求1-13中任一所述的报文传输的方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令或代码,当所述指令或代码在计算机上执行时,使得所述计算机执行如权利要求1-13中任一所述的报文传输的方法。
29.一种计算机程序产品,其特征在于,所述计算机程序产品包括程序或代码,当所述程序或代码在计算机上运行时,使得计算机执行如权利要求1-13中任一所述的报文传输的方法。
30.一种报文传输系统,其特征在于,所述报文传输系统包括第一设备、第二设备和第三设备,所述第一设备执行如权利要求1-13中任一所述的报文传输的方法,所述第二设备接收所述第一设备发送的第二报文,所述第三设备接收所述第一设备发送的第三报文。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21908676.6A EP4254834A4 (en) | 2020-12-22 | 2021-09-16 | METHOD AND DEVICE FOR COMMUNICATIONS, AS WELL AS DEVICE, STORAGE MEDIUM AND SYSTEM |
JP2023538837A JP2024502280A (ja) | 2020-12-22 | 2021-09-16 | パケット伝送方法、装置、デバイス、およびシステム、ならびに記憶媒体 |
PCT/CN2021/118863 WO2022134674A1 (zh) | 2020-12-22 | 2021-09-16 | 报文传输的方法、装置、设备、存储介质及系统 |
US18/338,194 US20230336478A1 (en) | 2020-12-22 | 2023-06-20 | Packet transmission method, apparatus, device, and system, and storage medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011528118 | 2020-12-22 | ||
CN2020115281183 | 2020-12-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114666259A true CN114666259A (zh) | 2022-06-24 |
Family
ID=82026194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110221894.7A Pending CN114666259A (zh) | 2020-12-22 | 2021-02-27 | 报文传输的方法、装置、设备、存储介质及系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230336478A1 (zh) |
EP (1) | EP4254834A4 (zh) |
JP (1) | JP2024502280A (zh) |
CN (1) | CN114666259A (zh) |
WO (1) | WO2022134674A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024045180A1 (zh) * | 2022-09-02 | 2024-03-07 | 华为技术有限公司 | 数据报文的传输方法、通信装置和通信系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105099913B (zh) * | 2014-04-21 | 2018-07-20 | 新华三技术有限公司 | 一种报文转发方法及设备 |
CN106411738A (zh) * | 2015-07-30 | 2017-02-15 | 中兴通讯股份有限公司 | Ipv6报文封装的处理方法和装置 |
CN106656781B (zh) * | 2015-11-02 | 2020-12-11 | 中兴通讯股份有限公司 | 一种报文传输的方法、装置和系统 |
CN113904983A (zh) * | 2017-12-27 | 2022-01-07 | 华为技术有限公司 | 一种报文处理的方法、网络节点和系统 |
CN111147383B (zh) * | 2018-11-02 | 2021-06-29 | 华为技术有限公司 | 报文转发的方法、发送报文的装置和接收报文的装置 |
-
2021
- 2021-02-27 CN CN202110221894.7A patent/CN114666259A/zh active Pending
- 2021-09-16 EP EP21908676.6A patent/EP4254834A4/en active Pending
- 2021-09-16 JP JP2023538837A patent/JP2024502280A/ja active Pending
- 2021-09-16 WO PCT/CN2021/118863 patent/WO2022134674A1/zh active Application Filing
-
2023
- 2023-06-20 US US18/338,194 patent/US20230336478A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024045180A1 (zh) * | 2022-09-02 | 2024-03-07 | 华为技术有限公司 | 数据报文的传输方法、通信装置和通信系统 |
Also Published As
Publication number | Publication date |
---|---|
US20230336478A1 (en) | 2023-10-19 |
EP4254834A1 (en) | 2023-10-04 |
EP4254834A4 (en) | 2024-05-01 |
JP2024502280A (ja) | 2024-01-18 |
WO2022134674A1 (zh) | 2022-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230122099A1 (en) | Packet Forwarding Method, Device, and System | |
CN111917640B (zh) | SRv6网络生成段列表、报文转发的方法、设备和系统 | |
US11924099B2 (en) | Method for forwarding packet in hybrid network, device, and system | |
JP7481436B2 (ja) | Srネットワークでパケットを転送する方法、デバイス、及びシステム | |
US20220182323A1 (en) | Method for forwarding packet in sr network, device, and system | |
CN112787927B (zh) | 一种分段路由报文转发方法、装置及预设逻辑电路单元 | |
CN112583711A (zh) | 一种报文处理方法及装置 | |
CN113852550A (zh) | 发送报文的方法、装置、网络设备、系统及存储介质 | |
CN113132257B (zh) | 报文处理方法及装置 | |
CN114640616A (zh) | 一种报文传输、段列表生成、压缩段标识获取方法及装置 | |
US20230336478A1 (en) | Packet transmission method, apparatus, device, and system, and storage medium | |
CN114650255B (zh) | 报文处理方法及网络设备 | |
US20230327986A1 (en) | Route Advertisement Method, Apparatus, and System | |
CN114363432A (zh) | 获取报文头信息、生成报文的方法、设备及存储介质 | |
CN114285907B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN113973074B (zh) | 一种报文处理方法、装置、电子设备及介质 | |
JP2024506089A (ja) | パケット転送方法、装置、およびシステム | |
CN112565044B (zh) | 报文处理方法及装置 | |
CN114125988A (zh) | 生成路由信息、发送位置信息及转发报文的方法及设备 | |
CN115277552A (zh) | 传输报文的方法、装置及设备 | |
CN113765794B (zh) | 数据发送的方法、装置、电子设备及介质 | |
CN113364676B (zh) | 一种数据流处理的方法及装置 | |
CN115589381A (zh) | 用于处理组播报文的方法及装置 | |
CN116827860A (zh) | 一种SRv6报文传输方法、装置、节点以及存储介质 | |
CN117579542A (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 |