掌桥专利:专业的专利平台
掌桥专利
首页

一种报文发送的方法、段标识生成的方法及装置

文献发布时间:2024-01-17 01:15:20


一种报文发送的方法、段标识生成的方法及装置

技术领域

本申请涉及通信技术领域,尤其涉及一种报文发送的方法、段标识生成的方法及装置。

背景技术

随着业务的快速发展,第六版互联网协议(Internet Protocol Version 6,IPv6)得到了广泛的应用。其中,基于IPv6的段路由协议(Segment Routing over IPv6,SRv6)是IPv6技术一个重要的发展方向。在基于SRv6实现的网络系统中,可以通过段标识(SegmentIdentifier,SID)对数据报文进行转发或处理。SID可以基于网络设备的SRv6位置(SRv6Locator)标识生成,一个网络设备可以对应一个或多个SID。网络设备将其所对应的一个或多个SID在网络中泛洪,以便网络中其他网络设备根据SID转发数据报文。

灵活算法(Flexible Algorithm,Flex-Algo)技术可以允许网络设备支持多种转发算法计算转发路径,从而在同一物理拓扑下实现不同的逻辑拓扑。也就是说,如果多个数据报文的目的地相同,多个数据报文的传输路径可以基于不同转发算法来获得,那么这些数据报文可以经多不同的传输路径转发到目的地。在于SRv6实现的网络系统中,网络设备基于SRv6 Locator确定转发路径,那么为了支持不同的转发算法,同一网络设备可以具有多个SRv6 Locator,每个SRv6 Locator可以对应一种转发算法。

但是,随着网络设备支持的转发算法的增多,网络设备需要向其他网络设备泛洪的Locator的数量也大大增多,增加了网络的负载。

发明内容

本申请提供了一种报文发送的方法、段标识生成的方法及装置,用于减少泛洪的通告报文中携带的信息数量,减轻网络的负载。

第一方面,本申请提供了一种报文发送的方法,该方法可以应用于第一设备,第一设备可以是用于转发数据报文的网络设备,例如可以是路由器或交换机等设备。具体地,所述报文发送的方法包括:第一设备生成通告报文,第一设备向第二设备发送通告报文。其中,第二设备可以是网络设备,也可以是用于对第一设备进行控制的控制设备。通告报文包括第一设备的SRv6 Locator,以及与第一设备的SRv6 Locator相对应的M个FlexibleAlgorithm(其中M为大于或等于2的正整数)。也就是说,第一设备向第二设备发送的通告报文中包括第一设备的SRv6 Locator,以及第一设备支持的M个Flexible Algorithm。相应地,在接收到通告报文之后,第二设备可以根据通告报文生成N个SID(其中N为大于或等于2的正整数)。第二设备生成的N个SID中每个SID可以包括前述第一设备的SRv6 Locator和M个Flexible Algorithm中的一个Flexible Algorithm,不同的SID可以包含不同的Flexible Algorithm。这样,第二设备通过通告报文中的1个SRv6 Locator和该SRv6Locator对应的多个Flexible Algorithm生成多个SID,不再需要在通告报文中包含与Flexible Algorithm数量相等的SRv6 Locator。减少通告报文中包含的SRv6 Locator的数量,减少了通告报文携带的信息数量,有利于减轻网络的负载。

在一种可能的设计中,所述通告报文还包括K个功能(Function),所述K为大于或等于2的正整数,所述N个SID中每个SID包括所述SRv6 Locator、所述M个FlexibleAlgorithm中的一个Flexible Algorithm和所述K个Function中的一个Function,所述N小于或等于所述K与所述M的乘积。这样,第一设备发送的通告报文中包括1+M+N个信息(即1个SRv6 Locator、M个Flexible Algorithm和N个Function),就能够让第二设备得到最多N*M个第一设备的SID。如此,减少了通告报文中需要携带的信息数量,减轻了泛洪的压力。

在一种可能的设计中,所述K个Function携带在所述通告报文的以下任意一个或多个字段中:SRv6端点SID子类型长度值(SRv6 End SID sub-Type-length-value,SRv6End SID sub-TLV)字段、SRv6端点三层交叉连接段标识子类型长度值(SRv6 END.X SIDsub-TLV)字段,和SRv6局域网端点三层交叉连接段标识子类型长度值(SRv6 LAN End.XSID sub-TLV)字段。

在一种可能的设计中,通告报文包括J个SID,用于携带K个Function。所述J为正整数。可选地,所述J大于或等于所述K。具体地,所述J个SID中每个SID的Locator包括第一设备的SRv6 Locator,且Function部分包括K个Function中的一个Function。可选地,所述J个SID的Flex-algo部分的取值为0。

在一种可能的设计中,所述J个SID携带在所述通告报文的以下任意一个或多个字段中:SRv6 End SID sub-TLV字段、SRv6 END.X SID sub-TLV字段,和SRv6 LAN End.X SIDsub-TLV字段。

在一种可能的设计中,如果第一设备新增加了对某个Flexible Algorithm的支持能力,那么第一设备可以生成新的通告报文,并向第二设备发送。该新的通告报文可以包括新增的Flexible Algorithm。这样,在接收到第一设备发送的新的通告报文之后,第二设备可以根据第一设备的SRv6 Locator和新增的Flexible Algorithm生成新的SID。该新生成的SID可以包括所述SRv6 Locator和新增的Flexible Algorithm。同样,第二设备也可以根据新的通告报文生成新的转发表项,新的转发表项中的路由前缀包括所述SRv6 Locator和新增的Flexible Algorithm。可选地,如果通告报文包括K个Function,第二设备最多可以生成多个与所述新的Flexible Algorithm相对应的K个SID。

在一种可能的设计中,所述N个SID中每个SID对应的Flexible Algorithm包含在对应的SID的Flex-algo部分。

在一种可能的设计中,所述通告报文还包括指示信息,所述指示信息用于指示所述Flex-algo部分在所述SID中的位置。

在一种可能的设计中,所述Flex-algo部分的长度为8比特(bit)。

在一种可能的设计中,所述M个Flexible Algorithm携带在所述通告报文的段标识算法子TLV(SR-Algorithm sub-TLV)字段中。

在一种可能的设计中,所述通告报文包括SRv6 Locator TLV字段,所述SRv6Locator和所述M个Flexible Algorithm携带在所述通告报文的SRv6 Locator TLV字段中。即,所述SRv6 Locator TLV字段携带1个SRv6 Locator和M个Flexible Algorithm。

在一种可能的设计中,所述SRv6 Locator TLV字段还包括第一标识,所述第一标识用于指示所述通告报文包括所述M个Flexible Algorithm。

在一种可能的设计中,其特征在于,所述通告报文包括链路状态协议(Link StateProtocol Data Unit,LSP)报文,也可以是链路状态通告(Link State Advertisement,LSA)报文。

在一种可能的设计中,所述第二设备为控制器,所述通告报文包括边际网关协议(Border Gateway Protocol,BGP)链路状态(Link-State,LS)网络层可达信息(NetworkLayer Reachability Information,NLRI)和BGP LS属性(BGP LS Attributes)信息,所述BGP LS NLRI包括所述SRv6 Locator,所述BGP LS Attributes信息包括所述M个FlexibleAlgorithm。

在一种可能的设计中,所述BGP LS NLRI包括BGP前缀NLRI(BGP Prefix NLRI),所述BGP Prefix NLRI包括所述SRv6 Locator,所述BGP LS Attributes信息包括BGP-LSPrefix Attribute信息,所述M个Flexible Algorithm被携带在所述BGP-LS PrefixAttribute信息中。

在一种可能的设计中,所述通告报文为BGP更新BGP update报文。

第二方面,本申请提供了一种段标识生成的方法,该方法应用于第二设备,第二设备可以是网络设备,也可以是控制设备,例如第二设备可以是路由器或交换机等网络设备,也可以是控制器或服务器等控制设备。具体地,所述段标识生成的方法包括:第二设备接收第一设备发送的通告报文,通告报文包括SRv6 Locator和与SRv6 Locator对应的M个Flexible Algorithm。在接收到通告报文之后,第二设备可以根据通告报文生成N个SID。其中,第一设备可以是通告报文中SRv6 Locator对应的网络设备,也可以是用于转发通告报文的设备,所述M和N为大于或等于2的正整数。根据通告报文生成的N个SID中每个SID可以包括前述SRv6 Locator和M个Flexible Algorithm中的一个Flexible Algorithm。也就是说,第二设备并非获取完整的SID,而是获取相对独立的SRv6 Locator和FlexibleAlgorithm,并根据SRv6 Locator和M个Flexible Algorithm得到N个SID。这样,第二设备通过通告报文中的1个SRv6 Locator和该SRv6 Locator对应的多个Flexible Algorithm生成多个SID,不再需要在通告报文中包含于Flexible Algorithm数量相等的SRv6 Locator。减少通告报文中包含的SRv6 Locator的数量,减少了通告报文携带的信息数量,有利于减轻网络的负载。

为便于说明,下面以通告报文中SRv6 Locator对应的设备为第一设备为例进行说明。

在一种可能的设计中,第二设备根据通告报文中包括的SRv6 Locator和M个Flexible Algorithm生成J个转发表项。其中,每个转发表项包括一个路由前缀,每个路由前缀包括上述SRv6 Locator和M个Flexible Algorithm中的一个Flexible Algorithm。J小于或等于M。转发表项用于转发数据报文。相应地,在接收到数据报文之后,第二设备可以根据数据报文所包括的SID,从J个转发表项中查找与该SID相匹配的路由前缀,并根据路由前缀确定数据报文对应的目标接口和下一跳网络设备,进而通过目标接口向下一跳网络设备发送数据报文,实现数据报文的正常转发。

在一种可能的设计中,如果第一设备新增了对某个Flexible Algorithm的支持能力,那么第一设备生成新的通告报文,并向第二设备发送。该新的通告报文包括新增的Flexible Algorithm。在接收到第一设备发送的新的通告报文之后,第二设备根据第一设备的SRv6 Locator和新增的Flexible Algorithm生成新的SID。该新生成的SID可以包括所述SRv6 Locator和新增的Flexible Algorithm。同样,第二设备也可以根据新的通告报文生成新的转发表项,新的转发表项中的路由前缀包括所述SRv6 Locator和新增的FlexibleAlgorithm。可选地,如果第一设备对应K个Function,第二设备最多可以生成多个与所述新的Flexible Algorithm相对应的K个SID。

在一种可能的设计中,所述N个SID中每个SID对应的Flexible Algorithm包含在对应的SID的Flex-algo部分。

在一种可能的设计中,所述通告报文还包括指示信息,所述指示信息用于指示所述Flex-algo部分在所述SID中的位置。

在一种可能的设计中,所述Flex-algo部分的长度为8bit。

在一种可能的设计中,所述通告报文还包括K个Function,所述K为大于或等于2的正整数,所述N个SID中每个SID包括所述SRv6 Locator、所述M个Flexible Algorithm中的一个Flexible Algorithm和所述K个Function中的一个Function,所述N小于或等于所述K与所述M的乘积。

在一种可能的设计中,所述K个Function携带在所述通告报文的以下任意一个或多个字段中:SRv6 End SID sub-TLV字段、SRv6 END.X SID sub-TLV字段和SRv6 LANEnd.X SID sub-TLV字段。

在一种可能的设计中,通告报文可以包括J个SID,上述述J个SID中每个SID包括所述SRv6 Locator和J个Function中的一个Function,所述J为大于或等于2的正整数,所述N个SID中每个SID包括所述SRv6 Locator、所述M个Flexible Algorithm中的一个FlexibleAlgorithm和所述J个Function中的一个Function,所述N小于或等于所述J与所述M的乘积。

在一种可能的设计中,第二设备可以为J个SID中每个SID添加M个FlexibleAlgorithm中的一个Flexible Algorithm,得到N个SID。例如,假设上述M个FlexibleAlgorithm包括第一Flexible Algorithm,H个Function包括第一Function,H个SID包括第一SID,第一SID的Function部分包括第一Function。那么第二设备可以将第一SID的Flex-algo部分的取值替换为第一Flexible Algorithm,得到与第一Flexible Algorithm和第一Function相对应的SID。相应地,第二设备可以通过上述方法得到N个SID。

在一种可能的设计中,上述J个SID包括SRv6 Locator部分、Flexible Algorithm部分和Function部分。其中,SRv6 Locator部分的值为第一设备的SRv6 Locator,Function部分的值为K个Function中的一个Function。在生成N个SID时,第二设备可以为J个SID中每个SID的Flexible Algorithm部分添加M个Flexible Algorithm中的一个FlexibleAlgorithm。

在一种可能的设计中,所述J个SID携带在所述通告报文的以下任意一个或多个字段中:SRv6 End SID sub-TLV字段、SRv6 END.X SID sub-TLV字段,和SRv6 LAN End.X SIDsub-TLV字段。

在一种可能的设计中,所述M个Flexible Algorithm携带在所述通告报文的SR-Algorithm sub-TLV字段中。

在一种可能的设计中,所述通告报文包括SRv6 Locator TLV字段,所述SRv6Locator和所述M个Flexible Algorithm携带在所述通告报文的SRv6 Locator TLV字段中。

在一种可能的设计中,所述SRv6 Locator TLV字段还包括第一标识,所述第一标识用于指示所述通告报文包括所述M个Flexible Algorithm。

在一种可能的设计中,所述通告报文包括LSP报文,也可以是LSA报文。

在一种可能的设计中,所述第二设备为控制器,所述通告报文包括BGP LS NLRI和BGP LS Attributes信息,所述BGP LS NLRI包括所述SRv6 Locator,所述BGP LSAttributes信息包括所述M个Flexible Algorithm。

在一种可能的设计中,所述BGP LS NLRI包括BGP Prefix NLRI,所述BGP PrefixNLRI包括所述SRv6 Locator,所述BGP LS Attributes信息包括BGP-LS Prefix Attribute信息,所述M个Flexible Algorithm被携带在所述BGP-LS Prefix Attribute信息中。

在一种可能的设计中,所述通告报文为BGP更新BGP update报文。

第三方面,本申请提供了一种报文发送的装置,所述装置应用于第一设备,第一设备用于执行第一方面或第一方面的任意一种可能的设计中的方法。具体地,该第一设备包括用于执行第一方面或第一方面的任意一种可能的设计中的方法的单元。

第四方面,本申请提供了一种段标识生成的装置,所述装置应用于第二设备,第二设备用于执行第二方面或第二方面的任意一种可能的设计中的方法。具体地,该第二设备包括用于执行第二方面或第二方面的任意一种可能的设计中的方法的单元。

第五方面,本申请提供了一种第一设备,所述第一设备包括处理器和存储器,所述存储器用于存储指令或程序代码,所述处理器用于从存储器中调用并运行所述指令或程序代码,以执行如前述第一方面所述的报文发送的方法。

第六方面,本申请提供了一种第二设备,所述第二设备包括处理器和存储器,所述存储器用于存储指令或程序代码,所述处理器用于从存储器中调用并运行所述指令或程序代码,以执行如前述第二方面所述的段标识生成的方法。

第七方面,本申请提供了一种芯片,包括存储器和处理器,存储器用于存储指令或程序代码,处理器用于从存储器中调用并运行该指令或程序代码以如前述第一方面所述的报文发送的方法,或执行如前述第二方面所述的段标识生成的方法。

第八方面,本申请提供了一种系统,包括第一设备和第二设备,所述第一设备用于执行如前述第一方面或第一方面任一种可能的设计提供的方法,所述第二设备用于执行如前述第二方面或第二方面任一种可能的设计提供的方法。

第九方面,本申请提供了一种计算机可读存储介质,包括指令、程序或代码,当其在计算机上执行时,使得所述计算机如前述第一方面所述的报文发送的方法,或执行如前述第二方面所述的段标识生成的方法。

附图说明

图1-A为本申请实施例提供的网络系统的一种网络结构图;

图1-B为本申请实施例提供的报文处理的方法的一种应用场景示意图;

图1-C为本申请实施例提供的报文处理的方法的另一种应用场景示意图;

图1-D为本申请实施例提供的报文处理的方法的又一种应用场景示意图;

图2为本申请实施例提供的报文发送的方法和段标识生成的方法的一种信令交互图;

图3-A为本申请实施例提供的SR-Algorithm sub-TLV字段一种可能的格式示意图;

图3-B为本申请实施例提供的SR-Algorithm sub-TLV字段一种可能的格式示意图;

图4-A为本申请实施例提供的SRv6 End SID sub-TLV字段一种可能的格式示意图;

图4-B为本申请实施例提供的SRv6 End.X SID sub-TLV字段一种可能的格式示意图;

图4-C为本申请实施例提供的SRv6 LAN End.X SID sub-TLV字段一种可能的格式示意图;

图4-D为本申请实施例提供的包括Function的sub-TLV字段一种可能的格式示意图;

图4-E为本申请实施例提供的SRv6 SID Structure TLV字段一种可能的格式示意图;

图4-F为本申请实施例提供的SRv6 SID Structure TLV字段另一种可能的格式示意图;

图5为本申请实施例提供的报文发送的方法和段标识生成的方法的另一种信令交互图;

图6为本申请实施例提供的报文发送的装置600的一种结构示意图;

图7为本申请实施例提供的段标识生成的装置700的一种结构示意图;

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

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

具体实施方式

下面结合附图对传统技术、本申请实施例提供的报文发送的方法和段标识生成的方法进行介绍。

如果网络系统基于SRv6实现,那么该网络中支持SRv6的网络设备配置有SRv6Locator。SRv6 Locator用于标识网络设备,是SID的组成部分之一。除了SRv6 Locator部分以外,SID还包括功能标识(Function)。其中,Function是网络设备分配给本地转发指令的一个标识(Identity,ID)值,用于指示解析SID的网络设备执行相应的动作。也就是说,不同的SRv6 Locator用于标识不同的网络设备,不同的Function代表不同的转发行为。为了保证报文的正常传输,网络设备向其他网络设备泛洪自身对应的一个或多个SID,例如网络设备可以通过内部网关协议(Interior Gateway Protocol,IGP)协议向其他网络设备发送该网络设备所对应的多个SID。

参见图1-A,该图为本申请实施例提供的系统的一种网络架构图。在图1-A中,网络系统包括设备111、设备112、设备113、网络设备121、网络设备122、网络设备123、网络设备124、网络设备125和网络设备126。其中,网络设备121分别与设备111、网络设备122和网络设备125连接,网络设备123分别与网络设备122和网络设备124连接,网络设备126分别与网络设备125和网络设备124连接,设备112与网络设备124连接,设备113与网络设备124连接。通过网络系统之间各个网络设备的转发,设备111可以向设备112和设备113发送数据报文。

具体地,网络设备121可以通过网络接口(Interface)A1与网络设备122连接,通过网络接口A2与网络设备125连接;网络设备124可以通过网络接口B1与设备112连接,通过网络接口B2与设备113连接。

如果图1-A所示的系统基于SRv6实现,那么网络设备121、网络设备122、网络设备123、网络设备124、网络设备125和网络设备126具有不同的SRv6 Locator。每个网络设备又可以对应多个Function。网络设备的SRv6 Locator和Function相组合,可以得到多个SID。

例如,假设网络设备124的SRv6 Locator为1001::/64,且网络设备124具有SRv6端点SID(SRv6 End SID)和SRv6端点三层交叉连接SID(SRv6 END.X SID)两种类型的SID。如果SRv6 End SID对应的Function为::12,路径“网络设备124→设备112”对应的SRv6 END.XSID的Function为::101,路径“网络设备124→设备113”对应的SRv6 END.X SID的Function为::102。那么网络设备124可以具有三个SID,分别是SRv6 End SID 1001::12、路径“网络设备124→设备112”对应的SRv6 END.X SID 1001::101和路径“网络设备124→设备113”对应的SRv6 END.X SID 1001::102。

为了便于其他网络设备向设备112或设备113发送报文,网络设备124可以将上述三个SID向网络系统中其他网络设备泛洪,以便其他网络设备根据SID中的SRv6 Locator部分对应的网段向设备112或设备113转发报文。例如,网络设备121可以接收网络设备124发送的通告报文。其中,通告报文包括网络设备124的SRv6 Locator 1001::/64和网络设备124的SID,所述网络设备124的SID属于网段1001::/64。经过路由计算,网络设备121可以确定网段1001::/64与网络接口A1相对应,并生成网段1001::/64和网络接口A1的标识之间的对应关系,得到对应的转发表项。这样,在转发数据报文的过程中,如果网络设备121接收到的数据报文X的SID属于网段1001::/64,网络设备121根据转发表项确定数据报文X对应的目标接口为网络接口A1,进而通过网络接口A1向网络设备122发送数据报文。

在传统的SRv6技术中,数据报文的寻址是基于网络设备的SRv6 Locator对应的网段进行的。那么为了在SRv6的基础上实现Flex-Algo技术,会为同一网络设备设置多个不同的SRv6 Locator。例如,假设图1-A所示的网络系统支持Flex-algo 128和Flex-algo 129两种转发算法,那么可以为网络设备124设置两个不同的SRv6 Locator,分别对应Flex-algo128和Flex-algo 129,以便网络系统中其余网络设备根据转发算法对应的SRv6 Locator进行寻址。

沿用上述例子进行说明,假设网络设备124上Flex-algo 128对应的SRv6 Locator为2001::/64,Flex-algo 129对应的SRv6 Locator为3001::/64。那么告报文可以包括6个SID,分别为Flex-algo 128对应的SRv6 End SID 2001::12、Flex-algo 129对应的SRv6End SID 3001::12、路径“网络设备124→设备112”和Flex-algo 128对应的SRv6 End.XSID 2001::101、路径“网络设备124→设备112”和Flex-algo 129对应的SRv6 End.X SID3001::101、路径“网络设备124→设备113”和Flex-algo 128对应的SRv6 End.X SID2001::102、以及路径“网络设备124→设备113”和Flex-algo 129对应的SRv6 End.X SID3001::102。显然,这6个SID可以被划分为两部分,其中一部分SID中SRv6 Locator部分的取值为2001::/64,另一种部分的SID中SRv6 Locator部分的取值为3001::/643个SID的Locator。

经过路由计算,网络设备121可以得到网段2001::/64和网络接口A1的标识之间的对应关系,以及网段3001::/64和网络接口A2的标识之间的对应关系,并基于上述对应关系生成转发表项。

假设数据报文Y和数据报文Z的目的设备为网络设备124,且数据报文Y的转发路径基于Flex-algo 128确定,假设数据报文Z的转发路径基于Flex-algo 129确定,那么数据报文Y中作为目的地址的SID属于网段2001::/64,数据报文Z中作为目的地址的SID属于网段3001::/64。

在接收到数据报文Y之后,网络设备121可以根据转发表项确定数据报文Y的目标接口为网络接口A1,从而通过网络接口A1转发数据报文Y。在接收到数据报文Z之后,网络设备121可以根据转发表项确定数据报文Z的目标接口为网络接口A2,从而通过网络接口A2转发数据报文Z。

这样,由于数据报文的寻址是根据SID中的SRv6 Locator部分进行的,针对不同的转发算法为网络设备124设置不同SRv6 Locator,相当于在同一套物理拓扑下建立不同的逻辑拓扑,在SRv6场景下实现了Flex-Algo的效果。

但是,随着网络设备支持的Flexible Algorithm的数量增多,网络设备对应的SRv6 Locator的数量和SID的数量会大量增加。在上述例子中,网络设备支持2种FlexibleAlgorithm,且具有3个Function。相应地,网络设备具有2种SRv6 Locator,通告报文中包括2*3=6个SID如果网络设备支持4种Flexible Algorithm,且具有5个Function,那么网络设备具有5种SRv6 Locator,生成的通告报文中最多可以包括4*5=20个SID。其中,每个SID可以包括一种SRv6 Locator和一种Function。

也就是说,如果网络设备支持i种Flexible Algorithm和j个Function(i、j为正整数),那么网络设备对应i个SRv6 Locator,需要向其他网络设备通告i个SRv6 Locator和最多i*j个SID。现在这增加了通告报文中携带的信息数量,增加了网络负载。

通过上述介绍可知,在传统的基于SRv6的Flex-algo技术中,由于同一设备在不同的Flexible Algorithm下对应不同的SRv6 Locator,导致网络设备需要向其他设备通告的SRv6 Locator的数量增加,进而增加了网络设备泛洪的压力,也增加了整个网络的负载。

另一方面,如果网络系统中网络设备的数量较多,且每个网络设备都支持多个转发算法,那么需要为这些网络设备分配的SRv6 Locator的数量也会增多,增加了规划SRv6Locator的难度。

为了解决上述提及的SRv6 Locator的数量过多导致泛洪压力增大的问题,本申请实施例提供了一种报文发送的方法、段标识生成的方法,旨在将SRv6 Locator与FlexibleAlgorithm解耦,用于减少泛洪的通告报文中携带的信息数量,减轻网络的负载。

本申请实施例提供的报文发送的方法和段标识生成的方法可以应用于图1-A所示的系统。具体地,所述报文发送的方法和段标识生成的方法可以由图1-A所示实施例中网络设备121、网络设备122、网络设备123、网络设备124、网络设备125和网络设备126中任意一个或多个网络设备执行。

在本申请实施例中,设备111、设备112和设备113可以是网络设备,也可以是终端设备。如果设备111、设备112和设备113中的任意一个设备为网络设备,那么该设备可以是用户边缘(Customer Edge,CE)。其中,终端设备可以称为用户设备(User Equipment,UE)、移动台(Mobile Station,MS)、移动终端(Mobile Terminal,MT)或终端等。终端设备是一种向用户提供语音和/或数据连通性的设备,或,设置于该设备内的芯片。例如,终端设备可以是具有无线连接功能的手持式设备、车载设备等。终端设备可以为手机、台式电脑、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(Mobile Internet Device,MID)、可穿戴设备、虚拟现实(Virtual Reality,VR)设备、增强现实(Augmented Reality,AR)设备、工业控制(Industrial Control)中的无线终端或有线终端、无人驾驶(Self Driving)中的无线终端、远程手术(Remote Medical Surgery)中的无线终端、智能电网(Smart Grid)中的无线终端、运输安全(Transportation Safety)中的无线终端、智慧城市(Smart City)中的无线终端、智慧家庭(Smart Home)中的无线终端或支持5G接入的家庭网关设备(5G→Residential Gateway,5G→RG)等。

所述网络设备可以是具有转发功能的设备,比如:路由器(Router)或交换机(Switch)等转发设备,还可以是服务器或者终端设备等具有转发功能的设备。可选地,网络设备可以是部署在网络边缘的运营商边缘(Provider Edge,PE)设备,例如可以是图1-A中的网络设备121或网络设备124;也可以是部署在网络内部的运营商(Provider,P)设备,例如可以是图1-A中的网络设备122、网络设备123、网络设备125或网络设备126。

可以理解的是,所述报文发送的方法可以由网络设备的转发面执行,例如可以由网络设备的转发芯片执行。所述段标识生成的方法可以由网络设备的控制面执行,例如可以由网络设备的处理器执行所述处理器可以是由网络设备的中央处理器(CentralProcessing Unit,CPU)。可选地,在一些其他可能的实现方式中,所述段标识生成的方法还可以由独立的控制面设备执行。例如,在软件定义网络(Software Defined Network,SDN)网络或虚拟化网络功能(Virtualized Network Function,VNF)等应用场景中,所述段标识生成的方法也可以由服务器执行,该服务器可以作为控制面设备执行网络设备控制面所执行的方法。在本申请实施例中,如果数据处理方法由独立的控制面设备执行,该控制面设备可以被称为第一设备或控制设备。

下面以本申请实施例提供的技术方案由网络设备执行为例,结合图2对本申请实施例提供的技术方案进行介绍。参见图2,该图为本申请实施例提供的报文发送的方法和段标识生成的方法的一种信令交互图,包括:

S201:第一设备生成通告报文。

其中,第一设备可以是网络系统中的网络设备,例如可以是图1-A中的网络设备121、网络设备122、网络设备123、网络设备124、网络设备125和网络设备126中的任意一个或多个。在本申请实施例中,第一设备可以是支持SRv6的网络设备,第一设备上可以部署有至少两种Flexible Algorithm。

在本申请实施例中,通告报文包括SRv6 Locator和M个灵活算法FlexibleAlgorithm。其中M为大于或等于2的正整数。下面分别对其进行介绍。

首先对SRv6 Locator进行介绍。可选地,SRv6 Locator可以被简称为Locator。根据前文介绍可知,在传统的SRv6技术中,网络设备的SRv6 Locator可以用于标识网络设备,且不同的转发算法可以对应不同的SRv6 Locator。而在本申请实施例中,第一设备的SRv6Locator用于在多个Flexible Algorithm下标识第一设备。也就是说,即使转发算法不同,第一设备对应的SRv6 Locator可以相同。

在一些可能的实现中,第一设备生成的通告报文还包括所述SRv6 Locator的长度。在SRv6技术中,SID的长度为128bit,SRv6 Locator位于SID的头部。因此,可选地,第一设备的SRv6 Locator的长度可以是SID的一半,即64bit。或者,考虑到Flexible Algorithm的长度为8bit,第一设备的SRv6 Locator的长度可以是56bit。

下面对M个Flexible Algorithm进行介绍。

在本申请实施例中,Flexible Algorithm的标识可以被简称为FlexibleAlgorithm。所述M个Flexible Algorithm为第一设备所支持的转发算法。可选地,FlexibleAlgorithm可以被简称为Flex-Algo。也就是说,如果第一设备支持M个FlexibleAlgorithm,第一设备可以通过通告报文向其他设备通告M个Flexible Algorithm,以使其他设备了解第一设备对Flexible Algorithm的支持能力。

在一些可能的实现方式中,前述M个Flexible Algorithm可以是Flex-Algo技术中转发算法的标识。Flex-Algo技术允许用户自定义128个Flexible Algorithm。每个Flexible Algorithm可以通过128-255之间的一个整数标识。例如,第一个被定义的Flexible Algorithm可以通过数字128进行标识(后称Flex-algo 128),第二个被定义Flexible Algorithm可以通过数字129进行标识(后称Flex-algo 129)。因此,如果第一设备支持Flex-algo 128和Flex-algo 129,那么通告报文中M个Flexible Algorithm可以包括128和129。

在一些可能的实现中,第一设备生成的通告报文还包括Flexible Algorithm的长度。如果M个Flexible Algorithm用128-255之间的数字表示,那么每个FlexibleAlgorithm可以通过8位二进制数表示,通告报文中Flexible Algorithm的长度可以为8bit,。由于每个bit可以对应一位二进制数,长度为8bit的字符串可以携带任意一个Flexible Algorithm。

可以理解的是,IP地址可以通过16进制数表示。那么在一些可能的实现方式中,Flexible Algorithm也可以通过16进制数表示。那么Flex-algo 128的标识可以表示为0x80,Flex-algo 129的标识可以表示为0x81。

在一些可能的实现方式中,通告报文还包括指示信息,指示信息用于指示Flax-algo部分在SID中的位置。关于指示信息的详细介绍可以参见S203,这里不再赘述。

根据前文介绍可知,SID还可以包括Function部分和Argument部分。相应地,如果SID包括Argument部分,通告报文还可以包括一个或多个Function部分,以及一个或多个Argument。关于Function的介绍可以参见后文,这里不再赘述。

上面介绍了SRv6 Locator和M个Flexible Algorithm,下面介绍对通告报文进行介绍。

在本申请实施例中,通告报文用于向第二设备通告第一设备的SID。第二设备可以是网络系统中的网络设备,也可以是控制器。根据第二设备的不同,通告报文的类型也可以不同。

在第一种实现方式中,第二设备为网络设备。那么第一设备和第二设备之间的连接可以是基于IGP的连接,第一设备可以通过基于IGP协议的报文向第二设备通告第一设备的相关信息,通告报文可以是基于IGP协议的报文,例如第一报文可以是链路状态协议(Link State Protocol Data Unit,LSP)报文,也可以是链路状态通告(Link StateAdvertisement,LSA)报文。

如果通告报文为LSP报文,那么第一设备和第二设备之间的通信协议可以是基于中间系统到中间系统(Intermediate System to Intermediate System,ISIS)的通信协议;如果通告报文为LSA报文,那么第一设备和第二设备之间的通信协议可以是开放最短路由优先(Open Shortest Path First,OSPF)协议。

在第二种实现方式中,第二设备为控制器。那么第一设备和第二设备之间的连接可以是基于边际网关协议(Border Gateway Protocol,BGP)的连接,第一设备通过基于BGP协议的报文向第二设备通告第一设备的相关信息,通告报文是基于BGP协议的报文。可选地,第一设备和第二设备之间可以基于BGP链路状态(BGP-Link State,BGP-LS)协议连接,通告报文可以是BGP更新(BGP update)报文。

上面对通告报文本身进行了介绍,下面介绍SRv6 Locator和M个灵活算法Flexible Algorithm在通告报文中的携带方法。

在第一种实现方式中,通告报文为LSA报文或LSP报文。那么,上述SRv6 Locator和M个Flexible Algorithm可以被携带在通告报文的SRv6 Locator类型长度值(Type-length-value,TLV)字段中。具体地,SRv6 Locator可以被携带在SRv6 Locator TLV字段的值(Value)部分。

可选地,SRv6 Locator TLV字段的Value部分还可以包括段标识算法子类型长度值(Segment Routing Algorithm sub-TLV,SR-Algorithm sub-TLV)字段,用于携带M个Flexible Algorithm。具体地,所述M个Flexible Algorithm被携带在SR-Algorithm sub-TLV字段的Value部分。

关于SR-Algorithm sub-TLV字段的格式可以参考标准请求评议(Request forComments,RFC)8665或RFC8667给出的格式。具体地,如果SR-Algorithm sub-TLV字段如RFC8665的介绍,那么SR-Algorithm sub-TLV字段的格式可以如图3-A所示。如果SR-Algorithm sub-TLV字段如RFC8667的介绍,那么SR-Algorithm sub-TLV字段的格式可以如图3-B所示。

根据前文介绍可知,SRv6 Locator可以包括SRv6 Locator的长度。关于通告报文携带SRv6 Locator的长度的方法可以参见后文,这里不再赘述。

在一些可能的实现方式中,通告报文的SRv6 Locator TLV字段还包括第一标识,用于标识本申请实施例中提到的SRv6 Locator和Flexible Algorithm的通告方式。这样,接收到通告报文的设备可以根据sub-TLV字段中Flexible Algorithm确定需要根据SRv6Locator TLV中的SRv6 Locator和Flexible Algorithm组合生成多个SID。

SRv6 Locator TLV字段包括Algorithm部分。在传统的SRv6 Flex-algo技术中,由于Locator与Flexible Algorithm之间为一对一的关系,SRv6 Locator TLV字段的Algorithm部分用于携带与Locator对应的Flexible Algorithm。在本申请实施例中,SRv6Locator TLV字段的Algorithm部分可以包括上述第一标识,不包括与Locator对应的Flexible Algorithm。

根据前文介绍可知,通告报文还包括SRv6 Locator的长度。SRv6 Locator的长度被携带在SRv6 Locator TLV字段中,例如SRv6 Locator的长度可以被携带在SRv6 LocatorTLV字段的Loc.Size部分。或者,SRv6 Locator的长度也可以和Function的长度携带在同一个字段中。关于SRv6 Locator的长度和Function的长度携带在同一个字段的方式可以参见后文,这里不再赘述。

在第二种实现方式中,通告报文为BGP update报文,那么通告报文可以包括BGPLS NLRI,以及与BGP LS NLRI对应的BGP LS Attributes信息。其中,BGP LS NLRI包括第一设备的SRv6 Locator。BGP LS Attributes信息包括与第一设备的SRv6 Locator对应的M个Flexible Algorithm。

例如,M个Flexible Algorithm可以被携带在BGP LS Attributes信息的SR-Algorithm sub-TLV字段中。具体地,与BGP LS NLRI对应的BGP LS Attributes信息可以包括一个或多个BGP LS TLV类型的TLV字段。所述一个或多个BGP LS TLV类型的TLV字段包括SRv6 Locator TLV字段。该SRv6 Locator TLV字段的value部分可以包括的SR-Algorithmsub-TLV字段。SR-Algorithm sub-TLV包括与第一设备的SRv6 Locator对应的M个FlexibleAlgorithm。关于SR-Algorithm TLV字段的介绍可以参见上文,这里不再赘述。

或者,M个Flexible Algorithm也可以被携带在BGP LS Attributes信息的TLV字段中。具体地,与BGP LS NLRI对应的BGP LS Attributes信息可以包括SRv6 Locator TLV字段,和与SRv6 Locator TLV字段并列的SR-Algorithm TLV字段。该SR-Algorithm TLV字段可以用于携带M个Flexible Algorithm。可以理解的是,用于携带M个FlexibleAlgorithm的TLV字段也可以是其他TLV字段。

在一些可能的实现中,通告报文的BGP LS NLRI包括BGP Prefix NLRI,与BGPPrefix NLRI对应的BGP LS Attributes信息包括BGP LS Prefix Attributes信息。其中,BGP Prefix NLRI可以包括第一设备的SRv6 Locator,BGP LS Prefix Attributes信息可以包括上述SRv6 Locator TLV。例如,第一设备的SRv6 Locator可以被携带在BGP PrefixNLRI的前缀描述(Prefix Description)信息的IP可达信息(IP ReachabilityInformation)TLV字段中。

根据前文介绍可知,通告报文还包括SRv6 Locator的长度。SRv6 Locator的长度和SRv6 Locator一同携带。例如,假设SRv6 Locator被携带在通告报文的BGP LS NLRI中,那么SRv6 Locator的长度同样可以被携带在BGP LS NLRI中。或者,SRv6 Locator的长度也可以和Function的长度携带在同一个字段中。关于SRv6 Locator的长度和Function的长度携带在同一个字段的方式可以参见后文,这里不再赘述。

上文对通告报文携带SRv6 Locator和所述M个Flexible Algorithm的方式进行了介绍。可选地,通告报文还可以包括K个Function。下面介绍通告报文携带K个Function的方法。

在本申请实施例中,Function指SID中对应转发行为的字符串,又可以被称为Function的标识。K个Function可以分别被携带在K个sub-TLV字段中,每个sub-TLV字包括K个Function中的一个Function。也就是说,通告报文可以包括K个sub-TLV字段,每个sub-TlV字段包括一个Function,对应一种转发行为。

举例说明。假设K个Function包括SRv6End SID对应的Function、SRv6 END.X SID对应的Function和SRv6局域网端点三层交叉连接段标识(SRv6 LAN End.X SID)对应的Function,那么通告报文可以包括SRv6 End SID sub-TLV字段、SRv6 END.X SID sub-TLV字段和SRv6 LAN End.X SID sub-TLV字段。其中,SRv6 End SID sub-TLV字段包括SRv6End SID对应的Function,SRv6 END.X SID sub-TLV字段包括SRv6 END.X SID对应的Function,SRv6 LAN End.X SID sub-TLV字段包括SRv6 LAN End.X SID对应的Function。

具体地,SRv6 End SID sub-TLV字段可以如图4-A所示,SRv6 END.X SID sub-TLV字段可以如图4-B所示,SRv6 LAN End.X SID sub-TLV字段可以如图4-C所示。其中,sub-TLV字段的Endpoint Behavior部分可以用于指示携带该sub-TLV字段携带的SID的功能类型。例如,SRv6 End SID sub-TLV字段的Endpoint Behavior部分可以用于指示该字段用于携带SRv6 End SID对应的Function。

可选地,SRv6 End.X SID sub-TLV字段和SRv6 LAN End.X SID sub-TLV字段可以被携带在通告报文的BGP LS链路(Link)Attribute信息的TLV字段中。其中,BGP LS LinkAttribute信息属于BGP LS Attribute信息,BGP LS Link Attribute信息与BGP LinkNLRI相对应。

在一些可能的实现中,例如在图4-A、图4-B和图4-C给出的例子中,用于携带Function的sub-TLV字段还包括Algorithm部分。在传统的SRv6技术中,Algorithm部分用于携带SID对应的Flexible Algorithm。在本申请实施例中,Algorithm部分可以为非128-255的值,用于标识本申请实施例中提到的SRv6 Locator和Flexible Algorithm的通告方式。这样,接收到通告报文的设备可以根据sub-TLV字段中Flexible Algorithm确定需要根据SRv6 Locator TLV中的SRv6 Locator和Flexible Algorithm组合生成多个SID。

在本申请实施例中,SID的格式可以按照“SRv6 Locator+Flexible Algorithm+Function”的组合设置。即,SID可以包括SRv6 Locator部分、Flexible Algorithm部分和Function部分。可选地,第一设备可以将上述多个SID中每个SID的Flex-algo部分的值设为预设值。例如第一设备可以用0填充SID的Flex-algo部分。这样,在其他设备根据通告报文生成SID时,可以利用通告报文中携带的Flexible Algorithm替换SID中Flex-algo部分的预设字符串,得到第一设备的SID。

举例说明。假设SRv6 Locator部分位于SID的前64位,Flex-algo部分位于SID的第65位到第72位,Function位于SID的剩余部分。那么第一设备可以根据第一设备的SRv6Locator和K个Function得到K个SID。所述K个SID中每个SID的第65位到第72位的值均为0。例如,假设第一设备的SRv6 Locator为1001::/64,SRv6 End SID对应的Function为::12,那么通告报文的SRv6 End SID sub-TLV字段的SID部分包括SID 1001::12。

可选地,如果第一设备支持i个Argument(i为正整数),那么每个携带Function的sub-TLV字段可以包括i个SID。所述i个SID中每个SID对应一个Argument。

可以理解的是,上述通告报文的sub-TLV中的SID可以用于携带Function和SRv6Locator,不具有实际意义。

在本申请实施例中,通告报文还包括Function的长度。上述SRv6 Locator长度可以和Function的长度被携带在同一字段中。下面介绍通告报文携带Function的长度的方法。

在第一种实现方式中,通告报文基于IGP发送,Function的长度可以被携带在包括Function的sub-TLV字段中。其中,包括Function的sub-TLV字段例如可以是前文所述的SRv6 End SID sub-TLV字段、SRv6 END.X SID sub-TLV字段和SRv6 LAN End.X SID sub-TLV字段等字段中的任意一种或多种。

可选地,包括Function的sub-TLV字段的value包括Fun.Size部分,用于携带Function的长度。具体地,所述包括Function的sub-TLV字段的格式可以如图4-D所示。其中,sub-TLV字段的Function部分包括K个Function中的一个Function,Fun.Size部分包括Function的长度。该sub-TLV字段还包括Loc.Size部分和/或Arg.Size部分。Loc.Size部分包括SRv6 Locator的长度,Arg.Size部分包括Argument的长度。

在第二种实现方式中,通告报文基于BGP发送,Function的长度可以被携带在SRv6SID Structure TLV字段中。

根据前文介绍可知,通告报文可以包括BGP LS NLRI和与BGP LS NLRI对应的BGPLS Attribute信息。BGP LS Attribute信息包括SR-Algorithm TLV字段,用于携带M个Flexible Algorithm。可选地,BGP LS Attribute信息还包括SRv6 SID Structure TLV字段,用于携带Function的长度。其中,SRv6 SID Structure TLV字段属于BGP LS TLV类型的字段。具体地,SRv6 SID Structure TLV字段的格式可以如图4-E或图4-F所示。

如果SRv6 SID Structure TLV字段的格式如图4-E所示,那么SRv6 SIDStructure TLV字段中LB.Length部分用于携带SRv6 Locator中Locator块(LocatorBlock,LB)的长度,LN.Length部分用于携带SRv6 Locator中Locator节点(Locator Node,LN)的长度。LB.Length部分的值与LN.Length部分的值之和为SRv6 Locator的长度,Fun.Length部分的值为Function的长度,Arg.Length部分的值为Argument的长度。

如果SRv6 SID Structure TLV字段的格式如图4-F所示,那么SRv6 SIDStructure sTLV字段中Loc.Length部分的值为SRv6 Locator的长度,Fun.Length部分的值为Function的长度,Arg.Length部分的值为Argument的长度。

可选地,通告报文还可以包括Flexible Algorithm的长度。例如,通告报文可以将Flexible Algorithm的长度和M个Flexible Algorithm一同携带,或者将FlexibleAlgorithm的长度与SRv6 Locator的长度携带在同一个TLV字段中。

上面介绍了通告报文携带SRv6 Locator、Flexible Algorithm和Function的方法。下面结合图1-A做进一步的介绍。

假设网络设备124的SRv6 Locator为1001::/64,网络设备124支持Flex-algo 128和Flax-algo129,且网络设备124具有SRv6 End SID和SRv6 END.X SID两种类型的SID。其中,Flex-algo 128的标识为0x80,Flex-algo 129的标识为0x81,SRv6 End SID对应的Function为::12,路径“网络设备124→设备112”的SRv6 END.X SID对应的Function为::101,路径“网络设备124→设备113”的SRv6 END.X SID对应的Function为::102。

为了向网络设备121通告网络设备124的SID,网络设备124生成通告报文并基于IGP向网络设备121发送。其中,通告报文包括SRv6 Locator TLV字段。该SRv6 Locator TLV字段的Value部分包括网络设备124的SRv6 Locator对应的网段1001::/64、SR-Algorithmsub-TLV字段和SRv6 End SID sub-TLV。其中,SR-Algorithm sub-TLV字段的Value部分包括Flex-algo 128的标识0x80和Flex-algo 129的标识0x81。SRv6 End SID sub-TLV字段包括SRv6 End SID对应的Function(即::12),例如SRv6 End SID sub-TLV字段的SID部分可以包括SID 1001::12。

另外,通告报文还包括多拓扑中间系统(Multi Topology Intermediate System,MT IS)TLV字段,用于携带SRv6 End.X SID sub-TLV。SRv6 End.X SID sub-TLV包括路径“网络设备124→设备112”的SRv6 END.X SID对应的Function(即::101),以及路径“网络设备124→设备113”的SRv6 END.X SID对应的Function(即::102)。可选地,SRv6 End.X SIDsub-TLV的SID部分包括2个SID,分别为SID 1001::101和SID 1001::102。可选地,网络设备124发送通告报文的过程可以如图1-B所示。

在本申请实施例中,第一设备可以在接入网络时生成通告报文,以向网络系统中其他网络设备通告自身对应的一个或多个SID。或者,第一设备可以在SRv6 Locator、Flexible Algorithm和Function中任意一个或多个发生改变时生成通告报文。也就是说,如果第一设备确定第一设备增加了新的SID,第一设备可以生成通告报文,以向其他设备(例如第二设备)通告新增的SID。

沿用前文给出的例子进行说明。假设网络设备124检测到网络设备124对Flex-algo130的支持能力从不支持变为支持,网络设备124可以生成通告报文。该通告报文包括网络设备124的SRv6 Locator 1001::/64、Flex-algo 128的标识0x80、Flex-algo 129的标识0x81和Flex-algo130的标识0x82。

S202:第一设备向第二设备发送通告报文。

在生成通告报文之后,第一设备向第二设备发送通告报文。可选地,第二设备可以是网络设备,也可以是控制设备。根据前文介绍可知,如果第二设备为网络设备,第一设备可以基于IGP向第二设备发送通告报文;如果第二设备为控制设备,第一设备可以基于BGP向第二设备发送通告报文。

S203:第二设备根据通告报文生成一个或多个SID。

在接收到通告报文之后,第二设备根据通告报文生成一个或多个SID。具体地,如果前述K和M均等于1,第二设备根据通告报文生成一个SID。如果前述K或M大于1,第二设备根据通告报文可以生成多个SID。具体地,如果通告报文包括SRv6 Locator、M个FlexibleAlgorithm和K个Function,第二设备可以根据通告报文生成N个SID。其中N为正整数,且N小于或等于M与K的乘积。也就是说,第二设备将通告报文所包括的M个Flexible Algorithm和K个Function两两组合,得到最多M*K个SID,且每个SID的SRv6Locator的取值相同。

在一种可能的实现方式中,通告报文包括第一设备的SRv6 Locator、M个FlexibleAlgorithm和K个Function,且Function与SRv6 Locator相互独立。那么第二设备可以根据SID中各个部分的长度将SRv6 Locator、Flexible Algorithm和Function拼接得到SID。

根据前文介绍可知,通告报文还可以包括指示信息,用于指示Flex-algo在SID中的位置。相应地,第二设备可以根据指示信息确定SID。下面对指示信息以及指示信息的作用进行详细介绍。

可选地,指示信息包括Flex-algo部分在SID中的起始位置和结束位置。例如,假设SID中第一个二进制数的位置被称为SID的第1bit,那么指示信息可以包括65和72。表示Flex-algo存储的位置为SID的第65bit到第72bit,即SID的第65位到第72位。这样,第二设备可以将通告报文中指示携带的Flexible Algorithm在SID中对应的位置,将第一设备的SRv6 Locator、M个Flexible Algorithm以及K个Function拼接为N个SID。

或者,指示信息包括SID中SRv6 Locator部分和Function部分的长度。相应地,第二设备上可以配置有SID中SRv6 Locator部分、Flex-algo部分和Function部分之间的顺序关系。这样,第二设备可以根据指示信息确定第一设备的SRv6 Locator,以及K个Function。接着,第二设备可以根据SID中各部分的顺序关系将第一设备的SRv6 Locator、M个Flexible Algorithm以及K个Function拼接为N个SID。

举例说明。假设SRv6 Locator部分位于SID的最前,Flex-algo部分位于SRv6Locator部分之后且与SRv6 Locator部分相邻,Function部分位于SID的最后,且SRv6Locator部分的长度为64bit。那么在生成SID的过程中,第二设备可以根据通告报文中第一设备的SRv6 Locator确定SID第1位到前64位的取值,根据通告报文中的FlexibleAlgorithm确定SID第65位到第72位的取值,根据通告报文中的Function确定SID的第73位到第128位的取值。

在第二种可能的实现中,通告报文中用于携带Function的sub-TLV字段包括一个或多个SID,其中每个SID包括第一设备的SRv6 Locator,以及该sub-TLV字段对应的Function。那么在生成SID时,第一设备可以利用通告报文中携带的Flexible Algorithm替换sub-TLV字段中SID的Flex-algo部分,得到包括Flexible Algorithm的SID。

例如,假设第一设备支持Flex-algo 128和Flex-algo 129,且通告报文包括SRv6End SID sub-TLV字段和SRv6 END.X SID sub-TLV字段,其中SRv6 End SID sub-TLV字段和SRv6END.X SID sub-TLV字段分别包括1个SID。那么第一设备可以利用Flex-algo128替换SRv6 END SID sub-TLV字段中SID的Flex-algo部分,得到Flex-algo 128对应的SRv6 END SID;利用Flex-algo 129替换SRv6 END SID sub-TLV字段中SID的Flex-algo部分,得到Flex-algo 129对应的SRv6 END SID;利用Flex-algo 128替换SRv6 END.X SIDsub-TLV字段中SID的Flex-algo部分,得到Flex-algo 128对应的SRv6 END.X SID;利用Flex-algo 129替换SRv6 END SID.X sub-TLV字段中SID的Flex-algo部分,得到Flex-algo129对应的SRv6 END.X SID。

根据前文介绍可知,如果第一设备确定第一设备增加了新的SID,第一设备可以生成新的通告报文并向第二设备发送。在接收到新的通告报文之后,第二设备可以根据新的通告报文得到新的SID。例如,第一设备可以将更新的部分替换到原有的SID中,得到新的SID。例如,假设第二设备增加了对新的Flexible Algorithm的支持能力,那么第一设备向第二设备发送的新的通告报文中,SR-Algorithm sub-TLV字段可以包括该新的FlexibleAlgorithm。在接收到新的通告报文之后,第二设备可以获取第一设备的原SID,并将原SID中Flexible Algorithm部分替换为SR-Algorithm sub-TLV字段所包括的新的FlexibleAlgorithm,得到新的SID。

下面结合图1-A对第二设备确定第一设备的SID的方法进行介绍。

假设第一设备为网络设备124,第二设备为网络设备121,网络设备124的SRv6Locator为1001::/64,网络设备124支持Flex-algo 128和Flax-algo129两种转发算法,网络设备124具有SRv6 End SID和SRv6 END.X SID两种类型的SID。其中,SRv6 End SID对应的Function为::12,路径“网络设备124→设备112”对应的SRv6 END.X SID中Function为::101,路径“网络设备124→设备113”对应的SRv6 END.X SID中的Function为::102。也就是说,Function::101与网络设备124上网络接口B1相对应,Function::102与网络设备124上网络接口B2相对应。可选地,上述Function可以被携带在通告报文的SID中。

如果SID的结构为“Locator+Flex-algo+Function”,那么在接收到网络设备124发送的通告报文之后,网络设备121可以得到网络设备124对应的两个SRv6 End SID,分别为Flex-algo 128对应的SRv6 End SID 1001::80:0:0:12,以及Flex-algo 129对应的SRv6End SID1001::81:0:0:12。同理,网络设备121还可以得到网络设备124对应的4个SRv6End.X SID,分别为路径“网络设备124→设备112”和Flex-algo 128对应的SRv6 End.XSID1001::80:0:0:101、路径“网络设备124→设备113”和Flex-algo 128对应的SRv6 End.XSID1001::80:0:0:102、路径“网络设备124→设备112”和Flex-algo 129对应的SRv6 End.XSID1001::81:0:0:101,以及路径“网络设备124→设备113”和Flex-algo 129对应的SRv6End.X SID 1001::81:0:0:102。

在上述例子中,如果通告报文包括1个SRv6 Locator、2个Flexible Algorithm和3个Function。根据这些信息,网络设备124的可以得到网络设备124的2*3=6个SID。容易想到的是,如果网络设备124支持4个Flexible Algorithm,且具有5个Function,那么网络设备124发送的通告报文可以包括1个SRv6 Locator、4个Flexible Algorithm和5个Function,共9个用于组成SID。根据通告报文,网络设备121可以得到最多4*5=20个SID。

从上述例子可以看出,如果第一设备支持M个Flexible Algorithm且具有K个Function,那么第一设备发送的通告报文可以包括1+M+K个组成SID的相关信息。根据这些信息,第二设备可以得到M*K个SID。这样,第二设备通过通告报文中的1个SRv6 Locator和该SRv6 Locator对应的多个Flexible Algorithm生成多个SID,不再需要在通告报文中包含于Flexible Algorithm数量相等的SRv6 Locator。减少通告报文中包含的SRv6 Locator的数量,减少了通告报文携带的信息数量,有利于减轻网络的负载。

根据前文介绍可知,在传统的SRv6Flex-algo技术中,相同的网络设备在不同的转发算法下对应不同的SRv6 Locator。这样,如果两条目的设备的数据报文基于不同的转发算法进行转发,可以为两条数据报文设置不同的目的地址(即SRv6 Locator)。这样,由于寻址所用的SRv6 Locator不同,网络设备能够基于不同的转发算法分别计算这两条数据报文的传输路径。

但是,在本申请实施例中,为了减轻泛洪压力,相同的网络设备在不同的转发算法下对应相同的SRv6 Locator。那么为了支持Flex-algo技术,数据报文的寻址可以基于包括SRv6 Locator和Flexible Algorithm的路由前缀实现。相应地,在路由下发阶段,第二设备可以下发包括SRv6 Locator和Flexible Algorithm的路由前缀作为第一设备的网段路由。下面结合说明书附图,对本申请实施例提供的技术方案中路由下发和数据报文的转发过程做进一步的说明。

参见图5,该图为本申请实施例提供的报文发送的方法和段标识生成的方法的另一种信令交互图,包括:

S501:第二设备根据通告报文生成转发表项。

在本申请实施例中,同一个网络设备在不同的转发算法下对应相同的SRv6Locator。仅根据第一设备的SRv6 Locator无法确定用哪个Flexible Algorithm对应的SID转发报文。第二设备可以根据包含Flexible Algorithm的SID生成对应的转发表项,每个转发表项包括路由前缀。

通告报文包括第一设备的SRv6 Locator以及第一设备支持的M个FlexibleAlgorithm。关于通告报文的介绍可以参见上文,这里不再赘述。

第一设备的路由前缀可以包括第一设备的SRv6 Locator和第一设备所支持的任一Flexible Algorithm。当通告报文包括第一设备支持的M个Flexible Algorithm,第二设备最多可以生成M个路由前缀。相应地,第二设备可以将第一设备的SRv6 Locator与M个Flexible Algorithm中的每个Flexible Algorithm组合,得到最多M个路由前缀。

在确定第一设备对应的路由前缀之后,第二设备可以进行路由计算,路由前缀对应的网络接口以及下一跳网络设备。接着,第二设备可以记录路由前缀、与该路由前缀对应的目标接口和与该路由前缀对应的下一跳网络设备,得到转发表项。具体地,第二设备可以根据通告报文所携带的M个Flexible Algorithm进行路由计算,确定路由前缀对应的目标接口和下一跳网络设备。

可以理解的是,通告报文包括M个Flexible Algorithm,第二设备可以根据通告报文得到M个路由前缀,并生成M个转发表项。每个转发表项包括一个路由前缀,对应一个Flexible Algorithm。

仍然以图1-A为例进行说明。假设第一设备为网络设备124,第二设备为网络设备121,网络设备124支持Flex-algo 128和Flax-algo 129两种转发算法。其中,网络设备124的SRv6Locator为1001::/64,Flex-algo 128的标识为0x80,Flex-algo 129的标识为0x81。根据前文介绍可知,网络设备124向网络设备121发送的通告报文中可以包括1001::/64、0x80和0x81。

接收到网络设备124发送的通告报文之后,网络设备121可以根据网络设备121的SRv6 Locator和Flex-algo 128的标识得到路由前缀1001::80:0:0:0,根据网络设备121的SRv6 Locator和Flex-algo 129的标识得到路由前缀1001::81:0:0:0。

假设Flex-algo 128对应的转发路径为“网络设备121→网络设备122→网络设备123→网络设备124→设备112”,Flex-algo 129对应的转发路径为“网络设备121→网络设备125→网络设备126→网络设备124→设备113”。那么经过路由计算,网络设备121可以确定路由前缀1001::80:0:0:0对应的网络接口为网络接口A1,对应的下一跳网络设备为网络设备122,并确定路由前缀1001::81:0:0:0对应的网络接口为网络接口A2,对应的下一跳网络设备为网络设备125。如此,网络设备121可以生成如表1所示的两个转发表项。

表1

其中,A1为网络接口A1的标识,A2为网络接口A2的标识。表1的第一行体现路由前缀1001::80:0:0:0、网络接口A1以及作为下一跳网络设备的网络设备122之间的对应关系,表1的第二行体现路由前缀1001::80:0:0:0、网络接口A2以及作为下一跳网络设备的网络设备125之间的对应关系。

可以理解的是,表1的第一行为一个转发表项,表1的第二行为另一个转发表项。

在一些可能的实现中,转发表项中还可以包括Flexible Algorithm。例如,作为PE设备的网络设备121生成的两个转发表项也可以如表2所示。

表2

其中,表2的第一行体现路由前缀1001::80:0:0:0、Flex-algo 128、网络接口A1以及作为下一跳网络设备的网络设备122之间的对应关系,表2的第二行体现路由前缀1001::80:0:0:0、Flex-algo 129、网络接口A2以及作为下一跳网络设备的网络设备125之间的对应关系。

在生成转发表项之后,第二设备可以向负责发送数据报文的设备或模块发送转发表项,确保数据报文的正常转发。例如,第二设备为网络设备,那么上述步骤可以由第二设备控制面执行。在得到转发表项之后,第二设备控制面可以向第二设备的转发面发送转发表项,以便第二设备的转发面根据转发表项转发报文。如果第二设备为控制设备,那么第二设备可以向用于转发报文的网络设备或转发面设备发送转发表项。在一些可能的实现方式中,上述过程可以被称为路由下发。

为便于说明,下文以第二设备为网络设备为例进行说明。可以理解的是,如果第二设备为控制设备,下述S502-S504可以由第三设备执行,第三设备为接收第二设备下发的转发表项的网络设备。

S502:第二设备获取数据报文。

在本申请实施例中,数据报文为基于SRv6的报文,那么数据报文的目的地址通过SID表示。SID包括SRv6 Locator部分和Flex-algo部分。其中,数据报文的目的地址字段包括的SID包括目的设备的SRv6 Locator和对应的Flexible Algorithm。也就是说,对于通过某个Flex-algo向目标设备转发的数据报文,作为其目的地址的SID可以包括目标设备的SRv6Locator和对应的Flex-algo。可以理解的是,通过不同Flexible Algorithm转发的数据报文,其目的地址中Flex-algo部分不同。

以图1为例对数据报文进行说明。假设Flex-algo 128对应的转发路径为“网络设备121→网络设备122→网络设备123→网络设备124→设备112”,Flex-algo 129对应的转发路径为“网络设备121→网络设备125→网络设备126→网络设备124→设备113”

假设设备111通过Flex-algo 128向设备112发送数据报文A,那么数据报文A中作为目的地址的SID可以是路径“网络设备124→设备112”的SRv6 END.X SID。该SRv6 END.XSID中SRv6 Locator部分包括网络设备124的SRv6 Locator 1001::/64,Flex-algo部分包括Flex-algo 128的标识0x80。也就是说,数据报文A中作为目的地址的SID属于网段1001::80/72。

假设设备111通过Flex-algo 129向设备113发送数据报文B,那么数据报文B中作为目的地址的SID可以是路径“网络设备124→设备113”的SRv6 END.X SID。该SRv6 END.XSID中SRv6 Locator部分包括网络设备124的SRv6 Locator 1001::/64,Flex-algo部分包括Flex-algo 129的标识0x81。也就是说,数据报文B中作为目的地址的SID包括网段1001::81/72。

具体地,如果数据报文A和数据报文B中作为目的地址的SID为网络设备126的SRv6END.X SID,且路径“网络设备124→设备112”的SRv6 END.X SID对应的Function为::101,路径“网络设备124→设备113”的SRv6 END.X SID对应的Function为::102。那么数据报文A中作为目的地址的SID为1001::80:0:0:101,数据报文B中作为目的地址的SID为1001::81:0:0:102。

在一些可能的实现中,在转发数据报文的过程中,第二设备从数据报文所包括的SID中解析出数据报文对应的Flexible Algorithm。进而根据Flexible Algorithm对应的转发表项中确定数据报文的目标接口和下一跳网络设备。例如,根据上述数据报文A的SRv6END SID,第二设备确定数据报文A与Flex-algo128相对应。根据上述数据报文B的SRv6 ENDSID,第二设备确定数据报文B与Flex-algo129相对应。

可以理解的是,第二设备还可以根据其他信息确定数据报文对应的FlexibleAlgorithm。进而根据Flexible Algorithm对应的转发表项中确定数据报文的目标接口和下一跳网络设备。例如,第二设备可以根据数据报文中携带的虚拟专用网(VirtualPrivate Network,VPN)标识确定数据报文对应的转发表项。

S502:第二设备根据转发表项确定目标接口。

在获取到数据报文之后,第二设备可以根据S501中生成的转发表项确定数据报文对应的目标接口。具体地,第二设备可以根据数据报文的目的地址,从转发表项中查找与该目的地址相匹配的路由前缀,并将与该路由前缀对应的网络接口作为数据报文的目标接口,从而通过目标接口向下一跳网络设备发送该数据报文。

假设转发表项如表1所示,继续沿用前述例子说明。

在接收到数据报文A之后,网络设备121从表1中查找与SID 1001::80:0:0:101相匹配的路由前缀。因为路由前缀1001::80:0:0:0与SID 1001::80:0:0:101相匹配,网络设备121可以将路由前缀1001::80:0:0:0对应的网络接口(即网络接口A1)作为数据报文A的目标接口,将路由前缀1001::80:0:0:0对应的下一跳网络设备(即网络设备122)作为数据报文A的下一跳网络设备。具体地,数据报文A的传输路径可以如图1-C所示。

在接收到数据报文B之后,网络设备121从表1中查找与SID 1001::81:0:0:102相匹配的路由前缀。因为路由前缀1001::81:0:0:0与SID 1001::81:0:0:102相匹配,网络设备121可以将路由前缀1001::81:0:0:0对应的网络接口(即网络接口A2)作为数据报文A的目标接口,将路由前缀1001::81:0:0:0对应的下一跳网络设备(即网络设备125)作为数据报文A的下一跳网络设备。具体地,数据报文B的传输路径可以如图1-D所示。

S504:第二设备通过目标接口发送数据报文。

在确定数据报文对应的目标接口和下一跳网络设备之后,第二设备可以通过目标接口向下一跳网络设备发送数据报文。

在本申请实施例中,为了减轻泛洪的压力,相同的网络设备在不同的转发算法下对应相同的SRv6 Locator。在此基础上,为了实现Flex-algo技术,路由下发可以基于包括SRv6Locator和Flexible Algorithm的路由前缀进行。在进行数据报文的寻址时,也可以根据数据报文携带的SRv6 Locator和Flexible Algorithm进行。这样,即使SRv6 Locator相同,仍然可以通过不同的Flexible Algorithm区分不同的转发算法。如此,在SRv6的场景下实现Flex-algo技术,且降低了网络设备的泛洪压力。

参见图6,本申请实施例还提供了一种报文发送的装置600,该报文发送的装置600可以实现图2所示实施例中第一设备的功能。该报文发送的装置600包括处理单元610和发送单元620。其中,处理单元610用于实现图2所示实施例中的S201,发送单元620用于实现图2所示实施例中的S202。

具体的,处理单元610,用于生成通告报文,所述通告报文包括SRv6 Locator和所述SRv6 Locator对应的M个Flexible Algorithm,所述M为大于或等于2的正整数。

发送单元620,用于向第二设备发送所述通告报文,所述通告报文用于触发所述第二设备生成N个SID,所述N个SID中每个SID包括所述SRv6 Locator,所述N个SID中每个SID分别对应所述M个Flexible Algorithm中的一个Flexible Algorithm,所述N为大于或等于2的正整数。

具体执行过程请参考上述图2或图5所示实施例中相应步骤的详细描述,这里不再一一赘述。

参见图7,本申请实施例还提供了一种段标识生成的装置700,该段标识生成的装置700可以实现图2所示实施例中第二设备的功能,或实现图5中第二设备的功能。该段标识生成的包括接收单元710和处理单元720。其中,接收单元710用于接收第一设备发送的通告报文;处理单元720用于实现图2所示实施例中的S203,或实现图5所示实施例中S501、S502和S503。

具体的,接收单元710,用于接收第一设备发送的通告报文,所述通告报文包括SRv6Locator和所述SRv6 Locator对应的M个Flexible Algorithm,所述M为大于或等于2的正整数。

处理单元720,用于根据所述通告报文生成N个SID,所述N个SID中每个SID包括所述SRv6 Locator,所述N个SID中每个SID分别对应所述M个Flexible Algorithm中的一个Flexible Algorithm,所述N为大于或等于2的正整数。具体执行过程请参考上述图2或图5所示实施例中相应步骤的详细描述,这里不再一一赘述。

需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本申请实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。例如,上述实施例中,处理单元和发送单元可以是同一个单元,也不同的单元。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

图8是本申请实施例提供的一种设备800的结构示意图。上文中的报文发送的装置600和段标识生成的装置700可以通过图8所示的设备来实现。参见图8,该设备800包括至少一个处理器801,通信总线802以及至少一个网络接口804,可选地,该设备800还可以包括存储器803。

处理器801可以是一个通用中央处理器(Central Processing Unit,CPU)、特定应用集成电路(Application-specific Integrated Circuit,ASIC)或一个或多个用于控制本申请方案程序执行的集成电路(Integrated Circuit,IC)。处理器可以用于对报文或周期参数进行处理,以实现本申请实施例中提供的报文发送的方法或段标识生成的方法。

比如,当图2中的第一设备通过图8所示的设备来实现时,该处理器可以用于:生成通告报文,所述通告报文包括SRv6 Locator和所述SRv6 Locator对应的M个FlexibleAlgorithm,所述M为大于或等于2的正整数;向第二设备发送所述通告报文,所述通告报文用于触发所述第二设备生成N个SID,所述N个SID中每个SID包括所述SRv6Locator,所述N个SID中每个SID分别对应所述M个Flexible Algorithm中的一个Flexible Algorithm,所述N为大于或等于2的正整数。

比如,当图2或图5中的第二设备通过图8所示的设备来实现时,该处理器可以用于:接收第一设备发送的通告报文,所述通告报文包括SRv6 Locator和所述SRv6 Locator对应的M个灵活算法Flexible Algorithm,所述M为大于或等于2的正整数;根据所述通告报文生成N个SID,所述N个SID中每个SID包括所述SRv6 Locator,所述N个SID中每个SID分别对应所述M个Flexible Algorithm中的一个Flexible Algorithm,所述N为大于或等于2的正整数。

通信总线802用于在处理器801、网络接口804和存储器803之间传送信息。

存储器803可以是只读存储器(Read-only Memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,存储器803还可以是随机存取存储器(Random AccessMemory,RAM)或者可存储信息和指令的其它类型的动态存储设备,也可以是只读光盘(Compact Disc Read-only Memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器803可以是独立存在,通过通信总线802与处理器801相连接。存储器803也可以和处理器801集成在一起。

可选地,存储器803用于存储执行本申请实施例提供的技术方案的程序代码或指令,并由处理器801来控制执行。处理器801用于执行存储器803中存储的程序代码或指令。程序代码中可以包括一个或多个软件模块。可选地,处理器801也可以存储执行本申请实施例提供的技术方案的程序代码或指令,在这种情况下处理器801不需要到存储器803中读取程序代码或指令。

网络接口804可以为收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(RAN)或无线局域网(Wireless Local Area Networks,WLAN)等。在本申请实施例中,网络接口504可以用于接收分段路由网络中的其他节点发送的报文,也可以向分段路由网络中的其他节点发送报文。网络接口804可以为以太接口(Ethernet)接口、快速以太(Fast Ethernet,FE)接口或千兆以太(Gigabit Ethernet,GE)接口等。

在具体实现中,作为一种实施例,设备800可以包括多个处理器,例如图6中所示的处理器801和处理器805。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。

图9是本申请实施例提供的一种设备900的结构示意图。图2或图5中的各个设备可以通过图9所示的设备来实现。参见图9所示的设备结构示意图,设备900包括主控板和一个或多个接口板。主控板与接口板通信连接。主控板也称为主处理单元(Main ProcessingUnit,MPU)或路由处理卡(Route Processor Card),主控板包括CPU和存储器,主控板负责对设备900中各个组件的控制和管理,包括路由计算、设备管理和维护功能。接口板也称为线处理单元(Line Processing Unit,LPU)或线卡(Line Card),用于接收和发送报文。在一些实施例中,主控板与接口板之间或接口板与接口板之间通过总线通信。在一些实施例中,接口板之间通过交换网板通信,在这种情况下设备900也包括交换网板,交换网板与主控板、接口板通信连接,交换网板用于转发接口板之间的数据,交换网板也可以称为交换网板单元(Switch Fabric Unit,SFU)。接口板包括CPU、存储器、转发引擎和接口卡(InterfaceCard,IC),其中接口卡可以包括一个或多个网络接口。网络接口可以为Ethernet接口、FE接口或GE接口等。CPU与存储器、转发引擎和接口卡分别通信连接。存储器用于存储转发表。转发引擎用于基于存储器中保存的转发表转发接收到的报文,如果接收到的报文的目的地址为设备900的IP地址,则将该报文发送给主控板或接口板的CPU进行处理;如果接收到的报文的目的地址不是设备900的IP地址,则根据该目的地查转发表,如果从转发表中查找到该目的地址对应的下一跳和目标接口,将该报文转发到该目的地址对应的目标接口。转发引擎可以是网络处理器(Network Processor,NP)。接口卡也称为子卡,可安装在接口板上,负责将光电信号转换为数据帧,并对数据帧进行合法性检查后转发给转发引擎处理或接口板CPU。在一些实施例中,CPU也可执行转发引擎的功能,比如基于通用CPU实现软转发,从而接口板中不需要转发引擎。在一些实施例中,转发引擎可以通过ASIC或现场可编程门阵列(Field Programmable Gate Array,FPGA)实现。在一些实施例中,存储转发表的存储器也可以集成到转发引擎中,作为转发引擎的一部分。

本申请实施例还提供一种芯片系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片系统实现上述图2或图5所示实施例中由第一设备执行的报文发送的方法,或实现上述图2或图5所示实施例中由第二设备执行的段标识生成的方法。

可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本申请并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器ROM,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型,以及存储器与处理器的设置方式不作具体限定。

示例性的,该芯片系统可以是FPGA,可以是ASIC,还可以是系统芯片(System onChip,SoC),还可以是CPU,还可以是NP,还可以是数字信号处理电路(Digital SignalProcessor,DSP),还可以是微控制器(Micro Controller Unit,MCU),还可以是可编程控制器(Programmable Logic Device,PLD)或其他集成芯片。

应理解,上述方法实施例中的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

本申请实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行以上方法实施例提供的、由第一设备执行的报文发送的方法,或执行以上方法实施例提供的、由第二设备执行的段标识生成的方法。

本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以上方法实施例提供的、由第一设备执行的报文发送的方法,或执行以上方法实施例提供的、由第二设备执行的段标识生成的方法。

本申请实施例还提供了一种系统,所述系统包括第一设备和第二设备,所述第一设备用于执行以上方法实施例提供的、由第一设备执行的报文发送的方法,所述第二设备用于执行以上方法实施例提供的、由第二设备执行的段标识生成的方法。

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

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

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

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

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

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

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

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

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

相关技术
  • 一种报文发送方法、装置、网络设备和计算机可读介质
  • 报文发送方法及装置
  • 一种报文发送方法及路由设备
  • 一种报文传输、段列表生成、压缩段标识获取方法及装置
  • 一种信号标识的生成方法、报文传输方法及装置
技术分类

06120116080214