CN115277552A - 传输报文的方法、装置及设备 - Google Patents

传输报文的方法、装置及设备 Download PDF

Info

Publication number
CN115277552A
CN115277552A CN202110485917.5A CN202110485917A CN115277552A CN 115277552 A CN115277552 A CN 115277552A CN 202110485917 A CN202110485917 A CN 202110485917A CN 115277552 A CN115277552 A CN 115277552A
Authority
CN
China
Prior art keywords
node
information
packet
message
forwarding table
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
Application number
CN202110485917.5A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110485917.5A priority Critical patent/CN115277552A/zh
Priority to PCT/CN2022/070821 priority patent/WO2022227695A1/zh
Priority to EP22794178.8A priority patent/EP4322485A1/en
Publication of CN115277552A publication Critical patent/CN115277552A/zh
Priority to US18/495,897 priority patent/US20240056383A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/17Shortcut routing, e.g. using next hop resolution protocol [NHRP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/12Arrangements for remote connection or disconnection of substations or of equipment thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • H04L45/566Routing instructions carried by the data packet, e.g. active networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/66Layer 2 routing, e.g. in Ethernet based MAN's

Landscapes

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

Abstract

本申请实施例提供了传输报文的方法、装置及设备。以入口节点执行该方法为例,入口节点通过第一报文携带的第一节点信息获取第二报文,第一节点信息包括用于指示入口节点的N个下一跳设备的第一比特串以及用于索引与N个下一跳设备中的第一中间节点对应的第二节点信息,该第二报文包括基于第一参考信息确定的第一标识;入口节点向第一中间节点发送第二报文。由于采用了第一比特串与第一参考信息的结构,使得报文的编码方式简单,从而提高了报文传输的效率。

Description

传输报文的方法、装置及设备
技术领域
本申请涉及通信技术领域,特别涉及传输报文的方法、装置及设备。
背景技术
随着通信技术的发展,通信设备之间传输报文的方式越来越多。以基于分段路由的第六版互联网协议(segment routing over internet protocol version 6,SRv6)场景传输报文为例,SRv6报文在第六版互联网协议(internet protocol version 6,IPv6)报文中插入分段路由扩展头(segment routing header,SRH),通过SRH中由段标识(segmentidentifier,SID)组成的段列表(segment list)实现报文在传输报文路径中传输。在SID中定义组播树的分叉数量和子树段标识数量,并将复制报文的节点对应的SID和该节点之后的子树中的节点对应的SID排列在一起进行嵌套编码,形成段列表。传输报文时,先通过组播树的分叉数量确定报文复制数量,按照该复制数量复制报文。再通过组播树的分叉数量和子树段标识数量定位下一跳复制报文的节点的SID以及下一跳复制报文的节点之后的子树中的节点对应的SID在段列表中的位置,将复制后的报文中的其他节点的SID以及其他节点的子树SID移除,最后将该处理后的报文向下一跳复制报文的节点进行传输。由于该方法提供的段列表需要嵌套编码,导致编码结构复杂,且每一个复制节点复制报文之后都需对段列表进行处理,当一个复制节点存在大量下一跳复制节点时,传输报文的开销过大,传输效率过低。
发明内容
本申请提出一种传输报文的方法、装置及设备,用于降低报文在传输过程中的开销,提高传输效率。
第一方面,提供了一种传输报文的方法,方法包括:入口节点获取第一报文,第一报文包括第一节点信息,第一节点信息包括第一比特串和第一参考信息,第一比特串用于指示入口节点的N个下一跳设备,N为大于等于1的整数,第一参考信息用于索引与N个下一跳设备中的第一中间节点对应的第二节点信息;入口节点基于第一节点信息获取第二报文,第二报文包括基于第一参考信息确定的第一标识;入口节点向第一中间节点发送第二报文。
通过报文携带的第一节点信息中的第一比特串和第一参考信息,设备可以快速确定处理报文的下一跳设备,并基于该下一跳设备的节点信息获取第二报文,再将第二报文传输给该下一跳设备,使得报文的传输过程简洁且高效。此外,第一节点信息包括第一比特串以及第一参考信息的结构,使得报文的编码方式简单,也提高了设备处理并传输报文的效率。
在一种可能的实现方式中,入口节点基于第一节点信息获取第二报文包括:入口节点基于第一节点信息包括的第一比特串,获取第一转发表项,第一转发表项包括比特位置和下一跳信息,第一转发表项包括的比特位置与第一比特串中的第一比特位对应,第一比特位对应第一中间节点,第一转发表项包括的下一跳信息与第一中间节点对应;入口节点基于第一转发表项对第一报文进行复制;入口节点基于复制后的第一报文和第一节点信息包括的第一参考信息获得第二报文。
在一种可能的实现方式中,入口节点向第一中间节点发送第二报文包括:入口节点基于第一转发表项包括的下一跳信息,向第一中间节点发送第二报文,第一转发表项包括的下一跳信息包括与第一中间节点通信的端口和第一中间节点的地址中的一个或多个。
通过第一转发表项,入口节点可以高效且准确地确定下一跳信息,并向下一跳传输报文。
在一种可能的实现方式中,第二报文还包括第二节点信息,第二节点信息包括第二比特串和第二参考信息,第二比特串用于指示第一中间节点的M个下一跳设备,M为大于或等于1的整数,第二参考信息用于索引与M个下一跳设备中的第二中间节点对应的第三节点信息;或者第二报文还包括第二节点信息,第二节点信息包括第二比特串和第二参考信息,第二比特串用于指示第一中间节点的M个下一跳设备,M为大于或等于1的整数,第二参考信息用于指示第一中间节点是出口节点的上一跳;或者第二报文还包括第二节点信息,第二节点信息包括第二比特串和第二参考信息,第二比特串用于指示第一中间节点的M个下一跳设备,M为大于或等于1的整数,第二参考信息用于指示弹出第一节点信息和第二节点信息。
在一种可能的实现方式中,N为1,第一标识的数值为第一参考信息所携带的数值;N为大于1的整数,第一标识的数值为第一参考信息所携带的数值,或者第一标识的数值为第一参考信息所携带的数值与偏移量之和。
通过第一参考信息的指示确定第一标识,使得第二节点信息可以被快速定位,提高了处理报文的效率。
在一种可能的实现方式中,方法还包括:入口节点获取第一中间节点对应的比特位置和与第一中间节点对应的下一跳信息;入口节点基于第一中间节点对应的比特位置和与第一中间节点对应的下一跳信息,获得第一转发表项;或者方法还包括:入口节点接收控制设备发送的第一转发表项。
在一种可能的实现方式中,第一报文为互联网协议第六版IPv6报文,IPv6报文包括路由头RH,RH包括第一节点信息。
在IPv6网络中使用本申请提供的传输报文的方法,可以提高网络的延展性以及网络的传输速度。
第二方面,提供了一种传输报文的方法,方法包括:第一中间节点接收第一报文,第一报文包括第一标识和第一节点信息,第一标识用于索引第一节点信息,第一节点信息包括第一比特串,第一比特串用于指示第一中间节点的M个下一跳设备,M为大于等于1的整数;第一中间节点基于第一标识确定的第一节点信息获取第二报文;第一中间节点向N个下一跳设备中用于处理第二报文的下一跳发送第二报文。
通过报文携带的第一节点信息中的第一比特串和第一参考信息,设备可以快速确定处理报文的下一跳设备,并基于该下一跳设备的节点信息获取第二报文,再将第二报文传输给该下一跳设备,使得报文的传输过程简洁且高效。此外,第一节点信息包括第一比特串以及第一参考信息的结构,使得报文的编码方式简单,也提高了设备处理并传输报文的效率。
在一种可能的实现方式中,用于处理第二报文的下一跳为第二中间节点,第一报文还包括第二节点信息,第一参考信息用于索引第二节点信息和第一参考信息,第一中间节点基于第一标识确定的第一节点信息获取第二报文包括:第一中间节点基于第一标识,从第一报文获取第一节点信息;第一中间节点基于第一节点信息包括的第一比特串,获取第一转发表项,第一转发表项包括比特位置和下一跳信息,第一转发表项包括的比特位置与第一比特串中的第一比特位对应,第一比特位对应第二中间节点,第一转发表项包括的下一跳信息对应第二中间节点;第一中间节点基于第一转发表项对第一报文进行复制;第一中间节点基于复制后的第一报文和第一节点信息包括的第一参考信息获得第二报文,第二报文包括第二标识,第二标识为根据第一参考信息确定的数值。
通过第一参考信息的指示确定第一标识,使得第二节点信息可以被快速定位,提高了处理报文的效率。
在一种可能的实现方式中,第一中间节点向M个下一跳设备中用于处理第二报文的下一跳发送第二报文包括:第一中间节点基于第一转发表项包括的下一跳信息,向第二中间节点发送第二报文,第一转发表项包括的下一跳信息包括与第二中间节点通信的端口和第二中间节点的地址中的一个或多个。
通过第一转发表项,入口节点可以高效且准确地确定下一跳信息,并向下一跳传输报文。
在一种可能的实现方式中,用于处理第二报文的下一跳为出口节点,第一报文还包括第一参考信息,第一参考信息用于指示第一中间节点是出口节点的上一跳,第一中间节点基于第一标识确定的第一节点信息获取第二报文包括:第一中间节点基于第一标识,从第一报文获取第一节点信息;第一中间节点基于第一节点信息包括的第一比特串,获取第一转发表项,第一转发表项包括比特位置和下一跳信息,第一转发表项包括的比特位置与第一比特串中的第一比特位对应,第一比特位对应第二中间节点,第一转发表项包括的下一跳信息对应第二中间节点;第一中间节点基于第一转发表项对第一报文进行复制;第一中间节点基于复制后的第一报文和第一节点信息包括的第一参考信息获得第二报文。
在一种可能的实现方式中,第二报文包括第二标识,第二标识的数值为根据第一参考信息确定的数值;或者第二报文不包括第一节点信息和第一标识。
在一种可能的实现方式中,第一中间节点向M个下一跳设备中用于处理第二报文的下一跳发送第二报文包括:第一中间节点基于第一转发表项包括的下一跳信息,向出口节点发送第二报文,第一转发表项包括的下一跳信息包括与出口节点通信的端口和出口节点的地址中的一个或多个。
在一种可能的实现方式中,M为1,第二标识的数值为第一参考信息所携带的数值;M为大于1的整数,第二报文的第二标识的数值为第一参考信息所携带的数值,或者第二报文的第二标识的数值为第一参考信息所携带的数值与偏移量之和。
在一种可能的实现方式中,方法还包括:第一中间节点获取用于处理第二报文的下一跳对应的比特位置和与用于处理第二报文的下一跳对应的下一跳信息;第一中间节点基于用于处理第二报文的下一跳对应的比特位置和与用于处理第二报文的下一跳对应的下一跳信息,获得第一转发表项;或者方法还包括:第一中间节点接收控制设备发送的第一转发表项。
在一种可能的实现方式中,第一报文为互联网协议第六版IPv6报文,IPv6报文包括路由头RH,RH包括第一标识和第一设备的节点信息。
在IPv6网络中使用本申请提供的传输报文的方法,可以提高网络的延展性以及网络的传输速度。
通过上述第一方面以及第二方面提供的方法,通过报文携带的第一节点信息中的第一比特串和第一参考信息,设备可以快速确定处理报文的下一跳设备,并基于该下一跳设备的节点信息获取第二报文,再将第二报文传输给该下一跳设备,使得报文的传输过程简洁且高效。此外,第一节点信息包括第一比特串以及第一参考信息的结构,使得报文的编码方式简单,也提高了设备处理并传输报文的效率。
第三方面,提供了一种传输报文的装置,该装置包括:第一获取模块,第二获取模块,发送模块。
该装置应用于入口节点,则第一获取模块,用于获取第一报文,第一报文包括第一节点信息,第一节点信息包括第一比特串和第一参考信息,第一比特串用于指示入口节点的N个下一跳设备,N为大于等于1的整数,第一参考信息用于索引与N个下一跳设备中的第一中间节点对应的第二节点信息;第二获取模块,用于基于第一节点信息获取第二报文,第二报文包括基于第一参考信息确定的第一标识;发送模块,用于向第一中间节点发送第二报文。
在一种可能的实现方式中,第一获取模块,用于基于第一节点信息包括的第一比特串,获取第一转发表项,第一转发表项包括比特位置和下一跳信息,第一转发表项包括的比特位置与第一比特串中的第一比特位对应,第一比特位对应第一中间节点,第一转发表项包括的下一跳信息与第一中间节点对应;基于第一转发表项对第一报文进行复制;基于复制后的第一报文和第一节点信息包括的第一参考信息获得第二报文。
在一种可能的实现方式中,发送模块,用于基于第一转发表项包括的下一跳信息,向第一中间节点发送第二报文,第一转发表项包括的下一跳信息包括与第一中间节点通信的端口和第一中间节点的地址中的一个或多个。
在一种可能的实现方式中,第二报文还包括第二节点信息,第二节点信息包括第二比特串和第二参考信息,第二比特串用于指示第一中间节点的M个下一跳设备,M为大于或等于1的整数,第二参考信息用于索引与M个下一跳设备中的第二中间节点对应的第三节点信息;或者,第二报文还包括第二节点信息,第二节点信息包括第二比特串和第二参考信息,第二比特串用于指示第一中间节点的M个下一跳设备,M为大于或等于1的整数,第二参考信息用于指示第一中间节点是出口节点的上一跳;或者,第二报文还包括第二节点信息,第二节点信息包括第二比特串和第二参考信息,第二比特串用于指示第一中间节点的M个下一跳设备,M为大于或等于1的整数,第二参考信息用于指示弹出第一节点信息和第二节点信息。
在一种可能的实现方式中,N为1,第一标识的数值为第一参考信息所携带的数值;N为大于1的整数,第一标识的数值为第一参考信息所携带的数值,或者第一标识的数值为第一参考信息所携带的数值与偏移量之和。
在一种可能的实现方式中,第一获取模块,还用于获取第一中间节点对应的比特位置和与第一中间节点对应的下一跳信息;基于第一中间节点对应的比特位置和与第一中间节点对应的下一跳信息,获得第一转发表项;或者,第一获取模块,还用于接收控制设备发送的第一转发表项。
在一种可能的实现方式中,第一报文为互联网协议第六版IPv6报文,IPv6报文包括路由头RH,RH包括第一节点信息。
该装置应用于第一中间节点,则第一获取模块,用于接收第一报文,第一报文包括第一标识和第一节点信息,第一标识用于索引第一节点信息,第一节点信息包括第一比特串,第一比特串用于指示第一中间节点的M个下一跳设备,M为大于等于1的整数;第二获取模块,用于基于第一标识确定的第一节点信息获取第二报文;发送模块,用于向M个下一跳设备中用于处理第二报文的下一跳发送第二报文。
在一种可能的实现方式中,用于处理第二报文的下一跳为第二中间节点,第一报文还包括第二节点信息,第一参考信息用于索引第二节点信息和第一参考信息,第二获取模块,用于基于第一标识,从第一报文获取第一节点信息;基于第一节点信息包括的第一比特串,获取第一转发表项,第一转发表项包括比特位置和下一跳信息,第一转发表项包括的比特位置与第一比特串中的第一比特位对应,第一比特位对应第二中间节点,第一转发表项包括的下一跳信息对应第二中间节点;基于第一转发表项对第一报文进行复制;基于复制后的第一报文和第一节点信息包括的第一参考信息获得第二报文,第二报文包括第二标识,第二标识为根据第一参考信息确定的数值。
在一种可能的实现方式中,发送模块,用于基于第一转发表项包括的下一跳信息,向第二中间节点发送第二报文,第一转发表项包括的下一跳信息包括与第二中间节点通信的端口和第二中间节点的地址中的一个或多个。
在一种可能的实现方式中,用于处理第二报文的下一跳为出口节点,第一报文还包括第一参考信息,第一参考信息用于指示第一中间节点是出口节点的上一跳,第二获取模块,用于基于第一标识,从第一报文获取第一节点信息;基于第一节点信息包括的第一比特串,获取第一转发表项,第一转发表项包括比特位置和下一跳信息,第一转发表项包括的比特位置与第一比特串中的第一比特位对应,第一比特位对应第二中间节点,第一转发表项包括的下一跳信息对应第二中间节点;基于第一转发表项对第一报文进行复制;基于复制后的第一报文和第一节点信息包括的第一参考信息获得第二报文。
在一种可能的实现方式中,第二报文包括第二标识,第二标识的数值为根据第一参考信息确定的数值;或者第二报文不包括第一节点信息和第一标识。
在一种可能的实现方式中,发送模块,用于基于第一转发表项包括的下一跳信息,向出口节点发送第二报文,第一转发表项包括的下一跳信息包括与出口节点通信的端口和出口节点的地址中的一个或多个。
在一种可能的实现方式中,M为1,第二标识的数值为第一参考信息所携带的数值;M为大于1的整数,第二报文的第二标识的数值为第一参考信息所携带的数值,或者第二报文的第二标识的数值为第一参考信息所携带的数值与偏移量之和。
在一种可能的实现方式中,第一获取模块,还用于获取用于处理第二报文的下一跳对应的比特位置和与用于处理第二报文的下一跳对应的下一跳信息;基于用于处理第二报文的下一跳对应的比特位置和与用于处理第二报文的下一跳对应的下一跳信息,获得第一转发表项;或者,第一获取模块,还用于接收控制设备发送的第一转发表项。
在一种可能的实现方式中,第一报文为IPv6报文,IPv6报文包括路由头RH,RH包括第一标识和第一设备的节点信息。
第四方面,提供了一种传输报文的设备,所述传输报文的设备包括处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以使得所述传输报文的设备实现如上第一方面以及第二方面中任一方面,或者,第一方面以及第二方面中任一方面任一种可能的实现方式的传输报文的方法。
第五方面,提供了一种计算机可读存储介质,其上存储有至少一条指令,所述指令由处理器加载并执行,以使得计算机实现如上第一方面以及第二方面中任一方面,或者,第一方面以及第二方面中任一方面任一种可能的实现方式的传输报文的方法。
第六方面,提供了一种计算机程序产品,包括计算机程序或代码,计算机程序或代码被计算机执行时,实现如上第一方面以及第二方面中任一方面,或者,第一方面以及第二方面中任一方面任一种可能的实现方式的传输报文的方法。
第七方面,提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第一方面以及第二方面中任一方面,或者,第一方面以及第二方面中任一方面任一种可能的实现方式的传输报文的方法。
作为一种示例性实施例,处理器为一个或多个,存储器为一个或多个。
作为一种示例性实施例,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如,只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
第八方面,提供了一种芯片,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行上述第一方面以及第二方面中任一方面,或者,第一方面以及第二方面中任一方面任一种可能的实现方式的传输报文的方法。
第九方面,提供了另一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行上述第一方面以及第二方面中任一方面,或者,第一方面以及第二方面中任一方面任一种可能的实现方式的传输报文的方法。
第十方面,提供了一种传输报文的系统,所述传输报文的系统包括入口节点以及第一中间节点,所述入口节点执行上述第一方面,或者,第一方面中任一种可能的实现方式的传输报文的方法,所述第一中间节点执行上述第二方面,或者,第二方面中任一种可能的实现方式的传输报文的方法,所述第一中间节点接收所述第一设备发送的第二报文。
附图说明
图1是本申请实施例提供的一种传输报文的方法的网络场景示意图;
图2是本申请实施例提供的一种报文的传输路径示意图;
图3是本申请实施例提供的一种报文传输的方法的流程图;
图4是本申请实施例提供的一种报文传输的方法的流程图;
图5是本申请实施例提供的一种报文传输的方法的流程图;
图6是本申请实施例提供的一种节点信息的结构示意图;
图7是本申请实施例提供的一种节点信息列表的结构示意图;
图8是本申请实施例提供的一种IPv6报文头的结构示意图;
图9是本申请实施例提供的一种RH头的结构示意图;
图10是本申请实施例提供的一种RH头的结构示意图;
图11是本申请实施例提供的一种获取第一报文的方法示意图;
图12是本申请实施例提供的一种转发表项的结构示意图;
图13是本申请实施例提供的一种转发表的结构示意图;
图14是本申请实施例提供的一种转发表的结构示意图;
图15为本申请实施例提供的一种转发表的结构示意图;
图16是本申请实施例提供的一种报文传输的装置示意图;
图17是本申请实施例提供的一种报文传输的设备的结构示意图;
图18是本申请实施例提供的一种报文传输的设备的结构示意图。
具体实施方式
下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例提供了一种报文传输的方法,该方法可应用于图1所示的网络场景中。如图1所示,该网络场景中包括一个发送报文的设备1和多个接收报文的网络设备RT1-RT9,RT1-RT9之间通过复制和转发来传输设备1发出的报文。示例性地,本申请实施例中的设备1包括但不限于路由器、交换机、服务器等,网络设备RT1-RT9包括但不限于路由器、交换机、服务器等。
在RT1-RT9上传输的报文中,携带了报文的传输路径的信息,即路径RT1-RT9的信息。在一种可能的实现方式中,通过节点信息列表携带该报文的传输路径的信息,节点信息列表包括了每一跳处理报文的设备的节点信息,关于节点信息的结构,将会在后文实施例中说明,在这里不再赘述。报文传输路径上每一跳处理报文的网络设备(即RT1-RT9)依据报文携带的节点信息列表,对报文进行处理。在本实施例中,对报文的处理指对报文进行复制、转发、解封装以及继续上送给上层设备等操作,相应地,处理报文的设备指对报文进行复制、转发、解封装以及继续上送给上层设备等操作的设备。
需要说明的是,为了使后文便于理解,这里对本申请实施例中的下一跳设备和下一跳处理报文的设备两个概念进行区分。本申请实施例中,网络设备的下一跳设备是该网络设备连接的设备,该网络设备连接的设备可基于网络拓扑确定。该网络设备能够向该连接的设备传输报文,而下一跳处理报文的设备是网络设备连接的设备中的部分或者全部设备,该下一跳处理报文的设备可基于传输的报文的传输路径确定。网络设备向该下一跳处理报文的设备传输报文,以使该下一跳处理报文的设备对报文进行处理。以图1中的RT1为例,RT1的下一跳设备包括RT2、RT3、RT10以及RT11,即RT1与RT2、RT3、RT10以及RT11连接且具有向RT2、RT3、RT10以及RT11传输报文的能力。由于RT2、RT3在报文的传输路径上,因此,RT1基于报文的传输路径确定多个下一跳设备中的RT2和RT3作为下一跳处理报文的设备,RT1向RT2和RT3传输报文,以使RT2和RT3对报文进行处理。
根据网络设备RT1-RT9在报文的传输路径上的不同位置,可以将网络设备RT1-RT9分为入口节点、中间节点和出口节点。入口节点为报文的传输路径中首先传输报文的头节点设备,中间节点在报文的传输路径中接收上一跳处理报文的设备发送的报文,进行复制再转发给下一跳处理报文的设备,出口节点为报文的传输路径中的最后一跳处理报文的设备。在本场景中,入口节点包括RT1,中间节点包括RT2和RT3,出口节点包括RT4-RT9。RT1作为入口节点,接收设备1发送的报文,复制转发报文给多个下一跳处理报文的设备,即RT2和RT3。RT2和RT3接收RT1发送的报文,再复制转发给对应的多个下一跳处理报文的设备,即RT2对应的RT4、RT5和RT6,RT3对应的RT7、RT8和RT9。RT4-RT9作为报文的传输路径上的多个最后一跳处理报文的设备,接收中间节点发送的报文,完成报文在该路径上的传输。
请参考图2,其示出了本申请实施例提供的一种报文的传输路径示意图。该报文的传输路径由图1所示的网络场景简化而来。如图2所示,节点A为报文的传输路径上的入口节点,节点B、节点C为报文的传输路径上的中间节点,节点B1-B3以及节点C1-C3为报文的传输路径上的出口节点。报文由节点A传输给节点B和节点C,再由节点B传输给节点B1-B3,由节点C传输给节点C1-C3。
结合图1所示的网络场景以及图2所示的报文的传输路径,接下来,以第一设备执行该方法为例,对本申请实施例提供的报文传输的方法进行说明。本申请实施例提供的报文包括第一设备的节点信息,第一设备的节点信息由指示第一设备连接的N(N为大于等于1的整数)个下一跳设备的第一比特串以及用于指示N个下一跳设备中处理报文的第二设备的节点信息的位置的第一参考信息组成,该节点信息的编码方式简单,提高了处理报文的效率。此外,第一设备向第二设备传输报文时可根据第一设备的节点信息获取第二报文,再传输给第二设备,使得报文传输过程简洁且高效。
请参考图3,其示出了本申请实施例提供的一种报文传输的方法的流程图。该方法应用于入口节点。本申请实施例提供的该方法包括但不限于如下几个过程。
301,入口节点获取第一报文。
在一种可能的实现方式中,第一报文包括第一节点信息,第一节点信息包括第一比特串和第一参考信息,第一比特串用于指示入口节点的N个下一跳设备,N为大于等于1的整数,第一参考信息用于索引与N个下一跳设备中的第一中间节点对应的第二节点信息。
302,入口节点基于第一节点信息获取第二报文,第二报文包括基于第一参考信息确定的第一标识。
在一种可能的实现方式中,入口节点基于第一节点信息获取第二报文包括:入口节点基于第一节点信息包括的第一比特串,获取第一转发表项,第一转发表项包括比特位置和下一跳信息,第一转发表项包括的比特位置与第一比特串中的第一比特位对应,第一比特位对应第一中间节点,第一转发表项包括的下一跳信息与第一中间节点对应;入口节点基于第一转发表项对第一报文进行复制;入口节点基于复制后的第一报文和第一节点信息包括的第一参考信息获得第二报文。其中,第二报文的目的地址可以是基于下一跳信息获取的第一中间节点的地址。
在一种可能的实现方式中,第二报文还包括第二节点信息,关于第二节点信息的内容,有下述三种可能实现方式。
方式a,第二报文还包括第二节点信息,第二节点信息包括第二比特串和第二参考信息,第二比特串用于指示第一中间节点的M个下一跳设备,M为大于或等于1的整数,第二参考信息用于索引与M个下一跳设备中的第二中间节点对应的第三节点信息。
方式b,第二报文还包括第二节点信息,第二节点信息包括第二比特串和第二参考信息,第二比特串用于指示第一中间节点的M个下一跳设备,M为大于或等于1的整数,第二参考信息用于指示第一中间节点是出口节点的上一跳。
方式c,第二报文还包括第二节点信息,第二节点信息包括第二比特串和第二参考信息,第二比特串用于指示第一中间节点的M个下一跳设备,M为大于或等于1的整数,第二参考信息用于指示弹出第一节点信息和第二节点信息。
关于第一标识的数值,包括但不限于通过如下方式确定:若N为1,第一标识的数值为第一参考信息所携带的数值;若N为大于1的整数,第一标识的数值为第一参考信息所携带的数值,或者第一标识的数值为第一参考信息所携带的数值与偏移量之和。其中,偏移量为与第一中间节点对应的被置位(比如置1)的比特位在被置位的比特位中的排序与首个被置位的比特位的排序的差值,比如与第一中间节点对应的被置位的比特位是第二个被置位的比特位,则偏移量为1。与第一中间节点对应的被置位的比特位在比特串中的偏移量可以与第一中间节点对应的被置位(比如置1)的比特位在被置位的比特位中的排序相同,也可以与第一中间节点对应的被置位(比如置1)的比特位在被置位的比特位中的排序不相同。
303,入口节点向第一中间节点发送第二报文。
在一种可能的实现方式中,入口节点向第一中间节点发送第二报文包括:入口节点基于第一转发表项包括的下一跳信息,向第一中间节点发送第二报文,第一转发表项包括的下一跳信息包括与第一中间节点通信的端口和第一中间节点的地址中的一个或多个。其中,当第一转发表项包括的下一跳信息包括与第一中间节点通信的端口时,入口节点可根据与第一中间节点通信的端口查找对应关系,获取第一中间节点的地址,对应关系包括与第一中间节点通信的端口和第一中间节点的地址。当第一转发表项包括的下一跳信息包括第一中间节点的地址时,入口节点可根据第一中间节点的地址查找对应关系,进而获取与第一中间节点通信的端口。入口节点可通过与第一中间节点通信的端口发送第二报文。
在实现上述传输报文的过程前,入口节点还可以获取第一转发表项。在一种可能的实现方式中,入口节点获取第一中间节点对应的比特位置和与第一中间节点对应的下一跳信息;入口节点基于第一中间节点对应的比特位置和与第一中间节点对应的下一跳信息,获得第一转发表项。
在另一种可能的实现方式中,入口节点接收控制设备发送的第一转发表项。
在一种可能的实现方式中,第一报文为IPv6报文,IPv6报文包括RH,RH包括第一节点信息。
请参考图4,其示出了本申请实施例提供的一种报文传输的方法的流程图。该方法应用于第一中间节点。本申请实施例提供的该方法包括但不限于如下几个过程。
304,第一中间节点接收第一报文。
第一报文包括第一标识和第一节点信息,第一标识用于索引第一节点信息,第一节点信息包括第一比特串和第一参考信息,第一比特串用于指示第一中间节点的M个下一跳设备,M为大于等于1的整数。M个下一跳设备可以是其它中间节点,或者M个下一跳设备是出口节点。
305,第一中间节点基于第一标识确定的第一节点信息获取第二报文。
在一种可能的实现方式中,用于处理第二报文的下一跳为第二中间节点,第一报文还包括第二节点信息,第一参考信息用于索引第二节点信息。
根据处理第二报文的下一跳不同类型,第一中间节点获取第二报文的方式不同,包括但不限于如下几种。
方式A,当用于处理第二报文的下一跳为第二中间节点,第一中间节点基于第一标识确定的第一节点信息获取第二报文,包括:第一中间节点基于第一标识,从第一报文获取第一节点信息;第一中间节点基于第一节点信息包括的第一比特串,获取第一转发表项,第一转发表项包括比特位置和下一跳信息,第一转发表项包括的比特位置与第一比特串中的第一比特位对应,第一比特位对应第二中间节点,第一转发表项包括的下一跳信息对应第二中间节点;第一中间节点基于第一转发表项对第一报文进行复制;第一中间节点基于复制后的第一报文和第一节点信息包括的第一参考信息获得第二报文,第二报文包括第二标识,第二标识为根据第一参考信息确定的数值。
通过方式A确定第二标识的过程包括:若M为1,第二标识的数值为第一参考信息所携带的数值;若M为大于1的整数,第二报文的第二标识的数值为第一参考信息所携带的数值,或者第二报文的第二标识的数值为第一参考信息所携带的数值与偏移量之和。所述偏移量的含义与图3对应的实施例中偏移量的含义相同,在此不再赘述。
方式B,当用于处理第二报文的下一跳为出口节点,第一参考信息用于指示第一中间节点是出口节点的上一跳。
在方式B中,第一中间节点基于第一标识确定的第一节点信息获取第二报文,包括:第一中间节点基于第一标识,从第一报文获取第一节点信息;第一中间节点基于第一节点信息包括的第一比特串,获取第一转发表项,第一转发表项包括比特位置和下一跳信息,第一转发表项包括的比特位置与第一比特串中的第一比特位对应,第一比特位对应第二中间节点,第一转发表项包括的下一跳信息对应第二中间节点;第一中间节点基于第一转发表项对第一报文进行复制;第一中间节点基于复制后的第一报文和第一节点信息包括的第一参考信息获得第二报文。
通过方式B得到的第二报文还包括第二标识,第二标识为根据第一参考信息确定的数值;或者第二报文不包括第一节点信息和第一标识,即第二报文中可弹出携带有第一节点信息和第一标识的报文头。
306,第一中间节点向N个下一跳设备中用于处理第二报文的下一跳发送第二报文。
对应于上述获取第二报文的方式A和方式B,第一中间节点发送第二报文也有不同的方式。
对应于上述方式A,当用于处理第二报文的下一跳为第二中间节点,第一中间节点向N个下一跳设备中用于处理第二报文的下一跳发送第二报文,包括:第一中间节点基于第一转发表项包括的下一跳信息,向第二中间节点发送第二报文,第一转发表项包括的下一跳信息包括与第二中间节点通信的端口和第二中间节点的地址中的一个或多个。
对应于上述方式B,当用于处理第二报文的下一跳为出口节点,第一中间节点向N个下一跳设备中用于处理第二报文的下一跳发送第二报文包括:第一中间节点基于第一转发表项包括的下一跳信息,向出口节点发送第二报文,第一转发表项包括的下一跳信息包括与出口节点通信的端口和出口节点的地址中的一个或多个。
在实现上述传输报文的过程前,第一中间节点还可以获取第一转发表项。在一种可能的实现方式中,第一中间节点获取用于处理第二报文的下一跳对应的比特位置和与用于处理第二报文的下一跳对应的下一跳信息;第一中间节点基于用于处理第二报文的下一跳对应的比特位置和与用于处理第二报文的下一跳对应的下一跳信息,获得第一转发表项;或者,第一中间节点接收控制设备发送的第一转发表项。
在一种可能的实现方式中,第一报文为互联网协议第六版IPv6报文,IPv6报文包括路由头RH,RH包括第一标识和第一节点信息。
结合上述图3、图4所示的报文传输的方法,请参考图5,其示出了本申请实施例提供的一种报文传输的方法的流程图。该方法可以应用于入口节点和出口节点中任意一种节点,在图5所示的实施例中,第一设备的节点信息相当于上述的第一节点信息;第二设备的节点信息相当于上述的第二节点信息;比特位置标识相当于上述的比特位置,下一跳地址或向下一跳传输报文的端口相当于下一跳信息。
该方法不限于如下几个过程。
401,第一设备获取第一报文,第一报文携带第一设备的节点信息,第一设备的节点信息包括第一比特串以及第一参考信息。
第一比特串指示第一设备连接的N个下一跳设备,其中,N为大于等于1的整数。第一参考信息用于指示第二设备的节点信息的位置,第二设备为N个下一跳设备中处理第二报文的设备,其中,第二报文为第一设备传输给第二设备的报文。当N为1时,第二设备即为第一设备连接的下一跳设备。
请参考图6,其示出了本申请实施例提供的一种节点信息的结构示意图。如图6所示,节点信息包括参考信息和比特串。比特串中的每个位比特,指示该节点信息所属的设备连接的每个下一跳设备,且比特位与下一跳设备一一对应,参考信息用于指示该节点信息所属的设备所连接的下一跳设备中,处理报文的设备的节点信息的位置。对于第一设备的节点信息,将第一设备的节点信息中的参考信息称为第一参考信息,将第一设备的节点信息中的比特串称为第一比特串。通过第一比特串指示第一设备连接的N个下一跳设备,可以提高第一设备的节点信息所能指示的下一跳设备的数量,使得报文的传输路径得以扩展。
第一比特串中的每个比特位,指示第一设备连接的每个下一跳设备。而由于第一设备可以连接多个下一跳设备,而该多个下一跳设备不一定全部都存在于报文传输路径中,即该多个下一跳设备不一定全部都为处理报文的设备,也即该多个下一跳设备不一定全部都为第二设备。因而,在本申请实施例中,在第一比特串中对第二设备所属的比特位和非第二设备所属的比特位进行了区分。在一种可能的实现方式中,第一比特串包括第一比特位,第一比特位指示第一比特位对应的设备为第二设备。
关于第一参考信息用于指示第二设备的节点信息的位置,可以包括如下情况。
情况一、第一参考信息用于指示参考位置,参考位置为第一比特串中的参考比特位对应的设备的节点信息的位置。参考比特位是第一比特串中定义好的作为参考的比特位。若要获取第二设备的节点信息的位置,则只要获知该第二设备所属的第一比特位到参考比特位的偏移量,就可以对应获得该第二设备的节点信息的位置到参考位置的偏移量,从而基于参考位置和偏移量得到该第二设备的节点信息的位置。
情况二、第一参考信息用于指示第一设备为第一报文的传输路径上的倒数第二跳。当第一设备为第一报文的传输路径上的倒数第二跳,则第二设备为第一报文的传输路径上的最后一跳,也即出口节点。由前文对出口节点的描述可知,出口节点后不再有处理报文的设备,第二设备的节点信息也就没有指示下一跳处理报文的设备。因此,本申请实施例提供的第一报文不包括出口节点的节点信息。也就是说,当第一参考信息指示了第一设备为第一报文的传输路径上的倒数第二跳,则说明第二设备为第一报文的传输路径上的出口节点,也即第二设备的节点信息不存在于第一报文中。
通过第一参考信息指示第二设备的节点信息的位置,使得第二设备的节点信息可以被快速定位,提高了处理报文的效率。
可选地,第一设备的节点信息可以携带在第一报文的节点信息列表中,该节点信息列表还可以包括第一报文的传输路径上除了第一设备以及最后一跳设备之外的其他处理报文的设备的节点信息。请参考图7,其示出了本申请实施例提供的一种节点信息列表的结构示意图。该节点信息列表对应的是图2所示的报文的传输路径。
需要说明的是,若以A为第一设备为例,B和C对应第二设备,则该节点信息列表包括第一设备的节点信息和第二设备的节点信息;若以B为第一设备为例,B1-B3对应第二设备,则该节点信息列表仅包括第一设备的节点信息;若以C为第一设备为例,C1-C3对应第二设备,则该节点信息列表仅包括第一设备的节点信息。但无论以A、B或C哪一个为第一设备,节点信息列表都包括第一设备的节点信息。
此外,图7中的剩余段(segment left)用于在图7中表示各节点信息在该节点信息列表中的排列顺序,但在实际的节点信息列表中可以不存在该segment left。根据segmentleft的排列,节点信息列表中第一条节点信息的位置是segment left为0的节点信息的位置,第二条节点信息的位置是segment left为1的节点信息的位置,第三条节点信息的位置是segment left为2的节点信息的位置。
以A为第一设备,B、C为第二设备为例,则A的节点信息中的“1”对应第一参考信息,“110000”对应第一比特串。“110000”中的每一个比特位表示A连接的每一个下一跳设备,例如,“110000”包括6个比特位,则6个比特位分别对应A连接的6个下一跳设备。进一步地,“110000”中两个置“1”的比特位,即“110000”中的两个“1”,为前文的第一比特位,该两个“1”指示该两个“1”对应的两个设备为B和C。
第一参考信息的“1”用于指示B、C的节点信息的位置。在本示例中,第一参考信息的“1”指示参考位置,即“110000”中的参考比特位对应的设备的节点信息在节点信息列表中的位置。在本示例中,选取“110000”中第一个置“1”的比特位作为参考比特位,则第一参考信息对应的“1”则表示第一个置“1”的比特位对应的设备的节点信息在节点信息列表中的位置(也即参考位置)为第二条节点信息(即segment left为1)的位置。
在“110000”中的置“1”的比特位(也第一比特位)中,第一个置“1”的比特位到参考比特位的偏移量为0,则第一个置“1”的比特位对应的设备的节点信息与参考位置的偏移量为0,则第一个置“1”的比特位对应的设备的节点信息为节点信息列表中的第二条节点信息,也即B的节点信息。在“110000”中的置“1”的比特位(也第一比特位)中,第二个置“1”的比特位到参考比特位的偏移量为1,则第二个置“1”的比特位对应的设备的节点信息与参考位置的偏移量为1,则第二个置“1”的比特位对应的设备的节点信息为节点信息列表中的第三条节点信息,也即C的节点信息。
需要说明的是,这里第二条节点信息为B的节点信息以及第三条节点信息为C的节点信息仅仅为一个示例,本申请实施例并不限制B的节点信息和C的节点信息的排列顺序,也即本申请实施例并不限制第二设备的节点信息的排列顺序。在一些实施例中,节点信息列表中的第二条节点信息也可以为C的节点信息,第三条节点信息也可以为B的节点信息。
以B为第一设备,B1-B3为第二设备为例,则B的节点信息中的“0”对应第一参考信息,“111000”对应第一比特串。“111000”表示B连接的多个下一跳设备,“111000”中三个置“1”的比特位指示B1-B3。第一参考信息的“0”指示B为报文传输路径上的倒数第二跳,则B1-B3为报文的传输路径上的出口节点,也就是说,B1-B3的节点信息不存在于节点信息列表中。
若以C为第一设备,C1-C3为第二设备为例,则关于C的节点信息的描述可以参考以B为第一设备,B1-B3为第二设备时对B的节点信息的描述,在此不再赘述。
需要说明的是,在本示例的节点信息列表中,第一比特位用置“1”表示,除去第一比特位的其他比特位用置“0”表示。在一些示例中,第一比特位的表示方法也可根据实际需求进行灵活设置,本申请实施例对此不做限制,例如,第一比特位也可以用置“0”表示,除去第一比特位的其他比特位也可以用置“1”表示。
接下来,举例介绍节点信息列表的携带方式。在一种可能的实现方式中,第一报文为互联网协议第六版(internet protocol version 6,IPv6)报文,节点信息列表携带在IPv6报文的路由头(routing header,RH)中,节点信息列表为RH的段列表。在IPv6网络中使用本申请提供的传输报文的方法,可以提高网络的延展性以及网络的传输速度。
请参考图8,其示出了本申请实施例提供的一种IPv6报文头的结构示意图。其中,下一个头字段的取值为指示下一个头为路由头RH的值,表示IPv6报文头后的下一个头为RH,例如,下一个头字段的取值为43。需要说明的是,IPv6报文头中包括目的地址字段,该目的地址字段用于存放传输该报文时下一跳设备的网际互联协议(internet protocol,IP)地址,该下一跳设备的IP地址用于在网络中找到该下一跳设备。例如,第一设备向第二设备传输的报文中,报文的目的地址字段存放了第二设备的IP地址。此外,IPv6报文头还包括版本、传输等级、流标签、载荷长度、跳数限制以及源地址字段。
请参考图9,其示出了本申请实施例提供的一种RH头的结构示意图,该RH头位于上述IPv6报文头之后。本申请实施例提供的RH头是一种新的IPv6扩展头,如图所示,该RH头中路由类型字段的取值待互联网数字分配机构(the internet assigned numbersauthority,IANA)分配,用于唯一指示本申请实施例提供的RH头。此外,类型特定数据字段和更多类型特定数据字段用于存放该类型RH头所需的数据。关于本申请实施例提供的RH头的具体结构,详见下述图10的相关描述。
请参考图10,其示出了本申请实施例提供的一种RH头的结构示意图。其中,比特串类型字段、段长度字段以及预留字段存放在图9中类型特定数据字段中。segment 0至segment n存放在图9的更多类型特定数据字段中,segment 0至segment n排列在一起构成段列表(segment list),段列表(segment list)即为前文描述的节点信息列表。此外,该RH头还包括下一个头以及扩展头长度字段。
需要说明的是,在图9和图10,均存在segment left字段,不同于图7中仅表示节点信息排列顺序的segment left,图10的segment left字段用于指示当前处理报文的设备的节点信息在节点信息列表中的位置。例如,当segment left为1,则指示当前处理报文的设备的节点信息为segment 0。
为了使设备在处理报文时能够快速找到该设备对应的节点信息,在一种可能的实现方式中,第一报文携带第一标识,第一标识用于指示第一设备处理第一报文,示例性地,第一标识可以为第一报文中segment left字段所示的值。在一种可能的实现方式中,第二报文携带第二标识,第一标识用于指示第一设备处理第二报文,示例性地,示例性地,第二标识可以为第二报文中segment left字段所示的值。
结合上述对第一报文结构的描述,下面介绍第一设备获取第一报文的过程。基于前文对处于报文传输路径上不同位置的节点的说明,第一设备获取第一报文的过程包括但不限于如下两种情况。
情况a,第一设备为第一报文的传输路径上的中间节点,则第一设备获取第一报文,包括:接收上一跳处理报文的设备发送的第一报文。
情况b,第一设备为第一报文的传输路径上的入口节点,则第一设备获取第一报文,包括:获取第五报文;获取第一设备的节点信息;将第一设备的节点信息添加到第五报文中,获得第一报文。
在一种可能的实现方式中,获取第一设备的节点信息,包括:获取第一比特串与N个下一跳设备的对应关系,基于第一比特串与N个下一跳设备的对应关系以及第五报文的传输路径生成第一设备的节点信息。以图7的A为例,则A的对应信息指示了A的节点信息的比特串中,第一个比特位指示B,第二个比特位指示C。
可选地,第一报文的传输路径中,除了最后一跳处理报文的设备,其他每一个处理报文的设备都有该设备对应的比特串,且该比特串与该设备的N个下一跳设备都有对应关系。则第一报文的传输路径中,除了最后一跳处理报文的设备,其他每一个处理报文的设备都可以向第一设备上报每一个处理报文的设备的比特串与每一个处理报文的设备的N个下一跳设备的对应关系。第一设备还可以基于接收到的每一个处理报文的设备的比特串与每一个处理报文的设备的N个下一跳设备的对应关系、第五报文的传输路径,生成节点信息列表。以图7的A为例,则B上报的对应信息指示了B的节点信息的比特串中,第一个比特位指示B1,第二个比特位指示B2,第三比特位指示B3。
在另一种可能的实现方式中,获取第一设备的节点信息,包括:接收第四设备发送的第一设备的节点信息。第四设备可以为控制设备,可选地,第一设备可以将第一比特串与N个下一跳设备的对应关系上报给控制设备,控制设备基于第一比特串与N个下一跳设备的对应关系以及第五报文的传输路径生成第一设备的节点信息,再将第一设备的节点信息下发给第一设备。进一步地,控制设备还可以基于接收到的每一个处理报文的设备的比特串与每一个处理报文的设备的N个下一跳设备的对应关系、第五报文的传输路径,生成节点信息列表,再将节点信息列表下发给第一设备。
请参考图11,其示出了一种获取第一报文的方法示意图。控制设备接收每一个处理报文的设备上报的比特串以及与该处理报文的设备的N个下一跳设备的对应关系,并结合第五报文的传输路径生成携带节点信息列表的RH头,再下发给作为入口节点的第一设备。第一设备再将RH头封装到第五报文上,获得第一报文。
402,第一设备基于第一设备的节点信息获取第二报文,向第二设备传输第二报文。
结合上述图9和图10的相关内容可知,第一报文中携带第一标识,为了使第一设备能够快速定位第一设备的节点信息,在一种可能的实现方式中,基于第一设备的节点信息向第二设备传输报文之前,还包括:基于第一标识确定第一设备的节点信息。
需要说明的是,当第一设备为报文传输路径的入口节点时,第一设备能够自主获取节点信息列表中的第一条节点信息,即第一设备的节点信息,因此,第一设备可以基于第一标识确定第一设备的节点信息,也可以无需第一标识而直接确定第一设备的节点信息,本申请实施例对此不做限定。
在一种可能的实现方式中,第一设备基于第一设备的节点信息获取第二报文,向第二设备传输第二报文,包括下述几个步骤。
3021,基于第一比特串复制第一报文,获得第三报文。
在一种可能的实现方式中,基于第一比特串复制第一报文,获得第三报文,包括:复制第二数量个第一报文,得到第二数量个第三报文,第二数量为第一比特串中包含的第一比特位的数量。以上述图7的A作为第一设备为例,第一比特串“110000”中包含2个第一比特位,则A复制2份第一报文,获得2份第三报文。
3022,基于第一比特串中的第一比特位确定第一转发表项。
如前文,第一比特位指示第一比特位对应的设备为第二设备。在一种可能的实现方式中,第一转发表项包括第一位置标识,第一位置标识用于标识第一比特位在第一比特串中的位置,基于第一比特串中的第一比特位确定第一转发表项,包括:基于第一比特位在第一比特串中的位置确定第一位置标识,基于第一位置标识确定第一转发表项。通过第一位置标识确定第一转发表项,使得第一比特位对应的第一转发表项能够被快速查询到,从而提高了传输报文的效率。
请参考图12,其示出了本申请实施例提供的一种转发表项的结构示意图。该转发表项包括比特位置标识、端口以及下一跳地址。比特位置标识用于指示该转发表项所属的设备的比特串中,比特位在该比特串中的位置;下一跳地址用于指示比特位对应的下一跳设备的地址;端口用于指示该转发表项所属的设备在向比特位对应的下一跳设备传输报文时所使用的端口。在本申请实施例中,将基于第一比特位确定的比特位置标识称为第一位置标识,将基于第一位置标识确定的转发表项称为第一转发表项。
仍以图7中的节点A为例,请参考图13,其示出了本申请实施例提供的一种转发表的结构示意图。该转发表为节点A上的转发表,包括三条转发表项。第一条转发表项用于指示节点A的比特串中的第一个比特位,对应的下一跳设备的地址为节点B的地址,节点A用于向节点B转发报文的端口为出接口1;第二条转发表项用于指示节点A的比特串中的第二个比特位,对应的下一跳设备的地址为节点C的地址,节点A用于向节点C转发报文的端口为出接口2;第三条转发表项用于指示节点A的比特串中的第三个比特位,对应的下一跳设备的地址为节点D的地址,节点A用于向节点D转发报文的端口为出接口3。
节点A基于第一比特串“110000”中第一个置“1”比特位在第一比特串中的位置为第1个,确定第一位置标识为1,基于第一位置标识为1在图13所示的转发表中确定位置标识为1的第一转发表项;节点A基于第一比特串“110000”中第二个置“1”比特位在第一比特串中的位置为第2个,确定第一位置标识为2,基于第一位置标识为2在图13所示的转发表中确定位置标识为2的第一转发表项。
3023,基于第一转发表项、第一参考信息以及第三报文生成第二报文。
结合上述对IPv6报文头结构、第一转发表项、第一参考信息的描述,在一种可能的实现方式中,第一转发表项包括第二设备的网际互连协议IP地址,第三报文携带目的地址字段以及第一标识,基于第一转发表项、第一参考信息以及第三报文生成第二报文,包括:在第三报文的目的地址字段更新为第二设备的IP地址,获得第四报文;基于第一参考信息将第四报文的第一标识更新为第二标识,获得第二报文。
在一种可能的实现方式中,第一参考信息用于指示参考位置,参考位置包括第一比特串中的参考比特位对应的设备的节点信息在节点信息列表中的位置,基于第一参考信息将第四报文的第一标识更新为第二标识,包括:基于第一比特位在第一比特串中的位置,获取第一比特位到参考比特位所偏移的第一比特位的第一数量;基于参考位置以及第一数量确定第二设备的节点信息在节点信息列表中的位置,基于第二设备的节点信息在节点信息列表中的位置,将第四报文的第一标识更新为第二标识。
以图13所示的节点A的转发表为例,节点A基于第一比特串“110000”中第一个置“1”比特位在第一比特串中的位置为第1个,确定位置标识为1的第一转发表项,节点A基于第一转发表项中下一跳地址为节点B,将第三报文的目的地址字段更新为节点B,生成第四报文。计算第一个置“1”的比特位到参考比特位(在本示例中,为第一个置“1”比特位)的偏移量为0,再基于第一参考信息指示的参考位置为1,确定节点B的节点信息在节点信息列表中的位置为第二条节点信息,将第四报文的第一标识的值(例如segment left字段的值)更新为1,生成第二标识。
在一种可能的实现方式中,第一参考信息用于指示第一设备为第一报文的传输路径上的倒数第二跳,基于第一参考信息将第四报文的第一标识更新为第二标识,包括:将第四报文的第一标识更新为第一参考值,将更新后的第一标识作为第二标识。第二标识指示第二设备为第一报文的传输路径上的出口节点。
请参考图14,其示出了本申请实施例提供的一种转发表的结构示意图。该转发表为图7中节点B上的转发表。节点B基于第一比特串“111000”中第一个置“1”比特位在第一比特串中的位置为第1个,确定位置标识为1的第一转发表项,节点B基于第一转发表项中下一跳地址为节点B1,将第三报文的目的地址字段更新为节点B1,生成第四报文。计算第一个置“1”的比特位到参考比特位(在本示例中,为第一个置“1”比特位)的偏移量为0,再基于第一参考信息为0,确定节点B为报文传输路径上的倒数第二跳,则将第四报文的第一标识的值(例如segment left字段的值)更新为第一参考值,生成第二标识,该第二标识指示节点B1为第一报文的传输路径上的出口节点。
需要说明的是,本申请实施例不对“基于第一比特串复制第一报文”以及“基于第一比特串中的第一比特位确定第一转发表项”的先后顺序进行限定。在一些实施例中,第一设备也可以先基于第一比特串中的任一第一比特位复制一份第一报文,再根据该任一第一比特位确定该任一第一比特位对应的第一转发表项,再基于该任一第一比特位对应的第一转发表项、第一参考信息获取该任一第一比特位对应的报文。而后,第一设备基于第一比特串中的剩余的任一第一比特位复制一份第一报文,并重复获取前一个任一第一比特位对应的报文的步骤。
在一些实施例中,当第一参考信息指示第一设备为第一报文的传输路径上的倒数第二跳,则第一设备将第四报文的节点信息列表弹出,或者,将第四报文中节点信息列表所在的扩展头(例如RH头)弹出。
通过上述两种确定第二标识的方法,可以使第二设备接收到第二报文,快速定位第二设备的节点信息,再处理报文并向下一跳处理报文的设备传输。进一步提高了传输报文的效率。
在一种可能的实现方式中,基于第一比特串中的第一比特位确定第一转发表项之前,还包括:获取第一比特位与第二设备的对应关系,基于第一比特位与第二设备的对应关系生成第一转发表项。示例性地,第一设备可以为第一比特位分配对应的第二设备的地址以及向第二设备传输报文的端口,形成第一比特位与第二设备的对应关系,进一步生成第一转发表项。
在另一种可能的实现方式中,基于第一比特串中的第一比特位确定第一转发表项之前,还包括:接收第三设备发送的第一转发表项。
示例性地,第三设备可以为控制设备,第一设备向控制设备上报端口信息,第二设备向控制设备上报地址信息,控制设备基于第一设备的端口、第二设备的地址,生成第一设备的端口与第二设备的地址之间的对应关系,再为该第一设备的端口与第二设备的地址之间的对应关分配第一比特位,由此生成了第一比特位与第二设备的对应关系,进一步地,生成了第一转发表项。控制设备再将该第一转发表项下发给第一设备。
3024,基于第一转发表项向第二设备传输第二报文。
结合上述对第一转发表项的描述,在一种可能的实现方式中,第一转发表项包括第一设备上向第二设备转发第二报文的第一出端口,基于第一转发表项向第二设备传输第二报文,包括:通过第一出端口向第二设备传输第二报文。
当第一设备为出口节点,则第一设备获取第一报文后,若第一报文携带第一标识,则第一设备基于第一报文中的第一标识指示第一设备的节点信息不存在于第一报文中,对第一报文解封装,再将解封装后的第一报文上送或转发给直连的用户设备;若第一报文不携带第一标识(即在倒数第二跳时被弹出了所有节点信息和第一标识),则第一设备直接将第一报文上送或转发给直连的用户设备。
通过本申请实施例提供的方法,通过报文携带的第一设备的节点信息中的第一比特串和第一参考信息,第一设备可以快速确定下一跳设备中处理报文的第二设备,并基于第一设备的节点信息获取第二报文,再将第二报文传输给第二设备,使得报文的传输过程简洁且高效。同时,第一设备的节点信息包括第一比特串以及第一参考信息的结构,使得报文的编码方式简单,也提高了第一设备处理并传输报文的效率。
下面以图2所示的转发路径为例,对本申请实施例提供的传输报文的方法进行描述。在本示例中,将上述定义的扩展的RH头称为组播路由头(multicast routing header,MRH),将上述的第一参考信息称为SL-S。除了与图2实施例相关的图7、图13、图14外,还增加了图15进行补充说明。图15为本申请实施例提供的一种转发表的结构示意图。
601,节点A将MRH封装在报文中。
节点A节点将从控制器接收到的MRH封装在报文中,MRH携带如图7所示的节点信息列表,第一条节点信息为节点A的节点信息,第二条节点信息为节点B的节点信息,第三条节点信息为节点C的节点信息。本申请实施例中的控制器可以是上述实施例中提及的控制设备。
602,节点A基于MRH将报文分别传输给节点B和节点C。
节点A节点读取节点A的节点信息,基于节点A的节点信息中的bitstring有两个比特位置1,则将报文复制两份;节点A查询图13所示的转发表,基于bitstring中置1的比特位在bitstring中的位置分别为第一位和第二位,则在转发表中分别确定bit position为1和2的转发表项,其中,在bit position为1的转发表项中,出端口为interface 1,下一跳地址为节点B的地址,在bit position为2的转发表项中,出端口为interface 2,下一跳地址为节点C的地址。
节点A节点将其中一份复制的报文的目的地址更新为节点B的地址,该携带节点B的地址的报文即为bit position为1的转发表项所对应的报文,将另外一份复制的报文的目的地址更新为节点C的地址,该携带节点C节点的地址的报文即为bit position为2的转发表项所对应的报文。
节点A节点又根据节点A的节点信息中的SL-S为1(在本示例中,参考比特位为第一个置1的比特位),将bit position为1的转发表项所对应的报文中的segment left字段置为1,生成节点B对应的报文,根据第二个置1的比特位相对第一个置1的比特位的偏移量为1,将bit position为2的转发表项所对应的报文中的segment left字段置为2,生成节点C对应的报文。
节点A节点将节点B对应的报文从interface 1转发给节点B节点,并将节点C对应的报文从interface2转发给节点C。
603,节点B基于报文中的MRH将报文分别传输给节点B1-节点B3。
节点B接收到节点B对应的报文后,基于MRH中segment left字段为1,节点B确定MRH中节点B的节点信息的位置为第二条节点信息;节点B基于节点B的节点信息中的bitstring有三个比特位置1,将报文复制三份;节点B查询图14所示的转发表,基于bitstring中置1的比特位在bitstring中的位置分别为第一位、第二位和第三位,则在转发表中分别确定bit position为1、2和3的转发表项,其中,在bit position为1的转发表项中,出端口为interface 1,下一跳地址为节点B1的地址,在bit position为2的转发表项中,出端口为interface2,下一跳地址为节点B2的地址,在bit position为3的转发表项中,出端口为interface 3,下一跳地址为节点B3的地址。
节点B将其中一份复制的报文的目的地址更新为节点B1的地址,该携带节点B1的地址的报文即为bit position为1的转发表项所对应的报文,将剩下的其中一份复制的报文的目的地址更新为节点B2的地址,该携带节点B2的地址的报文即为bit position为2的转发表项所对应的报文,将剩下的另一份复制的报文的目的地址更新为节点B3的地址,该携带节点B3的地址的报文即为bit position为3的转发表项所对应的报文;
节点B又根据节点B的节点信息中的SL-S为0,确定节点B为报文传输路径上的倒数第二跳设备,即节点B之后下一跳处理报文的设备为报文传输路径上的出口节点,节点B将bit position为1的转发表项所对应的报文中的segment left字段置为0,生成节点B1对应的报文,将bit position为2的转发表项所对应的报文中的segment left字段置为0,生成节点B2对应的报文,将bit position为3的转发表项所对应的报文中的segment lef字段t置为0,生成节点B3对应的报文。
节点B将节点B1对应的报文从interface 1转发给节点B1,将节点B2对应的报文从interface2转发给节点B2,将节点B3对应的报文从interface3转发给节点B3。
此外,节点C基于报文中的MRH将报文分别传输给节点C1-节点C3与节点B基于报文中的MRH将报文分别传输给节点B1-节点B3的过程类似,且节点C上的转发表可以参考图15所示的转发表。为避免冗余,在此不再赘述。
604,节点B1基于MRH指示节点B1为报文传输路径的出口节点,对报文解封装。
节点B1接收到节点B1对应的报文后,基于MRH中segment left为0,确定节点B1为报文传输路径上的出口节点,对报文进行解封装或上送。
此外,同样作为报文传输路径的出口节点的节点B2、节点B3以及节点C1-节点C3,在接收到报文后,对报文的处理过程与节点B1类似,可参照节点B1的处理过程,本申请实施例不再赘述。
请参考图16,其示出了本申请实施例提供的一种传输报文的装置示意图,基于图16所示的如下模块,该图16所示的传输报文的装置能够执行图2-15所示的传输报文的方法中的入口节点、中间节点的全部或部分操作。应理解到,该装置可以包括比所示模块更多的附加模块或者省略其中所示的一部分模块,本申请实施例对此并不进行限制。该装置包括但不限于:第一获取模块701,第二获取模块702,发送模块703。
当该装置应用于入口节点,则第一获取模块701,用于获取第一报文,第一报文包括第一节点信息,第一节点信息包括第一比特串和第一参考信息,第一比特串用于指示入口节点的N个下一跳设备,N为大于等于1的整数,第一参考信息用于索引与N个下一跳设备中的第一中间节点对应的第二节点信息;第二获取模块702,用于基于第一节点信息获取第二报文,第二报文包括基于第一参考信息确定的第一标识;发送模块703,用于向第一中间节点发送第二报文。
在一种可能的实现方式中,第一获取模块701,用于基于第一节点信息包括的第一比特串,获取第一转发表项,第一转发表项包括比特位置和下一跳信息,第一转发表项包括的比特位置与第一比特串中的第一比特位对应,第一比特位对应第一中间节点,第一转发表项包括的下一跳信息与第一中间节点对应;基于第一转发表项对第一报文进行复制;基于复制后的第一报文和第一节点信息包括的第一参考信息获得第二报文。
在一种可能的实现方式中,发送模块703,用于基于第一转发表项包括的下一跳信息,向第一中间节点发送第二报文,第一转发表项包括的下一跳信息包括与第一中间节点通信的端口和第一中间节点的地址中的一个或多个。
在一种可能的实现方式中,第二报文还包括第二节点信息,第二节点信息包括第二比特串和第二参考信息,第二比特串用于指示第一中间节点的M个下一跳设备,M为大于或等于1的整数,第二参考信息用于索引与M个下一跳设备中的第二中间节点对应的第三节点信息;或者,第二报文还包括第二节点信息,第二节点信息包括第二比特串和第二参考信息,第二比特串用于指示第一中间节点的M个下一跳设备,M为大于或等于1的整数,第二参考信息用于指示第一中间节点是出口节点的上一跳;或者,第二报文还包括第二节点信息,第二节点信息包括第二比特串和第二参考信息,第二比特串用于指示第一中间节点的M个下一跳设备,M为大于或等于1的整数,第二参考信息用于指示弹出第一节点信息和第二节点信息。
在一种可能的实现方式中,N为1,第一标识的数值为第一参考信息所携带的数值;N为大于1的整数,第一标识的数值为第一参考信息所携带的数值,或者第一标识的数值为第一参考信息所携带的数值与偏移量之和。
在一种可能的实现方式中,第一获取模块701,还用于获取第一中间节点对应的比特位置和与第一中间节点对应的下一跳信息;基于第一中间节点对应的比特位置和与第一中间节点对应的下一跳信息,获得第一转发表项;或者,第一获取模块701,还用于接收控制设备发送的第一转发表项。
在一种可能的实现方式中,第一报文为互联网协议第六版IPv6报文,IPv6报文包括路由头RH,RH包括第一节点信息。
当该装置应用于第一中间节点,则第一获取模块701,用于接收第一报文,第一报文包括第一标识和第一节点信息,第一标识用于索引第一节点信息,第一节点信息包括第一比特串,第一比特串用于指示第一中间节点的M个下一跳设备,M为大于等于1的整数;第二获取模块702,用于基于第一标识确定的第一节点信息获取第二报文;发送模块703,用于向M个下一跳设备中用于处理第二报文的下一跳发送第二报文。
在一种可能的实现方式中,用于处理第二报文的下一跳为第二中间节点,第一报文还包括第二节点信息,第一参考信息用于索引第二节点信息和第一参考信息,第二获取模块702,用于基于第一标识,从第一报文获取第一节点信息;基于第一节点信息包括的第一比特串,获取第一转发表项,第一转发表项包括比特位置和下一跳信息,第一转发表项包括的比特位置与第一比特串中的第一比特位对应,第一比特位对应第二中间节点,第一转发表项包括的下一跳信息对应第二中间节点;基于第一转发表项对第一报文进行复制;基于复制后的第一报文和第一节点信息包括的第一参考信息获得第二报文,第二报文包括第二标识,第二标识为根据第一参考信息确定的数值。
在一种可能的实现方式中,发送模块703,用于基于第一转发表项包括的下一跳信息,向第二中间节点发送第二报文,第一转发表项包括的下一跳信息包括与第二中间节点通信的端口和第二中间节点的地址中的一个或多个。
在一种可能的实现方式中,用于处理第二报文的下一跳为出口节点,第一报文还包括第一参考信息,第一参考信息用于指示第一中间节点是出口节点的上一跳,第二获取模块702,用于基于第一标识,从第一报文获取第一节点信息;基于第一节点信息包括的第一比特串,获取第一转发表项,第一转发表项包括比特位置和下一跳信息,第一转发表项包括的比特位置与第一比特串中的第一比特位对应,第一比特位对应第二中间节点,第一转发表项包括的下一跳信息对应第二中间节点;基于第一转发表项对第一报文进行复制;基于复制后的第一报文和第一节点信息包括的第一参考信息获得第二报文。
在一种可能的实现方式中,第二报文包括第二标识,第二标识的数值为根据第一参考信息确定的数值;或者第二报文不包括第一节点信息和第一标识。
在一种可能的实现方式中,发送模块703,用于基于第一转发表项包括的下一跳信息,向出口节点发送第二报文,第一转发表项包括的下一跳信息包括与出口节点通信的端口和出口节点的地址中的一个或多个。
在一种可能的实现方式中,M为1,第二标识的数值为第一参考信息所携带的数值;M为大于1的整数,第二报文的第二标识的数值为第一参考信息所携带的数值,或者第二报文的第二标识的数值为第一参考信息所携带的数值与偏移量之和。
在一种可能的实现方式中,第一获取模块701,还用于获取用于处理第二报文的下一跳对应的比特位置和与用于处理第二报文的下一跳对应的下一跳信息;基于用于处理第二报文的下一跳对应的比特位置和与用于处理第二报文的下一跳对应的下一跳信息,获得第一转发表项;或者,第一获取模块701,还用于接收控制设备发送的第一转发表项。
在一种可能的实现方式中,第一报文为IPv6报文,IPv6报文包括路由头RH,RH包括第一标识和第一设备的节点信息。
应理解的是,上述图16提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
参见图17,图17示出了本申请一个示例性实施例提供的传输报文的设备2000的结构示意图。图17所示的传输报文的设备2000可用于执行上述图2-15所示的传输报文的方法中入口节点或中间节点所涉及的操作。该传输报文的设备2000例如是交换机、路由器等,该传输报文的设备2000可以由一般性的总线体系结构来实现。
如图17所示,传输报文的设备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 componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图17中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器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,如图17中所示的CPU0和CPU1。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,传输报文的设备2000可以包括多个处理器,如图17中所示的处理器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中的指令,使图17所示的传输报文的设备2000能够执行第一设备所执行的全部或部分操作。
具体的,处理器2001用于通过通信接口向第二设备发送第二报文,第二报文包括第二标识,第二标识用于索引第二设备的节点信息。其他可选的实施方式,为了简洁,在此不再赘述。
又例如,本申请实施例的传输报文的设备2000可对应于上述各个方法实施例中的第二设备,传输报文的设备2000中的处理器2001读取存储器2003中的指令,使图17所示的传输报文的设备2000能够执行第二设备所执行的全部或部分操作。
传输报文的设备2000还可以对应于上述图16所示的传输报文的装置,传输报文的装置中的每个功能模块采用传输报文的设备2000的软件实现。换句话说,传输报文的装置中包括的功能模块为传输报文的设备2000的处理器2001读取存储器2003中存储的程序代码2010后生成的。
其中,图2-15所示的传输报文的方法的各步骤通过传输报文的设备2000的处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。
参见图18,图18示出了本申请另一个示例性实施例提供的传输报文的设备2100的结构示意图。图18所示的传输报文的设备2100用于执行上述图2-15所示的传输报文的方法所涉及的全部或部分操作。该传输报文的设备2100例如是交换机、路由器等,该传输报文的设备2100可以由一般性的总线体系结构来实现。
如图18所示,传输报文的设备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和物理接口卡(physical 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对应于上述图16所示的应用于入口节点或第一中间节点的传输报文的装置。在一些实施例中,图16所示的传输报文的装置中的第一获取模块701及发送模块703相当于传输报文的设备2100中的物理接口卡2133;第二获取模块702,相当于传输报文的设备2100中的中央处理器2111或网络处理器2132。
基于上述图17及图18所示的传输报文的设备,本申请实施例还提供了一种传输报文系统,该系统包括:第一设备以及第二设备。可选的,第一设备为图17所示的传输报文的设备2000或图18所示的传输报文的设备2100,第二设备为图17所示的传输报文的设备2000或图18所示的传输报文的设备2100。
第一设备及第二设备所执行的传输报文的方法可参见上述图2-15所示实施例中的第一设备和第二设备的相关描述,此处不再加以赘述。
本申请实施例还提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第一设备所需执行的传输报文的方法。
本申请实施例还提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第二设备所需执行的传输报文的方法。
应理解的是,上述处理器可以是中央处理器(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable 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)、或者半导体介质(例如固态硬盘,solidstate disk)等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和模块,能够以软件、硬件、固件或者其任意组合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。作为示例,本申请实施例的方法可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质二者中。
用于实现本申请实施例的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
在本申请实施例的上下文中,计算机程序代码或者相关数据可以由任意适当载体承载,以使得设备、装置或者处理器能够执行上文描述的各种处理和操作。载体的示例包括信号、计算机可读介质等等。
信号的示例可以包括电、光、无线电、声音或其它形式的传播信号,诸如载波、红外信号等。
机器可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(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 (33)

1.一种传输报文的方法,其特征在于,所述方法包括:
入口节点获取第一报文,所述第一报文包括第一节点信息,所述第一节点信息包括第一比特串和第一参考信息,所述第一比特串用于指示所述入口节点的N个下一跳设备,所述N为大于等于1的整数,所述第一参考信息用于索引与所述N个下一跳设备中的第一中间节点对应的第二节点信息;
所述入口节点基于所述第一节点信息获取第二报文,所述第二报文包括基于所述第一参考信息确定的第一标识;
所述入口节点向所述第一中间节点发送所述第二报文。
2.根据权利要求1所述的方法,其特征在于,所述入口节点基于所述第一节点信息获取第二报文包括:
所述入口节点基于所述第一节点信息包括的所述第一比特串,获取第一转发表项,所述第一转发表项包括比特位置和下一跳信息,所述第一转发表项包括的比特位置与所述第一比特串中的第一比特位对应,所述第一比特位对应所述第一中间节点,所述第一转发表项包括的下一跳信息与所述第一中间节点对应;
所述入口节点基于所述第一转发表项对所述第一报文进行复制;
所述入口节点基于所述复制后的第一报文和所述第一节点信息包括的所述第一参考信息获得所述第二报文。
3.根据权利要求2所述的方法,其特征在于,所述入口节点向所述第一中间节点发送所述第二报文包括:
所述入口节点基于所述第一转发表项包括的下一跳信息,向所述第一中间节点发送所述第二报文,所述第一转发表项包括的下一跳信息包括与所述第一中间节点通信的端口和所述第一中间节点的地址中的一个或多个。
4.根据权利要求1至3任一所述的方法,其特征在于,所述第二报文还包括第二节点信息,所述第二节点信息包括第二比特串和第二参考信息,所述第二比特串用于指示所述第一中间节点的M个下一跳设备,所述M为大于或等于1的整数,所述第二参考信息用于索引与所述M个下一跳设备中的第二中间节点对应的第三节点信息;或者
所述第二报文还包括第二节点信息,所述第二节点信息包括第二比特串和第二参考信息,所述第二比特串用于指示所述第一中间节点的M个下一跳设备,所述M为大于或等于1的整数,所述第二参考信息用于指示所述第一中间节点是出口节点的上一跳;或者
所述第二报文还包括第二节点信息,所述第二节点信息包括第二比特串和第二参考信息,所述第二比特串用于指示所述第一中间节点的M个下一跳设备,所述M为大于或等于1的整数,所述第二参考信息用于指示弹出所述第一节点信息和所述第二节点信息。
5.根据权利要求1至4任一所述的方法,其特征在于,所述N为1,所述第一标识的数值为所述第一参考信息所携带的数值;所述N为大于1的整数,所述第一标识的数值为所述第一参考信息所携带的数值,或者所述第一标识的数值为所述第一参考信息所携带的数值与偏移量之和。
6.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
所述入口节点获取所述第一中间节点对应的比特位置和与所述第一中间节点对应的下一跳信息;
所述入口节点基于所述第一中间节点对应的比特位置和与所述第一中间节点对应的下一跳信息,获得所述第一转发表项;
或者所述方法还包括:
所述入口节点接收控制设备发送的所述第一转发表项。
7.根据权利要求1至6任一所述的方法,其特征在于,所述第一报文为互联网协议第六版IPv6报文,所述IPv6报文包括路由头RH,所述RH包括所述第一节点信息。
8.一种传输报文的方法,其特征在于,所述方法包括:
第一中间节点接收第一报文,所述第一报文包括第一标识和第一节点信息,所述第一标识用于索引所述第一节点信息,所述第一节点信息包括第一比特串,所述第一比特串用于指示所述第一中间节点的M个下一跳设备,所述M为大于等于1的整数;
所述第一中间节点基于所述第一标识确定的所述第一节点信息获取第二报文;
所述第一中间节点向所述M个下一跳设备中用于处理所述第二报文的下一跳发送所述第二报文。
9.根据权利要求8所述的方法,其特征在于,所述用于处理所述第二报文的下一跳为第二中间节点,所述第一报文还包括第二节点信息和第一参考信息,所述第一参考信息用于索引所述第二节点信息,所述第一中间节点基于所述第一标识确定的所述第一节点信息获取第二报文包括:
所述第一中间节点基于所述第一标识,从所述第一报文获取所述第一节点信息;
所述第一中间节点基于所述第一节点信息包括的所述第一比特串,获取第一转发表项,所述第一转发表项包括比特位置和下一跳信息,所述第一转发表项包括的比特位置与所述第一比特串中的第一比特位对应,所述第一比特位对应所述第二中间节点,所述第一转发表项包括的下一跳信息对应所述第二中间节点;
所述第一中间节点基于所述第一转发表项对所述第一报文进行复制;
所述第一中间节点基于所述复制后的第一报文和所述第一节点信息包括的所述第一参考信息获得所述第二报文,所述第二报文包括第二标识,所述第二标识为根据所述第一参考信息确定的数值。
10.根据权利要求9所述的方法,其特征在于,所述第一中间节点向所述M个下一跳设备中用于处理所述第二报文的下一跳发送所述第二报文包括:
所述第一中间节点基于所述第一转发表项包括的下一跳信息,向所述第二中间节点发送所述第二报文,所述第一转发表项包括的下一跳信息包括与所述第二中间节点通信的端口和所述第二中间节点的地址中的一个或多个。
11.根据权利要求8所述的方法,其特征在于,所述用于处理所述第二报文的下一跳为出口节点,所述第一报文还包括第一参考信息,所述第一参考信息用于指示所述第一中间节点是出口节点的上一跳,所述第一中间节点基于所述第一标识确定的所述第一节点信息获取第二报文包括:
所述第一中间节点基于所述第一标识,从所述第一报文获取所述第一节点信息;
所述第一中间节点基于所述第一节点信息包括的所述第一比特串,获取第一转发表项,所述第一转发表项包括比特位置和下一跳信息,所述第一转发表项包括的比特位置与所述第一比特串中的第一比特位对应,所述第一比特位对应所述第二中间节点,所述第一转发表项包括的下一跳信息对应所述第二中间节点;
所述第一中间节点基于所述第一转发表项对所述第一报文进行复制;
所述第一中间节点基于所述复制后的第一报文和所述第一节点信息包括的所述第一参考信息获得所述第二报文。
12.根据权利要求11所述的方法,其特征在于,所述第二报文包括第二标识,所述第二标识的数值为所述第一参考信息的数值;或者所述第二报文不包括所述第一节点信息和所述第一标识。
13.根据权利要求11或12所述的方法,其特征在于,所述第一中间节点向所述M个下一跳设备中用于处理所述第二报文的下一跳发送所述第二报文包括:
所述第一中间节点基于所述第一转发表项包括的下一跳信息,向所述出口节点发送所述第二报文,所述第一转发表项包括的下一跳信息包括与所述出口节点通信的端口和所述出口节点的地址中的一个或多个。
14.根据权利要求9或10所述的方法,其特征在于,所述M为1,所述第二标识的数值为所述第一参考信息所携带的数值;所述M为大于1的整数,所述第二标识的数值为所述第一参考信息所携带的数值,或者所述第二标识的数值为所述第一参考信息所携带的数值与偏移量之和。
15.根据权利要求9至14任一所述的方法,其特征在于,所述方法还包括:
所述第一中间节点获取所述用于处理所述第二报文的下一跳对应的比特位置和与所述用于处理所述第二报文的下一跳对应的下一跳信息;
所述第一中间节点基于所述用于处理所述第二报文的下一跳对应的比特位置和与所述用于处理所述第二报文的下一跳对应的下一跳信息,获得所述第一转发表项;
或者所述方法还包括:
所述第一中间节点接收控制设备发送的所述第一转发表项。
16.根据权利要求8至15任一所述的方法,其特征在于,所述第一报文为互联网协议第六版IPv6报文,所述IPv6报文包括路由头RH,所述RH包括所述第一标识和所述第一节点信息。
17.一种传输报文的装置,其特征在于,所述装置应用于入口节点,所述装置包括:
第一获取模块,用于获取第一报文,所述第一报文包括第一节点信息,所述第一节点信息包括第一比特串和第一参考信息,所述第一比特串用于指示所述入口节点的N个下一跳设备,所述N为大于等于1的整数,所述第一参考信息用于索引与所述N个下一跳设备中的第一中间节点对应的第二节点信息;
第二获取模块,用于基于所述第一节点信息获取第二报文,所述第二报文包括基于所述第一参考信息确定的第一标识;
发送模块,用于向所述第一中间节点发送所述第二报文。
18.根据权利要求17所述的装置,其特征在于,所述第二获取模块,用于基于所述第一节点信息包括的所述第一比特串,获取第一转发表项,所述第一转发表项包括比特位置和下一跳信息,所述第一转发表项包括的比特位置与所述第一比特串中的第一比特位对应,所述第一比特位对应所述第一中间节点,所述第一转发表项包括的下一跳信息与所述第一中间节点对应;基于所述第一转发表项对所述第一报文进行复制;基于所述复制后的第一报文和所述第一节点信息包括的所述第一参考信息获得所述第二报文。
19.根据权利要求18所述的装置,其特征在于,所述发送模块,用于基于所述第一转发表项包括的下一跳信息,向所述第一中间节点发送所述第二报文,所述第一转发表项包括的下一跳信息包括与所述第一中间节点通信的端口和所述第一中间节点的地址中的一个或多个。
20.根据权利要求17至19任一所述的装置,其特征在于,所述第二报文还包括第二节点信息,所述第二节点信息包括第二比特串和第二参考信息,所述第二比特串用于指示所述第一中间节点的M个下一跳设备,所述M为大于或等于1的整数,所述第二参考信息用于索引与所述M个下一跳设备中的第二中间节点对应的第三节点信息;或者
所述第二报文还包括第二节点信息,所述第二节点信息包括第二比特串和第二参考信息,所述第二比特串用于指示所述第一中间节点的M个下一跳设备,所述M为大于或等于1的整数,所述第二参考信息用于指示所述第一中间节点是出口节点的上一跳;或者
所述第二报文还包括第二节点信息,所述第二节点信息包括第二比特串和第二参考信息,所述第二比特串用于指示所述第一中间节点的M个下一跳设备,所述M为大于或等于1的整数,所述第二参考信息用于指示弹出所述第一节点信息和所述第二节点信息。
21.根据权利要求17至20任一所述的装置,其特征在于,所述N为1,所述第一标识的数值为所述第一参考信息所携带的数值;所述N为大于1的整数,所述第一标识的数值为所述第一参考信息所携带的数值,或者所述第一标识的数值为所述第一参考信息所携带的数值与偏移量之和。
22.根据权利要求18或19所述的装置,其特征在于,所述第一获取模块,还用于获取所述第一中间节点对应的比特位置和与所述第一中间节点对应的下一跳信息;基于所述第一中间节点对应的比特位置和与所述第一中间节点对应的下一跳信息,获得所述第一转发表项;或者,所述第一获取模块,还用于接收控制设备发送的所述第一转发表项。
23.根据权利要求17至22任一所述的装置,其特征在于,所述第一报文为互联网协议第六版IPv6报文,所述IPv6报文包括路由头RH,所述RH包括所述第一节点信息。
24.一种传输报文的装置,其特征在于,所述装置应用于第一中间节点,所述装置包括:
第一获取模块,用于接收第一报文,所述第一报文包括第一标识和第一节点信息,所述第一标识用于索引所述第一节点信息,所述第一节点信息包括第一比特串,所述第一比特串用于指示所述第一中间节点的M个下一跳设备,所述M为大于等于1的整数;
第二获取模块,用于基于所述第一标识确定的所述第一节点信息获取第二报文;
发送模块,用于向所述M个下一跳设备中用于处理所述第二报文的下一跳发送所述第二报文。
25.根据权利要求24所述的装置,其特征在于,所述用于处理所述第二报文的下一跳为第二中间节点,所述第一报文还包括第二节点信息和第一参考信息,所述第一参考信息用于索引所述第二节点信息,所述第二获取模块,用于基于所述第一标识,从所述第一报文获取所述第一节点信息;基于所述第一节点信息包括的所述第一比特串,获取第一转发表项,所述第一转发表项包括比特位置和下一跳信息,所述第一转发表项包括的比特位置与所述第一比特串中的第一比特位对应,所述第一比特位对应所述第二中间节点,所述第一转发表项包括的下一跳信息对应所述第二中间节点;基于所述第一转发表项对所述第一报文进行复制;基于所述复制后的第一报文和所述第一节点信息包括的所述第一参考信息获得所述第二报文,所述第二报文包括第二标识,所述第二标识为根据所述第一参考信息确定的数值。
26.根据权利要求25所述的装置,其特征在于,所述发送模块,用于基于所述第一转发表项包括的下一跳信息,向所述第二中间节点发送所述第二报文,所述第一转发表项包括的下一跳信息包括与所述第二中间节点通信的端口和所述第二中间节点的地址中的一个或多个。
27.根据权利要求24所述的装置,其特征在于,所述用于处理所述第二报文的下一跳为出口节点,所述第一报文还包括第一参考信息,所述第一参考信息用于指示所述第一中间节点是出口节点的上一跳,所述第二获取模块,用于基于所述第一标识,从所述第一报文获取所述第一节点信息;基于所述第一节点信息包括的所述第一比特串,获取第一转发表项,所述第一转发表项包括比特位置和下一跳信息,所述第一转发表项包括的比特位置与所述第一比特串中的第一比特位对应,所述第一比特位对应所述第二中间节点,所述第一转发表项包括的下一跳信息对应所述第二中间节点;基于所述第一转发表项对所述第一报文进行复制;基于所述复制后的第一报文和所述第一节点信息包括的所述第一参考信息获得所述第二报文。
28.根据权利要求27所述的装置,其特征在于,所述第二报文包括第二标识,所述第二标识的数值为所述第一参考信息的数值;或者所述第二报文不包括所述第一节点信息和所述第一标识。
29.根据权利要求27或28所述的装置,其特征在于,所述发送模块,用于基于所述第一转发表项包括的下一跳信息,向所述出口节点发送所述第二报文,所述第一转发表项包括的下一跳信息包括与所述出口节点通信的端口和所述出口节点的地址中的一个或多个。
30.根据权利要求25或26所述的装置,其特征在于,所述M为1,所述第二标识的数值为所述第一参考信息所携带的数值;所述M为大于1的整数,所述第二标识的数值为所述第一参考信息所携带的数值,或者所述第二标识的数值为所述第一参考信息所携带的数值与偏移量之和。
31.根据权利要求25至30任一所述的装置,其特征在于,所述第一获取模块,还用于获取所述用于处理所述第二报文的下一跳对应的比特位置和与所述用于处理所述第二报文的下一跳对应的下一跳信息;基于所述用于处理所述第二报文的下一跳对应的比特位置和与所述用于处理所述第二报文的下一跳对应的下一跳信息,获得所述第一转发表项;或者还用于接收控制设备发送的所述第一转发表项。
32.根据权利要求24至31任一所述的装置,其特征在于,所述第一报文为互联网协议第六版IPv6报文,所述IPv6报文包括路由头RH,所述RH包括所述第一标识和所述第一节点信息。
33.一种传输报文的设备,其特征在于,所述传输报文的设备包括处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以使得所述传输报文的设备实现权利要求1-7或权利要求8-16中任一所述的传输报文的方法。
CN202110485917.5A 2021-04-30 2021-04-30 传输报文的方法、装置及设备 Pending CN115277552A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202110485917.5A CN115277552A (zh) 2021-04-30 2021-04-30 传输报文的方法、装置及设备
PCT/CN2022/070821 WO2022227695A1 (zh) 2021-04-30 2022-01-07 传输报文的方法、装置及设备
EP22794178.8A EP4322485A1 (en) 2021-04-30 2022-01-07 Message transmission method, apparatus, and device
US18/495,897 US20240056383A1 (en) 2021-04-30 2023-10-27 Packet transmission method, apparatus, and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110485917.5A CN115277552A (zh) 2021-04-30 2021-04-30 传输报文的方法、装置及设备

Publications (1)

Publication Number Publication Date
CN115277552A true CN115277552A (zh) 2022-11-01

Family

ID=83745618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110485917.5A Pending CN115277552A (zh) 2021-04-30 2021-04-30 传输报文的方法、装置及设备

Country Status (4)

Country Link
US (1) US20240056383A1 (zh)
EP (1) EP4322485A1 (zh)
CN (1) CN115277552A (zh)
WO (1) WO2022227695A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9705784B2 (en) * 2014-12-31 2017-07-11 Juniper Networks, Inc. Bit index explicit replication (BIER)forwarding for network device components
US10103981B2 (en) * 2015-11-01 2018-10-16 Cisco Technology, Inc. BIER forwarding validation
CN111147383B (zh) * 2018-11-02 2021-06-29 华为技术有限公司 报文转发的方法、发送报文的装置和接收报文的装置
CN114189473B (zh) * 2019-06-06 2023-07-14 华为技术有限公司 一种报文的发送方法和装置
CN112688827B (zh) * 2019-10-18 2023-03-31 华为技术有限公司 一种组播流检测方法、设备及系统

Also Published As

Publication number Publication date
US20240056383A1 (en) 2024-02-15
EP4322485A1 (en) 2024-02-14
WO2022227695A1 (zh) 2022-11-03

Similar Documents

Publication Publication Date Title
US20230122099A1 (en) Packet Forwarding Method, Device, and System
KR102544995B1 (ko) 하이브리드 네트워크에서 패킷을 포워딩하기 위한 방법, 디바이스, 및 시스템
WO2022222577A1 (zh) 数据格式的转换方法、装置、设备及计算机可读存储介质
WO2021244439A1 (zh) 网络性能的测量方法、装置、设备、系统及存储介质
CN113852550A (zh) 发送报文的方法、装置、网络设备、系统及存储介质
US20230336478A1 (en) Packet transmission method, apparatus, device, and system, and storage medium
WO2022068744A1 (zh) 获取报文头信息、生成报文的方法、设备及存储介质
WO2022057431A1 (zh) 网络仿真方法、装置、设备及计算机可读存储介质
CN114697403A (zh) 业务报文的处理方法、装置、设备、系统及存储介质
CN113938403A (zh) 一种能力通告方法及相关设备
WO2022042403A1 (zh) 生成路由信息、发送位置信息及转发报文的方法及设备
CN115277552A (zh) 传输报文的方法、装置及设备
CN116962161A (zh) 路径检测方法、装置、系统及计算机可读存储介质
CN116828024A (zh) 业务连接的标识方法、装置、系统及存储介质
CN114513485A (zh) 获取映射规则的方法、装置、设备、系统及可读存储介质
CN115914087A (zh) 报文转发方法、装置、设备、系统及存储介质
WO2024109045A1 (zh) 路由更新方法、装置、设备及存储介质
CN114025025B (zh) SRv6 SID的发布方法及网络设备
CN118075185A (zh) 路由更新方法、装置、设备及存储介质
US20230208545A1 (en) Message processing method, apparatus, and system, device, and storage medium
CN115118651A (zh) 用于获取路径的方法和装置
CN115225610A (zh) 配置地址的方法、装置、设备及计算机可读存储介质
CN117440057A (zh) 报文转发方法、系统、网络设备、存储介质及程序产品
CN117527693A (zh) 报文转发方法、设备、系统及存储介质
CN115589381A (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