CN114650255B - 报文处理方法及网络设备 - Google Patents
报文处理方法及网络设备 Download PDFInfo
- Publication number
- CN114650255B CN114650255B CN202011510794.8A CN202011510794A CN114650255B CN 114650255 B CN114650255 B CN 114650255B CN 202011510794 A CN202011510794 A CN 202011510794A CN 114650255 B CN114650255 B CN 114650255B
- Authority
- CN
- China
- Prior art keywords
- sid
- compressed
- message
- network device
- compressed sid
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title abstract description 5
- 238000004891 communication Methods 0.000 claims abstract description 23
- 238000000034 method Methods 0.000 claims description 74
- 238000012545 processing Methods 0.000 claims description 50
- 230000008569 process Effects 0.000 claims description 9
- 239000004744 fabric Substances 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 41
- 230000006835 compression Effects 0.000 description 11
- 238000007906 compression Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 101100064323 Arabidopsis thaliana DTX47 gene Proteins 0.000 description 5
- 101150026676 SID1 gene Proteins 0.000 description 5
- 239000002699 waste material Substances 0.000 description 5
- 230000010354 integration Effects 0.000 description 3
- 238000004549 pulsed laser deposition Methods 0.000 description 3
- 101100256921 Ajellomyces capsulatus SID3 gene Proteins 0.000 description 2
- 101000840469 Arabidopsis thaliana Isochorismate synthase 1, chloroplastic Proteins 0.000 description 2
- 101100366400 Schizosaccharomyces pombe (strain 972 / ATCC 24843) spg1 gene Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 239000000796 flavoring agent Substances 0.000 description 2
- 235000019634 flavors Nutrition 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 101100256918 Caenorhabditis elegans sid-2 gene Proteins 0.000 description 1
- 101100256922 Caenorhabditis elegans sid-3 gene Proteins 0.000 description 1
- 208000033748 Device issues Diseases 0.000 description 1
- 101100049549 Enterobacteria phage P4 sid gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000009954 braiding Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000000054 nanosphere lithography Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种报文处理方法及网络设备,属于通信技术领域。本申请能应用于SRv6网络中,适于SID长度可变的场景。本申请通过使用变长的压缩SID,并在压缩SID中增加了一种称为NSL的新内容,利用NSL指示下一个压缩SID的长度并利用NSL指导转发,从而在不影响正常转发功能的情况下解决定长SID的方案存在的局限性。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种报文处理方法及网络设备。
背景技术
时下的互联网协议第6版段路由(internet protocol version 6for segmentrouting,SRv6)方案中段标识(segment ID,SID)通常是定长的,也就是说SID的长度是一个固定不变的值。然而,定长SID的方案存在一定程度的局限性:对于功能(function,func)数量少的设备来说,定长SID容易引起SID空间的浪费;而对于功能数量极大的设备来说,定长SID难以满足设备对SID的需求。
发明内容
本申请实施例提供了一种报文处理方法及网络设备,能够一定程度上解决定长SID带来的局限性。所述技术方案如下。
第一方面,提供了一种报文处理方法,该方法能应用于SRv6网络中,适于SID长度可变的场景。在该方法中,网络设备接收第一报文。网络设备收到的第一报文的目的地址包括第一压缩段标识SID,所述第一压缩SID包括下一个SID长度NSL,所述第一压缩SID中的NSL用于指示所述第一报文中所述第一压缩SID的下一个压缩SID的长度;所述网络设备根据所述第一压缩SID中的NSL,从所述第一报文中确定第二压缩SID,所述第二压缩SID为所述第一报文中所述第一压缩SID的下一个压缩SID;所述网络设备根据所述第二压缩SID对所述第一报文进行处理。
上述方法通过使用变长的压缩SID,并在压缩SID中增加了一种称为NSL的新内容,利用NSL指示下一个压缩SID的长度并利用NSL指导转发,从而在不影响正常转发功能的情况下解决定长SID的方案存在的局限性。如果设备所需的功能数量少,通过该方法能够基于更短的压缩SID转发,从而避免浪费SID空间。如果设备所需的功能数量多,通过该方法能够基于更长的压缩SID转发,从而满足分配更多功能的需求。
可选地,上述第一压缩SID的参数字段包括上述NSL。也即是,使用SID的参数字段携带NSL。
通过这种可选方式,能够通过为端点(endpoint,End)或端点三层交叉连接(endpoint with layer-3 cross-connect,End.X)中增加一个新参数充当NSL,提高方案的可用性。
可选地,上述第一报文的目的地址还包括段索引,段索引用于指示所述第一压缩SID在所述第一报文的位置,网络设备通过采用这样的方式确定下一个压缩SID(第二压缩SID):所述网络设备根据所述第一报文中的段索引以及所述第一压缩SID的长度,从所述第一报文中确定所述第二压缩SID的起始位置;所述网络设备根据所述第二压缩SID的起始位置以及所述第一压缩SID中的NSL,从所述第一报文中确定第二压缩SID的结束位置。
通过这种可选方式,有助于降低定位下一个SID的实现复杂度。
可选地,上述第二压缩SID包括NSL,上述第二压缩SID中的NSL用于指示所述第二报文中所述第二压缩SID的下一个压缩SID的长度。
通过这种可选方式,由于多个压缩SID分别携带了NSL,不仅指明了下一个压缩SID的长度,还指明了下下一个压缩SID的长度,使得SRH携带了更足够的信息,适用于同时使用多个压缩SID的场景,提高灵活性。
可选地,所述网络设备根据所述第二压缩SID对所述第一报文进行处理,包括:所述网络设备将所述第一报文的目的地址中的所述第一压缩SID替换为所述第二压缩SID,从而得到第二报文,所述第二报文的目的地址包括所述第二压缩SID;所述网络设备发送所述第二报文。
通过这种可选方式,通过将下一个压缩SID替换到DA字段并继续转发,有助于方案应用在多跳设备的场景中,提高灵活性。
可选地,上述第一报文的目的地址还包括段索引,所述第一报文中的段索引用于指示所述第一压缩SID在所述第一报文的位置,所述网络设备将所述第一报文的目的地址中的所述第一压缩SID替换为所述第二压缩SID之前,所述方法还包括:所述网络设备对所述第一报文的目的地址中的段索引进行更新。
通过这种可选方式,帮助下一跳设备通过更新后的段索引知道当前SID在报文中的位置,从而指导下一跳设备继续转发。
可选地,所述网络设备根据所述第二压缩SID对所述第一报文进行处理,包括:响应于邻居节点故障,所述网络设备根据所述第二压缩SID中的NSL从所述第一报文中确定第三压缩SID,所述第三压缩SID为所述第一报文中所述第二压缩SID的下一个压缩SID;所述网络设备将所述第一报文的目的地址中的所述第一压缩SID替换为所述第三压缩SID,从而得到第三报文,所述第三报文的目的地址包括所述第三压缩SID;所述网络设备发送所述第三报文。
通过这种可选方式,支持故障场景,对流量工程快速重路由(trafficengineering Fast ReRoute,TEFRR)更友好。
第二方面,提供了一种网络设备,该网络设备具有实现上述第一方面或第一方面任一种可选方式的功能。该网络设备包括至少一个单元,至少一个单元用于实现上述第一方面或第一方面任一种可选方式所提供的方法。在一些实施例中,网络设备中的单元通过软件实现,网络设备中的单元是程序模块。在另一些实施例中,网络设备中的单元通过硬件或固件实现。第二方面提供的网络设备的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第三方面,提供了一种网络设备,该网络设备包括处理器和通信接口,该处理器用于执行指令,使得该网络设备执行上述第一方面或第一方面任一种可选方式所提供的方法,所述通信接口用于接收或发送报文。第三方面提供的网络设备的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第四方面,提供一种网络设备,所述网络设备包括:主控板和接口板,进一步,还可以包括交换网板。所述网络设备用于执行第一方面或第一方面的任意可能的实现方式中的方法。具体地,所述网络设备包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的模块。
第五方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可选方式所提供的方法。
第六方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并运行时,使得所述计算机执行上述第一方面或第一方面任一种可选方式所提供的方法。
第七方面,提供了一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行上述第一方面及其第一方面任意可能的实现方式中的方法。
附图说明
图1是本申请实施例提供的一种报文格式的示意图;
图2是本申请实施例提供的一种报文处理方法的流程图;
图3是本申请实施例提供的一种网络设备的结构示意图;
图4是本申请实施例提供的一种网络设备的结构示意图;
图5是本申请实施例提供的一种网络设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
标准互联网协议第6版段路由(segment routing internet protocol version6,SRv6)中128比特(bit)的段标识(segment ID,SID)采用互联网协议第6版(internetprotocol version 6,IPv6)地址格式的SID。相比多协议标签交换(multi-protocol labelswitching,MPLS)技术中的MPLS标签(MPLS label)而言,SRv6 SID具备可路由属性,简化域间路径创建,实现在IPv6网络中简化建立端到端路径的能力。同时,SRv6 SID支持可编程能力,能够满足灵活的网络和业务功能处理,结合集中式和分布式控制平面的协同支持,能灵活满足各种业务和网络功能的需求,适应网络和业务发展的需要。
标准SRv6虽然具备上述诸多优点,但是缺点同样明显。SRv6技术在网络中实际部署当前主要面临二个方面的挑战:一是SRv6报文开销大、网络链路带宽利用率低。当包长为256字节且SRH中有8个SID时,带宽利用率只有60%左右;二是SRv6报文处理对芯片要求高,现网设备难以支持深度的段路由头(segment routing header,SRH)头的复制和操作,并且128比特的SID处理会降低现有芯片的处理效率。
针对标准SRv6技术存在的问题,需要对标准SRv6的SRH进行压缩优化,采用更简洁短小的通用段标识(Generalized SID,G-SID),如典型的32比特SID标识,以优化SRv6的SID,将标准128比特的SID采用32比特的G-SID来表示并替代其在SRH头中的封装,从而将标准SRv6的SRH封装开销优化,在支持SRv6功能的同时大大优化SRv6的性能。
有鉴于以上背景,一些研究尝试使用定长SID+G-SID容器(G-SID container)的方案实现SRH的压缩。
具体地,当SRv6部署中,需要通过地址规划划分一个地址块,用于SID的分配,这个地址块叫做SID空间(SID space)。因此,在一个SRv6域中,从SID space分配的SID能具有公共的前缀(common prefix)。通常情况下,SRH中的SID均具有相同的前缀,而这部分内容是冗余的,去除这部分冗余的信息,可以有效的减少SRv6报头开销。
因此,该研究提出了将SRH中段列表(segment list)中SID的common prefix移除,仅携带变化的压缩SID。在替换目的地址(destination address,DA)时,通过将压缩SID和当前IPv6目的地址之中的公共前缀拼接(Stitching)形成新的SID,继续查表转发,从而实现SRv6的压缩。
此外,该研究还通过将经典SRv6 SID和压缩后的G-SID混合编排在G-SRv6中,从而在SRv6路径中支持压缩节点与普通SRv6节点混合编程,实现存量演进,平滑升级。同时在多域的场景中,因为地址规划受限,无法保证多个域的SID有公共的前缀,通过混编则可以方便地实现建立跨多域的SRv6路径。
传统完整SID由块(block,即前面说的common prefix)、节点标识(nodeidentity,node ID,也称节点ID)、功能(function,func)和参数(Arguments,args)这四部分组成。具体地,完整SID=B(block)+N(节点ID)+F(function)+A(arguments)(可选)+填充(padding,可选)。其中,B+N就是通常所说的定位器(locator)。
该研究定义的32比特SRv6压缩G-SID格式,该G-SID是由标准128比特SID中的nodeID和function ID组成,其是完整SID的变化部分。
当压缩SID和标准SID被编排在SRH SID List中时,为准确定位G-SID,需要满足G-SID按照128比特对齐的方式来编排,即一行128比特需要放4个32比特压缩G-SID,或多个其他长度的压缩G-SID。如果排不满,则需要补齐padding(后补0),对齐128比特。
为方便理解,该研究定义G-SID container的概念。G-SID container是一个128比特的值。一个G-SID container包含以下(1)或(2)。
(1)一个SRv6标准SID。
(2)多个压缩后的SRv6 SID(G-SID),比如4个32比特G-SID或者8个16比特G-SID。
当多种SID混编时,需要保证128比特对齐。当G-SID无法排满128比特时,需要补齐padding。以32比特G-SID为例,G-SID container可能的格式如附图1所示。其中,DA的最后2比特是段索引(segment index,SI)。SI用于指示当前压缩SID在一个G-SID container中的索引(index)。附图1所示的报文中的一行代表32比特。一个G-SID container占4行。
此外,附图1所示的压缩方案中,压缩的SID和非压缩的SID是混编在一起的,那么就存在一个问题:下一个SID到底是多长?是128比特还是32比特?也就是说下一个SID是否是压缩格式的?因此,附图1所示的压缩方案需要使用继续压缩风格(Continue ofcompress flavor,COC flavor)。COC flavor是一种新增的风格。COC flavor的作用就是指示下一个SID是压缩格式,也就是说下一个SID的长度是32比特。从附图1可见,附图1中大部分压缩SID都是COC的,因为这些压缩SID的下一个SID是压缩格式的。附图1中G-SID0不是COC的,因为G-SID0的下一个SID长度是128比特,G-SID0的下一个SID是非压缩格式的。
然而,附图1所示的方案存在两个困境。第一,网络中不同的设备承担的功能不同,需要的SID空间大小不同,定长32比特的压缩SID对应的SID空间,对于某些设备来说不够用,对于另外一些设备来说又太大了。因此,使用定长的压缩SID,既浪费SID空间,又不能满足某些需要大量SID的场景的需要。例如,32比特压缩方案存在SID空间浪费,16比特压缩方案不适用于大型网络。尤其是,在func数量不均衡的网络中,func数量少的设备使用长的SID会浪费SID空间;某台设备需要func数量极大的时候,32位的压缩SID可能SID空间不够。第二,需要新增COC flavor。
而本申请的一些实施例中,通过在SRv6头压缩中的SID变长压缩的场景下使用变长SID,一方面解决了定长SID浪费SID空间的问题,另一方面解决了定长SID下SID空间不够大的问题,另一方面无需新增flavor。
下面结合附图2对本申请实施例的方法流程进行介绍。
在本实施例中,报文中可以包括多个压缩SID,为了区分不同的压缩SID,用“第一压缩SID”、“第二压缩SID”、“第三压缩SID”描述多个不同的压缩SID。在一些实施例中,报文中的多个压缩SID对应相同的公共前缀(block)。例如,报文的目的地址中的公共前缀,既是第一压缩SID的前缀,也是第二压缩SID的前缀。
在本实施例涉及多个报文,为了区分不同的报文,用“第一报文”、“第二报文”、“第三报文”描述多个不同的报文。
附图2所示的方法200包括以下步骤S210至步骤S230。
步骤S210、网络设备接收第一报文,第一报文的目的地址包括第一压缩SID,第一压缩SID包括下一个SID长度(next SID length,NSL)。
本实施例用术语“第一报文”指代网络设备收到的一个报文。
压缩SID主要包含三部分:节点ID(node ID)、功能(func)字段和参数(args)字段。压缩SID的长度为8比特的整数倍。
本实施例用术语“第一压缩SID”指代第一报文中的当前SID。当前SID是指报文中位于目的地址字段中的SID,该目的地址字段是指报文中外层的IPv6头中的DA字段。例如,第一报文中的目的地址字段包括公共前缀(block)、第一压缩SID、填充部分和SI,第一压缩SID位于公共前缀(block)之后、SI之前的位置。第一压缩SID为网络设备本地的SID。
NSL是本实施例提出的一种SID的新内容。例如,NSL为端点(endpoint,End)或端点三层交叉连接(endpoint with layer-3cross-connect,End.X)中增加一个新参数。NSL用于指示下一个SID的长度。NSL适于应用在SID长度可变的场景。具体而言,本实施例属于一种SID变长方案,也就是说,SID的长度不再是一个固定值,而是能够在一定的取值范围内动态变化。通过在SID中携带NSL,根据当前SID的NSL能够得知下一个压缩SID的长度。通过当前SID的长度,可以定位到下一个SID的起始位置,再通过当前SID的NSL,能定位到下一个SID的结束位置,以便指导网络设备根据下一个SID继续转发。例如,对于第一压缩SID而言,第一压缩SID中的NSL用于指示第一报文中第一压缩SID的下一个压缩SID的长度。
可选地,NSL的单位为8比特或者1比特。
在一些实施例中,NSL是由头节点在压缩SID中添加的,NSL能够根据压缩SID在G-SID container中排列顺序的不同而动态变化。具体地,网络设备在发布压缩SID时,发布的压缩SID中NSL字段的值为初始值(初始值比如0)。头节点在利用网络设备发布的压缩SID封装SRH时,头节点确定SRH中G-SID container中压缩SID的排列顺序,从而确定G-SIDcontainer中每个压缩SID的下一个压缩SID。头节点根据每个压缩SID的下一个压缩SID的长度,确定每个压缩SID中NSL字段的值。头节点根据确定的值修改每个压缩SID中NSL字段。例如,有SID1、SID2、SID3这三个压缩SID,头节点在SRList编排时,将SID2放在SID1之后,那么头节点将SID1中NSL字段的值修改为SID2的长度;头节点下一次在SRList编排时,将SID3放在SID1之后,那么头节点将SID1中NSL字段的值修改为SID3的长度。
在一些实施例中,使用SID的参数(args)字段携带NSL。例如,使用参数字段的四个比特携带NSL。例如,在配置每个与压缩SID关联的locator时,配置参数字段,并配置参数字段的最后四个比特作为NSL,以便后续利用参数字段的最后四个比特实现NSL相关的功能。例如,第一压缩SID包括参数字段,第一压缩SID中的NSL的携带位置在第一压缩SID的参数字段。在一些实施例中,SID中携带NSL的参数字段的内容由头节点进行填充。
在一些实施例中,报文的目的地址还包括SI。NSL与SI在目的地址中可选地位置相邻,或者NSL与SI之间可选地存在填充字段。
SI的功能类似于一个指针,SI用于指示当前压缩SID在报文中的位置。例如,第一报文的目的地址包括第一压缩SID和SI,第一报文中的SI指示第一压缩SID在第一报文的位置。在一些实施例中,SI具体用于指示当前压缩SID在一个G-SID container中的位置。在一些实施例中,SI以字节(8比特)为单位。在一些实施例中,SID在DA中占4个比特。比如,DA的最后4个比特是SI。
SI更进一步的详细定义可参考draft-cl-spring-generalized-srv6-for-cmpr-02.txt的3.3节。其中,该draft中SID是定长的32比特,SID的位置有4种情况,SI占2比特,SI以32比特为单位。而本申请的一些实施例中,SI占4比特,SI以8比特为单位。
步骤S220、网络设备根据第一压缩SID中的NSL,从第一报文中确定第二压缩SID。
本实施例用术语“第二压缩SID”指代第一报文中第一压缩SID的下一个压缩SID。例如,第二压缩SID是G-SID container中第一压缩SID的下一个压缩SID。
在一些实施例中,下一个压缩SID的位置是根据NSL和SI共同确定的。SI帮助定位下一个压缩SID的起始位置,NSL帮助定位下一个压缩SID的结束位置。例如,网络设备根据SI和当前压缩SID的长度,确定下一个压缩SID的起始位置。网络设备根据NSL确定下一个压缩SID的长度。网络设备根据下一个压缩SID的起始位置和长度,在报文中确定下一个压缩SID。例如,NSL指示下一个压缩SID长m个比特,SI指示第n个比特,当前压缩SID长8个比特,那么网络设备确定下一个压缩SID的起始位置在第(n+8)个比特,网络设备从第(n+8)个比特开始读取m个比特,读取的m个比特即为下一个压缩SID。结合上述第一报文、第一压缩SID和第二压缩SID的例子,例如,第一报文的目的地址还包括SI,第一报文中的SI用于指示第一压缩SID在第一报文的位置,网络设备根据第一报文中的SI以及第一压缩SID的长度,从第一报文中确定第二压缩SID的起始位置;网络设备根据第二压缩SID的起始位置以及第一压缩SID中的NSL,从第一报文中确定第二压缩SID的结束位置。
步骤S230、网络设备根据第二压缩SID对第一报文进行处理。
在一些实施例中,根据下一个压缩SID执行的动作包括更新SI、替换目的地址以及继续转发报文。例如,步骤S230包括以下步骤S2300至步骤S2302。
步骤S2300、网络设备对第一报文中的SI进行更新。
具体地,第一报文的DA字段的SI用于指示第一压缩SID在第一报文的位置(如起始位置),网络设备将第一报文中的SI从指示第一压缩SID的位置更新为指示第二压缩SID的位置。
例如,网络设备A收到一个报文(第一报文),该报文的DA字段包含SIDA和SI。SIDA为网络设备A的SID。SI指示SIDA的起始位置,SIDA的下一个SID是SIDC。网络设备A将报文中SI从指示SIDA的起始位置更新为指示SIDC的起始位置。
步骤S2301、网络设备将第一报文的目的地址中的第一压缩SID替换为第二压缩SID,从而得到第二报文。
例如,网络设备A收到一个报文(第一报文),该报文的DA字段包含SIDA,该报文中SIDA的下一个SID是SIDC,SIDA的NSL指示SIDC的长度。网络设备A更新SI之后,将目的地址中的SIDA替换为SIDC。
执行步骤S2300和步骤S2301之后,网络设备得到的第二报文的目的地址字段中首先是公共前缀(block),然后是第二压缩SID,最后是更新后的SI,可选地其中包含一些填充比特。其中,第二报文中的SI用于指示第二压缩SID在第二报文的位置(如起始位置)。
步骤S2302、网络设备发送第二报文。
具体地,网络设备在发送第二报文时,网络设备根据第二压缩SID查询路由转发表,得到第二压缩SID对应的出接口和下一跳。网络设备根据第二压缩SID对应的出接口和下一跳转发第二报文。
上述以第一压缩SID为例,对如何根据一个压缩SID中的NSL转发报文进行说明。在一些实施例中,报文中每个压缩SID都包含NSL,从而指导转发路径上每一跳节点按照同理的方式找到下一个SID并转发报文。以应用在附图2所示方法中网络设备的下一跳设备为例,例如,网络设备发送的第二报文的目的地址中的第二压缩SID包括NSL,第二压缩SID中的NSL用于指示第二报文中第二压缩SID的下一个压缩SID的长度。因此,网络设备的下一跳设备收到第二报文后,根据第二压缩SID中的NSL,按照同理的方式找到第二报文中第二压缩SID的下一个压缩SID,根据第二压缩SID的下一个压缩SID继续转发第二报文。
本实施例提供的方法,通过使用变长的压缩SID,并在压缩SID中增加了一种新的参数NSL,利用NSL指示下一个压缩SID的长度并利用NSL指导转发,从而在不影响正常转发功能的情况下解决定长SID的方案存在的局限性:如果设备所需的功能数量少,则使用更短的压缩SID,从而避免浪费SID空间。如果设备所需的功能数量多,则使用更长的压缩SID,从而满足分配更多功能的需求。
进一步地,本实施例不需要新增flavor(即COC flavor)。具体地,在附图1所示方案中,需要使用COC指示下一个SID的长度,COC代表下一个SID长度是32比特,非COC代表下一个SID长度是128比特。而本实施例中,下一个SID的长度由SID的参数字段携带,不再需要COC flavor,这也是本实施例达到的效果之一。
进一步地,SRH中携带了足够的信息,便于以后其它场景可能需要处理压缩报头。具体地,附图1所示的方案中,COC是隐含的,也就是说,SRH中没有显示的携带SID的长度,无法直接从SRH知道每个SID的下一个SID的长度是多少。而本实施例中,SRH中每个SID中的NSL携带了下一个SID的长度,因此从SRH能够直接知道下一个SID的长度。
下面结合一个实例,对附图2所示方法进行说明。
以下实例1中X代表不关心的占位符,X后的内容是以比特为单位来显示的。附图2所示方法中的网络设备为以下实例1中的网络设备A。附图2所示方法中的第一压缩SID为以下实例1中的0000000001:00000000010100。第一压缩SID中的NSL为最后四个比特0100(0100为二进制表示),也就是4,代表下一个SID长度为4个8比特。附图2所示方法中的第二压缩SID为以下实例1中的0000000001:00000000000000000010011。附图2所示方法中第一报文中的SI为以下实例1中的3。附图2所示方法中第二报文中的SI为以下实例1中的6。
实例1
全网配置block,block的长度为16比特。
网络设备A配置node ID、func和args。其中,node ID的长度为10比特。func的长度为10比特。args的长度为4比特。设备A的压缩SID的长度共24比特。
网络设备B配置node ID、func和args。其中,node ID的长度为10比特,func的长度为18比特,args的长度为4比特。设备B的压缩SID的长度共32比特。
网络设备A的locator是XXXX:X0000000001::,其中XXXX是block,0000000001是node ID,网络设备A的SID(完整SID)是XXXX:X0000000001:0000000010000X::。网络设备A的SID压缩为000000000100000000010000。网络设备A的压缩SID中高比特位0000000001000000001为网络设备A的node ID和func。压缩SID中低比特位0000为参数字段,即初始的NSL。
网络设备B的locator是XXXX:X0000000010::。其中XXXX是block,0000000010是node ID,网络设备B的SID(完整SID)是XXXX:X0000000010:0000000000000000:010000X::。网络设备B的SID压缩为00000000100000000000000000010000。网络设备B的压缩SID中高比特位0000000010000000000000000001为node ID和func。压缩SID中低比特位0000为参数字段,即初始的NSL。
网络设备A接收的报文中目的地址是XXXX:X0000000001:00000000010100X::3。压缩SID行是X00000000010000000001010000000000100000000000000000010011X(上面两个SID的压缩合并,并由头节点增加了参数NSL)。其中,目的地址中00000000010000000001为网络设备A的node ID和func。目的地址中0100为NSL。目的地址中的3为SI,3表示当前压缩SID的位置在当前行中的第3*8比特。当前压缩SID的第1个比特为当前行中的第3*8比特。当前行是指SL所指向的一行。
网络设备A执行XXXX:0000000001:00000000010000::的功能;然后,网络设备A将SI由3改为6;然后网络设备A从修改后的SI指示的位置开始,读8*4位(0100是4,代表下一个SID长度为4个8比特),网络设备A将读取的比特(下一个压缩SID)替换到DA上得到XXXX:X0000000001:0000000000000000:010011::6,网络设备A继续转发DA替换后的报文,使得报文转发到网络设备B。
其中,DA替换后的报文中的DA包括XXXX:X0000000001:0000000000000000:010011::6。其中,6(网络设备A修改后的SI)表示下一个压缩SID的起始位置。具体地,当前SID的长度是24比特,24比特是8比特(SI的单位)的3倍,因此修改后的SI=3(修改前的SI)+3=6。目的地址中0011为NSL。
以上介绍了正常转发流程。本申请的一些实施例还支持故障场景,当邻居节点发生故障时,能够根据下一个压缩SID中的NSL指导后续转发。具体地,由于压缩SID中的NSL指示下一个压缩SID的长度,从报文中即可找到下一个压缩SID。因此,转发面能够从报文中直接获得下一个SID,不需要存储邻居的SID表,对流量工程快速重路由(trafficengineering Fast ReRoute,TEFRR)更友好。
在一些实施例中,故障场景下,网络设备根据NSL从报文中找到路径上目的设备的SID,根据目的设备的SID转发报文,使得报文传输至目的设备。例如,在附图2所示的方法中,网络设备响应于邻居节点故障,根据第二压缩SID中的NSL从第一报文中确定第三压缩SID;网络设备使用第三压缩SID替换第一报文中的目的地址,从而得到第三报文,第三报文的目的地址包括第三压缩SID;网络设备根据第三压缩SID向目的设备发送第三报文。其中,第一报文的转发路径例如通过SRH中SID的排列顺序指示。
其中,第三压缩SID为第一报文的转发路径的目的设备的SID。例如,第三压缩SID为第一报文的SRH中的最后一个SID。可选地,故障场景下的处理流程应用在TEFRR场景。网络设备预先收集邻居设备的locator及相关结构信息,下表到转发面,用于TEFRR。
例如,网络拓扑如下表1的内容所示。
表1
在如上拓扑,SRv6报文的传输方向为从网络设备A向网络设备F。SRv6报文的转发路径为网络设备A→网络设备C→网络设备E→网络设备F。SRv6报文中SRH中的SID表包括四个设备的压缩SID,依次是网络设备A的压缩SID、网络设备C的压缩SID、网络设备E的压缩SID和网络设备F的压缩SID。网络设备A收到的SRv6报文中,目的地址为SIDA,SRH包括(VPNSID,SIDF,SIDE,SIDC,SIDA,SL=2,SI=0)。其中,SIDA是128比特的SID。SIDF、SIDE、SIDC是压缩SID。
当网络设备C故障时,网络设备A执行以下步骤一至步骤三。
步骤一、网络设备A通过SIDA的NSL可知SIDC的长度,从而将SI指针更新到SIDC的起始位置并将SIDC替换到DA上。
步骤二、网络设备A通过SIDC的NSL可知SIDE的长度,从而将SI指针更新到SIDE的起始位置并将SIDE替换到DA上。
步骤三、网络设备A通过SIDE进行转发。
由上述例子可知,通过NSL,网络设备A能够正常进行TEFRR。
以上介绍了本申请实施例的方法200,以下介绍本申请实施例的网络设备,应理解,该网络设备具有上述方法200中网络设备的任意功能。
附图3示出了上述实施例中所涉及的网络设备的一种可能的结构示意图。附图3所示的网络设备300例如实现方法200中网络设备的功能。
请参考附图3,网络设备300包括接收单元301和处理单元302。网络设备300中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。网络设备300中的各个单元用于执行上述方法200中第一网络设备的相应功能。具体地,接收单元301用于支持网络设备300执行S210。处理单元302用于支持网络设备300执行S220。在一些实施例中,网络设备300还包括发送单元303,发送单元303用于支持网络设备300执行S2302。
在一些实施例中,处理单元302具体用于支持网络设备300执行S2300和S2301。
具体执行过程请参考方法200中相应步骤的详细描述,这里不再一一赘述。
本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可选地有另外的划分方式。
在一些实施例中,网络设备300中各个单元集成在一个单元中。例如,网络设备300中各个单元集成在同一个芯片上。该芯片包括处理电路和与该处理电路内部连接通信的输入接口以及输出接口。处理单元302通过芯片中的处理电路实现。接收单元301通过芯片中的输入接口实现。发送单元303通过芯片中的输出接口实现。例如,该芯片通过一个或多个现场可编程门阵列(field-programmable gate array,FPGA)、可编程逻辑器件(programmable logic device,PLD)、控制器、状态机、门逻辑、分立硬件部件、任何其它适合的电路、或者能够执行本申请通篇所描述的各种功能的电路的任意组合实现。
在另一些实施例中,网络设备300各个单元单独物理存在。在另一些实施例中,网络设备300一部分单元单独物理存在,另一部分单元集成在一个单元中。例如,在一些实施例中,处理单元302和发送单元303是同一个单元。在另一些实施例中,处理单元302和发送单元303是不同的单元。在一些实施例中,不同单元的集成采用硬件的形式实现,即,不同单元对应于同一个硬件。又如,不同单元的集成采用软件单元的形式实现。
在网络设备300中通过硬件实现的情况下,网络设备300中处理单元302例如通过网络设备400上主控板410中的中央处理器411实现,又如通过网络设备500中处理器501实现。
网络设备300中接收单元301、发送单元303例如通过网络设备400上接口板430实现,又如通过网络设备500中的通信接口504实现。
在网络设备300中通过软件实现的情况下,网络设备300中各个单元例如为网络设备400上主控板410中的中央处理器411读取存储器412中存储的程序代码后生成的软件,又如为网络设备500中处理器501读取存储器503中存储的程序代码后生成的软件。例如,网络设备300为虚拟化设备。虚拟化设备包括而不限于虚拟机、容器、Pod中的至少一种。在一些实施例中,网络设备300以虚拟机的形式,部署在硬件设备(如物理服务器)上。例如,基于通用的物理服务器结合网络功能虚拟化(network functions virtualization,NFV)技术来实现网络设备300。采用虚拟机的方式实现时,网络设备300例如为虚拟主机、虚拟路由器或虚拟交换机。本领域技术人员通过阅读本申请即可结合NFV技术在通用物理服务器上虚拟出网络设备300。在另一些实施例中,网络设备300以容器(例如docker容器)的形式,部署在硬件设备上。例如,网络设备300执行上述方法实施例的流程被封装在镜像文件中,硬件设备通过运行镜像文件来创建网络设备300。在另一些实施例中,网络设备300以Pod的形式,部署在硬件设备上。Pod包括多个容器,每个容器用于实现网络设备300中的一个或多个单元。
以上从逻辑功能的角度介绍了如何实现网络设备。以下从硬件的角度介绍如何实现网络设备。附图4所示的网络设备400或者附图5所示的网络设备500是对网络设备的硬件结构的举例说明。
附图4或附图5所示的网络设备对应于上述方法200中的网络设备。附图4或附图5网络设备中的各硬件、模块和上述其他操作和/或功能分别为了实现方法实施例中网络设备所实施的各种步骤和方法,关于网络设备如何处理报文的详细流程,具体细节可参见上述方法200,为了简洁,在此不再赘述。其中,方法200的各步骤通过网络设备处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块例如位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。
参见附图4,附图4示出了本申请一个示例性实施例提供的网络设备的结构示意图,网络设备400例如配置为方法200中的网络设备。网络设备400包括:主控板410和接口板430。
主控板也称为主处理单元(main processing unit,MPU)或路由处理卡(routeprocessor card),主控板410用于对网络设备400中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板410包括:中央处理器411和存储器412。
接口板430也称为线路接口单元卡(line processing unit,LPU)、线卡(linecard)或业务板。接口板430用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、POS(packet over sONET/SDH)接口等,以太网接口例如是灵活以太网业务接口(flexible ethernet clients,FlexE clients)。接口板430包括:中央处理器431、网络处理器432、转发表项存储器434和物理接口卡(physical interface card,PIC)433。
接口板430上的中央处理器431用于对接口板430进行控制管理并与主控板410上的中央处理器411进行通信。
网络处理器432用于实现报文的转发处理。网络处理器432的形态例如是转发芯片。具体而言,网络处理器432用于基于转发表项存储器434保存的转发表转发接收到的报文,如果报文的目的地址为网络设备400的地址,则将该报文上送至CPU(如中央处理器411)处理;如果报文的目的地址不是网络设备400的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。其中,上行报文的处理包括:报文入接口的处理,转发表查找;下行报文的处理:转发表查找等等。
物理接口卡433用于实现物理层的对接功能,原始的流量由此进入接口板430,以及处理后的报文从该物理接口卡433发出。物理接口卡433也称为子卡,可安装在接口板430上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器432处理。在一些实施例中,中央处理器也可执行网络处理器432的功能,比如基于通用CPU实现软件转发,从而物理接口卡433中不需要网络处理器432。
可选地,网络设备400包括多个接口板,例如网络设备400还包括接口板440,接口板440包括:中央处理器441、网络处理器442、转发表项存储器444和物理接口卡443。
可选地,网络设备400还包括交换网板420。交换网板420也例如称为交换网板单元(switch fabric unit,SFU)。在网络设备有多个接口板430的情况下,交换网板420用于完成各接口板之间的数据交换。例如,接口板430和接口板440之间例如通过交换网板420通信。
主控板410和接口板430耦合。例如。主控板410、接口板430和接口板440,以及交换网板420之间通过系统总线与系统背板相连实现互通。在一种可能的实现方式中,主控板410和接口板430之间建立进程间通信协议(inter-process communication,IPC)通道,主控板410和接口板430之间通过IPC通道进行通信。
在逻辑上,网络设备400包括控制面和转发面,控制面包括主控板410和中央处理器431,转发面包括执行转发的各个组件,比如转发表项存储器434、物理接口卡433和网络处理器432。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器432基于控制面下发的转发表对物理接口卡433收到的报文查表转发。控制面下发的转发表例如保存在转发表项存储器434中。在有些实施例中,控制面和转发面例如完全分离,不在同一设备上。
应理解,本申请实施例中接口板440上的操作与接口板430的操作一致,为了简洁,不再赘述。应理解,本实施例的网络设备400可对应于上述方法实施例中的网络设备,该网络设备400中的主控板410、接口板430和/或440例如实现上述方法实施例中的网络设备所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
值得说明的是,主控板可能有一块或多块,有多块的时候例如包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的网络设备的数据接入和处理能力要大于集中式架构的设备。可选地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
参见附图5,附图5示出了本申请一个示例性实施例提供的网络设备的结构示意图,该网络设备500例如配置为方法200中的网络设备。该网络设备500可以是主机、服务器或个人计算机等。该网络设备500可以由一般性的总线体系结构来实现。
网络设备500包括至少一个处理器501、通信总线502、存储器503以及至少一个通信接口504。
处理器501例如是通用中央处理器(central processing unit,CPU)、网络处理器(network processer,NP)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-network processing units,NPU)、数据处理单元(data processing unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器501包括专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。PLD例如是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
通信总线502用于在上述组件之间传送信息。通信总线502可以分为地址总线、数据总线、控制总线等。为便于表示,附图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器503例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器503例如是独立存在,并通过通信总线502与处理器501相连接。存储器503也可以和处理器501集成在一起。
通信接口504使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口504包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络通信接口或其组合等。
在具体实现中,作为一种实施例,处理器501可以包括一个或多个CPU,如附图5中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,网络设备500可以包括多个处理器,如附图5中所示的处理器501和处理器505。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,网络设备500还可以包括输出设备和输入设备。输出设备和处理器501通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备和处理器501通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器503用于存储执行本申请方案的程序代码510,处理器501可以执行存储器503中存储的程序代码510。也即是,网络设备500可以通过处理器501以及存储器503中的程序代码510,来实现方法实施例提供的方法。
本申请实施例的网络设备500可对应于上述各个方法实施例中的网络设备,并且,该网络设备500中的处理器501、通信接口504等可以实现上述各个方法实施例中的网络设备所具有的功能和/或所实施的各种步骤和方法。为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
本申请中术语“第一”、“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。例如,在不脱离各种示例的范围的情况下,第一压缩SID可以被称为第二压缩SID,并且类似地,第二压缩SID可以被称为第一压缩SID。第一压缩SID和第二压缩SID都可以是压缩SID,并且在某些情况下,可以是单独且不同的压缩SID。
本申请中术语“至少一个”的含义是指一个或多个。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD)、或者半导体介质(例如固态硬盘)等。前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (16)
1.一种报文处理方法,其特征在于,所述方法包括:
网络设备接收第一报文,所述第一报文的目的地址包括第一压缩段标识SID,所述第一压缩SID包括下一个SID长度NSL,所述第一压缩SID中的NSL用于指示所述第一报文中所述第一压缩SID的下一个压缩SID的长度;
所述网络设备根据所述第一压缩SID中的NSL,从所述第一报文中确定第二压缩SID,所述第二压缩SID为所述第一报文中所述第一压缩SID的下一个压缩SID;
所述网络设备根据所述第二压缩SID对所述第一报文进行处理。
2.根据权利要求1所述的方法,其特征在于,所述第一压缩SID的参数字段包括所述NSL。
3.根据权利要求1或2所述的方法,其特征在于,所述第一报文的目的地址还包括段索引,所述第一报文中的段索引用于指示所述第一压缩SID在所述第一报文的位置,所述网络设备根据所述第一压缩SID中的NSL,从所述第一报文中确定第二压缩SID,包括:
所述网络设备根据所述第一报文中的段索引以及所述第一压缩SID的长度,从所述第一报文中确定所述第二压缩SID的起始位置;
所述网络设备根据所述第二压缩SID的起始位置以及所述第一压缩SID中的NSL,从所述第一报文中确定第二压缩SID的结束位置。
4.根据权利要求1所述的方法,其特征在于,所述第二压缩SID包括NSL,所述第二压缩SID中的NSL用于指示第二报文中所述第二压缩SID的下一个压缩SID的长度。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述网络设备根据所述第二压缩SID对所述第一报文进行处理,包括:
所述网络设备将所述第一报文的目的地址中的所述第一压缩SID替换为所述第二压缩SID,从而得到第二报文,所述第二报文的目的地址包括所述第二压缩SID;
所述网络设备发送所述第二报文。
6.根据权利要求5所述的方法,其特征在于,所述第一报文的目的地址还包括段索引,所述第一报文中的段索引用于指示所述第一压缩SID在所述第一报文的位置,所述网络设备将所述第一报文的目的地址中的所述第一压缩SID替换为所述第二压缩SID之前,所述方法还包括:
所述网络设备对所述第一报文的目的地址中的段索引进行更新。
7.根据权利要求1至4中任一项所述的方法,其特征在于,所述网络设备根据所述第二压缩SID对所述第一报文进行处理,包括:
响应于邻居节点故障,所述网络设备根据所述第二压缩SID中的NSL从所述第一报文中确定第三压缩SID,所述第三压缩SID为所述第一报文中所述第二压缩SID的下一个压缩SID;
所述网络设备将所述第一报文的目的地址中的所述第一压缩SID替换为所述第三压缩SID,从而得到第三报文,所述第三报文的目的地址包括所述第三压缩SID;
所述网络设备发送所述第三报文。
8.一种网络设备,其特征在于,所述网络设备包括:
接收单元,用于接收第一报文,所述第一报文的目的地址包括第一压缩段标识SID,所述第一压缩SID包括下一个SID长度NSL,所述第一压缩SID中的NSL用于指示所述第一报文中所述第一压缩SID的下一个压缩SID的长度;
处理单元,用于根据所述第一压缩SID中的NSL,从所述第一报文中确定第二压缩SID,所述第二压缩SID为所述第一报文中所述第一压缩SID的下一个压缩SID;
所述处理单元,还用于根据所述第二压缩SID对所述第一报文进行处理。
9.根据权利要求8所述的网络设备,其特征在于,所述第一报文的目的地址还包括段索引,所述第一报文中的段索引用于指示所述第一压缩SID在所述第一报文的位置,所述处理单元,用于根据所述第一报文中的段索引以及所述第一压缩SID的长度,从所述第一报文中确定所述第二压缩SID的起始位置;根据所述第二压缩SID的起始位置以及所述第一压缩SID中的NSL,从所述第一报文中确定第二压缩SID的结束位置。
10.根据权利要求8或9所述的网络设备,其特征在于,所述处理单元,用于将所述第一报文的目的地址中的所述第一压缩SID替换为所述第二压缩SID,从而得到第二报文,所述第二报文的目的地址包括所述第二压缩SID;
所述网络设备还包括:发送单元,用于发送所述第二报文。
11.根据权利要求10所述的网络设备,其特征在于,所述第一报文的目的地址还包括段索引,所述第一报文中的段索引用于指示所述第一压缩SID在所述第一报文的位置,所述处理单元,还用于对所述第一报文的目的地址中的段索引进行更新。
12.一种网络设备,其特征在于,所述网络设备包括处理器和通信接口,所述处理器用于执行指令,使得所述网络设备执行上述权利要求1-7任一项所述的方法,所述通信接口用于接收或发送报文。
13.一种网络设备,其特征在于,所述网络设备包括主控板和接口板,所述网络设备用于执行上述权利要求1-7任一项所述的方法。
14.根据权利要求13所述的网络设备,其特征在于,所述网络设备还包括交换网板。
15.一种计算机可读存储介质,其特征在于,存储介质中存储有至少一条指令,所述指令在计算机上运行时,使得所述计算机执行上述权利要求1-7任一项所述的方法。
16.一种芯片,其特征在于,所述芯片包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于从存储器中调用并运行所述计算机指令,以执行上述权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011510794.8A CN114650255B (zh) | 2020-12-18 | 2020-12-18 | 报文处理方法及网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011510794.8A CN114650255B (zh) | 2020-12-18 | 2020-12-18 | 报文处理方法及网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114650255A CN114650255A (zh) | 2022-06-21 |
CN114650255B true CN114650255B (zh) | 2023-12-08 |
Family
ID=81991125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011510794.8A Active CN114650255B (zh) | 2020-12-18 | 2020-12-18 | 报文处理方法及网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114650255B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174469B (zh) * | 2022-06-30 | 2023-10-13 | 烽火通信科技股份有限公司 | Srv6节点保护方法、系统、设备及可读存储介质 |
CN115314562A (zh) * | 2022-08-09 | 2022-11-08 | 中国电信股份有限公司 | 跨域传输SRv6数据报文的头压缩方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111385199A (zh) * | 2018-12-28 | 2020-07-07 | 瞻博网络公司 | 经压缩的路由报头 |
CN111541613A (zh) * | 2020-04-27 | 2020-08-14 | 鹏城实验室 | 一种基于SRv6的数据处理方法及相关设备 |
CN111628995A (zh) * | 2020-05-26 | 2020-09-04 | 新华三信息安全技术有限公司 | 基于SRv6的SID压缩方法、装置、设备及存储介质 |
CN111917640A (zh) * | 2019-05-09 | 2020-11-10 | 华为技术有限公司 | SRv6网络生成段列表、报文转发的方法、设备和系统 |
CN111935007A (zh) * | 2019-05-13 | 2020-11-13 | 瞻博网络公司 | 用于网络的压缩路由报头信息 |
-
2020
- 2020-12-18 CN CN202011510794.8A patent/CN114650255B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111385199A (zh) * | 2018-12-28 | 2020-07-07 | 瞻博网络公司 | 经压缩的路由报头 |
CN111917640A (zh) * | 2019-05-09 | 2020-11-10 | 华为技术有限公司 | SRv6网络生成段列表、报文转发的方法、设备和系统 |
CN111935007A (zh) * | 2019-05-13 | 2020-11-13 | 瞻博网络公司 | 用于网络的压缩路由报头信息 |
CN111541613A (zh) * | 2020-04-27 | 2020-08-14 | 鹏城实验室 | 一种基于SRv6的数据处理方法及相关设备 |
CN111628995A (zh) * | 2020-05-26 | 2020-09-04 | 新华三信息安全技术有限公司 | 基于SRv6的SID压缩方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
G-SRv6头压缩优化技术研究与应用;程伟强,刘毅松,姜文颖,张庚;《电信科学 》;第第36卷卷(第第8期期);第22-27页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114650255A (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108293022B (zh) | 一种报文传输的方法、装置和系统 | |
US20230122099A1 (en) | Packet Forwarding Method, Device, and System | |
KR102544995B1 (ko) | 하이브리드 네트워크에서 패킷을 포워딩하기 위한 방법, 디바이스, 및 시스템 | |
WO2022078415A1 (zh) | 报文转发方法以及网络设备 | |
CN114650255B (zh) | 报文处理方法及网络设备 | |
EP4009596A1 (en) | Message forwarding method, device, and system in sr network | |
CN112448888A (zh) | 一种在sr网络中转发报文的方法、设备和系统 | |
CN113938403B (zh) | 一种能力通告方法及相关设备 | |
US20230412508A1 (en) | Packet processing method and related apparatus | |
US11757775B2 (en) | Message generation method and apparatus, and message processing method and apparatus | |
WO2022007702A1 (zh) | 一种报文处理方法及网络设备 | |
US20230344751A1 (en) | Route Processing Method, Related Apparatus, and Network System | |
US20230224241A1 (en) | Path Identity Allocation Method, System, and Apparatus, Device, and Storage Medium | |
CN114006854B (zh) | 通信方法及网络设备 | |
JP7273130B2 (ja) | 通信方法および装置 | |
WO2024109045A1 (zh) | 路由更新方法、装置、设备及存储介质 | |
CN114025025B (zh) | SRv6 SID的发布方法及网络设备 | |
CN114079670B (zh) | 传输路由信息的方法、装置和通信系统 | |
CN116781618A (zh) | 路由生成方法、数据报文的转发方法及装置 | |
CN117955845A (zh) | 拓扑信息的上报方法、装置、设备及存储介质 | |
CN116800662A (zh) | 报文处理方法、装置、设备及存储介质 | |
CN115706742A (zh) | 传输网络层可达信息的方法、装置、设备、系统及介质 | |
CN116527642A (zh) | 一种报文处理方法及相关设备 | |
CN114257542A (zh) | 路径标识的分配方法、系统、装置、设备以及存储介质 | |
CN114079646A (zh) | 传输报文、配置映射表的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |