CN111510386A - 用于处理报文的方法和装置 - Google Patents

用于处理报文的方法和装置 Download PDF

Info

Publication number
CN111510386A
CN111510386A CN201910089083.9A CN201910089083A CN111510386A CN 111510386 A CN111510386 A CN 111510386A CN 201910089083 A CN201910089083 A CN 201910089083A CN 111510386 A CN111510386 A CN 111510386A
Authority
CN
China
Prior art keywords
node
function
sid
identifier
message
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.)
Granted
Application number
CN201910089083.9A
Other languages
English (en)
Other versions
CN111510386B (zh
Inventor
李泰新
陈哲
李金龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910089083.9A priority Critical patent/CN111510386B/zh
Priority to EP20748532.7A priority patent/EP3742685B1/en
Priority to PCT/CN2020/072174 priority patent/WO2020156166A1/zh
Publication of CN111510386A publication Critical patent/CN111510386A/zh
Priority to US17/002,160 priority patent/US11349754B2/en
Application granted granted Critical
Publication of CN111510386B publication Critical patent/CN111510386B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/741Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

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

本申请提供了一种用于处理报文的方法,包括:第一节点确定第一报文,第一报文的报文头和段路由头部SRH都包括共用SID,所述共用SID由第一地址标识和第一功能标识组成,所述第一地址标识用于标识终结节点的地址信息,所述第一功能标识用于标识至少两个节点需要执行的相同的第一功能,若多个节点需要执行相同的第一功能,通过在SRH中的一个共用SID可以代替多个节点中每个节点的SID,这样可以减少SID的开销,从而可以节省带宽资源,有助于提高系统性能。

Description

用于处理报文的方法和装置
技术领域
本申请涉及通信领域,并且更具体地,涉及通信领域中用于处理报文的方法和装置。
背景技术
在当前的互联网协议的第六个版本(internet protocol version 6,IPv6)中,采用段路由(segment routing,SR)技术转发报文,源节点使用顺序的段标识符(segmentidentifier,SID)作为指令来指导报文的转发。在报文中,SID的集合称为段路由头部(segment routing header,SRH),SID由位置(locator)字段和功能(function)字段两个组成,位置字段为节点的地址前缀,用于标识路由到需要执行功能的节点,功能字段用于标识需要执行的网络功能,通过采用顺序的段作为指令来指导报文的转发。在路径上的每个节点需要执行相应的功能时,报文的报文头中需要在报文的SRH中携带沿途每个节点的SID,当路径上的节点较多时,SRH中的SID的规模就会增大,即使沿途的节点执行的是相同的功能,仍然需要在SRH中携带每个节点的SID,这样会增大开销,降低了网络带宽的利用率,从而影响系统的性能。
发明内容
本申请提供一种用于处理报文的方法和装置,有助于提高系统性能。
第一方面,提供了一种用于处理报文的方法,包括:第一节点确定第一报文,所述第一报文的报文头和段路由头部SRH都包括共用段标识符SID,所述共用SID由第一地址标识和第一功能标识组成,所述第一地址标识用于标识终结节点的地址信息,所述第一功能标识用于标识至少两个节点需要执行的相同的第一功能;
所述第一节点根据第一对应关系以及所述第一功能标识确定执行所述第一功能,所述第一对应关系用于指示至少一个功能标识与至少一个功能一一对应,所述至少一个功能包括所述第一功能。
因此,在本申请中,若多个节点需要执行相同的第一功能,通过在SRH中的一个共用SID可以代替多个节点中每个节点的SID,这样可以减少SID的开销,从而可以节省带宽资源,有助于提高系统性能。
需要说明的是,若所述第一节点确定执行所述第一功能,则所述第一节点执行第一功能。
在本申请中,第一对应关系用于指示至少一个功能标识与至少一个功能一一对应,例如,SID可以是功能标识,或者可以采用全网统一的功能标识来标识功能,本申请对第一对应关系的具体内容不作限定,只要能够标识功能即可。
在本申请中,第一节点可以是源节点、中间节点或者终结节点(即转发路径上的最后一个节点)。
例如,第一功能可以是流量限速、操作管理维护(operation administration andmaintenance,OAM)或查找转发表(forwarding information database,FIB)等。
在某些实现方式中,所述第一对应关系具体用于指示至少一个SID与至少一个功能一一对应,所述至少一个SID包括所述共用SID;其中,所述第一节点根据第一对应关系以及所述第一功能标识确定执行所述第一功能,包括:所述第一节点根据所述第一对应关系以及所述共用SID确定执行所述第一功能。
在本申请中,第一节点的本地保存有第一对应关系,转发路径上的每个节点都保存有自身的对应关系,每个节点的对应关系可以相同或者不同,本申请实施例对此不作限定。
在某些实现方式中,所述第一节点根据第一对应关系以及所述第一功能段标识确定执行所述第一功能,包括:所述第一节点确定所述第一对应关系中是否存在所述第一功能标识;若所述第一对应关系中存在所述第一功能标识,所述第一节点根据所述第一对应关系以及所述第一功能标识确定执行所述第一功能。
若所述第一对应关系中不存在所述第一功能标识,所述第一节点确定不执行所述第一功能。
在某些实现方式中,若所述第一对应关系中存在所述第一功能标识,所述方法还包括:所述第一节点确定所述SRH中的剩余段(segments left,SL)的值不变。
在某些实现方式中,所述第一节点确定所述第一对应关系中是否存在所述第一功能标识,包括:所述第一节点确定所述SRH中的剩余段SL的值是否大于0;若所述SL的值大于0,所述第一节点在所述第一对应关系中确定是否存在所述第一功能标识。
在某些实现方式中,所述第一功能为流量限速、操作管理维护或查找转发表。
在某些实现方式中,在所述第一节点根据本地的第一对应关系以及所述第一功能标识确定执行所述第一功能之后,所述方法还包括:所述第一节点按照最短路径向第二节点转发所述第一报文,所述至少两个节点包括所述第一节点和所述第二节点。
在某些实现方式中,所述第一节点为源节点,所述第一节点确定第一报文,包括:所述第一节点接收控制器发送的封装配置信息;所述第一节点根据所述封装配置信息生成并封装所述第一报文。
在某些实现方式中,所述第一节点为终结节点,所述第一节点确定第一报文,包括:所述第一节点接收上一跳节点发送的所述第一报文;在所述第一节点根据第一对应关系以及所述第一功能标识确定执行所述第一功能之后,所述方法还包括:所述第一节点解封装所述第一报文。
第二方面,提供了一种用于处理报文的方法,可以由控制器执行,该方法包括以下至少一个步骤:
控制器确定转发路径上执行第一功能的多个节点,多个节点包括源节点、至少一个中间节点和终结节点;
控制器根据第一地址标识和第一功能标识生成共用SID,所述第一地址标识用于标识所述终结节点的地址信息,所述第一功能标识用于标识所述第一功能;
控制器向源节点发送封装配置信息,封装配置信息包括所述共用SID,以便于源节点根据所述封装配置信息生成第一报文;
控制器向所述至少一个中间节点中的每个中间节点发送共用SID,以便于每个中间节点保存共用SID。
控制器向终结节点发送解封装配置信息,可选地,该解封装配置信息可以包括共用SID,当然该解封装配置信息也可以不包括共用SID。
可选地,转发路径上也可以存在不执行第一功能的若干个节点,例如若干个节点包括终结节点。
第三方面,提供了一种用于处理报文的装置,该装置包括用于执行各方面或各方面任意可能的实现方式中的方法中各个步骤的单元。
第四方面,提供了一种用于处理报文的装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制接收器接收信号,并控制发送器发送信号,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第一方面或第一方面的任一种可能的实现方式中的方法。
第五方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序在被处理器执行时,用于执行各方面或各方面的任意可能的实现方式中的方法。
第六方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序被执行时,用于执行各方面或各方面的任意可能的实现方式中的方法。
附图说明
图1示出了SRv6的转发机制的示意图。
图2示出了本申请实施例提供的共用SID的格式示意图。
图3示出了本申请实施例提供的用于处理报文的方法示意图。
图4示出了本申请实施例提供的另一用于处理报文的方法示意图。
图5示出了本申请实施例提供的又一用于处理报文的方法示意图。
图6示出了本申请实施例提供的又一用于处理报文的方法示意图。
图7示出了本申请实施例提供的又一用于处理报文的方法示意图。
图8示出了本申请实施例提供的又一用于处理报文的方法示意图。
图9示出了本申请实施例提供的又一用于处理报文的方法示意图。
图10示出了本申请实施例提供的用于处理报文的装置示意性框图。
图11示出了本申请实施例提供的又一用于处理报文的装置的示意性框图。
具体实施方式
本申请实施例以IPv6协议举例进行说明,但本申请实施例不限于此,例如还可以用于互联网协议的第四个版本(internet protocol version 4,IPv4)等协议中。
为了方便描述,在本申请中,用Loc表示位置(locator)字段,用Funct表示功能(function)字段。
当SR技术采用IPv6协议时,为SRv6,SRv6的转发机制如图1所示,SRv6报文包括三个主要的部分,即IPv6头部,SRH,以及负载。报文要从R1开始,沿着R1-R2-R3-R4的路径转发到R4。报文从R1发出时,IPv6头部的源地址字段为Loc1::Funct1,即Loc1::Funct1为R1的SID,目的地址字段为Loc2::Funct2,即Loc2::Funct2为R2的SID;SRH包含Loc2::Funct2、Loc3::Funct3和Loc4::Funct4,即节点R2、R3和R4的SID,此时SL的值为2,指向Loc2::Funct2;负载部分为IP数据。因为目的地址为R2的SID,所以报文转发到R2。
报文到达节点R2后,执行Funct2所代表的功能,之后,SL值减一,指针指向Loc3::Funct3,报文的IPv6头部中的目的地址字段被替换为Loc3::Funct3,其他字段不变。因为目的地址为R3的SID,所以报文转发到R3。
报文到达节点R3后,执行Funct3所代表的功能,之后,SL值减一,指针指向Loc4::Funct4,报文的IPv6头部中的目的地址字段被替换为Loc4::Funct4,其他字段不变。因为目的地址为R4的SID,所以报文转发到R4。
以上的转发机制存在以下问题:
1、在某节点上执行功能时,必须在SRH中放置此节点的SID,当沿途节点较多时,SRH中的SID的规模就会增加,需要携带一个SID栈,从而导致开销比较大,即使路径上的所有节点都执行的是同一个功能时,仍然需要在SRH中携带每个节点的SID,这样会占用较多的带宽资源,从而影响系统的性能。
2、报文在源节点(R1)封装时,必须预先知道沿途有哪些节点,需要将沿途的节点的SID封装在SRH中,但是对于无法预知沿途节点的情况下,就不能实现报文转发,并且节点也没办法执行相应的功能。
3、当沿途的节点较多,导致SID栈较大时,网络处理器(network processor,NP)每次读取的长度固定的情况下,NP每次读取处理的字节数会小于SRH中SID栈的字节数,这样NP读取难度就会增加。
针对上述的问题,本申请实施例提供了一种报文转发方法,并提出了共用SID,当沿途存在至少两个节点需要执行相同的功能时,沿途的至少两个节点可以共用一个SID,图2示出了共用SID的格式,共用SID由两部分组成,L比特的地址字段(也称为Loc字段)和M比特的功能字段(也称为Funct字段),L和M为正整数,共用SID的地址字段为报文的终结节点的地址信息(例如可以是整个地址或者是地址前缀),功能字段为需要在沿途节点执行的网络功能的标识。可选地,功能字段还可以包括参数(arguments,Args)字段,即执行该功能字段对应的功能的参数,例如,该功能字段对应的功能为流量限速,参数参数可以是具体流量的速度是多少。例如,共用SID可以是C4::100:500,其中C4为地址字段,100:500为功能字段,100用于为流量限速功能的标识,500表示流量限制为500KB/s。可选地,L+M=128。L和M的取值可以根据实际情况设置,比如L和M可以为64,即地址字段的长度与功能字段的长度相同。可选地,可以将共用SID放置在SID栈的栈顶,但同时本申请实施例不限定共用SID的在SID栈的位置。
下面结合附图描述本申请实施例提供的用于处理报文的方法,前面是以地址字段和功能字段描述共用SID的,在实际中,承载在地址字段的比特值可以称之为地址标识,承载在功能字段的比特值可以称之为功能标识。
图3示出了本申请实施例提供的用于处理报文的方法100,包括:
S110,第一节点确定第一报文,所述第一报文的报文头和SRH都包括共用段标识符SID,所述共用SID由第一地址标识和第一功能标识组成,所述第一地址标识用于标识终结节点的地址信息,所述第一功能标识用于标识至少两个节点需要执行的相同的第一功能。
需要说明的是,共用SID为第一报文的报文头的目的地址。进一步地,转发路径上执行相同的第一功能的每个节点的报文头都相同,例如报文头的源地址为源节点的地址,报文头的目的地址为终结节点的地址,换句话说,若多个节点执行的是相同的功能,则多个节点接收到第一报文时,该第一报文的报文头都相同。
S120,所述第一节点根据第一对应关系以及所述第一功能标识确定执行所述第一功能,所述第一对应关系用于指示至少一个功能标识与至少一个功能一一对应;可选地,所述至少一个功能包括所述第一功能。
可选地,第一节点可以是转发路径上的源节点,用于封装第一报文;可选地,第一节点还可以是转发路径上的中间节点,用于接收上一跳节点的报文,并将报文转发到下一跳节点;可选地,第一节点还可以是转发路径上的目的节点,也可以称为终结节点,用于接收上一跳节点的报文,并解封装报文。
需要说明的是,在本申请实施例中,控制器可以集中控制转发路径上的各个节点,并且转发路径上的部分节点可以执行相同的第一功能,剩余部分节点可以不执行该第一功能。对于转发路径上执行该第一功能的节点,控制器为这些节点生成共用SID,例如,控制器根据第一地址标识和第一功能标识生成共用SID,控制器向转发路径上执行第一功能的源节点发送封装配置信息,该封装配置信息包括所述共用SID,这样源节点就可以根据共用SID生成第一报文,并且源节点可以保存共用SID以及该共用SID标识的功能之间的对应关系;进一步地,控制器还可以向转发路径上的执行第一功能的中间节点发送该共用SID,这样中间节点可以保存共用SID以该共用SID标识的功能之间的对应关系;控制器还可以向转发路径上的终结节点发送解封装配置信息,可选地,该解封装配置信息可以包括共用SID,这样终结节点可以保存该共用SID以及该共用SID标识的功能之间的对应关系,这样,终结节点可以执行该共用SID标识的功能,并根据解封装配置信息解封装该报文。
当然,在本申请实施例中,控制器还可以向源节点,中间节点以及终结节点发送功能标识,源节点、中间节点以及终结节点可以在本地保存功能标识和功能的对应关系,这样,源节点、中间节点和终结节点正在接收到第一报文时,可以根据报文的SRH中的共用SID的功能标识确定需要执行相应的功能,本申请实施例在此不再赘述。
若第一节点为源节点或者中间节点,则在S120之后,方法100还包括:所述第一节点按照最短路径向第二节点转发所述第一报文,所述至少两个节点包括所述第一节点和所述第二节点;若第一节点为终结节点,则不需要继续转发该第一报文。
可选地,若第一节点为源节点,第一节点可以执行方法100之外,第一节点可以接收控制器发送的封装配置信息,这里的控制器为控制网络拓扑结构中的各个节点的整网控制器。第一节点可以根据接收到的封装配置信息生成并封装该第一报文。相应地,若第一节点为终结节点,则第一节点可以根据上一跳节点发送的所述第一报文,并S120之后,所述第一节点解封装所述第一报文。
需要说明的是,每个节点可以在本地保存自身的第一对应关系,本申请仅以第一节点为例描述。至少一个功能中每个功能都存在一个对应的标识,称之为功能标识,例如,功能标识可以是SID,则第一对应关系用于指示至少一个SID中每个SID与至少一个功能中每个功能一一对应,举例来说,假设第一对应关系如表1所示,第一列为每个SID,第二列为每个SID对应的功能,表1示出了三个SID对应三个功能,SID1(Loc1::Funct1)对应功能1,SID2(Loc2::Funct2)对应功能2,共用SID(Loc::Funct)对应功能3,其中共用SID可以是转发路径上的节点共用的SID,共用SID对应的功能3为至少两个节点每个节点都需要执行的功能,假设转发路径上的N个节点都需要执行功能3,则N个节点中每个节点的本地都保存有类似第三行的内容。又例如,第一对应关系如表2所示,第一列的100,50,20为每个功能的标识,用100来标识功能4,用50来标识功能5,用20来标识功能6,例如,功能4为流量限速,功能为5为OAM,功能6为查找转发表。
表1
Loc1::Funct1(SID1) 功能1
Loc2::Funct2(SID2) 功能2
Loc::Funct(共用SID) 功能3
…… ……
表2
100 功能4
50 功能5
20 功能6
…… ……
例如,假设第一对应关系为表1,第一报文的报文头包括共用SID,共用SID由Loc::Funct组成,其中,Loc为第一地址标识,Funct为第一功能标识,Loc为转发路径上目的节点的地址或者地址前缀,也即路径上的最后一个节点的地址或者地址前缀,Funct标识转发路径上的多个节点需要执行的相同的功能3,第一节点根据共用SID查找本地报文的表1,确定共用SID对应的功能为功能3,则第一节点确定需要执行功能3,则第一节点执行功能3。
例如,假设第一对应关系为表2,第一报文的报文头包括共用SID,共用SID由Loc::Funct组成,其中,Loc为第一地址标识,Funct为第一功能标识,Loc为转发路径上目的节点的地址或者地址前缀,也即路径上的最后一个节点的地址或者地址前缀,Funct标识转发路径上的多个节点需要执行的相同的功能3,第一节点根据功能SID中的第一功能标识(Funct)查找表2,假设第一功能标识(Funct)为100,则第一节点确定需要执行100对应的功能4。
下面分两种情况描述本申请实施例提供的用于处理报文的方法,第一种情况,所述第一对应关系具体用于指示至少一个SID与至少一个功能一一对应,所述至少一个SID包括所述共用SID。第二种情况,所述第一对应关系用于指示至少一个功能标识与至少一个功能一一对应。在第一种情况和第二种情况下,第一报文的报文头和SRH都包括共用SID,其中,报文头的共用SID为目的地址。
第一种情况,如图4所示,包括以下过程:
S210,第一节点确定第一报文的SRH中的SL的取值是否大于0。
S220,若SRH中SL的取值等于0,当前节点为最后一个节点,不需要转发,需要进行解封装操作。
S230,若SRH中SL的取值大于0,则还需要往下一个节点继续转发,第一节点根据本地保存的SID列表查找是否存在共用SID,这里的SID列表也可以称为第一对应关系,例如可以是表1的形式。
S240,若第一节点根据本地保存的SID列表确定存在共用的SID,则第一节点确定该共用的SID对应的功能,,则第一节点执行该功能。并且此时,第一报文的SRH中的SL值不变。
S250,在执行完S240之后,第一节点按照报文头的目的地址的地址段(Loc段)所代表的地址继续转发报文。
S260,若第一节点根据本地保存的SID列表确定不存在共用的SID,则第一节点将SRH中的SL值减1,第一节点将报文头的目的地址更新为SL减1后指向的SID,即SL减1后指向的SID为目标地址。
S270,第一节点确定本地保存的SID列表是否存在目的地址中的SID(即SL减1后指向的SID),若存在,则执行该SL减1后指向的SID对应的功能。S280,若S270中,本地保存的SID列表存在目的地址中的SID,则执行该SID对应的功能。
S290,若S270中,本地保存的SID列表中不存在目的地址中的SID,则第一节点按照目的地址转发第一报文。
第二种情况,如图5所示,包括以下过程:
S310,第一节点确定第一报文的SRH中的剩余段(segment left,SL)的取值是否大于0。
S320,若SRH中SL的取值小于或等于0,当前节点为最后一个节点,不需要转发,则丢弃该第一报文。
S330,若SRH中SL的取值大于0,则还需要往下一个节点继续转发,第一节点根据本地保存的功能标识列表查找是否存在功能SID的第一功能标识,这里的功能标识列表也可以称为第一对应关系,例如可以是表2的形式。
S340,若第一节点根据本地保存的功能标识列表确定存在第一功能标识,第一节点确定该第一功能标识对应的功能,则第一节点执行该功能。并且此时,第一报文的SRH中的SL值不变。
S350,在执行完S340之后,第一节点按照报文头的目的地址的地址段(Loc段)所代表的地址继续转发报文。
S360,若第一节点根据本地保存的功能标识列表确定不存在第一功能标识,则第一节点将SRH中的SL值减1,第一节点将报文头的目的地址更新为SL减1后指向的SID,即SL减1后指向的SID为目标地址。
S370,第一节点确定本地保存的功能标识列表是否存在目的地址中的SID(即SL减1后指向的SID)的功能标识。
S380,若S370中,本地保存的功能标识列表存在目的地址中的SID的功能标识,则执行该功能标识对应的功能。
S390,若S370中,本地保存的功能标识列表不存在目的地址中的SID的功能标识,则按照目的地址转发第一报文。
需要说明的是,网络拓扑结构中,每个节点可以通告自身的地址信息,例如地址前缀信息,也即每个节点可以将自身保存的SID列表中的SID的地址字段对应的地址信息通告出去,这样,网络拓扑结构中的节点可以根据其他节点通告的地址信息确定最短路径上的节点。但是,在本申请中,对于任何一个节点,若本地保存的SID列表中有共用的SID,由于共用SID的地址字段承载着终结节点的地址信息,而不是节点自身的地址信息,因此,节点不需要通告共用SID对应的终结节点的地址信息。以表1为例,假设第一节点本地保存有表1,其中,Loc1和Loc2为第一节点自身的地址前缀,Loc为共用SID的地址字段,也即承载着终结节点的地址信息,因此,第一节点只通告Loc1和Loc2,而不通告Loc。
因此,本申请实施例中,若多个节点执行的是相同的第一功能,第一报文的SRH中包括共用SID,利用一个共用SID代替多个SID,这样,可以减少SID的规模,有助于降低带宽资源,从而提升系统性能。若SID的规模减小,则SID栈也随之减小,这样会降低SP读取SID栈的难度。进一步地,本申请中,可以不需预先知道转发路径上存在哪些节点,利用多个节点可以利用一个共用SID就可能执行相应的第一功能,提高了转发报文的可行性。
下面结合图6至图9进行详细的举例说明本申请实施例中的用于处理报文的方法。下面的例子以转发路径上的节点可以执行流量限速、操作管理维护或查找转发表等功能进行说明,但是本申请实施例不限于此,转发路上的节点还可以执行其他的功能。
第一个例子
第一个例子以第一功能为流量限速,转发路径上的节点本地保存的是SID列表为例进行描述。该例子中转发路径上的部分节点需要执行流量限速功能。前述的第一节点可以是转发路径上的任何一个节点。
如图6所示的网络拓扑图中,数据流从PE1节点进入,依次经过P1节点,P2节点,最终到达PE2节点,需要在PE1,P1和P2节点上执行流量限速功能。PE1节点的IPv6地址前缀为C1::/64,P1节点的IPv6地址前缀为C2::/64,P2节点的IPv6地址前缀为C3::/64,PE2节点的IPv6地址前缀为C4::/64。
在该例中,共用SID为C4::100:500,即Loc字段为C4,长度为64bit,指的是终结节点(PE2)的地址前缀为C4::/64,Funct字段为100:500,长度为64bit,为需要在沿途节点上执行的网络功能的标识,其中100为流量限速功能的标识,500为Args字段,即参数字段,指的是流量限制为500KB/s,功能的标识与参数合起来为Funct字段。
PE1节点上的本地SID列表中存储了C1::0等SID,其功能是“本端”,指的是最基本的功能,即代表本端点。同样,P1节点,P2节点,和PE2节点的本地SID列表中也存储了对应的SID,分别为C2::0,C3::0和C4::0,其功能为代表本端点;并且PE2节点上存储C4::40,其功能是“E.DX2(End.DX2)”,指的是剥去外层的SRv6头部(包括外层IPv6报头和SRH),并执行二层转发,此功能专用于SRv6的出口节点,用于剥掉SRv6的封装,还原原始的IPv6数据。同时,PE1节点,P1节点和P2节点上分别存储了共用SID,即C4::100:500,PE1节点,P1节点和P2节点需要在数据流于本节点转发时执行流量限速,流量限制为500KB/s。
PE1节点,P1节点,P2节点和PE2节点需要向其他节点通告本地SID列表中的SID地址前缀,但共用SID的地址前缀仅由终结节点(PE2)通告,其他节点的本地SID列表中虽然包含共用SID,但不进行通告,即PE1节点通告地址前缀C1::/64,P1节点通告地址前缀C2::/64,P2节点通告地址前缀C3::/64,PE2节点通告地址前缀C4::/64。
报文在PE1节点处封装SRv6的报头。首先构建SRH,将共用SID置于SRH的SID栈的栈顶,将PE2的SID置于共用SID的后面,即SRH的内容为C4::100:500,C4::40。根据SRv6的外层IPv6报头的目的地址的生成规则,将SRH的栈顶SID,即共用SID复制到报文的目的地址字段,作为SRv6报文的目的地址,则目的地址字段为C4::100:500。
报文在PE1节点封装了SRv6报头之后,首先查找目的地址字段中的C4::100:500在PE1的本地SID列表中是否匹配,查找结果为有匹配,即PE1节点需要根据共用SID执行流量限速功能,流量限制为500KB/s。报文在PE1处按照共用SID的Loc字段,即C4::/64查表转发。
报文在到达了P1节点之后,首先查找目的地址字段中的C4::100:500在P1的本地SID列表中是否匹配,查找结果为有匹配,即P1节点需要根据共用SID执行流量限速功能,流量限制为500KB/s。报文在P1处按照共用SID的Loc字段,即C4::/64查表转发。
报文在到达了P2节点之后,首先查找目的地址字段中的C4::100:500在P2的本地SID列表中是否匹配,查找结果为有匹配,即P2节点需要根据共用SID执行流量限速功能,流量限制为500KB/s。报文在P2处按照共用SID的Loc字段,即C4::/64查表转发。
报文在到达了PE2节点之后,首先查找目的地址字段中的C4::100:500在PE2的本地SID列表中是否匹配,查找结果没有匹配。将SL值减一,将新的SL在SRH中对应的SID,即C4::40复制到目的地址字段。然后查找目的地址字段中的C4::40在本地SID列表中是否匹配,查找结果为有匹配,即报文需要在PE2节点剥去外层的SRv6头部,并执行二层转发,即PE2节点为出口节点,剥去SRv6的封装。
第二个例子
第二个例子以第一功能为随路操作管理维护(inband operationadministration and maintenance,iOAM),转发路径上的节点本地保存的是SID列表为例进行描述。该例子中转发路径上的部分节点需要执行iOAM功能。前述的第一节点可以是转发路径上的任何一个节点。
如图7所示的网络拓扑图中,数据流从PE1节点进入,依次经过P1节点,P2节点,最终到达PE2节点,需要在PE1,P1和P2节点上执行随路OAM功能。PE1节点的IPv6地址前缀为C1::/64,P1节点的IPv6地址前缀为C2::/64,P2节点的IPv6地址前缀为C3::/64,PE2节点的IPv6地址前缀为C4::/64。
在本实施例中,共用SID为C4::50,即Loc字段为C4,长度为64bit,指的是终结节点(PE2)的地址前缀为C4::/64,Funct字段为50,长度为64bit,为需要在沿途节点上执行的网络功能的标识,50为随路OAM功能的标识,将节点本地的节点标识记录在报文中。
PE1节点上的本地SID列表中存储了C1::0等SID,其功能是“本端”,指的是最基本的功能,即代表本端点。同样,P1节点,P2节点,和PE2节点的本地SID列表中也存储了对应的SID,分别为C2::0,C3::0和C4::0,其功能为代表本端点;并且PE2节点上存储C4::40,其功能是“E.DX2(End.DX2)”,指的是剥去外层的SRv6头部(包括外层IPv6报头和SRH),并执行二层转发,此功能专用于SRv6的出口节点,用于剥掉SRv6的封装,还原原始的IPv6数据。同时,PE1节点,P1节点和P2节点上分别存储了共用SID,即C4::50,PE1节点,P1节点和P2节点需要在数据流在于节点转发时执行随路OAM,将节点的本地节点标识记录在报文中。
PE1节点,P1节点,P2节点和PE2节点需要向其他节点通告本地SID列表中的SID地址前缀,但共用SID的地址前缀仅由终结节点通告,其他节点的本地SID列表中虽然包含共用SID,但不进行通告,即PE1节点通告地址前缀C1::/64,P1节点通告地址前缀C2::/64,P2节点通告地址前缀C3::/64,PE2节点通告地址前缀C4::/64。
报文在PE1节点处封装SRv6的报头。首先构建SRH,将共用SID置于SRH的SID栈的栈顶,将PE2的SID置于共用SID的后面,即SRH的内容为C4::50,C4::40。根据SRv6的外层IPv6报头的目的地址的生成规则,将SRH的栈顶SID,即共用SID复制到报文的目的地址字段,作为SRv6报文的目的地址,则目的地址字段为C4::50。
报文在PE1节点封装了SRv6报头之后,首先查找目的地址字段中的C4::50在PE1的本地SID列表中是否匹配,查找结果为有匹配;即PE1节点需要根据共用SID执行随路OAM功能,将节点的本地节点标识记录在报文中。报文在PE1处按照共用SID的Loc字段,即C4::/64查表转发。
报文在到达了P1节点之后,首先查找目的地址中的C4::50在P1的本地SID列表中是否匹配,查找结果为有匹配,即P1节点需要根据共用SID执行随路OAM功能,将节点的本地节点标识记录在报文中。报文在P1处按照共用SID的Loc字段,即C4::/64查表转发。
报文在到达了P2节点之后,首先查找目的地址字段中的C4::50在P2的本地SID列表中是否匹配,查找结果为有匹配,即P2节点需要根据共用SID执行随路OAM功能,将节点的本地节点标识记录在报文中。报文在P2处按照共用SID的Loc字段,即C4::/64查表转发。
报文在到达了PE2节点之后,首先查找目的地址字段中的C4::50在PE2的本地SID列表中是否匹配,查找结果为没有匹配。将SL值减一,将新的SL在SRH中对应的SID,即C4::40复制到目的地址字段。然后查找目的地址字段中的C4::40在本地SID列表中是否匹配,查找结果为有匹配,即报文需要在PE2节点剥去外层的SRv6头部,并执行二层转发,即PE2节点为出口节点,剥去SRv6的封装,同时,可以从SRv6报头中提取报文转发路径上经过的节点的节点标识(例如,图7中的PE1,P1,P2),从而获得节点确切的转发路径,用于网络诊断等目的。
第三个例子
第三个例子以第一功能为查找转发表(forwarding information database,FIB),转发路径上的节点本地保存的是SID列表为例进行描述。该例子中转发路径上的部分节点需要执行查找转发表的功能。前述的第一节点可以是转发路径上的任何一个节点。
如图8所示的网络拓扑图中,P1节点,P2节点,P3节点和P4节点两两之间互连,PE1节点连接P1节点和P3节点,PE2节点连接P2节点和P4节点,CE1节点连接PE1节点,CE2节点连接PE2节点。数据流从PE1节点进入,从PE2节点流出,PE1节点,PE2节点,P1节点,P2节点,P3节点和P4节点上针对不同的数据流种类(本实施例中举语音数据流和视频数据流为例)适用不同的FIB,对应不同的拓扑。PE1节点的IPv6地址前缀为C1::/64,P1节点的IPv6地址前缀为C2::/64,P2节点的IPv6地址前缀为C3::/64,P3节点的IPv6地址前缀为C4::/64,P4节点的IPv6地址前缀为C5::/64,PE2节点的IPv6地址前缀为C6::/64。
在实施例中,共用SID为C6::20:1,即Loc字段为C6,长度为64bit,指的是目的节点的地址前缀为C6::/64,Funct字段为20:1,长度为64bit,为需要在沿途节点上执行的网络功能的标识,其中20为查找指定转发表功能的标识,本申请中,将查找指定转发表的功能用“E.T”来表示;1为arg字段,即参数字段,指的是查找哪个FIB,1指的是语音数据流拓扑的FIB,功能的标识与参数合起来为Funct字段。
PE1节点上的本地SID列表中存储了C1::0等SID,其功能是“本端(End)”,指的是最基本的功能,即代表本端点。同样,P1节点,P2节点,P3节点,P4节点和PE2节点的本地SID列表中也存储了对应的SID,分别为C2::0,C3::0,C4::0,C5::0和C6::0,其功能为代表本端点;并且PE2节点上存储C6::40,其功能是“End.DX2”,指的是剥去外层的SRv6头部(包括外层IPv6报头和SRH),并执行二层转发,此功能专用于SRv6的出口节点,用于剥掉SRv6的封装,还原原始的IPv6报文。同时,PE1节点,P1节点,P2节点,P3节点和P4节点上分别存储了共用SID,即C6::20:1,PE1节点,P1节点,P2节点,P3节点和P4节点需要在数据流于本节点转发时执行查找指定转发表,指定的转发表为FIB_1,即语音数据流拓扑的FIB。
PE1节点,P1节点,P2节点,P3节点,P4节点和PE2节点需要向其他节点通告本地SID列表中的SID地址前缀,但共用SID的地址前缀仅由目的节点通告,其他节点的本地SID列表中虽然包含共用SID,但不进行通告,即PE1节点通告地址前缀C1::/64,P1节点通告地址前缀C2::/64,P2节点通告地址前缀C3::/64,P3节点通告地址前缀C4::/64,P4节点通告地址前缀C5::/64,PE2节点通告地址前缀C6::/64。
报文在PE1节点处封装SRv6的报头。首先构建SRH,将共用SID置于SRH的SID栈的栈顶,将PE2的SID置于共用SID的后面,即SRH的内容为C6::20:1,C6::40。根据SRv6的外层IPv6报头的目的地址的生成规则,将SRH的栈顶SID,即共用SID复制到报文的目的地址字段,作为SRv6报文的目的地址,则目的地址字段为C6::20:1。
报文在PE1节点封装了SRv6报头之后,首先查找目的地址字段中的C6::20:1在PE1的本地SID列表中是否匹配,查找结果为有匹配,即PE1节点需要根据共用SID执行查找指定转发表功能,所查找的FIB为语音数据流拓扑对应的FIB。报文在PE1处按照共用SID的Loc字段,即C6::/64查FIB_1转发。
按照语音数据流对应的拓扑,报文在到达了P1节点之后,首先查找目的地址字段中的C6::20:1在P1的本地SID列表中是否匹配,查找结果为有匹配,即P1节点需要根据共用SID执行查找指定转发表功能,所查找的FIB为语音数据流拓扑对应的FIB。报文在P1处按照共用SID的Loc字段,即C6::/64查FIB_1表转发。
按照语音数据流对应的拓扑,报文在到达了P2节点之后,首先查找目的地址字段中的C6::20:1在P2的本地SID列表中是否匹配,查找结果为有匹配,即P2节点需要根据共用SID执行查找指定转发表功能,所查找的FIB为语音数据流拓扑对应的FIB。报文在P1处按照共用SID的Loc字段,即C6::/64查FIB_1表转发。
报文在到达了PE2节点之后,首先查找目的地址字段中的C6::20:1在PE2的本地SID列表中是否匹配,查找结果为没有匹配。将SL值减一,将新的SL在SRH中对应的SID,即C6::40复制到目的地址字段。然后查找目的地址字段中的C6::40在本地SID列表中是否匹配,查找结果为有匹配,即报文需要在PE2节点剥去外层的SRv6头部,并执行二层转发,即PE2节点为出口节点,剥去SRv6的封装。
第四个例子,
第四个例子以第一功能为流量限速,转发路径上的节点本地保存的是功能标识列表为例进行描述。功能标识列表存储在节点本地,例如,功能标识列表如表2所示,列表内容为本节点可以支持的需要在沿途节点执行的网络功能的标识码,此标识码应该为全网统一的,即应该为每一种网络功能定一个全网统一的标识码,如表2所示,比如流量限速的标识码为100,OAM的标识码为50,查找指定转发表(E.T)的标识码为20。有些网络功能不是适合在沿途节点执行的网络功能,比如解封装等。如图9所示,PE1节点上的本地SID列表中存储了C1::0等SID,其功能是“本端”,指的是最基本的功能,即代表本端点。同样,P1节点和P2节点的本地SID列表中也存储了对应的SID,分别为C2::0和C3::0,其功能为代表本端点;并且PE2节点上存储C4::40,其功能是“E.DX2”,指的是剥去外层的SRv6头部(包括外层IPv6报头和SRH),并执行二层转发,此功能专用于SRv6的出口节点,用于剥掉SRv6的封装,还原原始的IPv6报文。
PE1节点,P1节点,P2节点和PE2节点需要向其他节点通告本地SID列表中的SID的地址前缀,即PE1节点通告地址前缀C1::/64,P1节点通告地址前缀C2::/64,P2节点通告地址前缀C3::/64,PE2节点通告地址前缀C4::/64。
PE1节点,P1节点,P2节点和PE2节点维护并通过IGP向其他节点通告本地功能列表。其中PE1节点,P1节点和P2节点的本地功能列表内容为流量限速、iOAM、E.T的标识码,即100,50和20。
如图9所示,数据流从PE1节点进入,依次经过P1节点,P2节点,最终到达PE2节点,需要在PE1,P1和P2节点上执行流量限速功能。PE1节点的IPv6地址前缀为C1::/64,P1节点的IPv6地址前缀为C2::/64,P2节点的IPv6地址前缀为C3::/64,PE2节点的IPv6地址前缀为C4::/64。
报文在PE1节点处封装SRv6的报头。首先构建SRH,SRH栈顶的SID的Loc字段为PE2节点的地址前缀,Funct字段为流量限速功能的标识码100,同时携带arg字段,即参数字段500,指的是流量限制为500KB/s。将PE2的本地SID列表中的SID置于栈顶SID的后面,即SRH的内容为C4::100:500,C4::40。根据SRv6的外层IPv6报头的目的地址的生成规则,将SRH的栈顶SID复制到报文的目的地址字段,作为SRv6报文的目的地址,则目的地址字段为C4::100:500。
报文在PE1节点封装了SRv6报头之后,首先查找目的地址C4::100:500中的Funct字段100在本地功能列表中是否匹配,查找结果为有匹配,即数据流需要在沿途执行流量限速功能,并且PE1节点支持流量限速功能。流量限制为500KB/s,报文在PE1处按照目的地址字段的SID的Loc字段,即C4::/64查表转发。
报文在到达了P1节点之后,首先查找目的地址C4::100:500中的Funct字段100在本地功能列表中是否匹配,查找结果为有匹配,即数据流需要在沿途执行流量限速功能,并且P1节点支持流量限速功能。流量限制为500KB/s,报文在P1处按照目的地址字段的SID的Loc字段,即C4::/64查表转发。
报文在到达了P2节点之后,首先查找目的地址C4::100:500中的Funct字段100在本地功能列表中是否匹配,查找结果为有匹配,即数据流需要在沿途执行流量限速功能,并且P2节点支持流量限速功能。流量限制为500KB/s,报文在P2处按照目的地址字段的SID的Loc字段,即C4::/64查表转发。
报文在到达了PE2节点之后,首先查找目的地址C4::100:500中的Funct字段100在本地功能列表中是否匹配,查找结果为没有匹配。将SL值减一,将新的SL在SRH中对应的SID,即C4::40复制到目的地址字段。然后查找目的地址字段中的C4::40在本地SID列表中是否匹配,查找结果为有匹配,即报文需要在PE2节点剥去外层的SRv6头部,并执行二层转发,即PE2节点为出口节点,剥去SRv6的封装。
在第四个例子中,将报文的SRH中的栈顶SID(目的地址SID)的Funct字段部分替换为50,就可以实现类似于第二个例子中的随路OAM功能;替换为20,就可以实现类似于第三个例子中的查找指定转发表的功能。
以上结合图1至图9,详细得描述了本申请实施例提供的用于处理报文的方法,下面结合图10至图11,详细描述本申请实施例提供的用于处理报文的装置。
图10示出了本申请实施例提供用于处理报文的装置400的示意性框图,该装置400可以对应上述方法中描述的第一节点,也可以对应第一节点的芯片或者组件,并且,该装置400中各个模块或者单元分别可以用于执行上述方法中第一节点所执行的各动作或处理过程,如图10所示,该用于处理报文的装置400可以包括第一处理单元410和第二处理单元420。
第一处理单元410,用于确定第一报文,所述第一报文的报文头和段路由头部SRH都包括共用段标识符SID,所述共用SID由第一地址标识和第一功能标识组成,所述第一地址标识用于标识终结节点的地址信息,所述第一功能标识用于标识至少两个节点需要执行的相同的第一功能;
第二处理单元420,用于根据第一对应关系以及所述第一功能标识确定执行所述第一功能,所述第一对应关系用于指示至少一个功能标识与至少一个功能一一对应。
作为一个可选实施例,所述第一对应关系具体用于指示至少一个SID与至少一个功能一一对应,所述至少一个SID包括所述共用SID;
所述第二处理单元420具体用于:根据所述第一对应关系以及所述共用SID确定执行所述第一功能。
作为一个可选实施例,所述第二处理单元420具体用于:
确定所述第一对应关系中是否存在所述第一功能标识;
若所述第一对应关系中存在所述第一功能标识,根据所述第一对应关系以及所述第一功能标识确定执行所述第一功能。
作为一个可选实施例,所述第一处理单元410或所述第二处理单元420还用于:若所述第一对应关系中存在所述第一功能标识,确定所述SRH中的剩余段SL的值不变。
作为一个可选实施例,所述第二处理单元420具体用于:确定所述SRH中的剩余段SL的值是否大于0;若所述SL的值大于0,在所述第一对应关系中确定是否存在所述第一功能标识。
作为一个可选实施例,所述第一功能为流量限速、操作管理维护或查找转发表。
作为一个可选实施例,所述装置还包括:
第一收发单元,用于在所述根据本地的第一对应关系以及所述第一功能标识确定执行所述第一功能之后,按照最短路径向第二节点转发所述第一报文,所述至少两个节点包括所述装置和所述第二节点。
作为一个可选实施例,所述装置为源节点,所述装置还包括:
第二收发单元,用于接收控制器发送的封装配置信息,所述封装配置信息包括所述共用SID;
所述第一处理单元具体用于:根据所述封装配置信息生成并封装所述第一报文。
作为一个可选实施例,所述装置为终结节点,所述装置还包括:
第三收发单元,用于接收上一跳节点发送的所述第一报文;
所述第一处理单元或所述第二处理单元还用于:在所述根据第一对应关系以及所述第一功能标识确定执行所述第一功能之后,解封装所述第一报文。
应理解,装置400中各单元执行上述相应步骤的具体过程请参照前文中结合图1-图9的方法实施例的描述,为了简洁,这里不加赘述。
上述各个方案的装置400具有实现上述方法中第一节点执行的相应步骤的功能;功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块;例如发送单元可以由发射机替代,接收单元可以由接收机替代,其它单元,如确定单元等可以由处理器替代,分别执行各个方法实施例中的收发操作以及相关的处理操作。
在具体实现过程中,处理器可用于进行,例如但不限于,基带相关处理,收发器可用于进行,例如但不限于,射频收发。上述器件可以分别设置在彼此独立的芯片上,也可以至少部分的或者全部的设置在同一块芯片上。例如,处理器可以进一步划分为模拟基带处理器和数字基带处理器,其中模拟基带处理器可以与收发器集成在同一块芯片上,数字基带处理器可以设置在独立的芯片上。随着集成电路技术的不断发展,可以在同一块芯片上集成的器件越来越多,例如,数字基带处理器可以与多种应用处理器(例如但不限于图形处理器,多媒体处理器等)集成在同一块芯片之上。这样的芯片可以称为系统芯片(system onchip,SOC)。将各个器件独立设置在不同的芯片上,还是整合设置在一个或者多个芯片上,往往取决于产品设计的具体需要。本申请实施例对上述器件的具体实现形式不做限定。
可以理解的是,对于前述实施例中所涉及的处理器可以通过具有处理器和通信接口的硬件平台执行程序指令来分别实现其在本申请前述实施例中任一设计中涉及的功能,基于此,如图11所示,本申请实施例提供了一种用于处理报文的装置500的示意性框图,装置500包括:处理器510、收发器520和存储器530。其中,处理器510、收发器520和存储器530通过内部连接通路互相通信,该存储器530用于存储指令,该处理器510用于执行该存储器530存储的指令,以控制该收发器520发送信号和/或接收信号。
其中,处理器510用于确定第一报文,所述第一报文的报文头和段路由头部SRH都包括共用段标识符SID,所述共用SID由第一地址标识和第一功能标识组成,所述第一地址标识用于标识终结节点的地址信息,所述第一功能标识用于标识至少两个节点需要执行的相同的第一功能;处理器510还用于根据第一对应关系以及所述第一功能标识确定执行所述第一功能,所述第一对应关系用于指示至少一个功能标识与至少一个功能一一对应,所述至少一个功能包括所述第一功能。
应理解,本申请实施例图10中的装置可以通过图11中的装置500来实现,并且可以用于执行上述方法实施例中第一设备对应的各个步骤和/或流程。
可以理解的是,本申请实施例描述的各种设计涉及的方法,流程,操作或者步骤,能够以一一对应的方式,通过计算机软件,电子硬件,或者计算机软件和电子硬件的结合来一一对应实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件,比如,考虑通用性好成本低软硬件解耦等方面,可以采纳执行程序指令的方式来实现,又比如,考虑系统性能和可靠性等方面,可以采纳使用专用电路来实现。普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,此处不做限定。
根据本申请实施例提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行上述实施例中的方法。本申请中的各个实施例也可以互相结合。
根据本申请实施例提供的方法,本申请还提供一种计算机可读介质,该计算机可读解释存储有程序代码,当该程序代码在计算机上运行时,使得该计算机执行上述实施例中的方法。
在本申请实施例中,应注意,本申请实施例上述的方法实施例可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(Field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。RAM有多种不同的类型,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DRRAM)。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请中出现的术语“第一”、“第二”等仅是为了区分不同的对象,“第一”、“第二”本身并不对其修饰的对象的实际顺序或功能进行限定。本申请中被描述为“示例性的”,“示例”,“例如”,“可选地”或者“在某些实现方式中”的任何实施例或设计方案都不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用这些词旨在以具体方式呈现相关概念。
在本申请中可能出现的对各种消息/信息/设备/网元/系统/装置/操作/等各类客体进行了赋名,可以理解的是,这些具体的名称并不构成对相关客体的限定,所赋名称可随着场景,语境或者使用习惯等因素而变更,对本申请中技术术语的技术含义的理解,应主要从其在技术方案中所体现/执行的功能和技术效果来确定。
上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品可以包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁盘)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (17)

1.一种用于处理报文的方法,其特征在于,包括:
第一节点确定第一报文,所述第一报文的报文头和段路由头部SRH都包括共用段标识符SID,所述共用SID由第一地址标识和第一功能标识组成,所述第一地址标识用于标识终结节点的地址信息,所述第一功能标识用于标识至少两个节点需要执行的相同的第一功能;
所述第一节点根据第一对应关系以及所述第一功能标识确定执行所述第一功能,所述第一对应关系用于指示至少一个功能标识与至少一个功能一一对应。
2.根据权利要求1所述的方法,其特征在于,所述第一对应关系具体用于指示至少一个SID与至少一个功能一一对应,所述至少一个SID包括所述共用SID;
其中,所述第一节点根据第一对应关系以及所述第一功能标识确定执行所述第一功能,包括:
所述第一节点根据所述第一对应关系以及所述共用SID确定执行所述第一功能。
3.根据权利要求1或2所述的方法,其特征在于,所述第一节点根据第一对应关系以及所述第一功能段标识确定执行所述第一功能,包括:
所述第一节点确定所述第一对应关系中是否存在所述第一功能标识;
若所述第一对应关系中存在所述第一功能标识,所述第一节点根据所述第一对应关系以及所述第一功能标识确定执行所述第一功能。
4.根据权利要求3所述的方法,其特征在于,若所述第一对应关系中存在所述第一功能标识,所述方法还包括:
所述第一节点确定所述SRH中的剩余段SL的值不变。
5.根据权利要求3或4所述的方法,其特征在于,所述第一节点确定所述第一对应关系中是否存在所述第一功能标识,包括:
所述第一节点确定所述SRH中的剩余段SL的值是否大于0;
若所述SL的值大于0,所述第一节点在所述第一对应关系中确定是否存在所述第一功能标识。
6.根据权利要求1至5中任一项所述的方法,其特征在于,在所述第一节点根据本地的第一对应关系以及所述第一功能标识确定执行所述第一功能之后,所述方法还包括:
所述第一节点按照最短路径向第二节点转发所述第一报文,所述至少两个节点包括所述第一节点和所述第二节点。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一节点为源节点,所述第一节点确定第一报文,包括:
所述第一节点接收控制器发送的封装配置信息,所述封装配置信息包括所述共用SID;
所述第一节点根据所述封装配置信息生成并封装所述第一报文。
8.根据权利要求1至4中任一项所述的方法,其特征在于,所述第一节点为终结节点,所述第一节点确定第一报文,包括:
所述第一节点接收上一跳节点发送的所述第一报文;
在所述第一节点根据第一对应关系以及所述第一功能标识确定执行所述第一功能之后,所述方法还包括:
所述第一节点解封装所述第一报文。
9.一种用于处理报文的装置,其特征在于,包括:
第一处理单元,用于确定第一报文,所述第一报文的报文头和段路由头部SRH都包括共用段标识符SID,所述共用SID由第一地址标识和第一功能标识组成,所述第一地址标识用于标识终结节点的地址信息,所述第一功能标识用于标识至少两个节点需要执行的相同的第一功能;
第二处理单元,用于根据第一对应关系以及所述第一功能标识确定执行所述第一功能,所述第一对应关系用于指示至少一个功能标识与至少一个功能一一对应。
10.根据权利要求9所述的装置,其特征在于,所述第一对应关系具体用于指示至少一个SID与至少一个功能一一对应,所述至少一个SID包括所述共用SID;
所述第二处理单元具体用于:根据所述第一对应关系以及所述共用SID确定执行所述第一功能。
11.根据权利要求9或10所述的装置,其特征在于,所述第二处理单元具体用于:
确定所述第一对应关系中是否存在所述第一功能标识;
若所述第一对应关系中存在所述第一功能标识,根据所述第一对应关系以及所述第一功能标识确定执行所述第一功能。
12.根据权利要求11所述的装置,其特征在于,所述第一处理单元或所述第二处理单元还用于:
若所述第一对应关系中存在所述第一功能标识,确定所述SRH中的剩余段SL的值不变。
13.根据权利要求11或12所述的装置,其特征在于,所述第二处理单元具体用于:
确定所述SRH中的剩余段SL的值是否大于0;
若所述SL的值大于0,在所述第一对应关系中确定是否存在所述第一功能标识。
14.根据权利要求9至13中任一项所述的装置,其特征在于,所述装置还包括:
第一收发单元,用于在所述根据本地的第一对应关系以及所述第一功能标识确定执行所述第一功能之后,按照最短路径向第二节点转发所述第一报文,所述至少两个节点包括所述装置和所述第二节点。
15.根据权利要求9至14中任一项所述的装置,其特征在于,所述装置为源节点,所述装置还包括:
第二收发单元,用于接收控制器发送的封装配置信息,所述封装配置信息包括所述共用SID;
所述第一处理单元具体用于:根据所述封装配置信息生成并封装所述第一报文。
16.根据权利要求9至13中任一项所述的装置,其特征在于,所述装置为终结节点,所述装置还包括:
第三收发单元,用于接收上一跳节点发送的所述第一报文;
所述第一处理单元或所述第二处理单元还用于:在所述根据第一对应关系以及所述第一功能标识确定执行所述第一功能之后,解封装所述第一报文。
17.一种用于处理报文的装置,其特征在于,包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于从读取并执行所述存储器中存储的所述计算机程序,以执行如权利要求1至8中任一项所述的方法。
CN201910089083.9A 2019-01-30 2019-01-30 用于处理报文的方法和装置 Active CN111510386B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910089083.9A CN111510386B (zh) 2019-01-30 2019-01-30 用于处理报文的方法和装置
EP20748532.7A EP3742685B1 (en) 2019-01-30 2020-01-15 Packet processing method and device
PCT/CN2020/072174 WO2020156166A1 (zh) 2019-01-30 2020-01-15 用于处理报文的方法和装置
US17/002,160 US11349754B2 (en) 2019-01-30 2020-08-25 Packet processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910089083.9A CN111510386B (zh) 2019-01-30 2019-01-30 用于处理报文的方法和装置

Publications (2)

Publication Number Publication Date
CN111510386A true CN111510386A (zh) 2020-08-07
CN111510386B CN111510386B (zh) 2023-06-20

Family

ID=71842394

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910089083.9A Active CN111510386B (zh) 2019-01-30 2019-01-30 用于处理报文的方法和装置

Country Status (4)

Country Link
US (1) US11349754B2 (zh)
EP (1) EP3742685B1 (zh)
CN (1) CN111510386B (zh)
WO (1) WO2020156166A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021057683A1 (zh) * 2019-09-27 2021-04-01 华为技术有限公司 一种报文处理方法及装置
CN113783789A (zh) * 2021-09-29 2021-12-10 新华三信息安全技术有限公司 一种报文限速方法及装置
CN115022415A (zh) * 2022-05-23 2022-09-06 烽火通信科技股份有限公司 一种多层sid报文终结方法及装置
WO2023134631A1 (zh) * 2022-01-13 2023-07-20 大唐移动通信设备有限公司 数据包处理方法、装置及网络设备

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114531386B (zh) * 2020-11-23 2023-05-09 中国移动通信有限公司研究院 报文转发的方法、装置、设备及可读存储介质
CN113328937B (zh) * 2021-04-08 2022-05-24 新华三技术有限公司 分布式聚合的实现方法及装置
WO2023272498A1 (zh) * 2021-06-29 2023-01-05 新华三技术有限公司 一种报文转发方法、装置、网络节点及存储介质
CN117134925A (zh) * 2022-05-18 2023-11-28 中国移动通信有限公司研究院 一种网络编程技术处理方法、系统及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016008322A1 (zh) * 2014-07-18 2016-01-21 华为技术有限公司 一种路径连通性检测方法及装置
CN105471737A (zh) * 2014-09-05 2016-04-06 华为技术有限公司 一种标签栈的压缩方法及装置、标签栈的解压缩方法及装置
CN106411738A (zh) * 2015-07-30 2017-02-15 中兴通讯股份有限公司 Ipv6报文封装的处理方法和装置
US20170054626A1 (en) * 2015-08-21 2017-02-23 Cisco Technology, Inc. Distribution of segment identifiers in network functions virtualization and software defined network environments
CN106487677A (zh) * 2015-09-02 2017-03-08 华为技术有限公司 运营商边缘设备及数据转发方法
WO2017141081A1 (en) * 2016-02-15 2017-08-24 Telefonaktiebolaget Lm Ericsson (Publ) Techniques for exposing maximum node and/or link segment identifier depth utilizing is-is
CN107925624A (zh) * 2016-07-01 2018-04-17 华为技术有限公司 基于业务功能链sfc的报文转发方法、装置和系统
CN108156077A (zh) * 2016-12-02 2018-06-12 中兴通讯股份有限公司 一种基于IPv6数据平面的分段路由转发方法及装置
US10038572B1 (en) * 2015-09-11 2018-07-31 Amazon Technologies, Inc. Programmable tunnel creation for hardware-based packet processing
US10158558B1 (en) * 2017-01-19 2018-12-18 Cisco Technology, Inc. Segment routing of packets according to a multicast distribution tree in a network

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089240B2 (en) * 2000-04-06 2006-08-08 International Business Machines Corporation Longest prefix match lookup using hash function
US20160335296A1 (en) * 2015-05-14 2016-11-17 Blue Sage Communications, Inc. Memory System for Optimized Search Access
US10506083B2 (en) * 2017-06-27 2019-12-10 Cisco Technology, Inc. Segment routing gateway storing segment routing encapsulating header used in encapsulating and forwarding of returned native packet
EP3643022B1 (en) * 2017-07-14 2023-02-15 Huawei Technologies Co., Ltd. A method for establishing segment routing for ipv6 tunnel
CN107566272B (zh) * 2017-10-17 2021-10-12 新华三技术有限公司 转发表建立方法及数据转发方法
US11019075B2 (en) * 2018-06-26 2021-05-25 Cisco Technology, Inc. Providing processing and network efficiencies in protecting internet protocol version 6 segment routing packets and functions using security segment identifiers
US10812374B2 (en) * 2018-09-21 2020-10-20 Cisco Technology, Inc. Segment routing with fast reroute for container networking

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016008322A1 (zh) * 2014-07-18 2016-01-21 华为技术有限公司 一种路径连通性检测方法及装置
CN105471737A (zh) * 2014-09-05 2016-04-06 华为技术有限公司 一种标签栈的压缩方法及装置、标签栈的解压缩方法及装置
CN106411738A (zh) * 2015-07-30 2017-02-15 中兴通讯股份有限公司 Ipv6报文封装的处理方法和装置
US20170054626A1 (en) * 2015-08-21 2017-02-23 Cisco Technology, Inc. Distribution of segment identifiers in network functions virtualization and software defined network environments
CN106487677A (zh) * 2015-09-02 2017-03-08 华为技术有限公司 运营商边缘设备及数据转发方法
US10038572B1 (en) * 2015-09-11 2018-07-31 Amazon Technologies, Inc. Programmable tunnel creation for hardware-based packet processing
WO2017141081A1 (en) * 2016-02-15 2017-08-24 Telefonaktiebolaget Lm Ericsson (Publ) Techniques for exposing maximum node and/or link segment identifier depth utilizing is-is
CN109076018A (zh) * 2016-02-15 2018-12-21 瑞典爱立信有限公司 利用is-is暴露最大节点和/或链路分段标识符深度的技术
CN107925624A (zh) * 2016-07-01 2018-04-17 华为技术有限公司 基于业务功能链sfc的报文转发方法、装置和系统
CN108156077A (zh) * 2016-12-02 2018-06-12 中兴通讯股份有限公司 一种基于IPv6数据平面的分段路由转发方法及装置
US10158558B1 (en) * 2017-01-19 2018-12-18 Cisco Technology, Inc. Segment routing of packets according to a multicast distribution tree in a network

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MARCO POLVERINI;ANTONIO CIANFRANI;MARCO LISTANTI: "Interface Counters in Segment Routing v6: a powerful instrument for Traffic Matrix Assessment", 《 IEEE/IEE ELECTRONIC LIBRARY (IEL) 数据库》 *
杨水根等: "基于身份与位置分离体系结构的列车通信方案研究", 《铁道学报》 *
沈少辉: "基于SDN的分段路由技术研究", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021057683A1 (zh) * 2019-09-27 2021-04-01 华为技术有限公司 一种报文处理方法及装置
CN113783789A (zh) * 2021-09-29 2021-12-10 新华三信息安全技术有限公司 一种报文限速方法及装置
CN113783789B (zh) * 2021-09-29 2023-03-31 新华三信息安全技术有限公司 一种报文限速方法及装置
WO2023134631A1 (zh) * 2022-01-13 2023-07-20 大唐移动通信设备有限公司 数据包处理方法、装置及网络设备
CN115022415A (zh) * 2022-05-23 2022-09-06 烽火通信科技股份有限公司 一种多层sid报文终结方法及装置
CN115022415B (zh) * 2022-05-23 2023-08-25 烽火通信科技股份有限公司 一种多层sid报文终结方法及装置

Also Published As

Publication number Publication date
US20200389391A1 (en) 2020-12-10
EP3742685A4 (en) 2020-12-30
EP3742685A1 (en) 2020-11-25
CN111510386B (zh) 2023-06-20
WO2020156166A1 (zh) 2020-08-06
US11349754B2 (en) 2022-05-31
EP3742685B1 (en) 2023-05-31

Similar Documents

Publication Publication Date Title
CN111510386A (zh) 用于处理报文的方法和装置
CN110661711B (zh) 生成标签转发表的方法、报文发送方法、装置及设备
KR20220062335A (ko) Bier 포워딩 테이블 엔트리를 확립하기 위한 방법, 장치 및 시스템
US6968393B1 (en) Method and apparatus for an attribute oriented routing update
CN111669330B (zh) 一种bier报文的发送方法和装置
CN113645136B (zh) 网络中报文转发的方法、网络节点、网络系统
CN111385209B (zh) 一种报文处理方法、报文转发方法、装置及设备
CN114365464A (zh) 一种在sr网络中转发报文的方法、设备和系统
CN112187648B (zh) 组播报文转发方法及装置
CN113411258A (zh) 报文处理方法及装置
WO2022184169A1 (zh) 报文转发方法、系统、存储介质及电子装置
KR20220047854A (ko) Sr 네트워크에서의 패킷 포워딩 방법, 장치 및 시스템
CN112468396B (zh) 主机网络性能需求可编程化的方法、设备和系统
CN113472718A (zh) 一种业务处理方法、装置、设备及存储介质
US20190199633A1 (en) Method and apparatus for forwarding in information centric networking
KR102579060B1 (ko) 라우팅 정보 전송 방법, 패킷 전송 방법 및 관련 장치
CN103986654A (zh) 一种lsp生成方法和设备
EP3852320A1 (en) Message generation method and apparatus, and message processing method and apparatus
CN113630316A (zh) 一种数据传输方法及通信装置
WO2022228090A1 (zh) 路径学习方法、装置、业务节点及存储介质
CN113542126B (zh) 广义SRv6全路径压缩方法及装置
CN113132230A (zh) 发送报文的方法、设备及计算机存储介质
CN116827860A (zh) 一种SRv6报文传输方法、装置、节点以及存储介质
CN112511444A (zh) 一种组播流量传输方法、装置、通信节点及存储介质
CN116455810A (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