确定路由的方法、电子设备、计算机可读介质与流程
未命名
08-13
阅读:106
评论:0
1.本公开涉及路由技术领域,特别涉及一种确定路由的方法、电子设备、计算机可读介质。
背景技术:
2.在确定性网络架构中,有确定性转发的服务质量qos(quality of service)目标,如要求从头节点(源节点)到目的节点的最小和最大时延,以及有界的时延抖动。为达到qos目标,可采用确定性路径,即提前计算得到严格的显式路径(路由),并在路径沿途节点(中间节点)上预留资源以满足服务等级协定sla(service level agreement)需求。
3.在一些相关技术中,可预先为待传输的流量(报文)计算其经历的每个中间节点(路由器)中的本地的截止时间(deadline),deadline可为绝对时间(时钟的具体时刻),也可为相对时间(相对的时长),并将这些deadline形成堆栈随转发的报文携带,每个中间节点启动deadline调度,即根据自己对应的deadline对报文进行优先级调度以达到确定性的时延要求。
4.但相关技术在中,计算路由(路径)的过程,是根据未考虑节点时延(包括时延抖动)的非确定性时延进行的,从而其依据的时延不准确,不能得出最佳路由。
技术实现要素:
5.本公开提供一种确定路由的方法、电子设备、计算机可读介质。
6.第一方面,本公开实施例提供一种确定路由的方法,其包括:
7.在目标网络中确定至少一条候选路径;
8.根据当前调度参数、节点内转发时延、链路传输时延,确定每条所述候选路径的确定性时延;其中,所述当前调度参数包括当前截止时间deadline调度时延、当前调度策略,所述节点内转发时延为报文进入节点至转发到出端口的时延,每条候选路径的确定性时延包括其中所有中间节点的节点时延和所有链路的链路传输时延,每个中间节点的节点时延根据其节点内转发时延、当前deadline调度时延、当前调度策略得出;
9.根据确定性时延从候选路径中选出目标路径,并确定路由。
10.在一些实施例中,所述当前调度策略包括提前发送策略或准时发送策略中的任意一种调度策略;所述提前发送策略表征在当前deadline调度时延耗尽之前发送报文,所述准时发送策略表征在当前deadline调度时延耗尽时发送报文;
11.所述当前调度策略为提前发送策略时,每个中间节点的节点时延为大于或等于其节点内转发时延,且小于或等于其节点内转发时延与当前deadline调度时延之和的值;
12.所述当前调度策略为准时发送策略时,每个中间节点的节点时延等于其节点内转发时延与当前deadline调度时延之和。
13.在一些实施例中,所述当前调度策略为提前发送策略时,
14.每个中间节点的节点时延等于其节点内转发时延;
15.或,
16.每个中间节点的节点时延等于其节点内转发时延与当前deadline调度时延之和。
17.在一些实施例中,所述当前deadline调度时延为确定型或非确定型;
18.所述当前deadline调度时延为确定型时,所述候选路径的确定性时延根据当前deadline调度时延的值计算;
19.所述当前deadline调度时延为非确定型时,所述候选路径的确定性时延中的当前deadline调度时延计为0。
20.在一些实施例中,所述当前deadline调度时延为非确定型时,在所述根据确定性时延从候选路径中选出目标路径后,还包括:
21.计算目标路径的确定性时延;所述目标路径的确定性时延为包括当前deadline调度时延的变量的表达式,所述当前deadline调度时延的变量的值根据数据报文或本地策略表项确定。
22.在一些实施例中,在所述在目标网络中确定至少一条候选路径之前,还包括:
23.确定当前调度参数。
24.在一些实施例中,在所述确定当前调度参数之前,还包括:
25.接收节点参数配置指令,根据所述节点参数配置指令设定节点在本地链路的节点参数;每个节点在每个链路的节点参数包括节点调度使能开关、节点调度时延集合、节点调度策略、节点内转发时延;所述节点调度使能开关表征节点是否启用deadline调度,所述节点调度时延集合包括节点在本地链路支持的至少一个deadline调度时延,所述节点调度策略表征deadline调度时延支持的调度策略。
26.在一些实施例中,在所述接收节点参数配置指令与所述确定当前调度参数之间,还包括:
27.发送节点本地链路的节点参数信息;
28.和/或,
29.接收其它节点发送的节点参数信息;所述节点参数信息包括节点调度时延集合的信息、节点调度策略的信息。
30.在一些实施例中,所述节点参数信息为内部网关协议igp的中间系统到中间系统isis或开放式最短路径优先ospf的类型-长度-值tlv报文。
31.在一些实施例中,所述节点参数信息的tlv报文包括:
32.类型字段,用于指示所述tlv报文为所述节点参数信息;
33.长度字段,用于指示所述tlv报文的内容长度;
34.节点调度时延集合中每个deadline调度时延的值和其支持的调度策略的标识。
35.在一些实施例中,每个节点的所有deadline调度时延支持的调度策略相同,所述节点调度时延集合中任意两相邻deadline调度时延间的差值相同;所述节点参数信息的tlv报文包括:
36.类型字段,用于指示所述tlv报文为所述节点参数信息;
37.长度字段,用于指示所述tlv报文的内容长度;
38.节点调度时延集合中最小的deadline调度时延的值,以及最大的deadline调度时延的值;
39.节点的所有deadline调度时延支持的调度策略的标识;
40.节点调度时延集合中任意两相邻deadline调度时延间的差值。
41.在一些实施例中,所述确定当前调度参数包括:
42.接收绑定信息;所述绑定信息包括至少一组绑定关系,每组绑定关系包括一个预置虚拟网络以及该预置虚拟网络对应的调度参数,预置虚拟网络对应的调度参数包括预置虚拟网络对应的deadline调度时延、调度策略,所述预置虚拟网络中的每个节点在每个链路均支持预置虚拟网络对应的deadline调度时延、调度策略;
43.在当前网络为预置虚拟网络时,确定该预置虚拟网络对应的调度参数为当前调度参数。
44.在一些实施例中,所述根据确定性时延从候选路径中选出目标路径包括:
45.根据确定性时延,按照最短路径优先spf算法从候选路径中选出目标路径。
46.在一些实施例中,所述绑定信息为igp的isis或ospf的虚拟网络的tlv报文,所述绑定信息的tlv报文包括:灵活算法定义fad的tlv报文、igp多拓扑的tlv报文、igp网络切片的tlv报文中的至少一种。
47.在一些实施例中,所述绑定信息的tlv报文包括:
48.类型字段,用于指示所述tlv报文为所述绑定信息;
49.长度字段,用于指示所述tlv报文的内容长度;
50.用于指示预置虚拟网络对应的deadline调度时延为确定型或非确定型的标识;所述预置虚拟网络对应的deadline调度时延为非确定型时,计算候选路径的确定性时延的过程中当前deadline调度时延计为0;所述预置虚拟网络对应的deadline调度时延为确定型时,计算候选路径的确定性时延的过程中当前deadline调度时延等于预置虚拟网络对应的deadline调度时延;
51.预置虚拟网络对应的deadline调度时延的值;
52.预置虚拟网络对应的调度策略的标识。
53.在一些实施例中,所述当前网络为物理网络或虚拟网络;
54.所述确定当前调度参数包括:接收调度参数设置指令,根据所述调度参数设置指令确定当前调度参数。
55.在一些实施例中,所述在目标网络中确定至少一条候选路径包括:
56.以所述当前调度参数为算路约束条件之一,在目标网络中确定至少一条流量工程te路径为候选路径。
57.在一些实施例中,在所述根据确定性时延从候选路径中选出目标路径后,还包括创建目标路径的转发表项;所述转发表项包括:
58.表征目标路径启用deadline调度的表项;
59.表征当前deadline调度时延的值的表项;
60.表征当前调度策略的表项;
61.表征目标路径的确定性时延的值的表项。
62.在一些实施例中,所述转发表项还包括:
63.表征目标路径的时延抖动的值的表项;所述目标路径的时延抖动为目标路径中所有中间节点的时延抖动之和,每个所述节点的时延抖动等于其发送报文的最早可能时间与
最晚可能时间的差;
64.表征目标路径中所有链路的链路传输时延之和的值的表项;
65.表征目标路径中所有中间节点的节点时延之和的值的表项。
66.第二方面,本公开实施例提供一种电子设备,其包括:
67.一个或多个处理器;
68.存储器,其上存储有一个或多个计算机程序:
69.一个或多个i/o接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互;
70.当所述一个或多个计算机程序被所述一个或多个处理器执行时,能实现本公开实施例的任意一种确定路由的方法。
71.在一些实施例中,所述电子设备为节点。
72.第三方面,本公开实施例提供一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时能实现本公开实施例的任意一种确定路由的方法。
73.本公开实施例中,在计算路由时,将各中间节点因启用deadline调度而产生的时延(当前deadline调度时延,其可能在一定范围内变化,故也就是时延抖动)和节点内转发时延都考虑在内,从而可准确的得到候选路径总体上的确定性时延(确定性时延),而根据该确定性时延可准确的选出最合理的路由(目标路径),从而提高报文传输的效率,保证实现qos目标。
附图说明
74.在本公开实施例的附图中:
75.图1为本公开实施例提供的一种确定路由的方法的流程图;
76.图2为本公开实施例提供的另一种确定路由的方法的流程图;
77.图3为本公开实施例提供的一种节点参数信息的tlv报文的格式示意图;
78.图4为本公开实施例提供的另一种节点参数信息的tlv报文的格式示意图;
79.图5为本公开实施例提供的一种绑定信息的tlv报文的格式示意图;
80.图6为本公开实施例提供的一种具体示例使用的网络拓扑结构的示意图;
81.图7为根据图6得出的一种候选路径的情况示意图;
82.图8为根据图6得出的另一种候选路径的情况示意图;
83.图9为本公开实施例提供的一种具体示例使用的网络拓扑结构以及所得目标路径的示意图;
84.图10为本公开实施例提供的一种电子设备的组成框图;
85.图11为本公开实施例提供的一种计算机可读介质的组成框图。
具体实施方式
86.为使本领域的技术人员更好地理解本公开的技术方案,下面结合附图对本公开实施例提供的确定路由的方法、电子设备、计算机可读介质进行详细描述。
87.在下文中将参考附图更充分地描述本公开,但是所示的实施例可以以不同形式来体现,且本公开不应当被解释为限于以下阐述的实施例。反之,提供这些实施例的目的在于
使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。
88.本公开实施例的附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与详细实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细实施例进行描述,以上和其它特征和优点对本领域技术人员将变得更加显而易见。
89.本公开可借助本公开的理想示意图而参考平面图和/或截面图进行描述。因此,可根据制造技术和/或容限来修改示例图示。
90.在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
91.本公开所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本公开所使用的术语“和/或”包括一个或多个相关列举条目的任何和所有组合。如本公开所使用的单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。如本公开所使用的术语“包括”、“由
……
制成”,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。
92.除非另外限定,否则本公开所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本公开明确如此限定。
93.本公开不限于附图中所示的实施例,而是包括基于制造工艺而形成的配置的修改。因此,附图中例示的区具有示意性属性,并且图中所示区的形状例示了元件的区的具体形状,但并不是旨在限制性的。
94.第一方面,本公开实施例提供一种确定路由的方法。
95.本公开实施例用于在有报文(流量,数据报文)需要从网络中的头节点传输至目的节点时,预先计算出其确定性路由(路径),即确定该报文应以什么顺序经过哪些链路、哪些中间节点达到目的节点。
96.具体的,本公开实施例的方法可由头节点执行,即,可由头节点计算路由。
97.应当理解,头节点是针对报文而言的,即,网络中的任意节点都有可能作为头节点,故本公开实施例的方法实际可能由网络中的任意节点进行。
98.或者,本公开实施例的方法也可由网络中的集中式的控制器执行,即,也可由控制器计算出路由后下发给节点。
99.应当理解,本公开实施例的方法中还包括节点间相互传输信息的步骤,其用于使各节点获得网络的信息(如后续的当前调度参数等);而当计算路由的步骤由控制器执行时,则控制器可通过其它的方式从网络侧获取网络的信息(如网络拓扑、当前调度参数等),如通过边界网管协议-连接状态bgp-ls(border gateway protocol-link state)获取,在此不再详细描述。
100.参照图1,本公开实施例的确定路由的方法包括:
101.s101、在目标网络中确定至少一条候选路径(path)。
102.当要在当前的网络(目标网络)中从头节点向目的节点传输一个报文(数据报文)时,首先计算得到一条或多条从头节点到目的节点的候选路径(确定性路径)。
103.s102、根据当前调度参数、节点内转发时延、链路传输时延,确定每条候选路径的确定性时延。
104.其中,当前调度参数包括当前deadline调度时延、当前调度策略,节点内转发时延为报文进入节点至转发到出端口的时延,每条候选路径的确定性时延包括其中所有中间节点的节点时延和所有链路的链路传输时延,每个中间节点的节点时延根据其节点内转发时延、当前deadline调度时延、当前调度策略得出。
105.针对每条候选路径,计算其总体上的时延(确定性时延)。
106.本公开实施例中,候选路径的确定性时延包括该候选路径中所有链路的链路传输时延(即在每段链路上传输的耗时),以及其所有中间节点的节点时延(即在中间节点内部传输的耗时)。
107.而每个中间节点(节点)的节点时延根据两部分内容计算得到,一部分是节点内转发时延,另一部分是deadline调度引起的时延。
108.节点内转发时延是指任意报文从进入该节点(如进入入端口或控制平面)时至达到节点相应链路的出端口的必须耗时,对每个节点而言,其通常为固定值。
109.deadline调度引起的时延是根据当前使用的deadline调度时延(即当前调度参数中的当前deadline调度时延)和当前选取的调度策略(当前调度策略)决定的,其代表报文在达到出端口的队列后,还可能等待一定时间才实际发出,但必然是在deadline调度时延耗尽之前发出。
110.s103、根据确定性时延从候选路径中选出目标路径,并确定路由。
111.根据各候选路径的确定性时延,从中选出一个候选路径为目标路径,并根据目标路径产生路由,完成路由的计算。
112.当然,后续可继续根据计算得到的路由进行发送报文的过程。
113.本公开实施例中,在计算路由时,将各中间节点因启用deadline调度而产生的时延(当前deadline调度时延,其可能在一定范围内变化,故也就是时延抖动)和节点内转发时延都考虑在内,从而可准确的得到候选路径总体上的确定性时延(确定性时延),而根据该确定性时延可准确的选出最合理的路由(目标路径),从而提高报文传输的效率,保证实现qos目标。
114.在一些实施例中,当前调度策略包括提前发送策略或准时发送策略中的任意一种调度策略;提前发送策略表征在当前deadline调度时延耗尽之前发送报文,准时发送策略表征在当前deadline调度时延耗尽时发送报文;
115.当前调度策略为提前发送策略时,每个中间节点的节点时延为大于或等于其节点内转发时延,且小于或等于其节点内转发时延与当前deadline调度时延之和的值;
116.当前调度策略为准时发送策略时,每个中间节点的节点时延等于其节点内转发时延与当前deadline调度时延之和。
117.作为本公开实施例的一种方式,可作为当前调度策略的候选调度策略有两种,提前发送策略和准时发送策略。其中,提前发送策略表示节点可在相应的deadline调度时延耗尽前的任意时刻发送报文,而准时发送策略表示节点应在相应的deadline调度时延耗尽的时刻发送报文。相应的,准时发送策略造成的节点时延是“节点内转发时延(该时延是必然存在的)+相应deadline调度时延”;而提前发送策略造成的节点时延则可能在“节点内转发时延”与“节点内转发时延(该时延是必然存在的)+相应deadline调度时延”之间变化。
118.在一些实施例中,当前调度策略为提前发送策略时,
119.每个中间节点的节点时延等于其节点内转发时延;
120.或,
121.每个中间节点的节点时延等于其节点内转发时延与当前deadline调度时延之和。
122.如前,当采用提前发送策略时,每个中间节点的节点时延是在一定范围内的变量,从而导致候选路径的确定性时延也是变量,不好比较。因此,可设定在计算过程中,所有中间节点的节点时延均取最小值,或均取最大值,以便在相同标准下比较。
123.当然,此时节点时延的取法也不限于此,例如,也可以是各中间节点的节点时延都去范围内的随机值,或取范围的中间值等。
124.在一些实施例中,当前deadline调度时延为确定型或非确定型;
125.当前deadline调度时延为确定型时,候选路径的确定性时延根据当前deadline调度时延的值计算;
126.当前deadline调度时延为非确定型时,候选路径的确定性时延中的当前deadline调度时延计为0。
127.作为本公开实施例的一种方式,deadline调度时延除了具有“具体时延值”之外,还可能有两种不同类型,即确定型或非确定型。其中,确定型表示在确定候选路径的确定性时延时,就按照当前deadline调度时延的“具体时延值”进行计算,而非确定型表示在计算候选路径的确定性时延的过程中,当前deadline调度时延就取0(不代表其具体值为0,而是当前deadline调度时延的“具体时延值”认为无意义)。
128.在一些实施例中,当前deadline调度时延为非确定型时,在根据确定性时延从候选路径中选出目标路径后,还包括:
129.计算目标路径的确定性时延;目标路径的确定性时延为包括当前deadline调度时延的变量的表达式,当前deadline调度时延的变量的值根据数据报文或本地策略表项确定。
130.作为本公开实施例的一种方式,当采用非确定型的当前deadline调度时延时,在确定出某个候选路径为目标路径时,则再次计算该确定性时延,此时确定性时延中包括当前deadline调度时延的变量(对目标路径,当前deadline调度时延不取0),而当前deadline调度时延的具体值根据其它方式获得,如根据数据报文或本地策略表项确定,从而可得到根据确定的当前deadline调度时延计算出的目标路径的确定性时延,并以此判断目标路径是否满足要求等。
131.参照图2,在一些实施例中,在目标网络中确定至少一条候选路径(s101)之前,还包括:
132.s1002、确定当前调度参数。
133.在计算候选路径之前,还可先根据当前情况确定要使用的当前调度参数,以根据确定出的当前调度参数计算候选路径。
134.当然,如果当前调度参数是提前设置的固定参数,也是可行的。
135.参照图2,在一些实施例中,在确定当前调度参数(s1002)之前,还包括:
136.s1001、接收节点参数配置指令,根据节点参数配置指令设定节点在本地链路的节点参数。
137.每个节点在每个链路的节点参数包括节点调度使能开关、节点调度时延集合、节
点调度策略、节点内转发时延;节点调度使能开关表征节点是否启用deadline调度,节点调度时延集合包括节点在本地链路支持的至少一个deadline调度时延,节点调度策略表征deadline调度时延支持的调度策略。
138.在网络中的每个节点的每个本地链路,都要在一定的“配置”下工作,而配置的具体内容可包括有关deadline调度的内容(节点参数)。即,每个节点,在其每条本地链路上,都可根据相应的“节点参数”进行deadline调度。而每个节点在每个本地链路的节点参数可包括节点调度使能开关(即该节点在该链路是否启用deadline调度)、节点调度时延集合(即该节点在该链路能支持哪些deadline调度时延)、节点调度策略(即该节点在该链路,针对其支持的每个deadline调度时延,能支持哪些调度策略)、节点内转发时延(即该节点的节点内转发时延)。
139.为此,在确定当前调度参数之前,还可先向各节点发出参数配置指令,使各节点根据参数配置指令设置自身的节点参数。
140.在一些实施例中,在接收节点参数配置指令(s1001)与确定当前调度参数(s1002)之间,还包括:发送节点本地链路的节点参数信息;和/或,接收其它节点发送的节点参数信息。
141.其中,节点参数信息包括节点调度时延集合的信息、节点调度策略的信息。
142.每个节点根据参数配置指令设置本地链路的节点参数后,还需要向其它节点通告自身的节点参数(即发出节点参数信息),并接收其它节点的节点参数(即接收节点参数信息),以使各节点均获知整个网络的节点参数配置情况。
143.其中,节点参数信息至少包括节点调度时延集合的信息、节点调度策略的信息;当然,节点参数的信息还可包括节点调度使能开关的信息、节点内转发时延的信息等。
144.应当理解,某“参数的信息”是指,根据信息的内容,最终可以获知相应参数的状况。例如,参数的信息中可直接包括该参数,也可以是根据信息的内容能“推知”该参数。例如,对“节点调度时延集合的信息”,其中可直接包括相应deadline调度时延的值,也可以包括节点内转发时延的值以及针对不同deadline调度时延的节点时延的值,而通过二者可计算出deadline调度时延的值。
145.在一些实施例中,节点参数信息为内部网关协议igp(interior gateway protocol)的中间系统到中间系统isis(intermediate system to intermediate system)或开放式最短路径优先ospf(open shortest path first)的类型-长度-值tlv(type-length-value)报文。
146.具体的,可通过igp泛洪方式完成节点参数的通告,例如在已有的isis协议集(参考rfc5305、rfc5311、rfc5316、rfc5120)中定义了tlvs 22/23/141/222/223/25等用于通告邻接关系,而本公开实施例可在这些tlvs中新增一种sub-tlv(子tlv)用于通告节点参数。当然,也可在ospf中扩展新的tlv完成以上通告。
147.在一些实施例中,节点参数信息的tlv报文包括:
148.类型字段,用于指示tlv报文为节点参数信息;
149.长度字段,用于指示tlv报文的内容长度;
150.节点调度时延集合中每个deadline调度时延的值和其支持的调度策略的标识。
151.参照图3,作为本公开实施例的一种方式,用于通告节点参数信息的tlv报文中可
包括:
152.指示tlv报文为节点参数信息的类型字段(图3中的type);
153.表示tlv报文的内容长度(不包括type字段和length字段)的长度字段(图3中的length);
154.节点调度时延集合中每个deadline调度时延的值(图3中的q1、q2
…
qn);
155.每个deadline调度时延支持的调度策略的标识(图3中各q之前的p)。
156.在一些实施例中,每个节点的所有deadline调度时延支持的调度策略相同,节点调度时延集合中任意两相邻deadline调度时延间的差值相同;节点参数信息的tlv报文包括:
157.类型字段,用于指示tlv报文为节点参数信息;
158.长度字段,用于指示tlv报文的内容长度;
159.节点调度时延集合中最小的deadline调度时延的值,以及最大的deadline调度时延的值;
160.节点的所有deadline调度时延支持的调度策略的标识;
161.节点调度时延集合中任意两相邻deadline调度时延间的差值。
162.参照图4,作为本公开实施例的另一种方式,当所有deadline调度时延支持的调度策略情况相同,且任意两相邻deadline调度时延间的差值相同(或者说具有“固定的间隔”)时,为减少通告报文的长度,用于通告节点参数信息的tlv报文也可包括:
163.指示tlv报文为节点参数信息的类型字段(图4中的type);
164.表示tlv报文的内容长度(不包括type字段和length字段)的长度字段(图4中的length);
165.节点调度时延集合中最小的deadline调度时延的值(图4中的q1),以及最大的deadline调度时延的值(图4中的qn);
166.所有deadline调度时延支持的调度策略的标识(图4中的p);
167.节点调度时延集合中任意两相邻deadline调度时延间的固定的间隔(图4中的i)。
168.由此,通过以上q1和qn,以及i,即可计算出所有其它的q。
169.当然,节点参数信息的具体形式不限于以上例子,只要其实际上包括了所需的信息即可。
170.在一些实施例中,确定当前调度参数(s1002)包括:
171.s10021、接收绑定信息。
172.绑定信息包括至少一组绑定关系,每组绑定关系包括一个预置虚拟网络以及该预置虚拟网络对应的调度参数,预置虚拟网络对应的调度参数包括预置虚拟网络对应的deadline调度时延、调度策略,预置虚拟网络中的每个节点在每个链路均支持预置虚拟网络对应的deadline调度时延、调度策略。
173.s10022、在当前网络为预置虚拟网络时,确定该预置虚拟网络对应的调度参数为当前调度参数。
174.作为本公开实施例的一种方式,可以是预先创建一个或多个“预置虚拟网络(其可为任何有别于原始物理网络的虚拟网络,如igp多拓扑、igp灵活算法、网络切片等)”,而每个预置虚拟网络具有对应的(或者说绑定的)的调度参数,即,预置虚拟网络和调度参数之
间具有绑定关系。
175.进而,可向至少部分节点发送“绑定信息”,绑定信息限定了以上绑定关系;从而当要在某个预置虚拟网络中传输报文而选择候选路径时,可直接采用该预置虚拟网络绑定的调度参数为当前调度参数。
176.应当理解,由于预置虚拟网络是与调度参数绑定的,故任意预置虚拟网络中的节点(链路)均是支持其对应的调度参数的。例如,未开启deadline调度的节点(链路)不会进入任何预置虚拟网络,或者,不支持预置虚拟网络对应的deadline调度时延、调度策略的节点(链路)也不会进入相应的预置虚拟网络。
177.在一些实施例中,根据确定性时延从候选路径中选出目标路径(s103)包括:根据确定性时延,按照最短路径优先spf(shortest path first)算法从候选路径中选出目标路径。
178.针对以上的预置虚拟网络,可以是按照spf算法从候选路径中选出目标路径,即目标路径为spf path。
179.其中,可以是只在每个预置虚拟网络的部分节点上直接配置以上绑定关系,再通过igp通告和学习,使得整个igp域内的节点对这绑定关系达成一致的理解。
180.在一些实施例中,绑定信息为igp的isis或ospf的虚拟网络的tlv报文,绑定信息的tlv报文包括:灵活算法定义fad(flexible algorithm definition)的tlv报文、igp多拓扑的tlv报文、igp网络切片的tlv报文中的至少一种。
181.具体的,绑定信息也可为新增的igp的isis或ospf的虚拟网络的tlv报文的形式,如fad的tlv报文、igp多拓扑的tlv报文、igp网络切片的tlv报文等。
182.在一些实施例中,绑定信息的tlv报文包括:
183.类型字段,用于tlv报文为绑定信息;
184.长度字段,用于tlv报文的内容长度;
185.用于指示预置虚拟网络对应的deadline调度时延为确定型或非确定型的标识;预置虚拟网络对应的deadline调度时延为非确定型时,计算候选路径的确定性时延的过程中当前deadline调度时延计为0;预置虚拟网络对应的deadline调度时延为确定型时,计算候选路径的确定性时延的过程中当前deadline调度时延等于预置虚拟网络对应的deadline调度时延;
186.预置虚拟网络对应的deadline调度时延的值;
187.预置虚拟网络对应的调度策略的标识。
188.参照图5,作为本公开实施例的一种方式,以上绑定信息的tlv报文可包括:
189.指示tlv报文为绑定信息的类型字段(图5中的type);
190.表示tlv报文的内容长度(不包括type字段和length字段)的长度字段(图5中的length);
191.指示预置虚拟网络对应的deadline调度时延为以上确定型或非确定型的标识(图5中的u);
192.预置虚拟网络对应的调度策略的标识(图5中的p);
193.预置虚拟网络对应的deadline调度时延的值(图5中的q)。
194.当然,绑定信息的具体形式不限于以上例子,只要其实际上包括了所需的信息即
可。
195.在一些实施例中,当前网络为物理网络或虚拟网络;确定当前调度参数(s1002)包括:
196.s10023、接收调度参数设置指令,根据调度参数设置指令确定当前调度参数。
197.作为本公开实施例的另一种形式,也可以是在物理网络或虚拟网络中,用参数设置指令直接“指定”当前调度参数。
198.在一些实施例中,在目标网络中确定至少一条候选路径(s101)包括:以当前调度参数为算路约束条件之一,在目标网络中确定至少一条流量工程te(traffic engineering)路径为候选路径。
199.在直接指定当前调度参数时,可以是将当前调度参数为算路约束条件(当然还可能有其它的约束条件),计算te路径为候选路径,从而所得的候选路径是te path。
200.应当理解,由于当前调度参数是约束条件,故其计算的得到的候选路径中的节点(链路)均是支持当前调度参数的。例如,未开启deadline调度的节点(链路),或者不支持当前deadline调度时延、当前调度策略的节点(链路),均不会被选入候选路径中。
201.在一些实施例中,在根据确定性时延从候选路径中选出目标路径(s103)后,还包括创建目标路径的转发表项;转发表项包括:
202.表征目标路径启用deadline调度的表项;
203.表征当前deadline调度时延的值的表项;
204.表征当前调度策略的表项;
205.表征目标路径的确定性时延的值的表项。
206.在一些实施例中,转发表项还包括:
207.表征目标路径的时延抖动的值的表项;目标路径的时延抖动为目标路径中所有中间节点的时延抖动之和,每个节点的时延抖动等于其发送报文的最早可能时间与最晚可能时间的差;
208.表征目标路径中所有链路的链路传输时延之和的值的表项;
209.表征目标路径中所有中间节点的节点时延之和的值的表项。
210.本公开实施例中,在确定出目标路径后,头节点(或控制器)还可创建目标路径的转发表项,以指导报文的实际转发。其中,转发表项中包括目标路径的相关信息,例如可包括:
211.键值:prefix-d(d表示头节点)
212.转发信息:next_hop=下一跳的邻居
213.interface=下一跳的出端口
214.(或者,以上两项也可用段列表(segment list)等其它形式的转发信息替代)
215.metric_type(度量类型)=min unidirectional link delay(最小单向链路延迟)或deadline-delay(截止时间延迟)
216.deadline flag=true(表示后选路径启用deadline调度)
217.scheduling dealy=当前deadline调度时延
218.scheduling policy=当前调度策略
219.total_metric=目标路径的确定性时延
220.total_metric_variation=目标路径的时延抖动
221.total_metric_intra_node=目标路径的累计节点时延
222.total_metric_link=目标路径的累计链路传输时延。
223.应当理解,其它的中间节点也可相应创建相应的转发表项。
224.下面,对本公开实施例整体的具体过程进行描述,其包括:
225.步骤1、在各节点上,配置其本地链路(物理链路或虚拟链路)的基于deadline的节点参数,包括:节点调度使能开关、节点内转发时延、节点调度时延集合(包含一个或多个deadline调度时延),以及节点调度时延集合中的每个元素(deadline调度时延)所支持的调度策略。
226.之后,节点通过igp泛洪向网络中通告其本地配置的上述节点参数,并接收其它节点通告的节点参数。
227.其中,各节点参数的含义如下:
228.节点内转发时延:报文从入端口转发到出端口,或从控制平面转发到出端口所需要消耗的时间,一般是一个固定值,记为f。
229.节点调度时延集合:由一个或多个deadline调度时延q组成的集合《q1,q2
…
qn》,其中q1最小,qn最大。一般情况下,集合中相邻两个元素之间的差值是固定的,即从q1开始,以固定的间隔i递增到qn。
230.节点调度使能开关:针对物理网络中的一条物理链路或虚拟链路,配置其是否启用deadline调度能力,若启用则通过该链路转发的报文将采用基于deadline调度的报文调度算法进行调度,使得报文在节点内的驻留时间不超过最大允许驻留时长δ,其中,δ=节点内转发时延f+deadline调度时延q。
231.调度策略:对于每个deadline调度时延q,存在两种可能的调度策略,即提前发送策略和准时发送策略。采用提前发送策略时,报文可能在调度时延没有达到q时就从出端口发送,即报文在节点内的节点时延(实际驻留时长)处于范围[f,f+q]内,即,最小的节点时延为f,最大的节点时延等于f+q,节点的时延抖动等于q。而采用准时发送策略时,报文需在调度时延等于q时才向出端口发送,即报文在节点内的节点时延等于f+q(最小的节点时延、最大的节点时延均等于f+q),节点的时延抖动等于0。
[0232]
针对上述涉及的链路的节点参数通过igp协议泛洪以节点参数信息的形式通告,一种节点参数信息具体的实现方式可为扩展isis。现有的isis协议集(参考rfc5305、rfc5311、rfc5316、rfc5120)已经定义了tlvs 22/23/141/222/223/25用于通告邻接关系,本公开实施例在这些tlvs中新增一种sub-tlv作为节点参数信息,记为deadline scheduling sub-tlv,用于通告链路的节点参数。当然,只有当某个节点的isis实例下的链路配置了节点调度使能开关为打开时,该节点才需要针对该链路通告deadline scheduling sub-tlv,否则无需通告。
[0233]
图3给出了一种具体的isis deadline scheduling sub-tlv,其中包括:
[0234]
type(类型字段):占1字节,其取值待互联网地址编码分配机构iana(internet assigned numbers authority)分配,以表示本tlv为deadline scheduling sub-tlv。
[0235]
length(长度字段):占1字节,表示本tlv的内容长度(不包括type和length字段本身)。
[0236]
q:表示该链路的节点调度时延集合《q1,q2
…
qn》,单位为us(微秒)。每个所支持的deadline调度时延q的信息占2个字节;其中最高的两个比特表示调度策略p,调度策略p的标识意义可以为:0暂未定义,1表示仅支持提前发送策略,2表示仅支持准时发送策略,3表示同时支持提前发送策略与准时发送策略;后续比特标识deadline调度时延q的具体值。
[0237]
如前,给定deadline调度时延q及其调度策略,并结合节点内转发时延f(其实际也可包括在节点参数信息中),可推导出相应的节点时延与抖动属性,因此在isis deadline scheduling sub-tlv中可不再显式的包含这些属性。
[0238]
应当理解,isis deadline scheduling sub-tlv中通告的deadline调度时延q必须与该链路实际在转发平面实例化的deadline队列调度机制一致,如果转发平面并未实例化支持某种deadline调度时延q的deadline队列调度,但在isis deadline scheduling sub-tlv中通告了该deadline调度时延q,可能会导致后续路由计算时出错。
[0239]
其中,若需要通告的节点调度时延集合《q1,q2
…
qn》包含的元素很多,且集合中相邻两个元素之间的差值是固定的间隔i,并且针对每个元素所支持的调度策略都一样,则可采取另外一种更简化的扩展方式,即如图4所示的deadline scheduling simplified sub-tlv,其包括:
[0240]
type(类型字段):占1字节,其取值待iana分配,以表示本tlv为deadline scheduling sub-tlv(更具体是deadline scheduling simplified sub-tlv)。
[0241]
length(长度字段):占1字节,表示本tlv的内容长度(不包括type和length字段本身)。
[0242]
q:表示该链路的节点调度时延集合《q1,q2
…
qn》,q1为集合中的最小的deadline调度时延,qn为集合中的最大的deadline调度时延,单位为us,分别占2个字节。
[0243]
i:占2字节,表示节点调度时延集合中相邻两个元素之间的固定差值,单位为us。其中最高的两个比特表示调度策略p,调度策略p的标识意义可以为:0暂未定义,1表示仅支持提前发送策略,2表示仅支持准时发送策略,3表示同时支持提前发送策略与准时发送策略。
[0244]
应当理解,如前,δ=f+q,因此节点参数信息中也可以是携带δ的集合,并根据δ和f算出deadline调度时延q。
[0245]
应当理解,也可以是通过扩展ospf的tlv通告节点参数等,在此不再赘述。
[0246]
步骤2、创建虚拟网络(即预设虚拟网络,包含任何有别于原始物理网络的虚拟网络技术,如igp多拓扑、igp灵活算法、网络切片等),并绑定该虚拟网络期望使用的调度参数(如deadline调度时延q、调度策略),并通过igp通告和学习特定虚拟网络与特定调度参数间的绑定关系,使得整个igp域内的节点对这种绑定关系达成一致的理解。
[0247]
虽然不同的虚拟网络技术有不同的方式去扩展以支持绑定特定的调度参数,但绑定关系可一般的表示为:《虚拟网络标识,deadline调度时延q和调度策略》。比如,对igp多拓扑技术(参考rfc4915、rfc5120、rfc5340),虚拟网络标识可就是多拓扑标识(mt-id);对igp灵活算法(igp flex-algo)技术(参考draft-ietf-lsr-flex-algo-18),虚拟网络标识可就是灵活算法标识(flex-algorithm);对网络切片技术(参考draft-ietf-teas-ietf-network-slices-05),虚拟网络标识可就是网络切片标识(slice-id)或网络资源分割标识(nrp-id)等。
[0248]
具体实现时,可在同一虚拟网络的一个或多个节点上,配置以上绑定关系《虚拟网络标识,deadline调度时延q和调度策略》,然后通过igp在整个igp域内通告配置的绑定关系。其中,如果针对同一虚拟网络标识存在多份绑定关系通告时,节点可根据其它信息(如随绑定关系通告的优先级字段),从多份绑定关系中择优使用一个。
[0249]
注意,绑定关系中的deadline调度时延q可以是一个确定值(确定型),也可以是一个未知值(非确定型)。
[0250]
如果根据绑定关系,某个虚拟网络使用特定的deadline调度时延q和调度策略,需检查该虚拟网络中加入的所有链路资源,必需配置节点调度使能开关打开且支持相应的deadline调度时延q和调度策略,否则,不符合条件的链路(节点)将被排除在该虚拟网络之外。当然,如果绑定关系中的deadline调度时延q是一个未知值(非确定型),那么在检查时可不判断链路是否支持deadline调度时延q。
[0251]
下面以igp flex-algo为例,描述一种具体的扩展方式以支持将特定的flex-algo平面(即flex-algorithm为标识的虚拟网络)与特定的调度参数(deadline调度时延q和调度策略)进行绑定。
[0252]
igp flex-algo提出的方案允许igp自己去计算网络中的基于约束的路径,定义了isis、ospf的相应扩展,这些扩展使路由器能够发送tlv,这些tlv包括:计算类型(calc-type)、度量类型(metric-type)、描述拓扑上的一组约束;计算类型、度量类型和约束的组合称为灵活算法定义fad。即,igp flex-algo最终会构建出一个以flex-algorithm为标识的虚拟网络(flex-algo平面),并在该虚拟网络内基于特定的calc-type和metric-type计算spf路径,创建spf路由。而本公开实施例对igp flex-algo的扩展可包括:
[0253]
在fad中可增加绑定的调度参数(deadline调度时延q和调度策略),如果flex-algo平面绑定了特定的deadline调度时延q和调度策略,则该flex-algo平面中加入的所有链路资源,必需配置了节点调度使能开关打开并支持相应的deadline调度时延q和调度策略,而不符合条件的链路(节点)将被排除在该flex-algo平面之外。
[0254]
更具体的,可以是扩展isis协议,在is-is flexible algorithm definition sub-tlv中新定义如图5所示的is-is fad deadline scheduling sub-tlv(绑定信息),其包括:
[0255]
type(类型字段):占1字节,其取值待iana分配,以表示本tlv为is-is fad deadline scheduling sub-tlv。
[0256]
length(长度字段):占1字节,表示本tlv的内容长度(不包括type和length字段本身)。
[0257]
flags:占1字节,标志位,当前定义了两个标志。
[0258]
u-flag(u):占1比特,提示deadline调度时延q的值是已知的(确定型)还是未知的(非确定型),取值可以为:如果为0表示后续的q中的值是确定的,如果为1,表示后续的q中的值是未知的。
[0259]
p-flag:占2比特,表示调度策略,取值可以为:0暂未定义,1表示提前发送策略;2表示准时发送策略,3暂未定义。
[0260]
q:占2字节,表示flex-algorithm绑定的deadline调度时延q,单位为us。应当理解,如果u-flag为1(即deadline调度时延q的值是位置的),则q中的值可被忽略(例如为全
0)。
[0261]
应当理解,也可以是通过扩展ospf的tlv通告绑定信息等,在此不再赘述。
[0262]
步骤3-1、在虚拟网络中使用绑定的调度参数为当前调度参数,并使用igp基于当前调度参数去计算具有确定性时延与时延抖动的spf路径,计算得到的路径的累计时延与时延抖动中,包括了路径沿途各链路的传输时延(链路传输时延)与传输时延抖动(实际一般为0)的贡献部分,以及沿途各节点内部的时延(节点内转发时延)与时延抖动的贡献部分。本公开实施例将这样的路径称为deadline spf path(目标路径)。相比相关技术中的spf path而言,deadline spf path的metric是确定性时延metric(包括了确定的节点时延累计与链路传输时延累计),而传统的spf path的metric是非确定性时延metric(未考虑节点时延)。
[0263]
因此,deadline spf path的计算方法可为:
[0264]
a)对于同源同宿的多条候选路径,计算每条路径的累计的确定性时延metric。
[0265]
b)在这多条候选路径中具有最小累计确定性时延metric的候选路径,即为目标路径,也即deadline spf path。
[0266]
仍然以igp flex-algo为例进行说明,已有的igp flex-algo定义的fad中,虽然metric-type设置为min unidirectional link delay时,会去计算具有最小累计链路传输时延的spf路径,但由于没有考虑节点时延,因此,计算得到的spf路径的总时延与时延抖动不是确定的。
[0267]
本公开实施例中,在is-is flexible algorithm definition flags sub-tlv中新增标志d-flag(deadline flag),表征其采用本公开实施例的方式,占1比特,d-flag与fad中的metric-type:min unidirectional link delay结合使用。
[0268]
当d-flag为1时,用于显式触发计算deadline spf path,即具有累计节点时延与累计链路传输时延之和最小的spf路径,此时可根据前述定义的is-is fad deadline scheduling sub-tlv获得deadline调度时延q和调度策略,用于路径计算。
[0269]
当d-flag为0时,仍然是传统的计算具有最小累计链路传输时延的spf路径(即未启用本公开实施例的方式)。
[0270]
应当理解,以上内容只是一种示例性的扩展方式,而为使得在flex-algo平面内计算deadline spf path,其它fad的扩展方式也是可行的,例如是新定义的metric type等。
[0271]
由此可知,在计算候选路径的确定性时延metric=路径中所有中间节点的节点时延累计+路径中所有链路的链路传输时延累计。
[0272]
假设从is-is fad deadline scheduling sub-tlv中获得了当前deadline调度时延q和当前调度策略,则对于候选路径中的任一中间节点i而言,其贡献的节点时延为:
[0273]
a)当前调度策略为提前发送策略时,节点时延介于f(i)至f(i)+q(当前deadline调度)之间,其中f(i)表示节点i的节点内转发时延。
[0274]
应当理解,此时实际的节点时延是一个范围(前提是q不为0),而在不同候选路径之间进行择优和比较时需要确定值,因此可以有两种方式:方式一,节点时延取值为f(i);方式二,节点时延取值为f(i)+q。其中,由于metric-type设置为min unidirectional link delay时的意义就是基于最小时延去计算候选路径的时延metric,可默认采用以上方式一。
[0275]
b)当前调度策略为准时发送策略时,节点时延等于f(i)+q。
[0276]
应当理解,如果当前deadline调度时延q是非确定型,则以上计算中当前deadline调度时延q暂时用0替代。
[0277]
应当理解,上述候选路径的确定性时延metric的作用是多条候选路径之间进行比较并最终计算得到deadline spf path,因此,如前所述,候选路径的确定性时延metric会有些适当的调整,比如当前deadline调度时延q是非确定型,则以上计算中当前deadline调度时延q暂时用0替代。
[0278]
但是,一旦得到deadline spf path(目标路径),则deadline spf path的确定性时延metric就应该是实际的具体时延,而如前,对deadline spf path中的任一中间节点i而言,其贡献的节点时延可能是包括q的(即f(i)+q),而若q是未知值,则目标路径的确定性时延是包括变量q的表达式,而仍然不是实际的具体时延。为此,此时需要通过其它渠道给出确定的deadline调度时延q,比如在转发的数据报文中携带deadline调度时延q的值或其它能推导出deadline调度时延q的值的信息,或是根据预设的本地策略表项确定deadline调度时延q的值。
[0279]
由此可知,对于deadline spf path中的任一中间节点而言,其贡献的节点的时延抖动为:
[0280]
a)当前调度策略为提前发送策略时,节点的时延抖动为q;
[0281]
b)当前调度策略为准时发送策略时,节点的时延抖动为0。
[0282]
进一步的,根据上述flex-algo平面内计算得到的deadline spf path,就可以在flex-algo平面内建立至其它目的节点的prefix(前缀)转发表项(或mpls标签表项,或segment routing的sid表项,或srv6 locator表项等),以使用其指导报文转发。应当理解,某个flex-algo平面中建立的这些转发表项为了与其它flex-algo平面或者原始物理网络的转发表项进行区分,会使用单独的prefix(或单独的mpls标签,或单独的sid,或单独的srv6 locator等),如在某个flex-algo平面内头节点s上维护了至目的节点d的prefix-d的路由表项(其它的标签表项或sid表项都是类似的),一般可包括如下的内容:
[0283]
键值:prefix-d(d表示头节点)
[0284]
转发信息:next_hop=下一跳的邻居
[0285]
interface=下一跳的出端口
[0286]
metric_type=min unidirectional link delay
[0287]
deadline flag=true
[0288]
scheduling dealy=当前deadline调度时延
[0289]
scheduling policy=当前调度策略
[0290]
total_metric=目标路径的确定性时延
[0291]
total_metric_variation=目标路径的时延抖动
[0292]
total_metric_intra_node=目标路径的累计节点时延
[0293]
total_metric_link=目标路径的累计链路传输时延。
[0294]
应当理解,也可类似的扩展igp多拓扑与网络切片等其它虚拟网络技术,在此不再详细描述。
[0295]
步骤3-2、作为本公开实施例的另一种方式,也可以是不预先绑定虚拟网络与调度参数,而是在物理网络或虚拟网络中,直接将指定的调度参数作为当前调度参数,并用调度
参数作为一种约束条件去计算te路径,本公开实施例将这样的路径称为deadline te path(目标路径)。
[0296]
此时所计算得到的te路径(te path)的确定性时延中,同样包括了路径沿途各链路的传输时延(链路传输时延)与传输时延抖动(实际一般为0)的贡献部分,以及沿途各节点内部的时延(节点内转发时延)与时延抖动的贡献部分。
[0297]
与计算deadline spf path类似,在计算得到目标deadline te path前,也是在多条候选te path间择优选择,其具体方式与以上deadline spf path的计算类似,在此不再详细描述。
[0298]
例如,上述deadline te path可在网络中实例化成一条rsvp-te tunnel,或segment routing policy,或其它形式。需要注意的是,deadline te path沿途各中间节点上需安装相应的转发表项以指导报文沿deadline te path的转发,而这些转发表项可能是公共的,并不包括算路约束条件中的当前deadline调度时延q和当前调度策略等信息,因此需要在转发的数据报文中携带当前deadline调度时延q的值(或其它能推导出当前deadline调度时延q的值的信息)和当前调度策略,使得各中间节点在收到报文时能基于当前deadline调度时延q和当前调度策略执行报文调度。
[0299]
下面结合具体的网络拓扑和数值,示例性的说明本公开实施例的方法。
[0300]
具体示例1:
[0301]
本示例1中,使用igp flex-algo创建虚拟网络(或称为flex-algo平面),并在该虚拟网络中计算deadline spf path。参照图6,该igp flex-algo平面中包含5个节点(r1节点至r5节点),以及连接在节点间的链路(所有链路均为双向链路),其中链路边的数据为其链路传输时延的值(单位为us,下同)。
[0302]
假设虚拟网络中所有节点的链路的节点参数均如下:
[0303]
节点调度使能开关:on(打开)
[0304]
节点内转发时延f:5us
[0305]
节点调度时延集合:《10us,20us,30us,40us,50us,60us》
[0306]
节点调度策略:同时支持提前发送策略与准时发送策略。
[0307]
先配置igp flex-algo 128的fad,设置metric type为min unidirectional link delay,deadline flag为true,设置其绑定的调度参数(例如是所有节点协商得到的最优调度参数,或者是指定的调度参数)为:deadline调度时延q=10us,调度策略为提前发送策略。假设该fad内容就是flex-algo 128平面内的所有节点协商后得到的最优fad。
[0308]
以r1节点为例,它以自身为根(即r1为头节点)计算得到所有候选路径参照图7,图7中,各链路边的每组数据中,前一个数字表示该链路前的中间节点的节点时延,后一个数字是链路本身的链路传输时延;而min delay和max delay分别表示该段链路的确定性时延的下限和上限。
[0309]
由此,对于以r1节点为头节点,r5节点为目的节点的报文,计算得到的deadline spf path(目标路径)为:r1节点-r2节点-r4节点-r5节点,其确定性时延的下限为55us,上限为85us,时延抖动为30us。
[0310]
例如,r5节点对外通告专属于flex-algo 128平面的prefix-r5,则r1节点上将创建如下的转发表项。
[0311]
键值:prefix-r5
[0312]
转发信息:next_hop=r2
[0313]
interface=link-r1r2
[0314]
metric_type=min unidirectional link delay
[0315]
deadline flag=true
[0316]
scheduling dealy=10us
[0317]
scheduling policy=提前发送
[0318]
total_metric=55~85us
[0319]
total_metric_variation=30us
[0320]
total_metric_intra_node=15~45us
[0321]
total_metric_link=40us。
[0322]
当然,其它中间节点也可类似建立转发表项。
[0323]
而中间节点上收到数据报文时,如果命中上述的转发表项,则报文将按照deadline调度时延10us和提前发送策略在节点内调度。
[0324]
具体示例2:
[0325]
本示例2与示例1类似,只是其中igp flex-algo被换成igp多拓扑或网络切片,从而是在相应的igp拓扑或网络切片内计算deadline spf path,其具体过程在此不再详细描述。
[0326]
具体示例3:
[0327]
本示例2与示例1类似,只是其中的当前调度策略变为准时发送策略,从而其计算得到所有候选路径参照图8,因采用准时发送策略,故图8中的min delay和max delay是相等的。
[0328]
由此,对于以r1节点为头节点,r5节点为目的节点的报文,计算得到的deadline spf path(目标路径)为:r1节点-r2节点-r4节点-r5节点,其确定性时延的下限、上限均上限为85us,时延抖动为0us。
[0329]
进而,r1节点产生的转发表项包括:
[0330]
键值:prefix-r5
[0331]
转发信息:next_hop=r2
[0332]
interface=link-r1r2
[0333]
metric_type=min unidirectional link delay
[0334]
deadline flag=true
[0335]
scheduling dealy=10us
[0336]
scheduling policy=准时发送
[0337]
total_metric=85us
[0338]
total_metric_variation=0
[0339]
total_metric_intra_node=45us
[0340]
total_metric_link=40us。
[0341]
其中,其它过程与示例1类似,在此不再详细描述。
[0342]
具体示例4:
[0343]
本示例4在参照图9的目标网络(可为物理网络或虚拟网络)中进行deadline te path(目标路径)的创建。
[0344]
图9所示的网络包括6个节点(a节点、b节点、c节点、d节点、e节点、s节点),以及连接在节点间的链路(所有链路均为双向链路),其中链路边的数据为其链路传输时延的值。
[0345]
假设目标网络中所有节点的链路的节点参数均如下:
[0346]
节点调度使能开关:on;
[0347]
节点内转发时延f:5us;
[0348]
节点调度时延集合:《10us,20us,30us,40us,50us,60us》;
[0349]
节点调度策略:同时支持提前发送策略与准时发送策略。
[0350]
当计算一条从头节点s至目的节点d的路由(sr policy)时,设定约束条件(当前调度参数)包括:deadline调度时延为10us,调度策略为准时发送策略。
[0351]
在不考虑其它约束条件的影响下,算路引擎将在链路状态数据库中挑选那些启用deadline调度的链路资源参与到路径计算中,并最终选择一条确定性时延metric最小的候选路径作为目标路径(即图中加粗的deadline te path),也就是s节点-a节点-c节点-e节点-d,其确定性时延为120us,其中累计的节点时延为60us,累计的链路传输时延为60us。
[0352]
由此,s节点上可创建如下的转发表项:
[0353]
键值:《headend=s,endpoint=d,color=1000》
[0354]
转发信息:segment list(段列表)=《a,c,e,d》
[0355]
metric_type=deadline-delay
[0356]
scheduling dealy=10us
[0357]
scheduling policy=准时发送
[0358]
total_metric=120us
[0359]
total_metric_variation=0
[0360]
total_metric_intra_node=60us
[0361]
total_metric_link=60us。
[0362]
进而,在s节点上,为待转发的数据报文添加上述转发表项对应的封装,将在报文中携带deadline调度时延为10us(或节点时延为15us)和采用准时调度策略的信息,使得报文在沿途各中间节点上按照调度时延10us和准时发送策略调度。
[0363]
第二方面,参照图10,本公开实施例提供一种电子设备,其包括:
[0364]
一个或多个处理器;
[0365]
存储器,其上存储有一个或多个计算机程序:
[0366]
一个或多个i/o接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互;
[0367]
当所述一个或多个计算机程序被所述一个或多个处理器执行时,能实现本公开实施例的任意一种确定路由的方法。
[0368]
其中,处理器为具有数据处理能力的器件,其包括但不限于中央处理器(cpu)等;存储器为具有数据存储能力的器件,其包括但不限于随机存取存储器(ram,更具体如sdram、ddr等)、只读存储器(rom)、带电可擦可编程只读存储器(eeprom)、闪存(flash);i/o接口(读写接口)连接在处理器与存储器间,能实现存储器与处理器的信息交互,其包括但
不限于数据总线(bus)等。
[0369]
在一些实施例中,电子设备为节点。
[0370]
如前,执行本公开实施例的方法的电子设备具体可以是网络中的“节点”。
[0371]
当然,如前,在计算路由时,执行本公开实施例的方法的电子设备也可以是网络中的控制器。
[0372]
第三方面,参照图11,本公开实施例提供一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时能实现本公开实施例的任意一种确定路由的方法。
[0373]
本领域普通技术人员可以理解,上文中所公开的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
[0374]
在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。
[0375]
某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器(cpu)、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(ram,更具体如sdram、ddr等)、只读存储器(rom)、带电可擦可编程只读存储器(eeprom)、闪存(flash)或其它磁盘存储器;只读光盘(cd-rom)、数字多功能盘(dvd)或其它光盘存储器;磁盒、磁带、磁盘存储或其它磁存储器;可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。
[0376]
本公开已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其它实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
技术特征:
1.一种确定路由的方法,其包括:在目标网络中确定至少一条候选路径;根据当前调度参数、节点内转发时延、链路传输时延,确定每条所述候选路径的确定性时延;其中,所述当前调度参数包括当前截止时间deadline调度时延、当前调度策略,所述节点内转发时延为报文进入节点至转发到出端口的时延,每条候选路径的确定性时延包括其中所有中间节点的节点时延和所有链路的链路传输时延,每个中间节点的节点时延根据其节点内转发时延、当前deadline调度时延、当前调度策略得出;根据确定性时延从候选路径中选出目标路径,并确定路由。2.根据权利要求1所述的方法,其中,所述当前调度策略包括提前发送策略或准时发送策略中的任意一种调度策略;所述提前发送策略表征在当前deadline调度时延耗尽之前发送报文,所述准时发送策略表征在当前deadline调度时延耗尽时发送报文;所述当前调度策略为提前发送策略时,每个中间节点的节点时延为大于或等于其节点内转发时延,且小于或等于其节点内转发时延与当前deadline调度时延之和的值;所述当前调度策略为准时发送策略时,每个中间节点的节点时延等于其节点内转发时延与当前deadline调度时延之和。3.根据权利要求2所述的方法,其中,所述当前调度策略为提前发送策略时,每个中间节点的节点时延等于其节点内转发时延;或,每个中间节点的节点时延等于其节点内转发时延与当前deadline调度时延之和。4.根据权利要求1所述的方法,其中,所述当前deadline调度时延为确定型或非确定型;所述当前deadline调度时延为确定型时,所述候选路径的确定性时延根据当前deadline调度时延的值计算;所述当前deadline调度时延为非确定型时,所述候选路径的确定性时延中的当前deadline调度时延计为0。5.根据权利要求4所述的方法,其中,所述当前deadline调度时延为非确定型时,在所述根据确定性时延从候选路径中选出目标路径后,还包括:计算目标路径的确定性时延;所述目标路径的确定性时延为包括当前deadline调度时延的变量的表达式,所述当前deadline调度时延的变量的值根据数据报文或本地策略表项确定。6.根据权利要求1所述的方法,其中,在所述在目标网络中确定至少一条候选路径之前,还包括:确定当前调度参数。7.根据权利要求6所述的方法,其中,在所述确定当前调度参数之前,还包括:接收节点参数配置指令,根据所述节点参数配置指令设定节点在本地链路的节点参数;每个节点在每个链路的节点参数包括节点调度使能开关、节点调度时延集合、节点调度策略、节点内转发时延;所述节点调度使能开关表征节点是否启用deadline调度,所述节点调度时延集合包括节点在本地链路支持的至少一个deadline调度时延,所述节点调度策略
表征deadline调度时延支持的调度策略。8.根据权利要求6所述的方法,其中,在所述接收节点参数配置指令与所述确定当前调度参数之间,还包括:发送节点本地链路的节点参数信息;和/或,接收其它节点发送的节点参数信息;所述节点参数信息包括节点调度时延集合的信息、节点调度策略的信息。9.根据权利要求8所述的方法,其中,所述节点参数信息为内部网关协议igp的中间系统到中间系统isis或开放式最短路径优先ospf的类型-长度-值tlv报文。10.根据权利要求9所述的方法,其中,所述节点参数信息的tlv报文包括:类型字段,用于指示所述tlv报文为所述节点参数信息;长度字段,用于指示所述tlv报文的内容长度;节点调度时延集合中每个deadline调度时延的值和其支持的调度策略的标识。11.根据权利要求9所述的方法,其中,每个节点的所有deadline调度时延支持的调度策略相同,所述节点调度时延集合中任意两相邻deadline调度时延间的差值相同;所述节点参数信息的tlv报文包括:类型字段,用于指示所述tlv报文为所述节点参数信息;长度字段,用于指示所述tlv报文的内容长度;节点调度时延集合中最小的deadline调度时延的值,以及最大的deadline调度时延的值;节点的所有deadline调度时延支持的调度策略的标识;节点调度时延集合中任意两相邻deadline调度时延间的差值。12.根据权利要求6所述的方法,其中,所述确定当前调度参数包括:接收绑定信息;所述绑定信息包括至少一组绑定关系,每组绑定关系包括一个预置虚拟网络以及该预置虚拟网络对应的调度参数,预置虚拟网络对应的调度参数包括预置虚拟网络对应的deadline调度时延、调度策略,所述预置虚拟网络中的每个节点在每个链路均支持预置虚拟网络对应的deadline调度时延、调度策略;在当前网络为预置虚拟网络时,确定该预置虚拟网络对应的调度参数为当前调度参数。13.根据权利要求12所述的方法,其中,所述根据确定性时延从候选路径中选出目标路径包括:根据确定性时延,按照最短路径优先spf算法从候选路径中选出目标路径。14.根据权利要求12所述的方法,其中,所述绑定信息为igp的isis或ospf的虚拟网络的tlv报文,所述绑定信息的tlv报文包括:灵活算法定义fad的tlv报文、igp多拓扑的tlv报文、igp网络切片的tlv报文中的至少一种。15.根据权利要求14所述的方法,其中,所述绑定信息的tlv报文包括:类型字段,用于指示所述tlv报文为所述绑定信息;类型字段,用于指示所述tlv报文的内容长度;
用于指示预置虚拟网络对应的deadline调度时延为确定型或非确定型的标识;所述预置虚拟网络对应的deadline调度时延为非确定型时,计算候选路径的确定性时延的过程中当前deadline调度时延计为0;所述预置虚拟网络对应的deadline调度时延为确定型时,计算候选路径的确定性时延的过程中当前deadline调度时延等于预置虚拟网络对应的deadline调度时延;预置虚拟网络对应的deadline调度时延的值;预置虚拟网络对应的调度策略的标识。16.根据权利要求6所述的方法,其中,所述当前网络为物理网络或虚拟网络;所述确定当前调度参数包括:接收调度参数设置指令,根据所述调度参数设置指令确定当前调度参数。17.根据权利要求16所述的方法,其中,所述在目标网络中确定至少一条候选路径包括:以所述当前调度参数为算路约束条件之一,在目标网络中确定至少一条流量工程te路径为候选路径。18.根据权利要求1所述的方法,其中,在所述根据确定性时延从候选路径中选出目标路径后,还包括创建目标路径的转发表项;所述转发表项包括:表征目标路径启用deadline调度的表项;表征当前deadline调度时延的值的表项;表征当前调度策略的表项;表征目标路径的确定性时延的值的表项。19.根据权利要求18所述的方法,其中,所述转发表项还包括:表征目标路径的时延抖动的值的表项;所述目标路径的时延抖动为目标路径中所有中间节点的时延抖动之和,每个所述节点的时延抖动等于其发送报文的最早可能时间与最晚可能时间的差;表征目标路径中所有链路的链路传输时延之和的值的表项;表征目标路径中所有中间节点的节点时延之和的值的表项。20.一种电子设备,其包括:一个或多个处理器;存储器,其上存储有一个或多个计算机程序:一个或多个i/o接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互;当所述一个或多个计算机程序被所述一个或多个处理器执行时,能实现权利要求1至19中任意一项所述的确定路由的方法。21.根据权利要求20所述的电子设备,其中,所述电子设备为节点。22.一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时能实现权利要求1至19中任意一项所述的确定路由的方法。
技术总结
本公开提供了一种确定路由的方法,该方法包括:在目标网络中确定至少一条候选路径;根据当前调度参数、节点内转发时延、链路传输时延,确定每条所述候选路径的确定性时延;其中,所述当前调度参数包括当前截止时间Deadline调度时延、当前调度策略,所述节点内转发时延为报文进入节点至转发到出端口的时延,每条候选路径的确定性时延包括其中所有中间节点的节点时延和所有链路的链路传输时延,每个节点的节点时延根据其节点内转发时延、当前Deadline调度时延、当前调度策略得出;根据确定性时延从候选路径中选出目标路径,并确定路由。本公开还提供了一种电子设备、计算机可读介质。介质。介质。
技术研发人员:彭少富
受保护的技术使用者:中兴通讯股份有限公司
技术研发日:2022.01.28
技术公布日:2023/8/9
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种智能检测新风交换机的制作方法 下一篇:一种邻区测量方法及相关装置与流程
