一种在sr网络中转发报文的方法、设备和系统

文档序号:833524 发布日期:2021-03-30 浏览:23次 >En<

阅读说明:本技术 一种在sr网络中转发报文的方法、设备和系统 (Method, equipment and system for forwarding message in SR network ) 是由 李呈 李振斌 夏阳 田太徐 于 2019-09-27 设计创作,主要内容包括:一种在SR网络中处理报文的方法,包括:接收报文,报文的报文头包括目的地址字段、第一指针、第二指针和用于处理报文的列表,列表包括依次排列的多个标识,多个标识一一映射到SR网络中的多个段,第一指针的值和第二指针的值共同指示多个标识中的第一标识在列表中的位置;根据第一指针的值和第二指针的值确定第一标识;将第一标识拷贝至目的地址字段中。该方法在报文头中设置CL指针,与SL指针共同构成二维指针,指示C-SID在SID list中的位置。从而减少报文长度,提高网络的传输效率和处理效率。(A method for processing messages in an SR network comprises the following steps: receiving a message, wherein a message header of the message comprises a destination address field, a first pointer, a second pointer and a list for processing the message, the list comprises a plurality of identifiers which are sequentially arranged, the identifiers are mapped to a plurality of segments in an SR network one by one, and the value of the first pointer and the value of the second pointer jointly indicate the position of the first identifier in the list; determining a first identifier according to the value of the first pointer and the value of the second pointer; the first identification is copied into the destination address field. The method sets CL pointer in the message header, and the CL pointer and SL pointer form a two-dimensional pointer together to indicate the position of C-SID in SID list. Therefore, the message length is reduced, and the transmission efficiency and the processing efficiency of the network are improved.)

一种在SR网络中转发报文的方法、设备和系统

技术领域

本申请涉及通信领域,尤其涉及一种在SR网络中转发报文的方法、网络设备和系统。

背景技术

段路由(segment routing,SR)是一种基于源路由理念设计的、在网络上转发数据包的协议,支持在源节点显式指定数据包转发路径。当SR部署在第六版本的互联网协议6(Internet Protocol Version 6,IPv6)数据平面上时,称为IPv6 segment routing(SRv6)。SRv6在IPv6的基础上扩展了段路由头(segment routing header,SRH)。

SRH包括段标识列表(segment identification list,SID list),SID list包括依次排列的多个段标识(SID),分别表示多个段,每个段为处理报文的指令或指令集合。SRH被封装在报文中,通过其中的段标识列表承载SR网络对该报文的处理过程。SRv6网络中的每个SID的长度为128比特(bit),则SID list中每增加一个SID,SRH的长度就会增加128bit,报文的长度也会增加128bit。一方面,报文长度增加将导致转发过程中占用大量的网络资源,如:带宽。举例来说,当报文处理过程包括100个段时,SRH需要包括100个SID,SIDlist长度高达1600字节,SID list长度过长,降低SR网络中报文传输的效率。另一方面,SRH长度过长将增加报文处理上的难度。举例来说,节点一次读取的报文窗长度是有限的,例如128字节,而SRH的长度为1600字节,远超一次读取的报文窗长度,整个SRH的读取过程需要通过多次读取操作才能完成,降低报文处理效率。

发明内容

本申请提供了一种转发报文的方法、设备和系统,用于解决段标识列表长度过长导致网络传输效率降低和处理效率降低的技术问题。

第一方面,本申请提供了一种处理报文的方法。该方法应用于分段路由SR网络,包括:接收报文,所述报文的报文头包括目的地址字段、第一指针、第二指针和用于处理所述报文的列表,所述列表包括依次排列的多个标识,所述多个标识一一映射到所述SR网络中的多个段,所述第一指针的值和所述第二指针的值共同指示所述多个标识中的第一标识在所述列表中的位置;根据所述第一指针的值和所述第二指针的值确定所述第一标识;将所述第一标识拷贝至所述目的地址字段中。

该方法在报文头中设置新增的第一指针,与段剩余(segment left,SL)指针,即第二指针,共同构成二维指针,指示压缩的段标识(Compressed SID,C-SID)在SID list中的位置。从而减少报文长度,提高网络的传输效率和处理效率。

结合第一方面,在第一方面的第一种可能的实现方式中,所述列表包括依次排列的多个标识,具体为:所述列表包括依次排列的至少一个元素,所述至少一个元素包括第一元素,所述第一元素包括所述多个标识中的至少两个标识,所述至少两个标识依次排列,所述第一标识是所述至少两个标识中的一个;所述第一指针的值和所述第二指针的值共同指示所述多个标识中的第一标识在所述列表中的位置,具体为:所述第二指针的值用于确定所述第一元素在所述列表中的位置,所述第一指针的值用于确定所述第一标识在所述第一元素中的位置。

该方法在生成SID list时,采用C-SID代替长度为128比特的SID来表示段,从而对于相同数量的段来说,C-SID构成的SID list长度远远小于SID构成的SID list的长度。从而减少报文长度,提高网络的传输效率和处理效率。

结合第一方面,或者第一方面的上述任一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述第一指针包括在所述至少两个标识中的第一个标识中。

结合第一方面,或者第一方面的上述任一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述第一指针的值用于确定所述第一标识在所述第一元素中的位置,具体为:所述第一指针的值指示第二标识在所述第一元素中的位置,所述第二标识是所述第一标识在所述多个标识中的前一个标识;所述根据所述第一指针的值和所述第二指针的值确定所述第一标识包括:修改所述报文的报文头中所述第一指针的值,以使得修改后的所述第一指针的值指示所述第一标识在所述第一元素中的位置;根据修改后的所述第一指针的值和所述第二指针的值确定所述第一标识。

结合第一方面,或者第一方面的上述任一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述第一指针的值用于确定所述第一标识在所述第一元素中的位置,具体为:所述第一指针的值指示所述第一标识在所述第一元素中的位置;所述将所述第一标识拷贝至所述目的地址字段中之后,所述方法还包括:修改所述报文的报文头中所述第一指针的值,以使得修改后的所述第一指针的值指示第二标识在所述第一元素中的位置,所述第二标识是所述第一标识在所述至少两个标识中的后一个标识。

结合第一方面,或者第一方面的上述任一种可能的实现方式,在第一方面的第五种可能的实现方式中,所述第二指针的值用于确定所述第一元素在所述列表中的位置,具体为:所述第二指针的值指示所述至少一个元素中的第二元素在所述列表中的位置,所述第二元素是所述第一元素在所述至少一个元素中的前一个元素;所述第一指针的值用于确定所述第一标识在所述第一元素中的位置,具体为:所述第一指针的值指示第二标识在所述第二元素中位置,所述第二标识是所述第一标识在所述多个标识中的前一个标识,所述第二元素包括所述多个标识中的至少一个标识,所述至少一个标识依次排列,所述第二标识是所述至少一个标识中的一个,所述目的地址字段包括第二标识;所述根据所述第一指针的值和所述第二指针的值确定所述第一标识包括:确定所述第二标识是所述至少一个标识中的最后一个标识;修改所述报文的报文头中所述第二指针的值,以使得修改后的所述第二指针的值指示所述第一元素在所述列表中的位置;修改所述报文的报文头中所述第一指针的值,以使得修改后的所述第一指针的值指示所述第一标识在所述第一元素中的位置;根据修改后的所述第一指针的值和修改后的所述第二指针的值确定所述第一标识。

结合第一方面,或者第一方面的上述任一种可能的实现方式,在第一方面的第六种可能的实现方式中,所述第二指针的值用于确定所述第一元素在所述列表中的位置,具体为:所述第二指针的值指示所述第一元素在所述列表中的位置;所述第一指针的值用于确定所述第一标识在所述第一元素中的位置,具体为:所述第一指针的值指示所述第一标识在所述第一元素中位置;在所述将所述第一标识拷贝至所述目的地址字段中之后,所述方法还包括:确定所述第一标识是所述至少两个标识中的最后一个标识;修改所述报文的报文头中所述第二指针的值,以使得修改后的所述第二指针的值指示第二元素在所述列表中的位置,所述第二元素是所述第一元素在所述至少一个元素中的后一个元素;修改所述报文的报文头中所述第一指针的值,以使得修改后的所述第一指针的值指示第二标识在所述第二元素中的位置,所述第二标识是所述第一标识在所述多个标识中的后一个标识,所述第二元素包括所述第二标识。

结合第一方面,或者第一方面的上述任一种可能的实现方式,在第一方面的第七种可能的实现方式中,所述多个段一一映射到多个段标识,所述多个标识一一映射到所述多个段标识,所述多个段标识中的每个段标识包括第一部分和第二部分,所述第一部分在所述第二部分之前,所述多个段标识中的所有段标识的第一部分相同,所述多个标识中的每个标识包括所述每个标识所映射到的段标识的第二部分。

结合第一方面,或者第一方面的上述任一种可能的实现方式,在第一方面的第八种可能的实现方式中,所述目的地址字段中包括所述第一部分。

结合第一方面,或者第一方面的上述任一种可能的实现方式,在第一方面的第九种可能的实现方式中,所述元素的长度为128比特、64比特或32比特。

第二方面,本申请提供一种转发报文的方法。该方法应用于分段路由SR网络,包括:接收报文;生成报文头并封装所述报文头至所述报文,所述报文头包括第一指针、第二指针和用于处理所述报文的列表,所述列表包括依次排列的多个标识,所述多个标识一一映射到所述SR网络中的多个段,所述第一指针的值和所述第二指针的值共同指示所述多个标识中的第一标识在所述列表中的位置;发送封装有所述报文头的所述报文。

该方法在报文头中设置新增的第一指针,与SL指针,即第二指针,共同构成二维指针,指示C-SID在SID list中的位置。从而减少报文长度,提高网络的传输效率和处理效率。

结合第二方面,在第二方面的第一种可能的实现方式中,所述多个段一一映射到多个段标识,所述多个标识一一映射到所述多个段标识,所述多个段标识中的每个段标识包括第一部分和第二部分,所述第一部分在所述第二部分之前,所述多个段标识中的所有段标识的第一部分相同,所述多个标识中的每个标识包括所述每个标识所映射到的段标识的第二部分。

该方法在生成段标识列表时,采用压缩的段标识代替长度为128比特的SID来表示段,从而段标识列表中SL指针指向的长度为128比特的元素中能够容纳对应于多个段的多个压缩的段标识。从而减少报文长度,提高网络的传输效率和处理效率。

结合第二方面,或者第二方面的上述任一种可能的实现方式,所述生成所述报文头包括:将所述多个段中的每个段所映射到的段标识的第二部分作为所述每个段所映射到的标识以生成所述列表;根据所述列表生成所述报文头。

结合第二方面,或者第二方面的上述任一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述生成所述报文头包括:接收所述列表,所述列表中的所述多个标识中的每个标识包括所述每个标识所映射到的段所映射到的段标识的第二部分。

结合第二方面,或者第二方面的上述任一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第一部分的长度为X比特,X为整数,X大于等于1且小于128,所述多个标识中的每个标识的长度为128-X比特。

结合第二方面,或者第二方面的上述任一种可能的实现方式,在第二方面的第五种可能的实现方式中,所述列表不包括所述第一部分。

结合第二方面,或者第二方面的上述任一种可能的实现方式,在第二方面的第六种可能的实现方式中,所述报文头还包括目的地址字段,所述生成所述报文头并封装所述报文头至所述报文还包括:在所述目的地址字段添加所述第一部分;将所述多个标识中的第一个标识拷贝至所述目的地址字段中。

结合第二方面,或者第二方面的上述任一种可能的实现方式,在第二方面的第七种可能的实现方式中,所述列表包括依次排列的多个标识,具体为:所述列表包括依次排列的至少一个元素,所述至少一个元素中的第一个元素包括所述多个标识中的至少两个标识,所述至少两个标识依次排列,所述第一标识是所述至少两个标识中的一个;所述第一指针的值和所述第二指针的值共同指示所述多个标识中的第一标识在所述列表中的位置,具体为:所述第二指针的值指示所述第一个元素在所述列表中的位置,所述第一指针的值指示所述第一标识在所述第一元素中的位置。

结合第二方面,或者第二方面的上述任一种可能的实现方式,在第二方面的第八种可能的实现方式中,所述第一指针包括在所述至少两个标识中的第一个标识中。

结合第二方面,或者第二方面的上述任一种可能的实现方式,在第二方面的第九种可能的实现方式中,所述列表包括第一段标识,所述第一段标识在所述多个标识中的第一个标识之前,所述第一段标识映射到所述SR网络中的段,所述第一段标识的长度为128比特。

结合第二方面,或者第二方面的上述任一种可能的实现方式,在第二方面的第十种可能的实现方式中,所述第一段标识与所述多个标识中的第一个标识相邻,所述第一段标识包括开始标志,所述开始标志用于指示所述第一段标识在所述列表中的后一个标识是所述多个标识中的第一个标识。

结合第二方面,或者第二方面的上述任一种可能的实现方式,在第二方面的第十一种可能的实现方式中,所述第一段标识包括功能字段和参数字段,所述功能字段包括所述开始标志,所述参数字段包括所述第一指针和数量标志,所述数量标志用于指示所述多个标识的数量。

结合第二方面,或者第二方面的上述任一种可能的实现方式,在第二方面的第十二种可能的实现方式中,所述列表包括第二段标识,所述第二段标识在所述多个标识中的最后一个标识之后,所述第一段标识映射到所述SR网络中的段,所述第一段标识的长度为128比特。

结合第二方面,或者第二方面的上述任一种可能的实现方式,在第二方面的第十三种可能的实现方式中,所述第二段标识与所述多个标识中的最后一个标识相邻,所述第二段标识包括结束标志,所述结束标志用于指示所述第二段标识在所述列表中的前一个标识是所述多个标识中的最后一个标识。

第三方面,本申请提供了一种网络设备,执行第一方面或第一方面的任意一种可能的实现方式中的方法。具体地,该网络设备包括用于执行第一方面或第一方面的任意一种可能的实现方式中的方法的单元。

第四方面,本申请提供了一种网络设备,执行第二方面或第二方面的任意一种可能的实现方式中的方法。具体地,该网络设备包括用于执行第二方面或第二方面的任意一种可能的实现方式中的方法的单元。

第五方面,本申请提供了一种网络设备,该网络设备包括:处理器、网络接口和存储器。网络接口可以是收发器。存储器可以用于存储程序代码,处理器用于调用存储器中的程序代码使得该网络设备执行前述第一方面或第一方面的任意一种可能的实现方式,此处不再赘述。

第六方面,本申请提供了一种网络设备,该网络设备包括:处理器、网络接口和存储器。网络接口可以是收发器。存储器可以用于存储程序代码,处理器用于调用存储器中的程序代码使得该网络设备执行前述第二方面或第二方面的任意一种可能的实现方式,此处不再赘述。

第七方面,本申请提供了一种网络系统,该网络系统包括前述第三方面提供的网络设备和第四方面提供的网络设备,或者该网络系统包括前述第五方面提供的网络设备和第六面提供的网络设备。

第八方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

第九方面,本申请提供了一种包括计算机程序指令的计算机程序产品,当该计算机程序产品在网络设备上运行时,使得网络设备执行第一方面、第二方面、第一方面的任意一种可能的实现方式或第二方面的任意一种可能的实现方式中提供的方法。

第九方面,本申请提供了一种芯片,包括存储器和处理器,存储器用于存储计算机程序,处理器用于从存储器中调用并运行该计算机程序,以使得该芯片执行上述第一方面及其第一方面任意可能的实现方式中的方法;或者,处理器用于从存储器中调用并运行该计算机程序,以使得该芯片执行第二方面或第二方面任意可能的实现方式中的方法。

可选地,上述芯片仅包括处理器,处理器用于读取并执行存储器中存储的计算机程序,当计算机程序被执行时,该芯片执行第一方面或第一方面任意可能的实现方式中的方法,或者,该芯片执行第二方面或第二方面任意可能的实现方式中的方法。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中使用的附图作简单地介绍。显而易见地,下面附图只是本申请的一些实施例的附图,对于本领域普通技术人员来说,在不付出创造性劳动性的前提下,还可以根据这些附图获得同样能实现本申请的其他技术方案和附图。

图1为本申请实施例提供的一种应用场景示意图;

图2A为本申请实施例提供的一种段标识的格式示意图;

图2B为本申请实施例提供的一种报文的格式示意图;

图3为本申请实施例提供的一种报文处理的方法流程示意图;

图4A为本申请实施例提供的一种压缩段标识的格式示意图;

图4B为本申请实施例提供的一种报文的格式示意图;

图4C为本申请实施例提供的一种压缩段标识的格式示意图;

图5A为本申请实施例提供的一种报文的格式示意图;

图5B为本申请实施例提供的一种压缩段标识的格式示意图;

图5C为本申请实施例提供的一种报文的格式示意图;

图5D为本申请实施例提供的一种压缩段标识的格式示意图;

图6为本申请实施例提供的一种网络设备的结构示意图;

图7为本申请实施例提供的一种网络设备的结构示意图;

图8为本申请实施例提供的一种网络设备的结构示意图;

图9为本申请实施例提供的一种网络设备的结构示意图;

图10为本申请实施例提供的一种网络系统的结构示意图。

具体实施方式

下面结合附图,对本申请的实施例进行描述。

图1示出了本申请实施例的一种可能的应用场景。该场景包括SR网络,该SR网络包括网络设备S、网络设备1、网络设备2、网络设备3、网络设备4、网络设备5、网络设备6、网络设备7。这些网络设备可以是交换机、路由器或转发器。这些网络设备也可以是虚拟机。其中,网络设备S可以是网络的入口设备。该网络还可以包括控制器,图1中未示出。控制器可以生成对应报文的转发路径的SID list,发送至网络入口设备。控制器可以向网络中的其他网络设备发送包含网络配置信息的控制报文。

在SR网络中对报文的处理过程由多个段组成,每个段为处理报文的指令或指令集合。每个段具有相应的段标识,即SID。段标识包括节点段标识(node SID)和邻接段标识(adjacent SID)两种类型。图2A示出了SRv6网络中SID的格式,如图2A所示,每个SID可以包括位置(Locator)字段和功能(Function)字段。

SID中的位置字段用于定位到执行段所包括的指令或指令集合的具体网络设备。位置字段包括前缀(Prefix)部分和序号(Node ID)部分。在一个SRv6网络域(domain)内,所有网络设备的SID的前缀部分是相同的。在一个SRv6网络域(domain)内,每个网络设备的SID的序号部分是不同的,每个序号部分用于唯一确定该域内的一个网络设备。对于一个特定的SID来说,该SID的序号部分所唯一确定的网络设备就是执行该SID所表示的段的网络设备。

SID中的功能字段用于表示段所包括的指令或指令集合的具体内容,也就是SRv6网络中的功能(Function)。SRv6网络中的功能还可能涉及到参数,用SID中的参数(Argument)字段表示(图2中未示出)。当功能不涉及参数时,则SID中可以不包括参数字段。

通常来说,SRv6网络中SID的总长度为128比特。其中位置字段和功能字段分别为特定长度,且这些特定长度是可以通过网络设置进行改变的。例如,位置字段为48比特,功能字段为80比特,或者位置字段为64比特,功能字段为64比特,或者位置字段为48比特,功能字段为64比特,参数字段为16比特。

多个SID组成SID list。图2B示出了SRv6网络中报文的格式。如图2B所示,该报文的报文头包括IPv6报文头和SRH,IPv6报文头包括目的地址(destination address,DA)字段,SRH包括SID list,SID list包括依次排列的多个SID。SRH中还包括段剩余(segmentsleft,SL)指针,该SL指针用于指示剩余待处理的段的数量。具体的,SL指针的每个取值对应于剩余待处理的段的特定数量。例如,SL指针的值为3,则表示剩余待处理的段的数量为4个,也可以理解为SL指针指向当前待处理的SID,即倒数第4个SID,SL指针的值为0,则表示剩余待处理的段的数量为1个,也可以理解为SL指针指向当前待处理的SID,即最后一个SID。网络设备根据SL指针确定当前待处理的SID以后,将该SID拷贝至IPv6报文头中的DA字段,根据DA字段中的内容处理报文,例如,转发报文。在报文的处理过程中,每执行一个段就更新一次SL指针的值,SL指针每次更新后在SID list中指向的位置偏移一个SID的长度,即128比特,随着对SID list中多个SID所表示的多个段的依次执行,不断更新SL指针的值,以确保SL指针始终指向当前待处理的SID。

结合图1所示的应用场景进行举例说明,当报文可以通过图1所示的SR网络进行转发时,报文的转发路径为由网络设备S发送至网络设备1,依次经过网络设备2、网络设备3、网络设备4、网络设备5、网络设备6,到达网络设备7。除了头节点网络设备S以外,该转发路径还包括网络设备1至网络设备7,共7个网络设备。在每个网络设备处都对报文进行转发处理,例如,每个网络设备处的转发处理行为分别对应一个段,则表示整个报文转发过程的SID list包括7个SID。每个SID的长度为128比特,SID list的长度为112字节,导致报文长度增加,降低网络的传输效率和处理效率。

本申请实施例提供了处理报文的方法以及基于该方法的设备和系统。这些方法、设备和系统基于同一发明构思。方法、设备和系统解决问题的原理相似,因此,方法、设备和系统的实施例可以相互参见,相同或类似之处不再赘述。

本发明实施例提供了一种处理报文的方法。该方法应用于SR网络,涉及网络设备301和网络设备302。其中网络设备301可以是网络入口设备,用于在报文中封装SID list,例如,图1所示的网络设备S。网络设备302可以是网络中的转发设备,用于根据SID list处理报文,例如,图1所示的网络设备1、网络设备2、网络设备3、网络设备4、网络设备5、网络设备6或网络设备7。在该方法中,生成SID list时,采用压缩的段标识(Compressed SID,C-SID)代替长度为128比特的SID来表示段,并且在报文头中设置CL指针,与SL指针共同构成二维指针,指示C-SID在SID list中的位置,从而对于相同数量的段来说,C-SID构成的SIDlist长度远远小于SID构成的SID list的长度。从而减少报文长度,提高网络的传输效率和处理效率。图3示出了所述方法的流程,该方法包括具体:

S310,网络设备301接收报文。

作为网络入口设备,网络设备301可以接收主机发送的报文,所述报文可以是业务报文。主机可以是个人计算机、手机或平板电脑等终端设备。

S315,网络设备301生成报文头并将报文头封装至所述报文中,报文头包括第一指针、第二指针和用于处理所述报文的列表,所述列表包括依次排列的多个标识,所述多个标识一一映射到SR网络中的多个段,所述第一指针的值和所述第二指针的值共同指示所述多个标识中的第一标识在所述列表中的位置。

在SRv6网络中,所述报文头包括IPv6报文头和SRH,所述列表为SRH中的SID list。针对接收到的报文,网络设备301生成包括SID list的报文头并将报文头封装至接收到的报文中,以便于对该报文进行处理。

在SR网络中,用于处理报文的每个段都具有特定的段标识,即SID,也就是说,用于处理报文的所述多个段一一映射到多个SID。结合以上描述,每个SID可以包括位置字段和功能字段,位置字段包括前缀部分和序号部分。位置字段和功能字段的长度之和可以是128比特。在一个SRv6网络域内,所有网络设备的SID的前缀部分是相同的,而每个网络设备的SID的序号部分是不同的,每个序号部分用于唯一确定该域内的一个网络设备。也就是说,每个SID可以划分为两部分,第一部分包括前缀部分,第二部分包括序号部分和功能字段。所有SID的第一部分是相同的,而每个SID的第二部分是不同的。第一部分和第二部分的长度之和为128比特。因而,为了减少SID list的长度,可以在省略上述第一部分,即省略SID的位置字段的前缀部分,将第二部分,即序号部分和功能字段,作为压缩的段标识,即C-SID,图4A所示。从而,SID list中包括依次排列的多个C-SID,每个C-SID映射到SR网络中的一个段。

结合图1所示的应用场景,网络设备1的SID可以是A1::0001:1111,该SID的长度为128比特,“::”表示全0字节。其中,A1::0001为位置字段,长度为112比特,A1/96为前缀部分,“/96”表示96比特的掩码,0001为序号部分,长度为16比特。1111为功能字段,长度为16比特。该SID的第一部分为A1,第二部分为0001:1111。将第二部分作为C-SID,即C-SID为0001:1111,长度为32比特。

类似地,网络设备2、网络设备3、网络设备4、网络设备5、网络设备6或网络设备7的SID可以分别是A1::0002:2222,A1::0003:3333,A1::0004:4444,A1::0005:5555,A1::0006:6666,A1::0007:7777。这些网络设备的C-SID可以是0002:2222,0003:3333,0004:4444,0005:5555,0006:6666,0007:7777,长度均为32比特。

图4B示出了封装有报文头的报文的一种结构,其中报文头包括IPv6报文头和SRH,SRH中包括SID list。结合图1所示的应用场景,当报文的转发路径为由网络设备S发送至网络设备1,依次经过网络设备2、网络设备3、网络设备4、网络设备5、网络设备6,到达网络设备7时,该转发路径对应的SID list可以如图4B所示,包括7个C-SID。每个C-SID的长度为32比特,7个C-SID的长度为224比特,SID list的长度大大降低,提高网络的传输效率和处理效率。

每个网络设备的C-SID可以通过扩展控制平面协议进行发布。SRv6网络域内的SID的前缀部分也可以通过扩展控制平面协议进行发布。可以采用的控制平面协议例如内部网关协议(Interior Gateway Protocol,IGP),边界网关协议(Border Gateway Protocol,BGP),边界网关协议链路状态(Border Gateway Protocol link state,BGP-LS)或路径计算通信协议(Path Computation Element Communication Protocol,PCEP)等等。

包括C-SID的SID list可以由控制器生成,也可以由网络入口设备生成。例如,控制器计算报文的转发路径,生成对应于该转发路径的SID list,所述SID list包括C-SID,并且控制器将所述SID list发送至网络入口设备。或者,网络入口设备计算报文的转发路径,并生成对应于该转发路径的SID list,所述SID list包括C-SID。或者,控制器计算报文的转发路径,生成对应于该转发路径的SID list,所述SID list包括SID而不包括C-SID,控制器将所述SID list发送至网络入口设备,网络入口设备根据接收到的SID list生成新的SID list,所述新的SID list包括C-SID。

发送SID list的控制平面协议,例如可以是边界网关协议(Border GatewayProtocol,BGP)或路径计算通信协议(Path Computation Element CommunicationProtocol,PCEP)等等。上述控制平面协议可以进行扩展,以发送包括C-SID的SID list。上述控制平面协议也可以扩展一个新的属性,以标识包括SID的SID list可以被转换为包括C-SID的SID list,或者标识包括SID的SID list应当被转换为包括C-SID的SID list。例如,当控制器计算报文的转发路径后,生成对应于该转发路径的SID list,所述SID list包括SID而不包括C-SID,控制器将所述SID list发送至网络入口设备,并通过控制平面协议扩展的新的属性标识该SID list可以被转换为包括C-SID的SID list。网络入口设备根据所述属性的指示,根据接收到的SID list生成新的SID list,所述新的SID list包括C-SID。

可选的,网络设备301可以通过控制平面协议向其他网络设备通告自身的能力属性,该能力属性用于标识网络设备301具备兼容C-SID的能力,例如,发布映射至段的C-SID,生成包括C-SID的SID list,将包括C-SID的SID list封装至报文中,根据C-SID处理报文等等。上述控制平面协议例如可以是内部网关协议(Interior Gateway Protocol,IGP),边界网关协议(Border Gateway Protocol,BGP)或路径计算通信协议(Path ComputationElement Communication Protocol,PCEP)等等。

在一个示例中,网络设备301将被省略的SID中的第一部分添加至DA字段中。结合以上分析,SID list中的多个C-SID一一映射到多个段,进一步地,所述多个段一一映射到多个SID,为了减少SID list的长度,省略SID的第一部分,即省略SID的位置字段的前缀部分,而只将SID的第二部分,即序号部分和功能字段,作为C-SID,存放在SID list中。可选地,SID list中可以只包括C-SID,而不包括C-SID对应的前缀部分。网络设备301在目的地址字段中添加所述SID的第一部分,即位置字段的前缀部分,并且,网络设备301将所述SIDlist中多个C-SID中的当前待处理的C-SID拷贝至DA字段中。DA字段中的所述第一部分和当前待处理的C-SID构成当前待处理的SID,从而,网络设备仍然可以根据DA字段的内容处理报文。例如,参见图4B所示,网络设备301将所述多个C-SID中的第一个C-SID,即C-SID1拷贝至DA字段中,DA字段中的前缀部分和C-SID1构成多个SID中的第一个SID,网络设备301根据第一个SID处理报文,例如,转发报文。

结合以上描述,SRH中包括SL指针,用于指示剩余待处理的段的数量。SL每次更新后在SID list中指向的位置偏移一个SID的长度,即128比特。在采用C-SID时,由于C-SID的长度小于SID的长度,原来存放一个SID的空间可以存放多个C-SID。从而SL每次更新后在SID list中指向的位置将偏移多个C-SID的长度,无法准确定位至每个C-SID。

在本申请实施例中,将SID list中的空间划分为多个元素,SL每次更新后指向不同的元素。进而可以设置新的指针,用于确定每个元素中当前待处理的C-SID。该新的指针可以称为CL指针,CL指针与SL指针构成二维指针。其中,SL指针的值用于确定当前待处理的元素在SID list中的位置,CL指针的值用于确定当前待处理的C-SID在该元素中的位置,从而,根据SL指针的值和CL指针的值可以确定当前待处理的C-SID在SID list中的位置,即SL指针的值和CL指针的值共同指示C-SID在SID list中的位置。

在一个示例中,可以将每个SID占据的空间划分为一个元素,即每个元素的长度为128比特,SL指针每次更新后在SID list中指向的位置仍然偏移128比特。参见图4所示的报文的报文头中的SID list,SID list中的第一个元素包括4个C-SID,第二个元素包括3个C-SID。从而,7个C-SID共占用SID list中的两个元素。

伴随着网络设备将SID list中的C-SID拷贝至DA字段中的行为,CL指针的值也需要进行更新,以确保CL指针的值始终用于确定当前待处理的C-SID在元素中的位置。

CL指针的更新方式与CL指针的初始值相关联。参见图4B所示,当SID list中第一个元素包括4个C-SID时,CL指针的初始值可以为0,用于指示元素中第一个C-SID,在每次更新时,将CL指针的值加1,即CL指针的值依次更新为1、2和3,依次用于指示元素中第二、三和四个C-SID。类似地,如果CL指针的初始值为3,用于指示元素中第一个C-SID,则在每次更新时,将CL指针的值减1,即CL指针的值依次更新为2、1和0,依次用于指示元素中第二、三和四个C-SID。

更新CL指针的值以及拷贝C-SID至DA字段两个动作之间的执行顺序有两种,第一种是先更新CL指针的值再拷贝C-SID,第二种是先拷贝C-SID再更新CL指针的值。上述两种执行顺序可以通过网络设置进行选择,在选定某一种执行顺序以后,网络中的所有网络设备均按照这一种执行顺序执行上述两个动作,以确保CL指针的值始终用于确定当前待处理的C-SID在元素中的位置。

CL指针在报文头中具有特定的位置。在一个示例中,该CL指针可以包括在C-SID中。图4C示出了C-SID的一种结构。参见图4C,C-SID中最后一部分字段可以被划分出来,作为CL指针的备选字段。该备选字段可以设置为特定长度,例如,3比特。该备选字段的值可以设置为特定的初始值,例如,设置为全0。当SID list中有多个C-SID依次排列时,可以在SIDlist中每个元素中选择一个特定的C-SID中的备选字段作为CL指针,该特定的C-SID中的备选字段的取值用于确定当前待处理的C-SID在该元素中的位置。而该元素中其他C-SID的备选字段的保持为初始值。优选的,所述特定的C-SID是每个元素中位置处于边缘的C-SID。例如,所述特定的C-SID可以是该元素中的第一个C-SID,如图4B所示的C-SID1,其中包括CL指针,倾斜字体表示这是一种可选的实现方式。将该第一个C-SID的备选字段作为CL指针,并根据当前待处理的C-SID在该元素中的位置修改该CL指针的值。该元素中其他C-SID的备选字段的值保持为初始值,例如,仍然为全0。例如,所述特定的C-SID也可以是该元素中的最后一个C-SID。

在一个示例中,该CL指针可以是从SRH中划分出的字段,图4B中未示出。例如,从标记(Flags)字段、最末条目(Last Entry)字段或者标签(Tag)字段中划分出的一部分。该CL指针可以设置为特定长度,例如,3比特。

在一个示例中,该CL指针可以是IPv6报文头中DA字段中划分出的一部分,具体的,该CL指针位于DA字段的最后一部分,也就是DA字段中C-SID的最后一部分,如图4B所示,倾斜字体表示这是一种可选的实现方式。该CL指针可以设置为特定长度,例如,3比特。根据当前待处理的C-SID在元素中的位置修改DA字段中该CL指针的值。此时,C-SID的格式仍然包括上述备选字段,且备选字段的长度与CL指针的长度相同,但SID list中所有C-SID的备选字段均保持初始值不变。

结合以上描述,网络设备301可以向其他网络设备通告自身具备处理C-SID的能力。在网络中,也可能存在部分网络设备不具备兼容C-SID的能力。当不具备兼容C-SID的能力的网络设备位于报文的转发路径中时,该网络设备也将根据段对报文进行处理。所述网络设备不具备兼容C-SID的能力,不发布映射至段的C-SID,而只发布映射至段的SID,因而,对应该转发路径SID list中将包括映射至该段的SID。当该转发路径还经过兼容C-SID的网络设备时,对应该转发路径的SID list中将同时包括C-SID和SID。

图5A示出了封装有报文头的报文的一种结构,其中报文头包括IPv6报文头和SRH,SRH中包括SID list,该SID list中同时包括C-SID和SID。具体的,所述SID list可以在C-SID之前包括SID,也可以在C-SID之后包括SID,也可以同时在C-SID之前和C-SID之后均包括SID。所述C-SID可以是指多个C-SID,所述C-SID之前或所述C-SID之后的SID都可以是指多个SID。对应的实际网络情况是,报文的转发路径可以在兼容C-SID的网络域之前先经过不兼容C-SID的网络域,也可以是在兼容C-SID的网络域之后再经过不兼容C-SID的网络域,也可以是在兼容C-SID的网络域之前先经过不兼容C-SID的网络域,并且在兼容C-SID的网络域之后再经过不兼容C-SID的网络域。所述兼容C-SID的网络域可以包括多个网络设备,所述不兼容C-SID的网络域也可以包括多个网络设备。

结合图1所示的应用场景,除了网络设备1至网络设备7以外,所述报文的转发路径还可以经过其他不具备兼容C-SID的能力的网络设备,这些不具备兼容C-SID的能力的网络设备可以位于网络设备S至网络设备1之间,并且位于网络设备7之后,图1中均未示出。

当SID list中同时包括C-SID和SID时,该SID list仍然可以通过上述扩展的控制平面协议进行发送。

当SID list中同时包括C-SID和SID时,可以在报文头中设置开始标志,用于指示C-SID的开始。

在一个示例中,所有具备兼容C-SID能力的网络设备所执行的段在SID list中都采用C-SID表示,所述开始标志可以包括在第一个C-SID前的最后一个SID中。例如,所述开始标志可以是SRv6中的一个特定功能,存放在所述最后一个SID的功能字段中。

在一个示例中,所有具备兼容C-SID能力的网络设备所执行的段中,第一个段在SID list中仍然采用长度为128比特的SID表示,其余段都采用C-SID表示,所述开始标志可以包括在所述第一个段映射的SID中,该SID也可以被称为特殊SID。图5B示出了所述特殊SID的格式。该SID包括位置字段、功能字段和参数字段,即Locator,Function和Argument。其中,位置字段包括前缀部分和序号部分,即Prefix-1和NodeID。并且,Prefix-1与C-SID映射到的SID中的Prefix是不同的。参数字段包括数量标志和CL指针,数量标志用L表示。图5C示出了SID list中包括上述特殊SID的报文,其中SPECIAL SID即所述特征SID。

在采用特殊SID时,可以将所述C-SID占据的空间划分为一个元素,该元素的长度有可能大于128比特,其余每个SID占据的空间划分为一个元素,这些元素的长度为128比特。从而,所有空间的长度不一定相同,SL指针每次更新后在SID list中指向的位置所偏移的长度也不一定相同。参见图5A所示的报文的报文头中的SID list,SID list中包括所有C-SID的元素中包括7个C-SID,长度大于128比特。

所述特殊SID中的CL指针用于在包括C-SID的元素中确定当前待处理的C-SID。伴随着网络设备将SID list中的C-SID拷贝至DA字段中的行为,该CL指针的值进行更新,以确保CL指针的值始终用于确定当前待处理的C-SID在元素中的位置。结合图5C所示的报文,特殊SID中的CL指针的值可以为7个不同的值,例如0-6。

所述数量标志的值用于表示所有C-SID的数量。所述数量标志的值用于在多个C-SID结束时,确定SL指针更新时偏移的位置。结合图5C所示的报文,当多个C-SID结束时,SL指针偏移的位置可以为224比特,从而指向多个C-SID后的第一个SID。

在一个示例中,所述特殊SID中的功能字段的值用于表示SRv6网络中的一个特定的功能,所述数量标志和所述CL指针作为该特定的功能的参数。所述特定的功能用于在CL指针的值为初始值时,即SID list中多个C-SID开始时,将C-SID映射的SID的前缀部分,即上述Prefix,拷贝至DA字段中,并且将所述多个C-SID中的第一个C-SID拷贝至DA字段中。

在一个示例中,网络设备301可以获得关于相同段的SID和C-SID,其中包括上述特殊SID。这些SID和C-SID可以由执行所述段的网络设备进行发布。当生成SID list时,在能够用C-SID表示的多个段中,第一个段应当采用上述特殊SID,而不采用C-SID。

当SID list中同时包括C-SID和SID时,还可以在报文头中设置结束标志,用于指示C-SID的结束。网络设备可以根据结束标志确定出多个C-SID中的最后一个C-SID,并将最后一个C-SID之后的128比特拷贝至DA字段中,即将最后一个C-SID之后的SID拷贝至DA字段中。

在一个示例中,在SID list中,在多个C-SID之后设置一个结束标志,用于指示多个C-SID的结束。该结束标志可以是与C-SID长度相同的类型字段,该结束标志的取值为特定数值,例如全0。如图5A所示,该结束标志可以用EOC表示,倾斜字体表示这是一种可选的实现方式。

在一个示例中,在SID list中,在多个C-SID中的最后一个C-SID中设置一个结束标志,用于指示多个C-SID的结束。如图5A所示,该结束标志可以包括在C-SID7中。

可选的,该结束标志可以是SRv6中的一个特定功能,存放在最后一个C-SID的功能字段中。

可选的,该结束标志可以是C-SID中的特定字段。结合以上描述,C-SID中最后一部分字段可以被划分出来,作为CL指针的备选字段。在此基础上,CL指针的备选字段之前的一部分字段可以被划分出来,作为结束标志的备选字段。图5D示出了包括结束标志的备选字段和CL指针的备选字段的C-SID的格式。其中结束标志的备选字段用S表示。该结束标志的备选字段可以设置为特定长度,例如,1比特。该结束标志的备选字段的值可以设置为特定的初始值,例如,设置为0。SID list中最后一个C-SID中的结束标志的备选字段的值设置为1,表示C-SID的结束。其余C-SID中的结束标志的备选字段的值保持为初始值。其中,CL指针的更新方式与先前介绍的方式相同,在此不再赘述。

在一个示例中,网络设备301可以获得关于相同段的不同格式的C-SID,其中包括上述包括结束标志的备选字段和CL指针的备选字段的C-SID的格式。这些不同的格式的C-SID可以由执行所述段的网络设备进行发布。SID list中每个元素中的最后一个C-SID可以选择上述包括结束标志的备选字段和CL指针的备选字段的C-SID的格式。其中的CL指针的备选字段可以用作CL指针,用于确定该元素中当前待处理的C-SID,当该元素中的最后一个C-SID同时是所有C-SID中的最后一个C-SID时,其中的结束标志可以用于指示C-SID的结束。

S320,网络设备301发送封装有所述报文头的所述报文。

结合以上描述,网络设备301将SID list中的第一个C-SID拷贝至DA字段中,DA字段中SID的第一部分和第一个C-SID重新组成SID,网络设备301发送封装有所述报文头的所述报文。可选地,网络设备301根据SID中功能字段所表示的SRv6网络功能对报文进行处理,处理过程由SRv6网络功能中的具体指令决定。可选地,处理过程可以包括将所述报文发送出去,例如,网络设备301将所述报文发送至网络设备302。

S325,网络设备302接收所述报文。所述报文的报文头包括目的地址字段、第一指针、第二指针和用于处理所述报文的列表,所述列表包括依次排列的多个标识,所述多个标识一一映射到所述SR网络中的多个段,所述第一指针的值和所述第二指针的值共同指示所述多个标识中的第一标识在所述列表中的位置。

S330,网络设备302根据所述第一指针的值和所述第二指针的值确定所述第一标识。

S335,网络设备302将所述第一标识拷贝至所述目的地址字段中。

网络设备302接收到包含C-SID的SID list,根据SL指针和CL指针确定当前待处理的C-SID,将该C-SID拷贝至DA字段中。该C-SID可以覆盖DA字段中原有的C-SID,与DA字段中的前缀部分组合成SID。网络设备302根据该SID处理报文。

结合以上描述,更新CL指针的值以及拷贝C-SID至DA字段两个动作之间的执行顺序有两种,与此相关联的,在网络设备302处,根据SL指针和CL指针确定当前待处理的C-SID也有两种执行方式。并且,SID list中包括C-SID的空间可以被划分为多个元素,也可以被划分为一个元素,与此相关联的,在网络设备302处,根据SL指针和CL指针确定当前待处理的C-SID也有不同的执行方式。

当执行顺序为先更新CL指针的值再拷贝C-SID,并且SID list中包括C-SID的空间可以被划分为多个元素时,结合图1所示的应用场景进行举例说明。网络设备302可以是图1中的网络设备1,网络设备1接收网络设备S发送的报文,报文的报文头如图4所示,报文头包括DA字段、SL指针、CL指针和SID list,SID list中包括多个C-SID。此时,DA字段包括前缀部分和C-SID 1,其中,前缀部分为A1,C-SID 1为0001:1111,前缀部分和C-SID 1组合为A1:0001:1111,即网络设备1的SID。此时,报文头中SL指针的值为1,指示第一个元素在SIDlist中的位置,参见图4,第一个元素包括4个C-SID,分别为C-SID 1,C-SID 2,C-SID 3,C-SID 4。报文头中CL指针的值为1,指示行中第一个C-SID在元素中的位置,即C-SID 1。网络设备1先更新CL指针的值,例如,将CL指针的值修改为2,指示行中第二个C-SID在元素中的位置。网络设备1根据SL指针和CL指针的指示,获得第一个元素中第二个C-SID,即C-SID 2,将C-SID 2拷贝至报文头中的DA字段中,代替DA字段中原有的C-SID 1。此时,DA字段中包括前缀部分和C-SID 2的组合,即A1:0002:2222,也就是网络设备2的SID。网络设备1根据DA字段中的网络设备2的SID查询转发表项,根据查询结果向网络设备2发送所述报文。

网络设备302也可以是图1中的网络设备2,网络设备2接收网络设备1发送的报文,此时,报文的报文头中的DA字段包括前缀部分和C-SID 2,即A1:0002:2222,也即网络设备2的SID。报文头中SL指针的值为1,CL指针的值为2,指示第一个元素中第二个C-SID在元素中的位置,即C-SID 2。网络设备2先更新CL指针的值,例如,将CL指针的值修改为3,指示行中第三个C-SID在元素中的位置。网络设备2根据SL指针和CL指针的指示,获得第一个元素中第三个C-SID,即C-SID 3,将C-SID 3拷贝至报文头中的DA字段中,代替DA字段中原有的C-SID 2。此时,DA字段中包括前缀部分和C-SID 3的组合,即A1:0003:3333,也就是网络设备3的SID。网络设备2根据DA字段中的网络设备3的SID查询转发表项,根据查询结果向网络设备3发送所述报文。

网络设备302也可以是图1中的网络设备3,网络设备3处理报文的过程与以上描述类似,在此不再赘述。

当执行顺序为先拷贝C-SID再更新CL指针的值时,并且SID list中包括C-SID的空间可以被划分为多个元素时,则在网络设备1接收到的报文中,CL指针的值已经为2,指示元素中第二个C-SID在元素中的位置。网络设备1根据SL指针和CL指针的指示,获得第一个元素中第二个C-SID,即C-SID 2,将C-SID 2拷贝至报文头中的DA字段中,代替DA字段中原有的C-SID 1。然后,网络设备1更新CL指针的值,例如,将CL指针的值修改为3,指示行中第三个C-SID在元素中的位置。此时,DA字段中包括前缀部分和C-SID 2的组合,即A1:0002:2222,也就是网络设备2的SID。网络设备1根据DA字段中的网络设备2的SID查询转发表项,根据查询结果向网络设备2发送所述报文。其他执行过程可以根据以上描述类推得出,在此不再赘述。

在一个示例中,网络设备302判断当前DA字段中的C-SID是否为SID list的元素中的最后一个C-SID,如果当前DA字段中的C-SID为SID list的元素中的最后一个C-SID,网络设备302需要更新SL指针的值和CL指针的值。报文转发路径上的多个网络设备依次处理SIDlist中的多个C-SID,当SID list中的一个元素中的C-SID处理完毕以后,继续处理后一个元素中的C-SID。此时,即需要修改CL指针的值又需要修改SL指针的值,以确保根据CL指针的值和SL指针的值仍然能够确定当前待处理的C-SID。

结合图1所示的应用场景和图4B所示的报文中的SID list,仍然以执行顺序为先更新SL指针的值和CL指针的值再拷贝C-SID为例进行说明。网络设备302可以是图1中的网络设备4,网络设备4接收网络设备3发送的报文。此时,报文的报文头中的DA字段包括前缀部分和C-SID 4,即A1:0004:4444,也即网络设备4的SID。报文头中SL指针的值为1,CL指针的值为4,指示第一个元素中第四个C-SID在元素中的位置,即C-SID 4。网络设备4确定当前DA字段中的C-SID 4是SID list的元素中的最后一个C-SID,则网络设备4需要更新SL指针的值和CL指针的值。具体的,网络设备4先更新SL指针的值,例如,将SL指针的值修改为0,指示SID list中的第二个元素,第二个元素包括3个C-SID,分别为C-SID 5,C-SID 6,C-SID7。网络设备4再更新CL指针的值,例如,将CL指针的值修改为1,指示元素中第一个C-SID在元素中的位置,即C-SID 5在元素中的位置。网络设备4根据SL指针和CL指针的指示,获得第二个元素中第一个C-SID,即C-SID 5,将C-SID 5拷贝至报文头中的DA字段中,代替DA字段中原有的C-SID 4。此时,DA字段中包括前缀部分和C-SID 5的组合,即A1:0005:5555,也就是网络设备5的SID。网络设备4根据DA字段中的网络设备5的SID查询转发表项,根据查询结果向网络设备5发送所述报文。

当执行顺序为先拷贝C-SID再更新SL指针的值和CL指针的值,执行过程可以根据以上描述类推得出,在此不再赘述。

并且,网络设备302也可以是图1中的网络设备5、网络设备6或网络设备7,这些网络设备处理报文的过程与以上描述类似,在此不再赘述。

当SID list中包括C-SID的空间被划分为一个元素时,执行过程可以根据以上描述类推得出,在此不再赘述。

虽然,在以上对图1所示的应用场景的举例说明中,在每个网络设备处都对报文进行一次转发处理,每次转发处理行为分别对应一个段,从而表示整个报文转发过程的SIDlist包括7个SID。但是,本领域技术人员容易预期到,在处理报文的过程中,也可能在某些网络设备处对报文进行多次处理,这些处理中包括转发处理,也包括非转发处理,每次处理行为对应一个段,从而在图1所示的应用场景中,表示整个报文转发过程的SID list可以包括7个以上的SID,例如,10个SID。

图6示出了上述实施例中所涉及的网络设备的一种可能的结构示意图,网络设备600可以实现图3所示实施例中网络设备301的功能。参阅图6,该网络设备600包括:接收单元601和处理单元602。这些单元可以执行上述方法中网络设备的相应功能。举例来说,

接收单元601,用于接收报文;

处理单元602,用于生成报文头并封装所述报文头至所述报文,所述报文头包括第一指针、第二指针和用于处理所述报文的列表,所述列表包括依次排列的多个标识,所述多个标识一一映射到所述SR网络中的多个段,所述第一指针的值和所述第二指针的值共同指示所述多个标识中的第一标识在所述列表中的位置,根据所述列表处理封装有所述报文头的所述报文。

图7示出上述实施例中所涉及的网络设备301的另一种可能的结构示意图。网络设备700包括:处理器702、网络接口703以及存储器701。其中,

存储器701,用于存储指令;在实现图6所示实施例的情况下,且图6实施例中所描述的各单元为通过软件实现的情况下,执行图6中的处理单元602功能所需的软件或程序代码存储在存储器701中。

处理器702,用于执行存储器701中的指令,执行上述应用于图3所示实施例中处理报文的方法。

网络接口703,用于与其他网络设备通信。

网络接口703、处理器702以及存储器701相互连接。例如,网络接口703、处理器702以及存储器701通过总线相互连接;总线可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

在具体实施例中,处理器702用于通过网络接口703接收报文,生成报文头并封装所述报文头至所述报文,所述报文头包括第一指针、第二指针和用于处理所述报文的列表,所述列表包括依次排列的多个标识,所述多个标识一一映射到所述SR网络中的多个段,所述第一指针的值和所述第二指针的值共同指示所述多个标识中的第一标识在所述列表中的位置,根据所述列表处理封装有所述报文头的所述报文。该处理器702的详细处理过程请参考上述图3所示实施例中的过程S310,S315,S320的详细描述,这里不再赘述。

网络接口703用于网络设备700通过网络系统接收和发送报文。具体的过程请参考上述图3所示实施例中S310的详细描述,这里不再赘述。

图8示出了上述实施例中所涉及的网络设备的一种可能的结构示意图,该网络设备800可以实现图3所示实施例中网络设备302的功能。参阅图8,网络设备800包括:接收单元801和处理单元802。该单元可以执行上述方法中网络设备的相应功能。举例来说,

接收单元801,用于接收报文,所述报文的报文头包括目的地址字段、第一指针、第二指针和用于处理所述报文的列表,所述列表包括依次排列的多个标识,所述多个标识一一映射到所述SR网络中的多个段,所述第一指针的值和所述第二指针的值共同指示所述多个标识中的第一标识在所述列表中的位置;

处理单元802,用于根据所述第一指针的值和所述第二指针的值确定所述第一标识,将所述第一标识拷贝至所述目的地址字段中。

图9示出了上述实施例中所涉及的网络设备的一种可能的结构示意图,网络设备900包括:处理器902、网络接口903以及存储器901。其中,

存储器901,用于存储指令;在实现图8所示实施例的情况下,且图8实施例中所描述的各单元为通过软件实现的情况下,执行图8中8发送单元801功能所需的软件或程序代码存储在存储器901中。

处理器902,用于执行存储器901中的指令,执行上述应用于图3所示实施例中处理报文的方法。

网络接口903,用于与其他网络设备通信。

网络接口903、处理器902以及存储器901相互连接。例如,网络接口903、处理器902以及存储器901通过总线相互连接;总线可以是PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

在具体实施例中,处理器902用于通过网络接口903接收报文,所述报文的报文头包括目的地址字段、第一指针、第二指针和用于处理所述报文的列表,所述列表包括依次排列的多个标识,所述多个标识一一映射到所述SR网络中的多个段,所述第一指针的值和所述第二指针的值共同指示所述多个标识中的第一标识在所述列表中的位置,根据所述第一指针的值和所述第二指针的值确定所述第一标识,将所述第一标识拷贝至所述目的地址字段中。该处理器902的详细处理过程请参考上述图3所示实施例中的过程S325,S330,S335的详细描述,这里不再赘述。

网络接口903用于网络设备900通过网络系统收发报文。具体的过程请参考上述图3所示实施例中S325的详细描述,这里不再赘述。

上述存储器701和存储器901可以是随机存取存储器(random-access memory,RAM)、闪存(flash)、只读存储器(read only memory,ROM)、可擦写可编程只读存储器(erasable programmable read only memory,EPROM)、电可擦除可编程只读存储器(electrically erasable programmable read only memory,EEPROM)、寄存器(register)、硬盘、移动硬盘、CD-ROM或者本领域技术人员知晓的任何其他形式的存储介质。

上述处理器702和处理器902例如可以是中央处理器(central processing unit,CPU)、通用处理器、数字信号处理器(digital signal processor,DSP)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。

上述网络接口703和网络接口903例如可以是接口卡等,可以为以太(ethernet)接口或异步传输模式(asynchronous transfer mode,ATM)接口。上述网络接口703和网络接口903可以为有线接口或无线接口。

上述处理器702和处理器902例如可以是专用集成电路(application-specificintegrated circuit,ASIC)。此时,处理器702和处理器902根据自身电路,执行上述应用于图3所示实施例中处理报文的方法。也就是说,此时存储器701和存储器901无需存储处理器702和处理器902所执行的指令,处理器702和处理器902不再执行存储器701和存储器901中的指令。可选的,此时网络设备可以不包括存储器701或存储器901。

参阅图10所示,图10示出本发明实施例提供的一种网络系统的可能的结构示意图。网络系统1000包括第一网络设备1001和第二网络设备1002。所述网络系统中的第一网络设备1001可以执行图3所示实施例中网络设备301的处理步骤,所述网络系统中的第二网络设备1002可以执行图3所示实施例中网络设备302的处理步骤。相应的,所述网络系统中的第一网络设备1001可以为图6所示实施例的网络设备600,所述第二网络设备1002可以为图8所示实施例的网络设备800,或者相应的,所述网络系统中的第一网络设备1001可以为图7所示实施例的网络设备700,所述第二网络设备1002可以为图9所示实施例的网络设备900。

具体的,所述第一网络设备,用于接收报文,生成报文头并封装所述报文头至所述报文,所述报文头包括第一指针、第二指针和用于处理所述报文的列表,所述列表包括依次排列的多个标识,所述多个标识一一映射到所述SR网络中的多个段,所述第一指针的值和所述第二指针的值共同指示所述多个标识中的第一标识在所述列表中的位置,根据所述列表处理封装有所述报文头的所述报文。

所述第二网络设备,用于接收报文,所述报文的报文头包括目的地址字段、第一指针、第二指针和用于处理所述报文的列表,所述列表包括依次排列的多个标识,所述多个标识一一映射到所述SR网络中的多个段,所述第一指针的值和所述第二指针的值共同指示所述多个标识中的第一标识在所述列表中的位置,根据所述第一指针的值和所述第二指针的值确定所述第一标识,将所述第一标识拷贝至所述目的地址字段中。

本发明实施例还提供了一种非瞬态存储介质,用于储存前述实施例中所用的软件指令,其包括用于执行前述实施例所示的方法的程序,当其在计算机或网络设备上执行时,使得所示计算机或网络设备执行前述方法实施例中的方法。

本发明实施例还提供了一种包括计算机程序指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得网络节点执行前述方法实施例中的方法。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑业务划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各业务单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件业务单元的形式实现。

集成的单元如果以软件业务单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的业务可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些业务存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已。

以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

35页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:信元传输方法及装置、存储介质、电子装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!