CN115348216A - 报文转发的方法和相关装置 - Google Patents
报文转发的方法和相关装置 Download PDFInfo
- Publication number
- CN115348216A CN115348216A CN202110528002.8A CN202110528002A CN115348216A CN 115348216 A CN115348216 A CN 115348216A CN 202110528002 A CN202110528002 A CN 202110528002A CN 115348216 A CN115348216 A CN 115348216A
- Authority
- CN
- China
- Prior art keywords
- message
- period
- cycle
- packet
- correction information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 148
- 238000012937 correction Methods 0.000 claims abstract description 209
- 238000013507 mapping Methods 0.000 claims abstract description 118
- 230000000737 periodic effect Effects 0.000 claims description 69
- 238000004891 communication Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 37
- 230000004048 modification Effects 0.000 claims description 16
- 238000012986 modification Methods 0.000 claims description 16
- 230000008878 coupling Effects 0.000 claims description 6
- 238000010168 coupling process Methods 0.000 claims description 6
- 238000005859 coupling reaction Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 38
- 230000005540 biological transmission Effects 0.000 description 22
- 238000011144 upstream manufacturing Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 230000003111 delayed effect Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 238000005538 encapsulation Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 101100256916 Caenorhabditis elegans sid-1 gene Proteins 0.000 description 1
- 101100256918 Caenorhabditis elegans sid-2 gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/56—Queue scheduling implementing delay-aware scheduling
- H04L47/562—Attaching a time tag to queues
-
- 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/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/56—Queue scheduling implementing delay-aware scheduling
-
- 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/38—Flow based routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种报文转发的方法和相关装置。该方法可以包括:第一设备接收第二设备在第二周期发送的第一报文;第一设备根据第一报文对应的周期修正信息和周期映射关系确定第一报文对应的目标周期,并在第一报文对应的目标周期转发第一报文。其中,周期映射关系包括第一周期和第二周期之间的映射关系,第一周期表示基于周期映射关系确定的转发周期。通过引入周期修正信息,即在基于周期映射关系确定的转发周期上修正(或者说调整)的周期的信息,可以灵活调整实际转发报文的时间,从而可以尽可能地保证端到端的确定性时延和抖动。
Description
技术领域
本申请涉及通信技术领域,更具体地,涉及一种报文转发的方法和相关装置。
背景技术
很多场景,如超高可靠性超低时延通信(ultra-reliable low-latencycommunication,URLLC)、工业互联网、智能工厂等,对网络传输的可靠性有着明确的要求,要求网络以极高概率(如99.99%甚至更高)保证业务端到端不丢包。常用的一种提供可靠性的保障方法是,通过双发选收(或者多发选收)来尽可能地避免因为节点或链路故障、线路误码等原因导致的丢包和业务中断。
如何可以尽可能地减小甚至消除多条路径的时延差,是亟需解决的问题。
发明内容
本申请提供一种报文转发的方法和相关装置,可以灵活调整转发报文的时间,尽可能地减小甚至消除多条路径的时延差。
第一方面,提供了一种报文转发的方法。该方法可以由通信设备执行,或者,也可以由用于通信设备的芯片或电路执行,本申请对此不作限定。为了便于描述,下面以由第一设备执行为例进行说明。
该方法可以包括:第一设备接收来自第二设备的第一报文;第一设备根据第一报文对应的周期修正信息和周期映射关系确定第一报文对应的目标周期,其中,周期映射关系包括第一周期和第二周期之间的映射关系,第一周期表示基于周期映射关系确定的转发周期,第二周期表示第二设备发送第一报文的周期;第一设备在第一报文对应的目标周期转发第一报文。
周期修正信息,可以理解为,在基于周期映射关系确定的转发周期上修正(或者说调整)的周期的信息,即目标周期相对于第一周期修正(或者说调整)的周期的信息。
基于上述技术方案,第一设备实际发送报文的目标周期是根据周期映射关系以及周期修正信息共同确定的。通过引入周期修正信息,即在基于周期映射关系确定的转发周期上修正(或者说调整)的周期的信息,可以灵活调整实际转发报文的时间。这样由于考虑了周期修正信息,可以降低甚至不会发生报文乱序、周期内数据溢出的情况,可以尽可能地保证端到端的确定性时延和抖动。此外,各个节点(如第一设备)可以各自根据周期映射关系和周期修正信息计算目标周期,减轻控制面设备或者首跳节点计算路径上各个节点的目标周期的计算负担,降低规划的复杂性。
结合第一方面,在第一方面的某些实现方式中,方法还包括:第一设备还接收第二设备在第二周期发送的第二报文;第一设备在第二报文对应的目标周期转发第二报文,第二报文对应的目标周期和第一报文对应的目标周期不同。
示例地,第一报文对应的目标周期是根据第二报文对应的周期修正信息和周期映射关系确定的,或者,第二报文对应的目标周期是根据周期映射关系确定的。
基于上述技术方案,对于第一设备来说,来自同一周期的不同报文(如第一报文和第二报文),由于考虑了周期修正信息,所以不同报文实际的目标周期可能是不同的。
结合第一方面,在第一方面的某些实现方式中,第一设备接收的来自第二设备的第一报文中携带第二周期。
结合第一方面,在第一方面的某些实现方式中,第一设备接收的来自第二设备的第一报文中携带第二周期和第一报文对应的周期修正信息。
基于上述技术方案,上游节点(如第二设备)向下游节点(如第一设备)发送报文时,可以将周期修正信息也发送给下游节点,该周期修正信息承载于报文中。下游节点(如第一设备)收到报文后,读取报文中携带的周期修正信息,计算该报文的目标周期,使报文进入到相应的目标周期所对应的队列中等待发送。
结合第一方面,在第一方面的某些实现方式中,第一报文对应的周期修正信息包括第一报文对应的偏移周期数,第一报文对应的偏移周期数为第一报文对应的目标周期相对于第一周期偏移的周期数。
示例地,偏移周期数可以为0,或者也可以大于0。
基于上述技术方案,目标周期是由第一周期和偏移周期数共同确定的。
结合第一方面,在第一方面的某些实现方式中,第一报文对应的目标周期位于第一周期之后。
基于上述技术方案,目标周期相对于第一周期延迟了一个或多个周期。
结合第一方面,在第一方面的某些实现方式中第一报文对应的目标周期是根据下式确定的:Y=X+Δ+O,其中,Y表示第一报文对应的目标周期,X表示第二周期,Δ表示与周期映射关系相关的常数,O表示第一报文对应的偏移周期差。
结合第一方面,在第一方面的某些实现方式中,第一报文对应的周期修正信息是根据以下一项或多项信息确定的:用于传输第一报文的多条路径的时延差、用于传输第一报文的多条路径的时延差需满足的预设范围、多条路径上的可用资源、第一报文在第一周期可用的资源。
基于上述技术方案,报文在各个节点(如第一设备)上的实际发送周期,综合考虑报文在多条路径上传输的时延差和/或报文在多条路径上的可用资源,或者多条路径上的可用资源,等等,从而可以尽可能地保证端到端的确定性时延和抖动。
结合第一方面,在第一方面的某些实现方式中,方法还包括:第一设备本地读取第一报文对应的周期修正信息。
基于上述技术方案,各个节点(如第一设备)可以预先保存或者说维护周期修正信息。在需要使用时,本地读取周期修正信息,直接计算报文的目标周期。
结合第一方面,在第一方面的某些实现方式中,一条或多条流与周期修正信息之间具有对应关系,一条或多条流包括第一报文所在的流。
示例地,第一设备可以预先本地保存或者说维护一条或多条流与周期修正信息之间的对应关系。
基于上述技术方案,流与周期偏移信息之间可以具有一定的对应关系,第一设备可以保存或者维护该对应关系。例如,流1对应周期偏移信息1,流2对应周期偏移信息2,等等。不同流对应的周期偏移数可以相同,也可以不同;或者,不同流在同一路径上各节点处的周期偏移数可以相同,也可以不同,等等对此不作限定。
结合第一方面,在第一方面的某些实现方式中,用于传输第一报文的多条路径上的各个设备与周期修正信息之间具有对应关系。
示例地,第一设备可以预先本地保存或者说维护用于传输第一报文的多条路径上的各个设备与周期修正信息之间的对应关系。
基于上述技术方案,路径上的各节点与周期偏移信息之间可以具有一定的对应关系,第一设备可以保存或者维护该对应关系。例如,路径上的节点1对应周期偏移信息1,路径上的节点2对应周期偏移信息2,等等。
结合第一方面,在第一方面的某些实现方式中,方法还包括:第一设备接收第一报文对应的周期修正信息。
示例地,第一设备可以从控制面设备接收周期修正信息,或者第一设备可以从上游节点(如第二设备)接收周期修正信息。
结合第一方面,在第一方面的某些实现方式中,第一报文对应的周期修正信息包括:第一设备上第一报文对应的周期修正信息,或者,第一设备以及第一设备的一个或多个下游设备上第一报文对应的周期修正信息;第一设备根据第一报文对应的周期修正信息和周期映射关系确定第一报文对应的目标周期,包括:第一设备根据在第一设备上第一报文对应的周期修正信息和周期映射关系确定第一报文对应的目标周期。
示例地,第一设备在第一报文对应的目标周期转发第一报文时,可以将第一设备的一个或多个下游设备上第一报文对应的周期修正信息一起发送,如携带于报文中。
基于上述技术方案,上游节点(如第二设备)向下游节点(如第一设备)发送报文时,可以将一个或多个节点的周期修正信息也发送给下游节点,该周期修正信息承载于报文中。下游节点(如第一设备)收到报文后,识别自身所对应的的周期修正信息,计算该报文的目标周期,使报文进入到相应的目标周期所对应的队列中等待发送。
第二方面,提供了一种报文转发的方法。该方法可以由通信设备执行,或者,也可以由用于通信设备的芯片或电路执行,本申请对此不作限定。为了便于描述,下面以由目标设备执行为例进行说明。
该方法可以包括:目标设备获取第一报文对应的周期修正信息,第一报文对应的周期修正信息用于与周期映射关系确定第一报文对应的目标周期,其中,第一报文对应的目标周期是第一设备转发第一报文的周期,周期映射关系表示第一周期和第二周期之间的映射关系,第二周期表示第二设备向第一设备发送第一报文的周期,第一周期表示基于周期映射关系确定的转发周期;目标设备发送第一报文对应的周期修正信息。
示例地,目标设备,例如可以为控制面节点;或者也可以为首跳节点(即网络入口节点);或者也可以是第二设备。
结合第二方面,在第二方面的某些实现方式中,方法还包括:目标设备获取第二报文对应的周期修正信息,第二报文对应的周期修正信息与第一报文对应的周期修正信息不同,其中,第二报文和第一报文均属于第二设备在第二周期发送给第一设备的报文。
结合第二方面,在第二方面的某些实现方式中,第一报文对应的周期修正信息包括第一报文对应的偏移周期数,第一报文对应的偏移周期数为第一报文对应的目标周期相对于第一周期偏移的周期数。
结合第二方面,在第二方面的某些实现方式中,第一报文对应的目标周期位于第一周期之后。
结合第二方面,在第二方面的某些实现方式中,目标设备获取第一报文对应的周期修正信息,包括:目标设备根据以下一项或多项信息,确定第一报文对应的周期修正信息:用于传输第一报文的多条路径的时延差、用于传输第一报文的多条路径的时延差需满足的预设范围、多条路径上的可用资源、第一报文在第一周期可用的资源。
结合第二方面,在第二方面的某些实现方式中,目标设备为第二设备,方法还包括:第二设备向第一设备发送第一报文,第一报文中携带第二周期,或者,第一报文中携带第二周期和第一报文对应的周期修正信息。
结合第二方面,在第二方面的某些实现方式中,第一报文对应的周期修正信息包括:在第一设备上第一报文对应的周期修正信息,或者,在第一设备以及第一设备的一个或多个下游设备上第一报文对应的周期修正信息。
结合第二方面,在第二方面的某些实现方式中,目标设备为控制面设备,目标设备所述第一报文对应的周期修正信息,包括:控制面设备向第一设备发送第一报文对应的周期修正信息。
第三方面,本申请实施例提供一种报文转发的装置,该装置用于执行上述第一方面或第二方面提供的方法。具体地,该装置可以包括用于执行第一方面或第二方面提供的方法的单元和/或模块,如处理单元和/或通信单元。
在一种实现方式中,该装置为通信设备。当该装置为通信设备时,所述通信单元可以是收发器,或,输入/输出接口;所述处理单元可以是处理器。
在另一种实现方式中,该装置为用于通信设备中的芯片、芯片系统或电路。当该装置为用于通信设备中的芯片、芯片系统或电路时,所述通信单元可以是该芯片、芯片系统或电路上的输入/输出接口、接口电路、输出电路、输入电路、管脚或相关电路等;所述处理单元可以是处理器、处理电路或逻辑电路等。
第四方面,提供一种报文转发的装置,包括处理器。该处理器与存储器耦合,可用于执行存储器中的指令,以实现上述第一方面或第二方面中的方法。可选地,该装置还包括通信接口,处理器与通信接口耦合,通信接口用于与外界进行数据和/或指令的传输。可选地,该装置还包括存储器。
在一种实现方式中,该装置为通信设备。
在另一种实现方式中,该装置为用于通信设备中的芯片、芯片系统或电路。
第五方面,提供一种报文转发的装置,该装置包括:存储器,用于存储程序;处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行上述第一方面或第二方面提供的方法。
在一种实现方式中,该装置为通信设备。
在另一种实现方式中,该装置为用于通信设备中的芯片、芯片系统或电路。
第六方面,本申请提供一种处理器,用于执行上述各方面提供的方法。在执行这些方法的过程中,上述方法中有关发送上述信息和获取/接收上述信息的过程,可以理解为由处理器输出上述信息的过程,以及处理器接收输入的上述信息的过程。在输出上述信息时,处理器将该上述信息输出给收发器,以便由收发器进行发射。该上述信息在由处理器输出之后,还可能需要进行其他的处理,然后才到达收发器。类似的,处理器接收输入的上述信息时,收发器获取/接收该上述信息,并将其输入处理器。更进一步的,在收发器收到该上述信息之后,该上述信息可能需要进行其他的处理,然后才输入处理器。
基于上述原理,举例来说,前述方法中提及的接收报文可以理解为处理器接收输入的报文。
对于处理器所涉及的发射、发送和获取/接收等操作,如果没有特殊说明,或者,如果未与其在相关描述中的实际作用或者内在逻辑相抵触,则均可以更加一般性的理解为处理器输出和接收、输入等操作,而不是直接由射频电路和天线所进行的发射、发送和接收操作。
在实现过程中,上述处理器可以是专门用于执行这些方法的处理器,也可以是执行存储器中的计算机指令来执行这些方法的处理器,例如通用处理器。上述存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(Read Only Memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
第七方面,提供一种计算机可读存储介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行上述第一方面或第二方面提供的方法。
第八方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面或第二方面提供的方法。
第九方面,提供一种芯片,所述芯片包括处理器与通信接口,所述处理器通过所述通信接口读取存储器上存储的指令,执行上述第一方面或第二方面提供的方法。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行上述第一方面或第二方面提供的方法。
第十方面,提供一种芯片系统,包括:逻辑电路,所述逻辑电路用于与输入/输出接口耦合,通过所述输入/输出接口传输数据,以执行上述第一方面或第二方面提供的方法。
第十一方面,提供一种通信系统,包括上述的第一设备和第二设备。
附图说明
图1示出了适用于本申请实施例的应用场景的示意图。
图2示出了双发选收的一示意图。
图3示出了网络出口节点保序处理的一示意图。
图4示出了DIP技术的一示意图。
图5示出了周期映射的一示意图。
图6是根据本申请实施例提供的转发报文的方法的示意性流程图。
图7示出了适用于本申请实施例的SRv6数据平面的示意图。
图8示出了适用于本申请实施例的SID结构的示意图。
图9示出了适用于本申请一实施例的报文转发的示意图。
图10示出了适用于本申请实施例的SR-MPLS数据平面的示意图。
图11示出了适用于本申请实施例的label的示意图。
图12示出了适用于本申请又一实施例的报文转发的示意图。
图13示出了适用于本申请另一实施例的报文转发的示意图。
图14示出了本申请实施例用于双发选收场景的示意图。
图15示出了本申请实施例用于DIP小流复用场景的示意图。
图16示出了本申请实施例用于E2E零抖动场景的示意图。
图17示出了本申请一实施例用于单流时延补偿场景的示意图。
图18示出了本申请又一实施例用于单流时延补偿场景的示意图。
图19是根据本申请实施例提供的报文转发的装置的示意性框图。
图20是根据本申请一实施例提供的报文转发的装置的示意性结构框图。
图21是根据本申请另一实施例提供的芯片系统的示意性结构框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
为了便于本领域技术人员更好地理解本申请的技术方案,首先对本申请技术方案涉及的背景和相关技术进行简单介绍。
作为示例,图1示出了适用于本申请实施例的应用场景的示意图。
如图1所示,该应用场景中可以包括一个或多个设备,如可以包括管理节点100、网络入口节点111、网络出口节点112,以及图1中示出的若干中间节点,比如中间节点121、中间节点122和中间节点123。管理节点100、网络入口节点111、网络出口节点112以及中间节点中的任一个设备,该设备可以为网络设备,或为设置于网络设备内部的芯片。该设备可以是支持高速以太网接口(比如200G、400G)的网络设备。该设备包括但不限于:核心路由器、边沿路由器、光传送网(optical transport network,OTN)传输设备,OTN光业务单元(optical service unit,OSU)等以及面向具体场景的基于网络协议的无线电接入网(internet protocol radio access network,IPRAN)、交换机设备,如分组传送网(packettransport network,PTN)盒式或框式交换机设备。
后续实施例中所称的节点可以是如图1所示的管理节点100、网络入口节点111、网络出口节点112以及中间节点121,中间节点122和中间节点123。
应理解,图1仅是示例性说明,对此不作限定。例如,该应用场景中可以包括更多或更少数量的设备。又如,本申请实施例可以应用于任意规模的(internet protocol,IP)网络下,包括大规模的运营商网络、较小规模的园区网络等。
很多场景,如超高可靠性超低时延通信(ultra-reliable low-latencycommunication,URLLC)、工业互联网、智能工厂等,对网络传输的可靠性有着明确的要求,要求网络以极高概率(如99.99%甚至更高)保证业务端到端不丢包。常用的一种提供可靠性的保障方法是,通过多发选收来尽可能地避免因为节点或链路故障、线路误码等原因导致的丢包和业务中断。
应理解,本申请实施例中多次提及“多发”,其表示同一报文通过多条路径传输。“多发”可以是“双发”,即通过两条路径传输;或者也可以是“三发或者更多”,即通过三条路径或者三条以上的路径传输。
作为示例,图2示出了双发选收的一示意图。
如图2所示,S节点可表示网络入口节点,E节点可表示网络出口节点,其他节点可认为是中间节点。网络入口节点,例如也可以称为入网关节点,或者说双发节点,或者说报文双发节点。网络出口节点,例如也可以称为出网关节点,或者说选收节点,或者说报文选收节点。中间节点,即中间的网络节点,例如也可以称为转发节点,或者说中间转发节点,或者说报文转发节点。
如图2所示,数据流通过网络入口节点S进入网络,通过中间节点转发最终从网络出口节点E离开网络。在双发选收下,网络入口节点S会对收到的每一个数据包进行复制并打上相同的报文序号,然后将具有相同序号的两份报文通过不同的路径发送给网络出口节点E,如图2中的路径A和路径B。网络出口节点E收到相同的报文之后,将其中一份发送并丢弃另一份。
图2中各相邻节点之间的数字,如200微秒(us)、300us、400us、500us、600us,表示各相邻节点之间的传输时长,如报文从A传输到B节点,大约需要300us。由此可知,在不同路径传输,所需要的时长也不同,同一业务在不同路径可能会产生时延差。在双发选收这种情况下,同一业务不同路径的时延差可能很大,如可达数十毫秒(ms),这样可能会在目的节点上引起很大的抖动。
通常情况下,网络出口节点E还需要对收到的报文进行保序处理。即在收到并发送小编号报文之前,如果收到了大编号报文,会将其先缓存起来,直至小编号报文全部发送才会发送大编号报文,如图3所示。
作为示例,图3示出了网络出口节点保序处理的一示意图。
如图3所示,报文在两条路径上传输,为区分,记为长路径和短路径。在网络出口节点E(即报文选收节点E)上,如果从短路径发送的1号报文丢失,即通过短路径发送的报文中网络出口节点E仅收到了2号至10号报文,那么网络出口节点E需要等待长路径的1号报文到达并发送后,才允许更大编号的报文进行发送。也就是说,在收到长路径的1号报文之前,从短路径到达的所有编号大于1的报文都须先缓存起来。在有些情况下,网络出口节点E需要的缓存大小必须覆盖两条路径的最大时延差(即抖动)。该抖动值通常包括:报文在两条路径上的线路传输时延差、报文在两条路径上的节点内部的排队时延差和处理时延差。在采用传统IP尽力而为(best effort)调度的前提下,该抖动值会很大,通常在ms级别,甚至数十ms级别。
主流路由器设备内部可供选收使用的缓存大小极为有限(约1000个报文大小),几乎无法支持ms级甚至更大的抖动。因此,需要尽可能地降低多发(如双发)路径的时延差,保证路径的抖动在选收缓存可容纳的范围内。
一种保障网络端到端(the end-to-end,E2E)确定性时延的技术是确定性网络(Deterministic IP,DIP)技术。确定性时延,指报文在服从一定突发性要求的前提下,报文在网络中所经历的时延及抖动满足上界。
作为示例,图4示出了DIP技术的一示意图。
所有设备的出接口的时间轴划分成长度为T的周期,如T=10us。其中,iGW表示网络入口节点,eGW表示网络出口节点,R表示中间转发节点。报文在每跳都被放入确定的转发周期,避免了跨周期的突发累积,实现了时延的确定性。其中,各个周期内未使用的资源可复用给其他报文使用。
DIP技术主要包括:控制面资源预留和路径规划、周期映射学习、边缘整形、标签交换和周期转发等。下面简单介绍这几方面的内容。
1)控制面资源预留和路径规划:为每条流(flow)规划确定的转发路径,并在逐跳(或者说逐节点)的各个周期内为该流预留资源,保证相应周期有足够资源。
2)周期映射学习:节点根据自己本地时钟划分周期,一种常用的设计,所有节点的周期长度相同,如记为T。对于一对任意相邻节点,由于其传输路径固定,因此可以建立起一种固定的周期映射关系。
作为示例,图5示出了周期映射的一示意图。
如图5所示,网络中相邻节点,上游节点出接口的周期和下游节点出接口的周期之间建立固定的周期映射关系:X→X+Δ。其中,Δ为常数。该周期映射关系,表示上游节点X周期发送的报文,在下游节点的(X+Δ)周期发送。例如,如图5所示,假设A节点(iGW或是中间节点)的T1映射到B节点的T4,则A节点和B节点之间的周期偏移常数Δ为3,A节点和B节点之间的周期映射关系满足:X→X+3。后续的周期也遵循这个周期映射关系,例如A节点的T2映射到B节点的T5,A节点的T3映射到B节点的T6等。
下文中,“周期映射关系”和“映射关系”,有时交替使用,其均可用于表示上游节点出接口的时间(如周期)和下游节点出接口的时间(如周期)之间的关系。
3)边缘整形:网络入口节点iGW对接收到的流量进行整形,按照每流每T周期字节数不超过(Bi*T)的方式发送。其中,Bi代表每条流服务等级协议(service levelagreement,SLA)规定的带宽。发送报文的时候,将报文对应的发送周期以标签形式封装在报文中。
4)标签交换和周期转发:节点收到报文后,识别携带标签(如携带周期标签,如图5中的A节点向B节点发送的报文中携带周期标签T1),并且根据周期映射关系计算该报文在本跳的新标签,将新标签更新到报文中(如B节点发出的报文携带周期标签T4)。每个周期都会对应一个门控队列,该队列在周期起始时刻开启,允许发送报文,在周期末尾关闭,不允许报文发送。节点根据计算后的新标签,进入到相应的本地周期所对应的队列中等待发送。
在DIP机制下,同一周期内的报文会在后续相同路径的节点上保持在同一转发周期,不同周期的报文不会挤压到同一周期内,这样可以防止微突发及其逐跳累积现象。报文在首跳进入一个周期后,后续各跳的周期确定,所以端到端的时延上界也确定。报文在首尾节点的各有T的抖动,则端到端的抖动上界是2T,该抖动与路径距离和跳数都无关。
应理解,关于DIP技术的相关描述,可以参考现有技术,对此不作严格限定。
在现有的方案中,首跳节点封装报文在路径上各节点的发送周期,后续节点会识别报文相应信息,并将其在本跳下的目标周期发送。数据面需要封装逐节点的目标周期,该信息是个绝对周期数,若路径上相邻节点间的周期映射关系发生变化,则会使得报文在后续节点的目标周期错误,导致错误占用周期资源,可能引发乱序、抖动要求不满足、数据溢出等结果。
有鉴于此,基于DIP技术,本申请实施例提供一种方案,能够减小甚至消除多条路径的时延差,并且能够实现即使上下游间发生了周期映射变化,也不会发生报文乱序、周期内数据溢出的情况。
下面结合附图,对本申请实施例进行详细描述。
图6是根据本申请实施例提供的转发报文的方法的示意性流程图。方法600可以包括如下步骤。
610,第一设备接收来自第二设备的第一报文。
第一设备和第二设备例如都可以为中间节点,如图1至图5中的中间节点;或者,第一设备为中间节点,第二设备为网络入口节点。
620,第一设备根据第一报文对应的周期修正信息和周期映射关系确定第一报文对应的目标周期。其中,周期映射关系包括第一周期和第二周期之间的映射关系,第一周期表示基于周期映射关系确定的转发周期,第二周期表示第二设备发送第一报文的周期。
第二设备向第一设备发送的第一报文中,携带第二周期,或者,携带第二周期和第一报文对应的周期修正信息。
630,第一设备在第一报文对应的目标周期转发第一报文。
周期映射关系,即上文所述的周期映射关系。如第二设备和第一设备之间建立固定的周期映射关系:X→X+Δ,Δ为常数。该周期映射关系,表示第二设备X周期发送的报文,在第一设备的(X+Δ)周期发送。第二设备发送报文的周期为第二周期,第一周期为:(第二周期+Δ)。第一设备实际发送报文的目标周期是根据(第二周期+Δ)以及周期修正信息共同确定的。
通过本申请实施例,中间节点实际发送报文的目标周期是根据周期映射关系以及周期修正信息共同确定的,这样即使上下游间发生了周期映射变化,由于考虑了周期修正信息,可以降低甚至不会发生报文乱序、周期内数据溢出的情况,可以尽可能地保证端到端的确定性时延和抖动。
在同一个周期,第二设备可以向第一设备发送一个或多个报文。示例地,第一设备还接收第二设备在第二周期发送的第二报文。也就是说,在第二周期,第二设备向第一设备发送2个报文,分别记为第一报文和第二报文。以图5中的T1周期为例,A节点向B节点可能发送两个报文。
一种可能的情况,第一报文对应的目标周期和第二报文对应的目标周期可能不同。例如,第一报文对应的目标周期是根据第一报文对应的周期修正信息和周期映射关系确定的,第二报文对应的目标周期是根据第二报文对应的周期修正信息和周期映射关系确定的,第一报文对应的周期修正信息和第二报文对应的周期修正信息不同,故第一报文对应的目标周期和第二报文对应的目标周期不同。又如,第一报文对应的目标周期是根据第一报文对应的周期修正信息和周期映射关系确定的,第二报文对应的目标周期是根据周期映射关系确定的,第一报文对应的目标周期相对于第一周期进行了修正或调整,第二报文对应的目标周期为第一周期,故第一报文对应的目标周期和第二报文对应的目标周期不同。具体地,下文结合方面1中的周期修正信息进行说明。
第一设备确定第一报文对应的目标周期,至少可以包括以下两种实现方式。
一种可能的实现方式,第一设备接收第一报文对应的周期修正信息,并根据第一报文对应的周期修正信息以及周期映射关系,确定第一报文对应的目标周期。
例如,第一设备接收目标设备发送的周期修正信息,如第一报文对应的周期修正信息。目标设备获取第一报文对应的周期修正信息,周期修正信息中包括第一报文对应的偏移周期数,第一报文对应的偏移周期数为第一报文对应的目标周期相对于第一周期偏移的周期数。目标设备向第一设备发送该第一报文对应的偏移周期数。第一设备接收到该第一报文对应的偏移周期数后,可以根据第一报文对应的偏移周期数以及周期映射关系,确定第一报文对应的目标周期。假设第一报文对应的偏移周期数为O,第二设备和第一设备之间的周期映射关系:X→X+Δ,第二设备发送第一报文的周期为第二周期,那么第一设备确定第一报文对应的目标周期为:(第二周期+Δ+O)。
又一种可能的实现方式,第一设备接收第一报文对应的目标周期的信息,并在第一报文对应的目标周期转发第一报文。
例如,目标设备向第一设备发送目标周期的信息,如第一报文对应的目标周期的信息。目标设备获取第一报文对应的周期修正信息,周期修正信息中包括第一报文对应的偏移周期数,目标设备根据该第一报文对应的偏移周期数和周期映射关系确定第一报文对应的目标周期。目标设备向第一设备发送该第一报文对应的目标周期。第一设备接收到该第一报文对应的目标周期后,可以使第一报文进入到相应的目标周期所对应的队列中等待发送。
关于目标设备获取偏移周期数的方式,下文结合方面2的内容介绍。
目标设备,例如可以为控制面节点;或者也可以为首跳节点(即网络入口节点),如图2中的节点S或者如图4中的iGW;或者也可以是本节点的上一跳节点。目标设备为控制面节点的情况下,目标设备获取偏移周期数,如可以理解为目标设备确定偏移周期数。目标设备为首跳节点(即网络入口节点)的情况下,目标设备获取偏移周期数,如可以理解为目标设备接收偏移周期数,或者也可以理解为目标设备确定偏移周期数。
下面,为不失一般性,主要以第二设备向第一设备发送报文的周期为第二周期、第一设备基于周期映射关系确定的转发周期为第一周期、第一设备基于周期映射关系和周期修正信息确定的实际转发报文的周期为目标周期、为例,从几个方面详细介绍本申请实施例的方案。
方面1,周期修正信息的表示形式。
周期修正信息,可以理解为,在基于周期映射关系确定的转发周期上修正(或者说调整)的周期的信息,即目标周期相对于第一周期修正(或者说调整)的周期的信息。
一种可能的实现方式,周期修正信息包括偏移周期数,偏移周期数为目标周期相对于第一周期偏移的周期数。也就是说,目标周期是由第一周期和偏移周期数共同确定的。为区分,将偏移周期数记为O。偏移周期数,例如也可以称为延迟周期数或者修正周期数或者调整周期数,其具体命名不对本申请实施例的保护范围造成限定。
一示例,偏移周期数O为0。在该情况下,目标周期为第一周期,即不需要在第一设备上进行延迟。
又如,偏移周期数O为大于0的整数。在该情况下,可以理解为,目标周期相对于第一周期延迟O个周期,即目标周期为:(第一周期+O)。假设第二设备和第一设备之间建立固定的周期映射关系:X→X+Δ,那么目标周期为:(第二周期+Δ+O)。
应理解,上述为示例性说明,对此不作限定。例如,也可以在某些情况下,偏移周期数O可能小于0,即目标周期相对于第一周期提前O个周期。
还应理解,本申请实施例对不同报文对应的偏移周期数不作限定。例如,不同报文对应的偏移周期数可能不同。以图5为例,同一个周期内的两个报文,如A节点上T1周期内的两个报文,在B节点上的目标周期可能不同,如一个报文在T4周期发送,另一个报文在(T4+O)周期发送(O大于0)。
上文结合方面1介绍了周期修正信息可能的表示形式,应理解,对于周期修正信息的表示形式,本申请实施例不作限定。只要是应用了基于周期映射关系确定的转发周期上修正(或者说调整)周期的方案,都应落入本申请实施例的保护范围。
下面结合方面2介绍周期修正信息的确定方式。
方面2,周期修正信息的确定方式。
周期修正信息,可以根据实际通信情况或者实际通信需求确定。
一种可能的实现方式,周期修正信息可以根据以下一项或多项信息确定:用于传输报文的多条路径的时延差、用于传输报文的多条路径的时延差需满足的预设范围、多条路径上的可用资源、报文在基于周期映射关系确定的转发周期内可用的资源。
通过该方式,报文在各个节点上实际发送报文的周期,综合考虑报文在多条路径上传输的时延差和/或报文在多条路径上的可用资源,从而可以尽可能地保证端到端的确定性时延和抖动。
以确定偏移周期数为例,进行说明。
一示例,根据用于传输报文的多条路径的时延差,确定报文在各个节点上的偏移周期数。
以图2所示的示例为例,报文在两条路径上传输,路径A为长路径(即传输时间相对较长的路径),路径B为短路径(即传输时间相对较短的路径)。例如,可以根据路径A和路径B之间的时延差,确定节点F的目标周期相对于基于周期映射关系确定的转发周期向后延迟O个周期。因此,通过在路径B上的各个节点(如节点F)上进行周期延迟,可以尽可能地缩小不同路径的时延差。
又一示例,根据用于传输报文的多条路径的时延差需满足的预设范围,确定报文在各个节点上的偏移周期数。
以图2所示的示例为例,报文在两条路径上传输,路径A为长路径(即传输时间相对较长的路径),路径B为短路径(即传输时间相对较短的路径)。例如,可以根据路径A和路径B之间的时延差需满足的条件(如时延差需控制在预设范围内),确定节点F的目标周期相对于基于周期映射关系确定的转发周期向后延迟O个周期。因此,通过在路径B上的各个节点(如节点F)上进行周期延迟,可以保证不同路径的时延差在一定范围内。
上文结合方面2介绍了周期修正信息的确定方式。应理解,上述仅是示例性说明,对此不作限定。例如,偏移周期数可以是根据上述一项或多项信息确定,或者也可以是默认在短路径的各个节点上延迟一定数量的周期数(如默认延迟一个周期),或者也可以是基于多流在相同节点上的通信情况确定,等等。又如,确定某一报文在一节点上的偏移周期数时,可以考虑该节点上的其它流或者其它报文的传输情况确定,或者也可以仅考虑该报文在多条路径上的传输情况等等。
下面结合方面3,以第一设备为例,介绍各节点获取目标周期的方式。
方面3,第一设备获取目标周期的方式。
一种可能的实现方式,第一设备根据周期映射关系和周期修正信息,计算目标周期,如步骤620中所述。
例如,报文对应的偏移周期数为O,第二设备和第一设备之间的周期映射关系:X→X+Δ,第二设备发送第一报文的周期为X,那么第一设备确定第一报文对应的目标周期Y为:(X+Δ+O)。
通过该方式,各个节点各自根据周期映射关系和周期修正信息计算目标周期,减轻控制面设备或者首跳节点计算路径上各个节点的目标周期的计算负担,降低规划的复杂性。
在该方式下,关于第一设备获取周期修正信息的方式,下文结合方面4进行介绍。
又一种可能的实现方式,第一设备接收目标周期的信息。
通过该方式,各个节点可以直接根据目标周期转发报文,减少了计算目标周期带来的时延。
例如,第一设备从第二设备接收目标周期的信息。也就是说,上游节点向下游节点发送报文时,可以将下游节点的目标周期的信息也发送给下游节点。在该情况下,周期修正信息可以携带于报文中,或者也可以单独发给下游节点。
又如,第一设备从控制面设备接收目标周期的信息。也就是说,控制面设备可以向各个节点下发目标周期的信息。如,控制面设备可以分别向各个节点下发各个节点对应的目标周期的信息;或者控制面设备可以统一向所有节点广播目标周期的信息,各节点各自读取各自对应的目标周期。
上文结合方面3介绍了各节点获取目标周期的方式。应理解,任何可以使得各节点获取到目标周期的方式,都适用于本申请实施例。
下面结合方面4,介绍各节点获取周期修正信息的方式。
方面4,获取周期修正信息的方式。
方式1,周期修正信息携带于报文中。
基于方式1,上游节点向下游节点发送报文时(如第二设备向第一设备发送报文时),可以将周期修正信息也发送给下游节点,该周期修正信息可以承载于报文中。各个节点收到报文后,读取报文中携带的周期修正信息,计算该报文的目标周期,使报文进入到相应的目标周期所对应的队列中等待发送。
在方式1下,上游节点向下游节点发送报文时,可以携带一个或多个下游节点的周期修正信息。各节点可以各自读取对应的周期修正信息,并且在向下一个下游节点发送时,可以仅发送下一个下游节点以及下一个下游节点的下游节点对应的周期修正信息,下文结合图12介绍。
方式2,通过控制面下发周期修正信息。
基于方式2,报文携带周期标签,控制面(controller)可以按需计算流在路径上各节点上的偏移周期数,并将周期修正信息下发到各个节点。各个节点收到报文后,可以根据周期修正信息,计算该报文的目标周期,使报文进入到相应的目标周期所对应的队列中等待发送。
方式3,本地读取。
各节点可以预先保存或者说维护周期修正信息。在需要使用时,本地读取周期修正信息,直接计算报文的目标周期。
一示例,控制面预先下发周期修正信息,各节点收到该周期修正信息后,保存或者说维护周期修正信息。如,控制面向各个节点下发各自对应的周期修正信息,这样各个节点维护的信息少,占空间小,读取方便。又如,控制面统一向所有个节点广播,各个节点自己查询各自对应的偏移周期数,这样控制面的信令开销小。
下面介绍两种可能的情况。
一可能的情况,流与周期修正信息之间具有对应关系。如各节点保存或者维护类似于表1的形式。
表1
流 | 偏移周期数 |
流1 | O1 |
流2 | O2 |
流3 | O3 |
各节点可以根据报文所在的流确定对应的偏移周期数。如,某节点收到的报文属于流1,则确定对应的偏移周期数为O1。应理解,不同节点保存的表1中各条流对应的偏移周期数可能不同。
又一可能的情况,各节点与周期修正信息之间具有对应关系。假设路径为:R1→R2→R3。如本地保存或者说维护类似于表2的形式。
表2
路径上的节点 | 偏移周期数 |
R1 | O1’ |
R2 | O2’ |
R3 | O3’ |
各节点收到报文后,可以读取各节点自己对应的偏移周期数。例如,控制面预先向所有个节点广播如表2的形式。一示例,各个节点可以先以表2的形式保存,在报文到达节点后,查询自己对应的偏移周期数,使用完后可以丢弃该表2,进而节省存储资源。又一示例,各个节点也可以先查询到各自对应的偏移周期数后,然后只保存各自对应的偏移周期数,进而节省资源。
应理解,表1和表2仅是一种示例,任何属于上述表格的变形,都落入本申请实施例的保护范围。例如,表1中可能包括更多的流。又如,表2中可能包括更多的节点,或者包括更多路径上的节点与偏移周期数的对应关系。又如表1和表2可以结合使用,即定流、节点、以及偏移周期数之间具有对应关系,等等。
上文结合方面4介绍了各节点获取周期修正信息的方式。应理解,任何可以使得各节点获取到周期修正信息的方式,都适用于本申请实施例。
下面,为理解,主要以目标周期相对于第一周期延迟O个周期,为例说明方式1和方式2的具体应用。在下文具体实施例中,iGW、eGW、R(如R1、R2)分别用于表示网络入口节点、网络出口节点、及中间转发节点。
方式1,周期修正信息携带于报文中。
以报文为分段路由(segment routing,SR)报文为例,下面结合两种可能的情况示例说明。简单来说,SR采用源路径选择机制,预先在源节点封装好路径所要经过节点分配的分段标识(segment identifier,SID),当报文经过SR节点时,该节点根据报文的SID对报文进行转发。
情况1,基于SRv6的方案。
作为示例,图7示出了适用于本申请实施例的SRv6数据平面的示意图。如图7所示,SRv6数据平面包括但不限于以下部分:IPv6报文头、SR报文头(segment routing header,SRH)、载荷(payload)数据。SRH部分例如包括跳数信息剩余段(segment left,SL)。SRH部分包括一个或多个SID域,如分别记为SID 1、SID 2、……、SID n。
作为示例,图8示出了适用于本申请实施例的SID结构的示意图。如图8所示,SID域至少包括三个字段:位置标识(locator)、function、arguments。举例来说,locator表示网络中分配给一个网络节点的标识,可以用于路由和转发报文;function表示设备分配给本地转发指令的一个ID值,不同的转发行为可由不同的功能ID来表达;arguments表示转发指令在执行的时候所需要的参数,这些参数例如可能包括流,服务或任何其他相关的可变信息。
关于SRv6的具体结构,可以参考现有的描述,此处不再赘述。
一种可能的实现方式,可以复用SRv6报文头的SID域,将周期修正信息封装进相应的SID中,如图7中的SRH部分。周期修正信息,如偏移周期数,可以携带于SID域的function中,或者可以携带于SID域的arguments中。一般情况下,周期修正信息最多需要5比特(bits)。
例如,假设在R2节点的偏移周期数为11,在R1节点的偏移周期数为10,iGW识别流,将周期修正信息封装进SRH部分,SRH部分的周期修正信息例如可以记为:<…,R2::11,R1::10>。中间节点识别目的地址(destination address,DA)中对应本跳的周期修正信息,根据报文携带周期和上下游映射关系,使报文进入到相应的目标周期所对应的队列中等待发送。为便于理解,结合图9介绍。
作为示例,图9示出了适用于本申请一实施例的报文转发的示意图。
如图9所示,假设报文在iGW的T0周期发送。iGW和R1节点的周期偏移常数记为Δ1,报文在R1节点的偏移周期数记为O1,假设Δ1=3,O1=10;R1节点和R2节点的周期偏移常数记为Δ2,报文在R2节点的偏移周期数记为O2,假设Δ2=2,O2=11。
报文在iGW进行相应信息的封装后(如封装周期修正信息),携带周期标签T0到达下一跳R1节点。R1节点接收到该报文后,读取报文头中相关信息,如R1节点识别DA中对应本跳的偏移周期数为10。R1节点根据周期标签T0、偏移周期数10、以及和上一跳的周期映射关系(即周期偏移常数Δ1=3),计算该报文在本跳R1节点的目标周期,使报文进入目标周期所对应的队列中。如图9所示,R1节点收到报文后,根据周期映射关系确定的发送周期为T3,根据偏移周期数为10,故确定报文在本跳R1节点的目标周期为:Δ1+T0+O1=3+0+10=13,即报文在本跳T13周期进行发送。
报文在R1节点进行相应信息的封装后(如封装周期修正信息),携带周期标签T13到达下一跳R2节点。R2节点接收到该报文后,读取报文头中相关信息,如R2节点识别DA中对应本跳的偏移周期数为11。R2节点根据携带周期标签T13、偏移周期数11,以及和上一跳的周期映射关系(即周期偏移常数Δ2=2),计算该报文在本跳R2节点的目标周期,使报文进入目标周期所对应的队列中。如图9所示,R2节点收到报文后,根据周期映射关系确定的发送周期为T15,根据偏移周期数为11,故确定报文在本跳R2节点的目标周期为:Δ2+T13+O2=2+13+11=26,即报文在本跳T26周期进行发送。
同理,在后续的各个节点中也执行类似的操作。
应理解,图9仅是一种简单的示例性说明,任何属于图9所示方案的变形方案,都适用于本申请实施例。例如,图9中还可以包括更多的中间节点。又如,除了如图9所示的识别DA中对应本跳的偏移周期数,任何可以使得各个节点识别对应本跳的偏移周期数的方式都适用于本申请实施例。
基于上述情况1,通过复用SRv6头SID的function或arguments部分,携带逐跳周期修正信息(如偏移周期数),在设备上可实现主动延迟的效果,可以保证端到端的确定性时延和抖动。
情况2,基于多协议标签交换(multi-protocol label switching,MPLS)的方案。
一种可能的方式,可以复用或拓展SR-MPLS头,携带报文逐跳的周期修正信息。
简单来说,SR-MPLS,即表示在MPLS网络中使用SR,将标签作为SID对报文进行转发。作为示例,图10示出了适用于本申请实施例的SR-MPLS数据平面的示意图。如图10所示,SR-MPLS数据平面包括但不限于以下部分:标签(label)(如分别记为Tag 1、Tag 2、……、Tag n)、IPv4或IPv6报文头、载荷数据。
MPLS可以使用短而定长的label封装分组,在数据平面实现快速转发。作为示例,图11示出了适用于本申请实施例的label的示意图。如图11所示,label域可以包括20bits,可以使用label域中的5bites来携带周期修正信息。例如,iGW识别流,将周期修正信息封装进相应的label中,中间节点识别对应本跳的周期修正信息,根据报文携带周期和上下游周期映射关系,使报文进入到相应的目标周期所对应的队列中等待发送。
应理解,图10和图11所示的结构仅是示例性说明,具体的可以参考现有的描述,此处不再赘述。
作为示例,图12示出了适用于本申请又一实施例的报文转发的示意图。
如图12所示,假设报文在iGW的T0周期发送。iGW和R1节点的周期偏移常数记为Δ1,报文在R1节点的偏移周期数记为O1,假设Δ1=3,O1=10;R1节点和R2节点的周期偏移常数记为Δ2,报文在R2节点的偏移周期数记为O2,假设Δ2=2,O2=11。
报文在iGW进行相应信息的封装后(如封装周期修正信息),携带周期标签T0到达下一跳R1节点。R1节点接收到该报文后,读取报文头中相关信息,如R1节点识别对应本跳的偏移周期数为10。R1节点根据周期标签T0、偏移周期数10、以及和上一跳的周期映射关系(即周期偏移常数Δ1=3),计算该报文在本跳R1节点的目标周期,使报文进入目标周期所对应的队列中。如图12所示,R1节点收到报文后,根据周期映射关系确定的发送周期为T3,根据偏移周期数为10,故确定报文在本跳R1节点的目标周期为:Δ1+T0+O1=3+0+10=13,即报文在本跳T13周期进行发送。示例地,R1节点还可以将相应的label,如图12中的“101,10”,弹(pop)出去。
报文在R1节点进行相应信息的封装后(如封装周期修正信息),携带周期标签T13到达下一跳R2节点。R2节点接收到该报文后,读取报文头中相关信息,如R2节点识别对应本跳的偏移周期数为11。R2节点根据携带周期标签T13、偏移周期数11,以及和上一跳的周期映射关系(即周期偏移常数Δ2=2),计算该报文在本跳R2节点的目标周期,使报文进入目标周期所对应的队列中。如图12所示,R2节点收到报文后,根据周期映射关系确定的发送周期为T15,根据偏移周期数为11,故确定报文在本跳R2节点的目标周期为:Δ2+T13+O2=2+13+11=26,即报文在本跳T26周期进行发送。示例地,R2节点还可以将相应的label,如图12中的“304,11”,弹出去。
同理,在后续的各个节点中也执行类似的操作。
应理解,图12仅是一种简单的示例性说明,任何属于图12所示方案的变形方案,都适用于本申请实施例。例如,图12中还可以包括更多的中间节点。又如,任何可以使得各个节点识别对应本跳的偏移周期数的方式都适用于本申请实施例。示例地,各个节点可以按照顺序依次识别对应本跳的偏移周期数,如R1节点对应第一个label,即如图12中的“101,10”;R2节点对应第二个label,即如图12中的“304,11”;依次类推,在该示例下,各个节点转发报文时,不需要将各个节点对应的label弹出去。
基于上述情况2,通过复用或拓展SR-MPLS头,携带逐跳周期修正信息(如偏移周期数),在设备上可实现主动延迟的效果,保证端到端的确定性时延和抖动。
上文示例地列举了两种情况,对此不作限定,任何可以实现将周期修正信息携带于报文中的方案都适用于本申请实施例。
基于方式1,周期修正信息携带于报文中,即使上下游节点之间的周期映射关系发生了变化,由于考虑了周期修正信息,可以降低甚至不会发生报文乱序、周期内数据溢出的情况,可以尽可能地保证端到端的确定性时延和抖动。
方式2,通过控制面下发周期修正信息。
一种可能的实现方式,控制面可以向各个节点发送各个节点各自对应的周期修正信息。例如,控制面向R1节点发送在R1节点对应的周期修正信息(如报文在R1节点上的偏移周期数),控制面向R2节点发送在R2节点对应的周期修正信息(如报文在R2节点上的偏移周期数)。
应理解,上述实现方式仅是示例性说明,对此不作限定。例如,控制面可以向各个节点发送流在路径上每跳的偏移周期数,各个节点收到报文后,可以查询本跳所对应的偏移周期数,计算该报文在本跳的目标周期。
作为示例,图13示出了适用于本申请另一实施例的报文转发的示意图。
如图13所示,控制面可以将该流在路径上每跳的周期修正信息,以表格的形式下发到各节点,如R1节点和R2节点。例如,控制面向R1节点发送的周期修正信息包括:流1在该R1节点的偏移周期数为10,控制面向R2节点发送的周期修正信息包括:流1在该R2节点的偏移周期数为11。各节点可以维护DIP周期映射关系(即上下游映射关系)和逐流的周期修正信息。当报文到达节点,该节点识别报文并根据维护的信息计算该报文的目标周期,使报文进入到相应的目标周期所对应的队列中等待发送。
如图13所示,假设报文在iGW的T0周期发送。iGW和R1节点的周期偏移常数记为Δ1,报文在R1节点的偏移周期数记为O1,假设Δ1=3,O1=10;R1节点和R2节点的周期偏移常数记为Δ2,报文在R2节点的偏移周期数记为O2,假设Δ2=2,O2=11。
其中,报文在R1节点的偏移周期数可以是R1节点本地保存的,如可以由控制面预先发送给R1节点,并且由R1节点本地保存。或者,报文在R1节点的偏移周期数也可以是控制面动态发送给R1节点的,即在R1节点需要使用时,动态发送给R1节点。R1节点使用完后,可以保存也可以丢弃,对此不作限定。报文在R2节点的偏移周期数类似,此处不再赘述。
iGW向下一跳R1节点发送报文,并且携带周期标签T0。R1节点接收到该报文后,根据周期标签T0、偏移周期数10、以及和上一跳的周期映射关系(即周期偏移常数Δ1=3),计算该报文在本跳R1节点的目标周期,使报文进入目标周期所对应的队列中。如图13所示,R1节点收到报文后,根据周期映射关系确定的发送周期为T3,根据偏移周期数为10,故确定报文在本跳R1节点的目标周期为:Δ1+T0+O1=3+0+10=13,即报文在本跳T13周期进行发送。
R1节点向下一跳R2节点发送报文,并且携带周期标签T13。R2节点接收到该报文后,根据周期标签T13、偏移周期数11,以及和上一跳的周期映射关系(即周期偏移常数Δ2=2),计算该报文在本跳R2节点的目标周期,使报文进入目标周期所对应的队列中。如图13所示,R2节点收到报文后,根据周期映射关系确定的发送周期为T15,根据偏移周期数为11,故确定报文在本跳R2节点的目标周期为:Δ2+T13+O2=2+13+11=26,即报文在本跳T26周期进行发送。
同理,在后续的各个节点中也执行类似的操作。
应理解,图13仅是一种简单的示例性说明,任何属于图13所示方案的变形方案,都适用于本申请实施例。例如,图13中还可以包括更多的中间节点。
基于上述方式2,报文携带周期标签,逐流逐跳的周期修正信息由控制面下发到各个节点上,各个节点可以维护周期修正信息。通过类似的目标周期计算及入队操作,在设备上实现了主动延迟的效果,即使上下游间发生了周期映射变化,由于考虑了周期修正信息,可以降低甚至不会发生报文乱序、周期内数据溢出的情况,可以尽可能地保证端到端的确定性时延和抖动。
为便于理解,下面结合四个具体场景,介绍本申请实施例在不同场景下的应用。
场景1,双发选收场景。
作为示例,图14示出了本申请实施例用于双发选收场景的示意图。
如图14所示,控制面为一条流规划出两条路径。作为示例,两条路径分别为:iGW—A—B—C—eGW,iGW—A’—B’—C’—eGW,该两条路径除iGW和eGW之外,其他节点都不同。其中,iGW可以进行一系列处理,如报文复制、流识别等,有些情况下,iGW还可以对周期修正信息封装处理。eGW可以进行选收处理。
考虑到两条路径的时延差,控制面可以结合各节点的缓冲(buffer)能力,计算各个节点上的周期修正信息,并将周期修正信息下发给iGW,从而可以将路径时延差分散在路径各节点上,补偿两条路径的时延差。中间节点例如可以基于周期修正信息进行主动周期延迟。
一种可能的实现方式,可以采用上文方式1,如复用SRv6的SID或拓展SR-MPLS,将报文逐跳周期修正信息封装进相应的报文头,后续节点(如A节点、B节点、C节点、A’节点、B’节点、C’节点)根据报文携带周期标签、相邻节点间的周期映射关系、以及携带的周期修正信息,计算报文的目标周期。具体地,可以参考上文方式1的描述,此处不再赘述。
又一种可能的实现方式,可以采用上文方式2,如控制面可以将各个节点的周期修正信息(如计算的各个节点上的偏移周期数)分别发送给各个节点(如A节点、B节点、C节点、A’节点、B’节点、C’节点),各个节点收到报文后,可以根据周期修正信息、相邻节点间的周期映射关系、以及报文携带的周期标签,计算该报文的目标周期。具体地,可以参考上文方式2的描述,此处不再赘述。
在场景1中,本申请实施例提出的报文转发方法应用在双发选收场景中,在转发节点上实现了主动延迟的效果,补偿两条路径的时延差,减小了双发选收路径时延差,可以保证双发选收基于小buffer的可行性。而且,由于考虑了周期修正信息,可以降低甚至不会发生报文乱序、周期内数据溢出的情况,可以尽可能地保证端到端的确定性时延和抖动。
场景2,DIP小流复用场景。
作为示例,图15示出了本申请实施例用于DIP小流复用场景的示意图。
如图15所示,假设有四条流,分别记为流1、流2、流3、流4。为区分,将流1对应的报文记为报文1,流2对应的报文记为报文2,流3对应的报文记为报文3,流4对应的报文记为报文4。假设,流1每4个周期到达3个报文1,路径为X1-Y-Z1;流2每2周期到达3个报文2,路径为X2-Y-Z2;流3每4个周期到达3个报文3,路径为X1-Y-Z1;流4每2个周期到达3个报文4,路径为X2-Y-Z1。
如图15(1)所示,流4每2周期到达3个报文,若流4占用了Y节点的T0周期,如果采用如图15(1)中的方法(即仅按照周期映射关系确定目标周期),那么下次到达的3个报文应该占用Y节点的T2周期。然而,Y节点的T2周期已经被流3占用。因此采用如图15(1)中的方法,可能会发生文乱序、周期内数据溢出等情况。
如图15(2)所示,采用如图15(2)中的方法,即本申请实施例提供的方法(即按照周期映射关系以及周期修正信息确定目标周期),可以使得流3主动延迟一周期,即占用Y节点的T3周期。这样,可以保证流1、流3、流4及流2都接入网络,提高DIP小流复用能力。
应理解,在场景2中,仅示例地说明了对流3考虑周期修正信息,对此不作限定。在实际通信中,可以根据实际需求,采用本申请实施例的方式,对一条或多条流进行处理。
在场景2中,本申请实施例提出的报文转发方法应用在DIP小流复用场景中,在转发节点上实现了主动延迟的效果,提高DIP小流复用能力。
场景3,E2E零抖动场景。
一些场景下,如工业以太网、金融交易等要求极低抖动的场景下,在网络入口节点(如上文实施例中的iGW)出接口到网络出口节点(如上文实施例中的eGW)出接口段,需要保证极低抖动甚至零抖动(即对到达时间要求精确),才能满足端到端的抖动需求。下面主要以零抖动为例进行说明。
作为示例,图16示出了本申请实施例用于E2E零抖动场景的示意图。
如图16所示,若在eGW的T1周期存在两个零抖动报文,如记为报文1和报文2,那么这两个报文具有相同的高优先级,它们之间的先后顺序是不能保证的,从而不能保证这两个报文的零抖动。采用本申请实施例提供的方法,如将报文2在沿途路径上进行主动等待操作(即基于周期修正信息进行延迟处理)。例如,将报文2在eGW的T2周期发送,与报文1的周期错开,这样可以实现能够同时保证报文1和报文2的E2E零抖动。
应理解,图6中仅体现了报文2从T1周期延迟到T2周期,关于报文1,可以根据实际的周期映射关系,在报文1对应的目标周期发送。
在场景3中,本申请实施例提出的报文转发方法应用在E2E零抖动场景中,在转发节点上实现了主动延迟的效果,提高零抖动流接入能力。在有些情况下,可以实现将E2E抖动从ms级降至us级(如50us),可接入带宽可提升20倍或20倍以上。
场景4,单流时延补偿场景。
作为示例,图17示出了本申请一实施例用于单流时延补偿场景的示意图。
对于一些业务,如游戏等需要用户在线配合类的业务,不同用户的网络时延不同可能会影响用户体验,因此,不同用户对应的路径时延差不能太大。采用本申请实施例的方法,例如可以在时延较短路径的节点上进行主动延迟。
如图17所示,假设用户1和用户2为在线配合打游戏,用户1对应的路径为长路径(即传输时间相对较长的路径):服务器—A节点—B节点—用户1,用户2对应的路径为短路径(即传输时间相对较短的路径):服务器—A’节点—用户2。考虑到用户体验等,用户1对应的长路径和用户2对应的短路径的时延差不能太大。一种可能的实现方式,可以在用户2对应的短路径上的A’节点上进行主动延迟,从而可以保证不同用户的时延差在一定范围内,提升业务的用户体验。
作为示例,图18示出了本申请又一实施例用于单流时延补偿场景的示意图。
在有些场景下,如负载分担路径切换的场景(如报文通过主路径和备路径协作传输的场景),用于负载分担的多条路径之间的时延差不能太大。如果多条路径之间的时延差较大,可能会导致报文乱序。采用本申请实施例的方法,例如可以在时延较短路径的节点上进行主动延迟。
如图18所示,假设通过两条路径传输报文3、4、5、6、7、8,传输报文3、4、5、6的路径为长路径(即传输时间相对较长的路径),传输报文7、8的路径为短路径(即传输时间相对较短的路径)。如果长路径和短路径的时延相差较大,可能会导致报文7和8会早于其他报文到达。一种可能的实现方式,可以在短路径上的一个或多个节点上进行主动延迟,从而可以保证切换后的路径时延不会缩短,以避免乱序。
在场景4中,本申请实施例提出的报文转发方法应用在单流时延补偿场景中,在转发节点上实现了主动延迟的效果,提升业务体验。
以上,结合图6至图18详细说明了本申请实施例提供的方法。
应理解,在上述一些实施例中,主要以延迟为例进行了示例性说明,对此不作限定。只要是根据实际情况,对基于固定周期映射关系确定的转发周期调整实际发送周期的方案,都适用于本申请实施例。
还应理解,在上述一些实施例中,主要以周期为例进行了示例性说明,关于周期对应的时域单元(或者,也可以称为时间单位),不作限定。例如,周期对应的时域单元可以是一个符号或者几个符号,或者一个迷你时隙(mini-slot),或者一个时隙(slot),或者一个子帧(subframe)。
还应理解,在上述一些实施例中,主要以一个报文为例进行了示例性说明,对此不作限定。每个报文或者每条流,都可以采用本申请实施例的方式进行处理。此外,经过相同节点的不同报文或者不同流,其对应的周期修正信息可以相同,也可以不同,具体地可以根据实际情况确定。
还应理解,本申请实施例提供的报文转发方式和现有的报文转发方式(如图5所示的方式)可以并存,或者也可以包括现有的报文转发方式。一示例,以并存为例。例如,在某些场景下,如上文所述的四个场景下,可以使用本申请实施例提供的报文转发方式;又如,在其他普通场景下,当不需要调整报文转发周期的情况下,可以使用如图5所示的方式进行报文转发,即基于周期映射关系确定报文转发周期。又一示例,以包括现有的报文转发方式为例。例如,所有场景下都可以使用本申请实施例提供的报文转发方式,在有些场景下,偏移周期数O为0;在有些场景下(如上文所述的四种场景)下,偏移周期数O大于0。
本文中描述的各个实施例可以为独立的方案,也可以根据内在逻辑进行组合,这些方案都落入本申请的保护范围中。
可以理解的是,上述各个方法实施例中,由通信设备(如第一设备或目标设备)实现的方法和操作,也可以由可用于通信设备的部件(例如芯片或者电路)实现。
下面结合图19至图21详细说明本申请实施例提供的转发报文的装置。应理解,装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的内容可以参见上文方法实施例,为了简洁,这里不再赘述。
图19是本申请实施例提供的转发报文的装置的示意性框图。该装置1500包括收发单元1910和处理单元1920。收发单元1910可以实现相应的通信功能,处理单元1920用于进行数据处理。收发单元1910还可以称为通信接口或通信单元。
可选地,该装置1900还可以包括存储单元,该存储单元可以用于存储指令和/或数据,处理单元1920可以读取存储单元中的指令和/或数据,以使得装置实现前述方法实施例。
该装置1900可以用于执行上文方法实施例中节点所执行的动作,这时,该装置1900可以为节点或者可配置于节点的部件,收发单元1910用于执行上文方法实施例中节点侧的收发相关的操作,处理单元1920用于执行上文方法实施例中节点侧的处理相关的操作。
作为一种设计,该装置1900用于执行上文方法实施例中转发节点(或者说中间节点,即第一设备的一例)所执行的动作。
一种可能的实现方式,收发单元1910,用于接收来自第二设备的第一报文;处理单元1920,用于根据第一报文对应的周期修正信息和周期映射关系确定第一报文对应的目标周期,其中,周期映射关系包括第一周期和第二周期之间的映射关系,第一周期表示基于周期映射关系确定的转发周期,第二周期表示第二设备发送第一报文的周期;收发单元1910,还用于在第一报文对应的目标周期转发第一报文。
一示例,收发单元1910,还用于接收来自第二设备的第二报文,第二报文中携带第二周期,第二周期还表示第二设备发送第二报文的周期;在第二报文对应的目标周期转发第二报文,第二报文对应的目标周期和第一报文对应的目标周期不同。
又一示例,装置1900接收的来自第二设备的第一报文中,携带第二周期,或者,携带第二周期和第一报文对应的周期修正信息。
又一示例,第一报文对应的周期修正信息包括第一报文对应的偏移周期数,第一报文对应的偏移周期数为第一报文对应的目标周期相对于第一周期偏移的周期数。
又一示例,第一报文对应的目标周期位于第一周期之后。
又一示例,第一报文对应的目标周期是根据下式确定的:Y=X+Δ+O,其中,Y表示第一报文对应的目标周期,X表示第二周期,Δ表示与周期映射关系相关的常数,O表示第一报文对应的偏移周期差。
又一示例,第一报文对应的周期修正信息是根据以下一项或多项信息确定的:
用于传输第一报文的多条路径的时延差、用于传输第一报文的多条路径的时延差需满足的预设范围、多条路径上的可用资源、第一报文在第一周期可用的资源。
又一示例,装置1900本地读取第一报文对应的周期修正信息。
又一示例,一条或多条流与周期修正信息之间具有对应关系,一条或多条流包括第一报文所在的流;或者,用于传输第一报文的多条路径上的各个设备与周期修正信息之间具有对应关系。
又一示例,收发单元1910,还用于接收第一报文对应的周期修正信息。
又一示例,收发单元1910,第一报文对应的周期修正信息包括:装置1900上第一报文对应的周期修正信息,或者,装置1900以及装置1900的一个或多个下游设备上第一报文对应的周期修正信息;处理单元1920,具体用于根据在装置1900上第一报文对应的周期修正信息和周期映射关系确定第一报文对应的目标周期。
该装置1900可实现对应于根据本申请实施例的方法实施例中的转发节点(或者说中间节点)执行的步骤或者流程,该装置1900可以包括用于执行图6至图18中的转发节点(或者说中间节点)执行的方法的单元。并且,该装置1900中的各单元和上述其他操作和/或功能分别为了实现图6至图18中的转发节点(或者说中间节点)中的方法实施例的相应流程。
其中,当该装置1900用于执行图6中的方法600时,收发单元1910可用于执行方法600中的步骤610和630;处理单元1920可用于执行方法600中的处理步骤,如步骤620。
应理解,各单元执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
作为另一种设计,该装置1900用于执行上文方法实施例中目标设备(如网络入口节点或控制面节点)所执行的动作。
一种可能的实现方式,处理单元1920,用于确定第一报文对应的周期修正信息,第一报文对应的周期修正信息用于与周期映射关系确定第一报文对应的目标周期,其中,第一报文对应的目标周期是第一设备转发第一报文的周期,周期映射关系表示第一周期和第二周期之间的映射关系,第二周期表示第二设备向第一设备发送第一报文的周期,第一周期表示基于周期映射关系确定的转发周期;收发单元1910,用于发送第一报文对应的周期修正信息。
一示例,处理单元1920,还用于确定第二报文对应的周期修正信息,第二报文对应的周期修正信息与第一报文对应的周期修正信息不同,其中,第二报文和第一报文均属于第二设备在第二周期发送给第一设备的报文。
又一示例,第一报文对应的周期修正信息包括第一报文对应的偏移周期数,第一报文对应的偏移周期数为第一报文对应的目标周期相对于第一周期偏移的周期数。
又一示例,第一报文对应的目标周期位于第一周期之后。
又一示例,处理单元1920,具体用于根据以下一项或多项信息,计算第一报文对应的周期修正信息:用于传输第一报文的多条路径的时延差、用于传输第一报文的多条路径的时延差需满足的预设范围、多条路径上的可用资源、第一报文在第一周期可用的资源。
又一示例,装置1900为第二设备,收发单元1910,还用于向第一设备发送第一报文,第一报文中携带第二周期,或者,第一报文中携带第二周期和第一报文对应的周期修正信息。
又一示例,第一报文对应的周期修正信息包括:在第一设备上第一报文对应的周期修正信息,或者,在第一设备以及第一设备的一个或多个下游设备上所述第一报文对应的周期修正信息。
又一示例,收发单元1910,具体用于向第一设备发送第一报文对应的周期修正信息。
该装置1900可实现对应于根据本申请实施例的方法实施例中的目标设备(如网络入口节点或控制面节点)执行的步骤或者流程,该装置1900可以包括用于执行图6至图18中的目标设备(如网络入口节点或控制面节点)执行的方法的单元。并且,该装置1900中的各单元和上述其他操作和/或功能分别为了实现图6至图18中的目标设备(如网络入口节点或控制面节点)中的方法实施例的相应流程。
应理解,各单元执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
上文实施例中的处理单元1920可以由至少一个处理器或处理器相关电路实现。收发单元1910可以由收发器或收发器相关电路实现。存储单元可以通过至少一个存储器实现。
如图20所示,本申请实施例还提供一种报文转发的装置2000。该装置2000包括处理器2010,处理器2010与存储器2020耦合,存储器2020用于存储计算机程序或指令和/或数据,处理器2010用于执行存储器2020存储的计算机程序或指令和/或数据,使得上文方法实施例中的方法被执行。
可选地,该装置2000包括的处理器2010为一个或多个。
可选地,如图20所示,该装置2000还可以包括存储器2020。
可选地,该装置2000包括的存储器2020可以为一个或多个。
可选地,该存储器2020可以与该处理器2010集成在一起,或者分离设置。
可选地,如图20所示,该装置2000还可以包括收发器2030,收发器2030用于信号的接收和/或发送。例如,处理器2010用于控制收发器2030进行信号的接收和/或发送。
作为一种方案,该装置2000用于实现上文方法实施例中由节点执行的操作。
例如,处理器2010用于实现上文方法实施例中由转发节点(或者说中间节点)执行的处理相关的操作,收发器2030用于实现上文方法实施例中由转发节点(或者说中间节点)执行的收发相关的操作。
又如,处理器2010用于实现上文方法实施例中由目标设备(如网络入口节点或控制面节点)执行的处理相关的操作,收发器2030用于实现上文方法实施例中由目标设备(如网络入口节点或控制面节点)执行的收发相关的操作。
本申请实施例还提供一种芯片系统2100。该芯片系统2100(或者也可以称为处理系统)包括逻辑电路2110以及输入/输出接口(input/output interface)2120,所述逻辑电路用于与输入接口耦合,通过所述输入/输出接口传输数据参数,以执行上文方法实施例中的方法。安装该芯片系统2100的设备或者说节点可以实现本申请实施例的方法和功能。例如,逻辑电路2110可以为芯片系统2100中的处理电路,实现对安装了该芯片系统2100的设备的控制,还可以耦合连接存储单元,调用存储单元中的指令,使得设备可以实现本申请实施例的方法和功能,输入/输出接口2120,可以为芯片系统2100中的输入输出电路,将芯片系统2100处理好的信息输出,或将待处理的数据或信令信息输入芯片系统2100进行处理。
作为一种方案,该芯片系统2100用于实现上文方法实施例中由转发节点(或者说中间节点)执行的操作。
例如,逻辑电路2110用于实现上文方法实施例中由转发节点(或者说中间节点)执行的处理相关的操作,输入/输出接口2120用于实现上文方法实施例中由转发节点(或者说中间节点)执行的收发相关的操作。
作为另一种方案,该芯片系统2100用于实现上文方法实施例中由目标设备(如网络入口节点或控制面节点)执行的操作。
例如,逻辑电路2110用于实现上文方法实施例中由目标设备(如网络入口节点或控制面节点)执行的处理相关的操作,输入/输出接口2120用于实现上文方法实施例中由目标设备(如网络入口节点或控制面节点)执行的收发相关的操作。
本申请实施例还提供一种计算机可读存储介质,其上存储有用于实现上述方法实施例中由节点(如目标设备或转发节点)执行的方法的计算机指令。
例如,该计算机程序被计算机执行时,使得该计算机可以实现上述方法实施例中由节点(如目标设备或转发节点)执行的方法。
本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得该计算机实现上述方法实施例中由节点(如目标设备或转发节点)执行的方法。
本申请实施例还提供一种通信系统,该通信系统包括上文实施例中的转发节点,或者,转发节点和目标设备(如网络入口节点或控制面节点)。
上述提供的任一种装置中相关内容的解释及有益效果均可参考上文提供的对应的方法实施例,此处不再赘述。
应理解,本申请实施例中提及的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(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可以用作外部高速缓存。作为示例而非限定,RAM可以包括如下多种形式:静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
需要说明的是,当处理器为通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)可以集成在处理器中。
还需要说明的是,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的保护范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。此外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元实现本申请提供的方案。
另外,在本申请各个实施例中的各功能单元可以集成在一个单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。例如,所述计算机可以是个人计算机,服务器,或者网络设备等。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD)等。例如,前述的可用介质可以包括但不限于:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (36)
1.一种报文转发的方法,其特征在于,包括:
第一设备接收来自第二设备的第一报文;
所述第一设备根据所述第一报文对应的周期修正信息和周期映射关系确定所述第一报文对应的目标周期,其中,所述周期映射关系包括第一周期和第二周期之间的映射关系,所述第一周期表示基于所述周期映射关系确定的转发周期,所述第二周期表示所述第二设备发送所述第一报文的周期;
所述第一设备在所述第一报文对应的目标周期转发所述第一报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一设备还接收所述第二设备在所述第二周期发送的第二报文;
所述第一设备在所述第二报文对应的目标周期转发所述第二报文,所述第二报文对应的目标周期和所述第一报文对应的目标周期不同。
3.根据权利要求1或2所述的方法,其特征在于,
所述第一设备接收的来自所述第二设备的所述第一报文中,携带所述第二周期,或者,携带所述第二周期和所述第一报文对应的周期修正信息。
4.根据权利要求1至3中任一项所述的方法,其特征在于,
所述第一报文对应的周期修正信息包括所述第一报文对应的偏移周期数,所述第一报文对应的偏移周期数为所述第一报文对应的目标周期相对于所述第一周期偏移的周期数。
5.根据权利要求4所述的方法,其特征在于,所述第一报文对应的目标周期是根据下式确定的:
Y=X+Δ+O,
其中,Y表示所述第一报文对应的目标周期,X表示所述第二周期,Δ表示与所述周期映射关系相关的常数,O表示所述第一报文对应的偏移周期差。
6.根据权利要求1至5中任一项所述的方法,其特征在于,
所述第一报文对应的周期修正信息是根据以下一项或多项信息确定的:
用于传输所述第一报文的多条路径的时延差、用于传输所述第一报文的多条路径的时延差需满足的预设范围、所述多条路径上的可用资源、所述第一报文在所述第一周期可用的资源。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
所述第一设备本地读取所述第一报文对应的周期修正信息。
8.根据权利要求7所述的方法,其特征在于,
一条流或多条流与周期修正信息之间具有对应关系,所述一条流或多条流包括所述第一报文所在的流;或者,
用于传输所述第一报文的多条路径上的各个设备与周期修正信息之间具有对应关系。
9.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
所述第一设备接收所述第一报文对应的周期修正信息。
10.根据权利要求9所述的方法,其特征在于,所述第一报文对应的周期修正信息包括:在所述第一设备上所述第一报文对应的周期修正信息,或者,在所述第一设备以及所述第一设备的一个或多个下游设备上所述第一报文对应的周期修正信息;
所述第一设备根据所述第一报文对应的周期修正信息和周期映射关系确定所述第一报文对应的目标周期,包括:
所述第一设备根据在所述第一设备上所述第一报文对应的周期修正信息和周期映射关系确定所述第一报文对应的目标周期。
11.一种报文转发的方法,其特征在于,包括:
目标设备获取第一报文对应的周期修正信息,所述第一报文对应的周期修正信息用于与周期映射关系确定所述第一报文对应的目标周期,
其中,所述第一报文对应的目标周期是第一设备转发所述第一报文的周期,所述周期映射关系表示第一周期和第二周期之间的映射关系,所述第二周期表示第二设备向所述第一设备发送所述第一报文的周期,所述第一周期表示基于所述周期映射关系确定的转发周期;
所述目标设备发送所述第一报文对应的周期修正信息。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
所述目标设备获取第二报文对应的周期修正信息,所述第二报文对应的周期修正信息与所述第一报文对应的周期修正信息不同,其中,所述第二报文和所述第一报文均属于所述第二设备在所述第二周期发送给所述第一设备的报文。
13.根据权利要求11或12所述的方法,其特征在于,
所述第一报文对应的周期修正信息包括所述第一报文对应的偏移周期数,所述第一报文对应的偏移周期数为所述第一报文对应的目标周期相对于所述第一周期偏移的周期数。
14.根据权利要求11至13中任一项所述的方法,其特征在于,所述目标设备获取第一报文对应的周期修正信息,包括:
所述目标设备根据以下一项或多项信息,确定所述第一报文对应的周期修正信息:
用于传输所述第一报文的多条路径的时延差、用于传输所述第一报文的多条路径的时延差需满足的预设范围、所述多条路径上的可用资源、所述第一报文在所述第一周期可用的资源。
15.根据权利要求11至14中任一项所述的方法,其特征在于,所述目标设备为所述第二设备,所述方法还包括:
所述第二设备向所述第一设备发送所述第一报文,所述第一报文中携带所述第二周期,或者,所述第一报文中携带所述第二周期和所述第一报文对应的周期修正信息。
16.根据权利要求15所述的方法,其特征在于,所述第一报文对应的周期修正信息包括:在所述第一设备上所述第一报文对应的周期修正信息,或者,在所述第一设备以及所述第一设备的一个或多个下游设备上所述第一报文对应的周期修正信息。
17.根据权利要求11至14中任一项所述的方法,其特征在于,所述目标设备为控制面设备,所述目标设备发送所述第一报文对应的周期修正信息,包括:
所述控制面设备向所述第一设备发送所述第一报文对应的周期修正信息。
18.一种通信装置,其特征在于,包括:收发单元和处理单元,
所述收发单元,用于接收来自第二设备的第一报文;
所述处理单元,用于根据所述第一报文对应的周期修正信息和周期映射关系确定所述第一报文对应的目标周期,其中,所述周期映射关系包括第一周期和第二周期之间的映射关系,所述第一周期表示基于所述周期映射关系确定的转发周期,所述第二周期表示所述第二设备发送所述第一报文的周期;
所述收发单元,还用于在所述第一报文对应的目标周期转发所述第一报文。
19.根据权利要求18所述的装置,其特征在于,所述收发单元,还用于:
接收所述第二设备在所述第二周期发送的第二报文;
在所述第二报文对应的目标周期转发所述第二报文,所述第二报文对应的目标周期和所述第一报文对应的目标周期不同。
20.根据权利要求18或19所述的装置,其特征在于,
所述第一报文对应的周期修正信息包括所述第一报文对应的偏移周期数,所述第一报文对应的偏移周期数为所述第一报文对应的目标周期相对于所述第一周期偏移的周期数。
21.根据权利要求20所述的装置,其特征在于,所述第一报文对应的目标周期是根据下式确定的:
Y=X+Δ+O,
其中,Y表示所述第一报文对应的目标周期,X表示所述第二周期,Δ表示与所述周期映射关系相关的常数,O表示所述第一报文对应的偏移周期差。
22.根据权利要求18至21中任一项所述的装置,其特征在于,
所述第一报文对应的周期修正信息是根据以下一项或多项信息确定的:
用于传输所述第一报文的多条路径的时延差、用于传输所述第一报文的多条路径的时延差需满足的预设范围、所述多条路径上的可用资源、所述第一报文在所述第一周期可用的资源。
23.根据权利要求18至22中任一项所述的装置,其特征在于,
所述处理单元,还用于本地读取所述第一报文对应的周期修正信息。
24.根据权利要求23所述的装置,其特征在于,
一条流或多条流与周期修正信息之间具有对应关系,所述一条流或多条流包括所述第一报文所在的流;或者,
用于传输所述第一报文的多条路径上的各个设备与周期修正信息之间具有对应关系。
25.根据权利要求18至22中任一项所述的装置,其特征在于,
所述收发单元,还用于接收所述第一报文对应的周期修正信息。
26.根据权利要求25所述的装置,其特征在于,所述第一报文对应的周期修正信息包括:在所述第一设备上所述第一报文对应的周期修正信息,或者,在所述第一设备以及所述第一设备的一个或多个下游设备上所述第一报文对应的周期修正信息;
所述处理单元,具体用于:根据在所述第一设备上所述第一报文对应的周期修正信息和周期映射关系确定所述第一报文对应的目标周期。
27.一种通信装置,其特征在于,包括:收发单元和处理单元,
所述处理单元,用于获取第一报文对应的周期修正信息,所述第一报文对应的周期修正信息用于与周期映射关系确定所述第一报文对应的目标周期,
其中,所述第一报文对应的目标周期是第一设备转发所述第一报文的周期,所述周期映射关系表示第一周期和第二周期之间的映射关系,所述第二周期表示第二设备向所述第一设备发送所述第一报文的周期,所述第一周期表示基于所述周期映射关系确定的转发周期;
所述收发单元,用于发送所述第一报文对应的周期修正信息。
28.根据权利要求27所述的装置,其特征在于,所述处理单元,还用于:
获取第二报文对应的周期修正信息,所述第二报文对应的周期修正信息与所述第一报文对应的周期修正信息不同,其中,所述第二报文和所述第一报文均属于所述第二设备在所述第二周期发送给所述第一设备的报文。
29.根据权利要求27或28所述的装置,其特征在于,
所述第一报文对应的周期修正信息包括所述第一报文对应的偏移周期数,所述第一报文对应的偏移周期数为所述第一报文对应的目标周期相对于所述第一周期偏移的周期数。
30.根据权利要求27至29中任一项所述的装置,其特征在于,所述处理单元,具体用于根据以下一项或多项信息,确定所述第一报文对应的周期修正信息:
用于传输所述第一报文的多条路径的时延差、用于传输所述第一报文的多条路径的时延差需满足的预设范围、所述多条路径上的可用资源、所述第一报文在所述第一周期可用的资源。
31.根据权利要求27至30中任一项所述的装置,其特征在于,所述装置为所述第二设备,所述收发单元,还用于向所述第一设备发送所述第一报文,所述第一报文中携带所述第二周期,或者,所述第一报文中携带所述第二周期和所述第一报文对应的周期修正信息。
32.根据权利要求31所述的装置,其特征在于,所述第一报文对应的周期修正信息包括:在所述第一设备上所述第一报文对应的周期修正信息,或者,在所述第一设备以及所述第一设备的一个或多个下游设备上所述第一报文对应的周期修正信息。
33.根据权利要求27至32中任一项所述的装置,其特征在于,所述装置为控制面设备,收发单元,具体用于向所述第一设备发送所述第一报文对应的周期修正信息。
34.一种通信装置,其特征在于,包括:处理器,所述处理器用于与存储器耦合,读取并执行所述存储器中的指令和/或程序代码,以执行如权利要求1-17中任一项所述的方法。
35.一种芯片系统,其特征在于,包括:逻辑电路,所述逻辑电路用于与输入/输出接口耦合,通过所述输入/输出接口传输数据,以执行如权利要求1-17中任一项所述的方法。
36.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行如权利要求1-17中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110528002.8A CN115348216A (zh) | 2021-05-14 | 2021-05-14 | 报文转发的方法和相关装置 |
PCT/CN2022/085875 WO2022237415A1 (zh) | 2021-05-14 | 2022-04-08 | 报文转发的方法和相关装置 |
EP22806385.5A EP4329262A1 (en) | 2021-05-14 | 2022-04-08 | Packet forwarding method and related apparatus |
US18/506,357 US20240080272A1 (en) | 2021-05-14 | 2023-11-10 | Packet forwarding method and related apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110528002.8A CN115348216A (zh) | 2021-05-14 | 2021-05-14 | 报文转发的方法和相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115348216A true CN115348216A (zh) | 2022-11-15 |
Family
ID=83977778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110528002.8A Pending CN115348216A (zh) | 2021-05-14 | 2021-05-14 | 报文转发的方法和相关装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240080272A1 (zh) |
EP (1) | EP4329262A1 (zh) |
CN (1) | CN115348216A (zh) |
WO (1) | WO2022237415A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3139547B1 (en) * | 2015-09-07 | 2018-10-17 | TTTech Computertechnik AG | An online incremental scheduling method for deterministic networks |
CN110545241B (zh) * | 2018-05-28 | 2022-05-17 | 华为技术有限公司 | 一种报文处理方法和装置 |
CN112311494B (zh) * | 2019-07-23 | 2023-12-08 | 华为技术有限公司 | 一种报文传输方法、装置及系统 |
CN112448896B (zh) * | 2019-08-30 | 2024-04-30 | 华为技术有限公司 | 确定性网络中的发送周期的确定方法和装置 |
-
2021
- 2021-05-14 CN CN202110528002.8A patent/CN115348216A/zh active Pending
-
2022
- 2022-04-08 WO PCT/CN2022/085875 patent/WO2022237415A1/zh active Application Filing
- 2022-04-08 EP EP22806385.5A patent/EP4329262A1/en active Pending
-
2023
- 2023-11-10 US US18/506,357 patent/US20240080272A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4329262A1 (en) | 2024-02-28 |
WO2022237415A1 (zh) | 2022-11-17 |
US20240080272A1 (en) | 2024-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3468123B1 (en) | Method and device for use in processing low-latency traffic | |
CN110024339B (zh) | 报文转发方法、转发设备和网络设备 | |
KR102071439B1 (ko) | 타깃 전송 경로를 획득하는 방법 및 네트워크 노드 | |
US10911262B2 (en) | Deterministic forwarding across L2 and L3 networks | |
CN113382442B (zh) | 报文传输方法、装置、网络节点及存储介质 | |
US20220278919A1 (en) | Mapping relationship updating method and apparatus | |
US11088962B2 (en) | Method for performant data transmission in a data network with, in part, real-time requirements and apparatus for carrying out the method | |
US10374959B2 (en) | Method for transmitting data in a packet-oriented communications network and correspondingly configured user terminal in said communications network | |
EP3884616B1 (en) | Segment routing network | |
US11070478B2 (en) | Method and switch for managing traffic in transport network | |
EP3278518B1 (en) | A network node | |
US10361962B2 (en) | Packet processing technique for a communication network | |
CN113366805A (zh) | 报文调度方法、调度器、网络设备和网络系统 | |
CN111052688B (zh) | 同步数据包传输的方法 | |
US20240048502A1 (en) | Packet forwarding method, electronic device, and storage medium | |
US9288133B2 (en) | Routing device, communications system, and routing method | |
CN115348216A (zh) | 报文转发的方法和相关装置 | |
EP4336795A1 (en) | Message transmission method and network device | |
US11552884B1 (en) | Efficient core routing | |
CN108092866B (zh) | 一种隧道切换的方法、设备和系统 | |
US20240113981A1 (en) | Information processing method, network device, network system, and storage medium | |
CN115733808A (zh) | 一种基于循环队列集群转发的数据传输方法、装置及设备 | |
JP6281338B2 (ja) | 伝送装置および伝送方法 | |
Javed et al. | A REAL TIME ROUTING APPROACH FOR MULTIMEDIA STREAMS BASED ON ANALYSIS OF WIRELESS MESH NETWORKS |
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 |