CN118101024A - 报文转发方法、装置、网络设备及计算机存储介质 - Google Patents
报文转发方法、装置、网络设备及计算机存储介质 Download PDFInfo
- Publication number
- CN118101024A CN118101024A CN202211494099.6A CN202211494099A CN118101024A CN 118101024 A CN118101024 A CN 118101024A CN 202211494099 A CN202211494099 A CN 202211494099A CN 118101024 A CN118101024 A CN 118101024A
- Authority
- CN
- China
- Prior art keywords
- node
- ring
- logic diagram
- satellite
- path
- 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 75
- 238000004891 communication Methods 0.000 claims abstract description 87
- 235000008694 Humulus lupulus Nutrition 0.000 claims abstract description 80
- 238000010586 diagram Methods 0.000 claims description 338
- 238000012545 processing Methods 0.000 claims description 28
- 230000005540 biological transmission Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000006424 Flood reaction Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000001934 delay Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种报文转发方法、装置、网络设备及计算机存储介质,属于通信技术领域。在本申请实施例中,考虑到环的结构特性为从环内一个节点出发必然有两条路径,因此可以根据各个节点所处环进行编址,以使各个节点的地址携带环标签,以通过环标签基于当前节点所处的环和目的节点所处的环之间的网络拓扑,确定出与第一节点位于同一环的多个下一跳,也即确定出多条备选路径。以便于后续基于每条备选路径的流量特征,选择合适的备选路径转发流量。因此,本申请实施例提供的方法可以避免某些链路发生拥堵。
Description
技术领域
本申请实施例涉及通信技术领域,特别涉及一种报文转发方法、装置、网络设备及计算机存储介质。
背景技术
空间网络是指通过多个卫星进行通信的网络,由于空间网络和地面网络具有不同的特点,因此如何通过空间网络转发报文是当前研究的热点。
相关技术中,第一卫星在转发目的地为第二卫星的报文时,基于其他卫星的地理位置,从其他卫星中选择直线夹角最小的卫星作为该报文的下一跳,并向该下一跳转发该报文。直线夹角是指其他卫星和第一卫星所构成的直线,与第二卫星和第一卫星所构成的直线之间的夹角。这种方式在转发报文时容易造成某段通信链路发生拥堵。
发明内容
本申请实施例提供了一种报文转发方法、装置、网络设备及计算机存储介质,可以避免空间网络在转发报文时容易造成某段通信链路发生拥堵。所述技术方案如下:
第一方面,提供了一种报文转发法,该方法应用于通信网络,通信网络包括多个节点,多个节点之间形成多个环。在该方法中,第一节点获取报文,该报文携带的目的地址为第二节点的地址,第一节点和第二节点为多个节点中任意两个节点,第一节点的地址和第二节点的地址均携带环标签,环标签指示相应节点所处的环;第一节点基于第一节点所处的环与第二节点所处的环之间的网络拓扑,确定与第一节点位于同一环的多个下一跳;第一节点从与第一节点位于同一环的多个下一跳中确定目标下一跳;第一节点基于目标下一跳转发该报文。
在本申请实施例中,考虑到环的结构特性为从环内一个节点出发必然有两条路径,因此可以根据各个节点所处环进行编址,以使各个节点的地址携带环标签,以通过环标签基于当前节点所处的环和目的节点所处的环之间的网络拓扑,确定出与第一节点位于同一环的多个下一跳,也即确定出多条备选路径。以便于后续基于每条备选路径的流量特征,选择合适的备选路径转发流量。因此,本申请实施例提供的方法可以避免某些链路发生拥堵。
基于第一方面提供的方法,在一些实施例中,第一节点基于第一节点所处的环与第二节点所处的环之间的网络拓扑,确定与第一节点位于同一环的多个下一跳的实现方式可以为:分别确定第一节点和第二节点在逻辑图集中的逻辑图中所处的环,逻辑图集包括第0级逻辑图至第n级逻辑图,第0级逻辑图指示多个节点之间的真实网络拓扑,第i级逻辑图中每个节点指示第i-1级逻辑图中的一个环,第i级逻辑图中相邻两个节点之间的链路指示第i-1级逻辑图中对应的相邻两个环之间的公共边,n大于等于1,i大于等于1;如果在第0级逻辑图中,第一节点和第二节点位于同一环,则基于第0级逻辑图确定与第一节点位于同一环的多个下一跳。
为了便于快速确定多个下一跳,第一节点还可以预先存储针对通信网络的逻辑图集,通过逻辑图集中各个逻辑图来指示不同环之间的网络拓扑。
基于第一方面提供的方法,在一些实施例中,如果在第0级逻辑图中,第一节点和第二节点没有位于同一环,对于第n级逻辑图,基于第一节点在逻辑图中对应的节点和第二节点在逻辑图中对应节点,确定在逻辑图中从第一节点至第二节点的至少一条备选路径,基于至少一条备选路径中每条备选路径的权重,从至少一条备选路径选择目标备选路径,每条备选路径的权重指示相应备选路径传输报文的质量;在下一级逻辑图中确定目标备选路径中的下一跳所指示的环与第一节点所处的环之间的多个公共节点,将多个公共节点更新为第二节点,对下一级逻辑图执行基于第一节点在逻辑图中对应的节点和第二节点在逻辑图中对应的节点,确定在逻辑图中从第一节点至第二节点的至少一条备选路径,直至遍历至第0级逻辑图,得到通过第0级逻辑图确定的多个公共节点,将多个公共节点确定与第一节点位于同一环的多个下一跳。
在第一节点处预先存储有通信网络的逻辑图集的场景下,如果在第0级逻辑图中,第一节点和第二节点位于同一环,则基于第0级逻辑图确定与第一节点位于同一环的多个下一跳。相应地,如果在第0级逻辑图中,第一节点和第二节点没有位于同一环,则从逻辑图集的高级别逻辑图依次向低低级别逻辑图遍历,以确定与第一节点位于同一环的多个下一跳。提高了本申请实施例确定多个下一跳的灵活性。
基于第一方面提供的方法,在一些实施例中,通信网络为空间网络,空间网络包括多个轨道,每个轨道包括多颗卫星,第一节点和第二节点为任意两颗卫星。
这种场景下,第一节点的地址包括多个逻辑图描述信息以及卫星标定信息;其中,每个逻辑图描述信息包括逻辑图标识以及多个环标签,逻辑图标识指示一个逻辑图,多个环标签中每个环标签指示第一节点在相应逻辑图中处于的一个环,卫星标定信息指示第一节点所处的轨道以及在相应轨道中的编号。
本申请实施例还提供了一种基于空间网络中的卫星在每个逻辑图所处环对卫星进行编址的方式,以便于基于卫星的地址快速确定卫星所处的环。
基于第一方面提供的方法,在一些实施例中,每个逻辑图描述信息还包括环标签数量,环标签数量指示相应逻辑图描述信息包括的环标签的数量。
通过环标签数量的设置,可以在解析报文时快速明确多个环标签的总长度,以便于快速解析报文。
基于第一方面提供的方法,在一些实施例中,在该方法中,第一节点还可以每隔第一参考时长基于通信网络中其他节点发送的链路状态通告消息,确定通信网络的真实网络拓扑,链路状态通告消息携带相应节点的直连邻居信息;第一节点基于通信网络的真实网络拓扑,更新逻辑图集。
由于网络拓扑可能会发生改变,因此通信网络中各个节点可以定期更新逻辑图集。
基于第一方面提供的方法,在一些实施例中,第一节点从与第一节点位于同一环的多个下一跳中确定目标下一跳的实现方式可以为:第一节点获取与第一节点位于同一环的多个下一跳中每个下一跳对应的路径的权重,每个下一跳对应的路径的权重指示报文从第一节点传输指示相应下一跳的质量;第一节点基于与第一节点位于同一环的多个下一跳中每个下一跳对应的路径的权重确定目标下一跳。
通过这种方式,可以提高空间网络中的报文转发质量,以应对空间网络中的流量拥堵问题。
基于第一方面提供的方法,在一些实施例中,在该方法中,第一节点还可以每隔第二参考时长确定第一节点至第三节点之间的路径的时延,第三节点为与第一节点位于同一环的任一节点;第一节点基于第一节点至第三节点之间的路径的时延,更新第一节点至第三节点之间的路径的权重。
通过周期性地探测路径时延,以实现对逻辑图集中的路径的权重进行周期性更新,从而提高基于逻辑图集转发报文的质量。
基于第一方面提供的方法,在一些实施例中,第一节点从与第一节点位于同一环的多个下一跳中确定目标下一跳的实现方式可以为:如果与多个下一跳分别对应的多条路径中存在故障路径,则从多条路径中除故障路径之外的路径对应的下一跳中确定目标下一跳。
由于当前确定出多个下一跳,因此即使当前时间某个下一跳对应的路径出现故障,也即通过某个下一跳无法成功发送该报文,第一节点也可以从其他非故障路径对应的下一跳中选择一个下一跳来发送该报文,对当前报文的发送基本没有影响。避免了网络故障对正常业务流量产生较大影响,从而降低通信时延。
基于第一方面提供的方法,在一些实施例中,在该方法中,第一节点还可以在转发该报文之后,在参考时间段内发布故障通告消息,故障通告消息用于通告故障路径的故障情况。
其中,参考时间段为预先设置的时间段,该时间段内通信网络中的流量流通量较低,以避免故障通告消息的泛洪对正常业务流量造成影响。
基于第一方面提供的方法,在一些实施例中,在该方法中,第一节点还可以基于故障路径所对应的环,确定故障域;在故障域内发布故障通告消息,故障通告消息用于通告故障路径的故障情况。
在本申请实施例中,当故障发生时,可以将通告故障的区域控制在发生故障的环内,发生故障的环也即故障域,只向故障域内的卫星泛洪故障通告消息,以使故障域内的卫星更新逻辑图集。
第二方面,提供了一种报文转发装置,所述报文转发装置具有实现上述第一方面中报文转发方法行为的功能。所述报文转发装置包括至少一个模块,该至少一个模块用于实现上述第一方面所提供的报文转发方法。
第三方面,提供了一种网络设备,所述网络设备的结构中包括处理器和存储器,所述存储器用于存储支持报文转发装置执行上述第一方面所提供的报文转发方法的程序,以及存储用于实现上述第一方面所提供的报文转发方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述存储设备的操作装置还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的报文转发方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的报文转发方法。
上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
附图说明
图1是本申请实施例提供的一种通信网络的架构示意图;
图2是本申请实施例提供的一种环的叠加示意图;
图3是本申请实施例提供的一种空间网络的架构示意图;
图4是本申请实施例提供的一种卫星的标定坐标系;
图5是本申请实施例提供的一种报文转发方法流程图;
图6是本申请实施例提供的一种将逻辑图中环之间的网络拓扑进行抽象的示意图;
图7是本申请实施例提供的一种生成空间网络的逻辑图集的示意图;
图8是本申请实施例提供的一种逻辑图集中各个逻辑图的示意图;
图9是本申请实施例提供的一种探测时延的示意图;
图10是本申请实施例提供的一种基于逻辑图集转发报文的示意图;
图11是本申请实施例提供的另一种基于逻辑图集转发报文的示意图;
图12是本申请实施例提供的另一种基于逻辑图集转发报文的示意图;
图13是本申请实施例提供的一种故障时基于逻辑图集转发报文的示意图;
图14是本申请实施例提供的另一种故障时基于逻辑图集转发报文的示意图;
图15是本申请实施例提供的另一种故障时基于逻辑图集转发报文的示意图;
图16是本申请实施例提供的另一种故障时基于逻辑图集转发报文的示意图;
图17是本申请实施例提供的一种报文转发装置的结构示意图;
图18是本申请实施例提供的一种网络设备的结构示意图。
具体实施方式
为使本申实施例请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
目前,针对传统的地面网络的路由协议包括距离矢量路由协议和链路状态路由协议。
距离矢量路由协议是指网络中的节点周期性地将路由表发送给与其直连的网络邻居。每个接收者将路由表加上一个距离矢量,该距离矢量指示接收者与路由表的发送者之间的通信距离。接收者将添加了距离矢量后的路由表继续转发给接收者的其他直接邻居。这个过程发生在直接相连的路由器之间。通过这种方式每个路由器得到一个网络“距离”的汇集视图,并基于该汇集视图更新路由表。
链路状态路由协议是指路由器维护一个复杂的网络拓扑数据库,该网络拓扑数据库可以反映整个网络的拓扑结构。其中,每个路由器通过与网络中其他路由器交换链路状态的通告来建立和更新网络拓扑数据库。每个路由器可以通过该网络拓扑数据库使用最短路径优先(shortest path first,SPF)算法计算出到达某个目的地的转发表项,以更新路由表。
但是,上述两种路由协议在空间网络的应用场景中有以下缺陷,因此无法直接应用于空间网络的应用场景中。
1)在面临网络拓扑改变时,协议需要重新收敛以更新路由表,在重路由期间容易造成过高的通信开销,这对于空间网络通信是不利的。
2)传统的路由协议是假设路由收敛时间<拓扑变化时间,但是实际通信中当链路故障速度大于路由收敛速度时会造成过高的通信开销以及高丢包率,这对于空间网络通信同样是不利的。
3)传统的路由协议通常是基于最小生成树(shortest path tree,SPT)算法来确定转发表项的。但是,最小生成树算法是对每个节点进行最优或者近似最优生成树的计算,没有考虑流量变化对链路的影响,根据博弈论,全部个体的最优解不一定是全局的最优解,当每个节点都考虑最优解时可能会造成某条链路拥塞。
基于上述原因,传统的路由协议已经不适应于空间网络。目前针对空间网络主要有以下几种路由协议来实现报文转发。
1)基于时延容忍网络(delay tolerant network,DTN)的路由协议
在该协议中,在应用层以及传输层之间插入一个新的束(Bundle)层,通过存储-转发的方式,当链路受空间因素导致中断的时候,DTN路由器先将数据进行存储,直到下一跳链路恢复时再进行转发,以达到长距离数据传输的可靠性。该协议的优点在于可以匹配卫星的网络动态以及因链路中断所导致的不稳定拓扑,并且可以节省星间、星地链路的功耗。
但是,基于DTN的路由协议主要面向超长距离的数据传输场景下的深空类探测任务,如地球-月球,甚至地球-火星的探测类任务,因此通信时延大,不适用于时延敏感类应用,如应急救灾搜寻、紧急通信等。而目前低轨卫星网络场景通常需要这些时延敏感类应用。
2)基于时间片的路由协议
在该协议中,将空间网络的系统周期划分为若干个离散的虚拟时间片,在每个时间片内,网络的拓扑被视为固定不变的。基于此,可以根据这些离散的时间片来设计路由。该协议的优点是能够支持动态的网络拓扑(多个静态切片达到动态的效果),且通信时延低(在特定时间段内卫星上只需要根据某个时间片的路由而不是全部时间片的路由转发报文)。此外,由地面中心进行计算路由后上送到空间网络的卫星,节省卫星自身计算动态路由的开销。
由于基于时间片的路由需要考虑所有时间间隔下的时间片情况,并将其上传至空间网络的卫星,因此每颗卫星需要静态存储的表项太多。并且当链路故障时,卫星需要发布动态路由信令通告,会消耗星上链路资源。此外,该协议仅考虑了拓扑的动态性,没有考虑数据流量的动态性。
3)基于段路由(segment routing,SR)的路由协议
在该协议中,在网络协议(internet protocol,IP)报文的基础上增加“标签头部”,该标签头部可以视作为2.5层的概念。传统的网络中,当节点收到IP报文时,需要从IP报文中解析出转发地址,而基于SR的路由协议把路由信息(各个中间转发节点的地址)映射到标签头部。空间网络场景下,因为卫星星座的信息相对固定,因此可以将卫星的轨道以及其在轨道中的编号作为标签,也即标签头部中每个卫星的地址为该卫星的轨道以及其在轨道中的编号。该协议的优点在于转发节点只需要查看标签就能更快速的转发数据。并且可以省却卫星上的路由表,实现网络流量工程。此外,该协议还与地面的段路由机制保持统一。
但是,基于SR的路由协需要由地面中心计算得到端-端的路由路径,导致报文承载过大(报文中需要承载端-端路径上所有转发节点的标签信息)。同时需要拥塞避免时,需根据卫星动态运行情况周期性刷新SR路径,消耗地面和卫星间的链路资源。并且,链路发生故障时,需要地面重新计算新的端-端路径并加载路径。
4)基于卫星标识(identity,ID)/地理位置的路由协议
在该协议中,考虑到空间网络中卫星之间的相对位置固定,因此可以使用卫星ID(卫星所处轨道号和卫星在轨道中的编号)或者地理位置(如经纬度)来标定卫星的相对位置。在报文转发时遵循一定的原则进行转发,如基于地理位置时,转发卫星始终选择直线夹角最小的邻居卫星进行转发,直线夹角是指邻居卫星和该卫星所构成的直线,与目的卫星和该卫星所构成的直线之间的夹角。该协议的优点在于路由是动态的,路由是基于地理位置计算的,不需要维护路由表。并且链路发生故障时星上直接再次计算,进行链路的自动切换,适应动态路由。
该协议的缺点在于卫星位置动态变化,存在环路的风险,并且获取邻居卫的地理位置比较困难。同时基于该协议在转发报文时只考虑了一个下一跳,没有考虑到流量对链路可能造成的拥塞,因此虽然所选的路径是可达的,但不一定是最优的。
基于此,本申请实施例提供了一种报文转发方法,以提供一种新的适应于空间网络的路由协议。由于环(Cycle)是网络拓扑中能够表达路径多样性的最简单的结构单元,环内的任意两个节点之间拥有两条互不相交的路径,当其中一条路径故障时,还可通过另外一条路径进行数据传输。因此本申请实施例使用环的结构特性设计一套适用于空间网络的路由协议。
基于本申请实施例提供的方法,空间网络中的卫星在转发报文时可以基于空间网络的环的结构特性,从多个备选路径中选择一条合适的路径转发报文,以避免某些链路流量拥堵。
需要说明的是,本申请实施例提供的报文转发方法不仅适应于空间网络,也适应于具备多个环的地面网络,在此不再一一举例说明。
图1是本申请实施例提供的一种通信网络的架构示意图。如图1所示,该通信网络10包括多个节点,图1中示例地包括节点1至节点7等7个节点。
其中,这多个节点之间形成多个环。如图1所示,节点1、节点2、节点3和节点4之间形成环C1,节点2、节点3和节点6之间形成环C2,节点3、节点4和节点5之间形成环C3,节点3、节点5、节点6以及节点7之间形成环C4。
在本申请实施例中,由于一个通信网络中全部的环的数量可能是巨大的,找出全部的环会消耗巨大的计算资源,因此可以利用环与环之间的异或关系,只需要小部分的环即可得到网络中所有的环。这一小部分环的数量由环复杂度(Cyclomatic Number)决定。环复杂度=L-N+P(N代表节点数量,L代表边数量,P代表网络中连通图的数量)。本申请实施例中所示的通信网络中的多个环即为该这小部分环。
图1所示的通信网络中的节点的数量为7、边的数量为10,通信网络中总共有13个不同环,但是根据环复杂度计算公式确定的环复杂度=10-7+1=4(对于图1所示的全连通图而言P=1)。因此,对于图1所示的通信网络,只需要4个环即可代表网络中的所有环。
图2是本申请实施例提供的一种环的叠加示意图。如图2所示,将图1中的环C1和环C3叠加便可得到环C5(图2中加粗线条所示的环)。在应用本申请实施例提供的报文转发方法时,不考虑类似环C5这种环。
另外,图1是本申请实施例提供的一种具有多个环的通信网络的示意图,本申请实施例提供的方法可以应用在任意具备多个环的组网中。该组网可以为空间网络,也可以为地面网络。
图3是本申请实施例提供的一种空间网络的架构示意图。如图3所示,该空间网络包括36颗卫星,这36颗卫星在图3中以6×6的矩阵方式排布。
其中,每一列代表位于同一轨道的不同卫星,不同列代表不同轨道。也即,在图3所示的空间网络中,有6个轨道,每个轨道有6颗卫星。
如图3所示,这36颗卫星之间可以形成25个环,图3中分别标记为C1至C25。
另外,对于图3所示的空间网络,本申请实施例还提供了一种卫星的标定方式。图4是本申请实施例提供的一种卫星的标定坐标系。如图4所示,对于一个包括X轨道,每个轨道包括Y颗卫星的空间网络,每颗卫星N可以使用二维坐标N(Xi,Yj)进行标定,与其相连的前、后、左、右四颗卫星分别使用N(Xi,Yj+1),N(Xi,Yj-1),N(Xi-1,Yj),N(Xi+1,Yj)进行标定。
其中,Xi指示轨道编号,Yi指示卫星编号。N(Xi,Yj)指示在空间网络中轨道编号为Xi的轨道中的第Yj颗卫星。
图4中的卫星N(X1,Y1)是通过人工方式指定的,也即,图4中二维坐标系的原点是通过人工方式指定的。
另外,如图4所示,在空间网络中,四颗相邻卫星可构成一个最小环。空间网络中的每个环可以由环中横纵坐标均最小的卫星进行标定。比如,对于卫星N(Xi,Yj),N(Xi,Yj+1),N(Xi,Yj-1),N(Xi-1,Yj),N(Xi+1,Yj),这四个卫星组成的环可标定为C(Xi,Yj)。关于图4中的其他每个环的标定坐标均可以参考该解释,在此不再一一举例说明。可选地,图4中每个环也可以采用其他方式标定,在此不再一一举例说明。
基于图1至图4所示的通信网络,本申请实施例还提供了一种报文转发方法。图5是本申请实施例提供的一种报文转发方法流程图。如图5所示,该方法包括如下步骤501至步骤504。
步骤501:第一节点获取报文,该报文携带的目的地址为第二节点的地址,第一节点和第二节点为所述多个节点中任意两个节点,第一节点的地址和第二节点的地址均携带环标签,该环标签指示相应节点所处的环。
另外,第一节点获取该报文示例地有以下两种场景。一种场景为第一节点为该报文的源地。此时该报文携带源地址,该源地址为第一节点的地址。另一种场景为第一节点为该报文的转发路径上的中间节点。此时,该报文携带的源地址为该报文的源地的地址,第一节点接收源地发送的该报文。
在本申请实施例中,为了便于快速通过环之间的网络拓扑转发报文,可以根据节点所处的环对节点进行编址,以使节点的地址携带环标签。
步骤502:第一节点基于第一节点所处的环与第二节点所处的环之间的网络拓扑,确定与第一节点位于同一环的多个下一跳。
在本申请实施例中,考虑到环的结构特性为从环内一个节点出发必然有两条路径,因此可以基于当前节点所处的环和目的节点所处的环之间的网络拓扑,确定出与第一节点位于同一环的多个下一跳,也即确定出多条备选路径。以便于后续基于每条备选路径的流量特征,选择合适的备选路径转发流量。因此,本申请实施例提供的方法可以避免某些链路发生拥堵。
在一些实施例中,为了便于快速执行步骤502,第一节点可以预先在本地存储逻辑图集。其中,逻辑图集包括第0级逻辑图至第n级逻辑图,第0级逻辑图指示多个节点之间的真实网络拓扑,第i级逻辑图中每个节点指示第i-1级逻辑图中的一个环,第i级逻辑图中相邻两个节点之间的链路指示第i-1级逻辑图中对应的相邻两个环之间的公共边,n大于等于1,i大于等于1。
为了后续便于理解,在此先对逻辑图集进行解释说明。
对于包括多个环的通信网络,第0级逻辑图指示通信网络的真实拓扑,也即,第0级逻辑图中每个节点代表通信网络中的一个真实节点,两个节点之间的连线代表通信网络中的真实通信链路。将第0级逻辑图中的各个环之间的网络拓扑抽象出来,即可得到第1级逻辑图。将第1级逻辑图中的各个环之间的网络拓扑继续抽象出来,即可得到第2级逻辑图。依次类推,便可得到第n级逻辑图。此递归流程可以称为“逻辑图生成流程”。
在本申请实施例中,可以从第0级逻辑图一直通过上述方式获取高级别逻辑图,直至当前获取的逻辑图中没有环。也即,第n级逻辑图中没有环。可选地,考虑到现有空间网络场景下卫星的星上计算能力不足的问题,逻辑图集可以仅仅包括第0级逻辑图和第1级逻辑图,此时n=1。
图6是本申请实施例提供的一种将逻辑图中环之间的网络拓扑进行抽象的示意图。如图6所示,将每个环抽象成为一个逻辑节点,该逻辑节点代表属于该环的所有节点将共享路由信息。如果两个环之间共享一条边,这两个环则视为具有邻接关系,代表两个相邻的环之间至少有2个公共节点,共享边上的公共节点代表网关节点,负责在两个环间交换路由信息,因此这两个环抽象后的两个逻辑节点之间便可添加一条逻辑边。将逻辑节点与其关联的逻辑边连接起来,可以得到一个新的高级别的逻辑图。
图7是本申请实施例提供的一种生成空间网络的逻辑图集的示意图。如图7所示,空间网络包括4个轨道,每个轨道包括4颗卫星,该空间网络还可以称为4×4的网格(mesh)网络。针对该空间网络的第0级逻辑图(图7中标记为Level0)包括9个环,每个环由4个节点组成。
如图7所示,将第0级逻辑图中每个环抽象为一个节点,具有公共边的环之间抽象出一条逻辑边,如此便可得到第1级逻辑图(图7中标记为Level1),第1级逻辑图为一个3×3的网格网络。其中,第1级逻辑图包括4个环。
继续将第1级逻辑图中每个环抽象为一个节点,具有公共边的环之间抽象出一条逻辑边,如此便可得到第2级逻辑图(图7中标记为Level2),第1级逻辑图为一个2×2的网格网络。其中,第2级逻辑图包括1个环。
继续将第2级逻辑图中环抽象为一个节点,如此便可得到第3级逻辑图(图7中标记为Level2),第3级逻辑图只有一个节点。
由于第3级逻辑图中没有环了,因此递归流程结束,这4个逻辑图构成一个逻辑图集。由于每一级的逻辑图中的节点代表了低一级逻辑图中的一个环,每一级的逻辑图中的边代表了低一级逻辑图中相邻两个环之间存在邻接关系(相邻两个环有2个公共节点),因此每一级的逻辑图都包含了更低一级的逻辑图中的路径多样性信息。
如图7所示,在一个4*4的网格网络中,第1级逻辑图中的节点1代表第0级逻辑图中的环1,第1级逻辑图中的节点2代表第0级逻辑图中的环2,第1级逻辑图中节点1与节点2之间的边代表:在第0级逻辑图中环1与环2之间共享一条边,也即环1与环2之间有两个公共节点。
另外,由于网络拓扑可能会发生改变,因此通信网络中各个节点可以定期更新逻辑图集。在一些实施例中,第一节点定期更新逻辑图集的实现方式可以为:第一节点每隔第一参考时长基于通信网络中其他节点发送的链路状态通告消息,确定通信网络的真实网络拓扑,该链路状态通告消息携带相应节点的直连邻居信息。第一节点基于通信网络的真实网络拓扑,更新逻辑图集。
比如,每间隔△t1(示例地为30mins),通信网络中节点与节点之间进行各自链路状态的全网泛洪,使得每个节点获得通信网络的真实网络拓扑,以更新本地存储的逻辑图集。
在第一节点处预先存储有通信网络的逻辑图集的场景下,步骤502的实现方式可以为:分别确定第一节点和第二节点在逻辑图集中的逻辑图中所处的环,如果在第0级逻辑图中,第一节点和第二节点位于同一环,则基于第0级逻辑图确定与第一节点位于同一环的多个下一跳。相应地,如果在第0级逻辑图中,第一节点和第二节点没有位于同一环,则从逻辑图集的高级别逻辑图依次向低低级别逻辑图遍历,以确定与第一节点位于同一环的多个下一跳。
其中,在一些实施例中,分别确定第一节点和第二节点在逻辑图集中的逻辑图中所处的环的实现方式可以为:以第0级逻辑图为例说明,基于第一节点在第0级逻辑图中的位置以及第二节点在第0级逻辑图中的位置分别确定两者所处的环。
可选地,在另一些实施例中,本申请实施例还提供了一种基于节点在每级逻辑图所处环对节点进行编址的方式,以便于基于节点的地址快速确定节点在各级逻辑图中所处的环。
这种场景下,分别确定第一节点和第二节点在逻辑图集中的逻辑图中所处的环的实现方式可以为:基于第一节点的地址确定第一节点在逻辑图集中的逻辑图中所处的环;基于第二节点的地址确定第二节点在逻辑图集中的逻辑图中所处的环;其中,第一节点的地址和第二节点的地址均携带环标签,环标签指示相应节点在逻辑图集中每个逻辑图中所处的环。
示例地,在通信网络为空间网络的场景中,假设空间网络包括多个轨道,每个轨道包括多颗卫星,第一节点和第二节点为任意两颗卫星。这种场景下,第一节点的地址包括多个逻辑图描述信息以及卫星标定信息。第二节点的地址可以参考第一节点的地址。
其中,多个逻辑图描述信息和逻辑图集中的多个逻辑图一一对应,且每个逻辑图描述信息包括逻辑图标识以及多个环标签,逻辑图标识指示一个逻辑图,多个环标签中每个环标签指示第一节点在相应逻辑图中处于的一个环,卫星标定信息指示第一节点所处的轨道以及在相应轨道中的编号。
可选地,为了便于明确多个环标签的总长度,以便于快速解析报文,每个逻辑图描述信息还可以进一步包括环标签数量,环标签数量指示相应逻辑图描述信息包括的环标签的数量,也即第一节点在相应逻辑图中处于的环的数量。
假设第一节点为报文的起点,第二节点为报文的终点,则该报文的格式可以下述表1所示。如表1所示,该报文包括报文头和报文数据,报文头包括起点标签和终点标签。其中,起点标签用于承载第一节点的地址,终点标签用于承载第二报文的地址。
表1
在一些实施例中,假设空间网络最大拥有30个轨道,每个轨道拥有60颗卫星,总卫星数量最大为1800颗卫星,总环数量最大为(30-1)*(60-1)=1711个环(第0级逻辑图中的环数量)。这种场景下,第一节点的地址中的各个信息的比特位可以设置如下。
卫星标定信息承载在11bits中。其中,1-1800代表星座中的卫星编号,1801-2047为预留比特。
逻辑图标识承载在2bits中。其中,0代表第0级逻辑图层,1代表第1级逻辑图层,其余为预留比特。
环标签数量承载在2bits中。其中,空间网络中每个卫星节点最多位于4个环内。
环标签承载在11bits中。1-1711用于指示该卫星在相应逻辑图层中所处的环的编号,1712-2047为预留比特。
另外,报文头的长度为可变长度。考虑到空间网络中一个节点最多位于4个环中,因此第一节点在每个逻辑图层中最多拥有4个环标签,基于此,假设逻辑图集包括两层逻辑图,则如表2所示,报文头最大长度为214bits,此时每个节点在每个逻辑图层都有4个环标签,表2中第一行代表起点标签,也即第一节点的地址,表2中第二行代表终点标签,也即第二节点的地址。
表2
另外,假设逻辑图集包括两层逻辑图,如表3所示,报文头最小长度为82bits,此时每个节点在每个逻辑图层有1个环标签。表3中第一行代表起点标签,也即第一节点的地址,表3中第二行代表终点标签,也即第二节点的地址。
表3
基于表2和表3所示的地址的编址方式,对于图4所示的空间网络中的任一节点(卫星),该节点的地址可以编址为:LkCk…L0C(Xi,Yj)N(Xi,Yj)。其中,N(Xi,Yj)为该节点的标定坐标,LkCk代表该节点在第k级逻辑图中所处的环为环Ck。
比如,图8是本申请实施例提供的一种逻辑图集中各个逻辑图的示意图。如图8所示,对于一个3*3的网格网络预先生成有第0级逻辑图(图8中标记为Level0)和第1级逻辑图(图8中标记为Level1)。第0级逻辑图中每个节点对应一个卫星,如图8中的卫星1至卫星9(图8中标记为1至9),每个卫星的标定坐标以及4个环的标定坐标如图8所示。根据第0级逻辑图可生成右侧的第1级逻辑图,第1级逻辑图中每个节点对应第0级逻辑图中的一个环,第1级逻辑图中每个节点的标定坐标以及1个环的标定坐标如图8所示。
根据图8所示的两个逻辑图以及每个逻辑图中节点和环的标定坐标,可以将卫星1至卫星9的地址编址为如下内容:
卫星1的地址:L1C(1,1)L0C(1,1)N(1,1);
卫星2的地址:L1C(1,1)L0C(1,1)C(1,2)N(1,2);
卫星3的地址:L1C(1,1)L0C(1,2)N(1,3);
卫星4的地址:L1C(1,1)L0C(1,1)C(2,1)N(2,1);
卫星5的地址:L1C(1,1)L0C(1,1)C(1,2)C(2,1)C(2,2)N(2,2);
卫星6的地址:L1C(1,1)L0C(1,2)C(2,2)N(2,3);
卫星7的地址:L1C(1,1)L0C(2,1)N(3,1);
卫星8的地址:L1C(1,1)L0C(2,1)C(2,2)N(3,2);
卫星9的地址:L1C(1,1)L0C(2,2)N(3,3)。
其中,每个卫星的地址包含其在逻辑图集中第1级逻辑图中的环信息,以及第0级逻辑图(原始网络)中的环信息。比如,对于卫星1,地址L1C(1,1)L0C(1,1)N(1,1)代表卫星1属于第1级逻辑图中的环C(1,1),且属于第0级逻辑图中的环C(1,1),自身在网络中的标定坐标是N(1,1)。又比如,对于卫星2,地址L1C(1,1)L0C(1,1)C(1,2)N(1,2)代表卫星2属于第1级逻辑图中的环C(1,1),且属于第0级逻辑图中的环C(1,1)和环C(1,2)。其他卫星的地址同样可以参考前述解释,在此不再一一说明。
在上述编址的场景中,可以直接通过第一节点和第二节点的地址,确定第一节点和第二节点在每个逻辑图中所处的环,提高了报文转发效率。
基于前述内容可知,在第0级逻辑图中第一节点和第二节点是否位于同一环影响确定下一跳的后续处理方式不同,因此下面分两种情况分别说明。
情况一:在第0级逻辑图中第一节点和第二节点位于同一环。
在情况一中,基于第0级逻辑图确定与第一节点位于同一环的多个下一跳的实现方式可以为:在环内路由表中查找目的地为第二节点的转发表项,得到多个转发表项,这多个转发表项中分别包括的下一跳即为与第一节点位于同一环的多个下一跳。
为了便于快速确定情况一中的下一跳,对于通信网络中的任一节点,该节点可以根据第0级逻辑图预先生成环内路由表,该环内路由表包括目的地为环内任一其他节点的多个转发表项。
比如,对于图8所示的逻辑图集,当第一节点为卫星1、第二节点为卫星2时,也即,卫星1向卫星2发送报文时,基于图8中的第0级逻辑图(Level0)可知,卫星1和卫星2均位于环C(1,1)中,且从卫星1到卫星2处有两条路径,一条路径为:从卫星1到卫星2,另一条路径为:从卫星1到卫星4到卫星5到卫星2。这两条路径对应的下一跳分别为卫星2和卫星4。
情况二:在第0级逻辑图中第一节点和第二节点没有位于同一环。
在情况二中,从逻辑图集的高级别逻辑图依次向低低级别逻辑图遍历,以确定与第一节点位于同一环的多个下一跳的实现方式可以为:对于第n级逻辑图,基于第一节点在逻辑图中对应的节点和第二节点在逻辑图中对应节点,确定在逻辑图中从第一节点至第二节点的至少一条备选路径,基于至少一条备选路径中每条备选路径的权重,从至少一条备选路径选择目标备选路径,每条备选路径的权重指示相应备选路径传输报文的质量;在下一级逻辑图中确定目标备选路径中的下一跳所指示的环与第一节点所处的环之间的多个公共节点,将多个公共节点更新为第二节点,对下一级逻辑图执行基于第一节点在逻辑图中对应的节点和第二节点在逻辑图中对应的节点,确定在逻辑图中从第一节点至第二节点的至少一条备选路径,直至遍历至第0级逻辑图,得到通过第0级逻辑图确定的多个公共节点,将多个公共节点确定与第一节点位于同一环的至少两个下一跳。
其中,第一节点在第n级逻辑图中对应的节点可以理解为:第一节点位于第n逻辑图中对应的节点所指示的环中。
比如,逻辑图集包括第0级逻辑图和第1级逻辑图,则对于第1级逻辑图,基于第一节点在第1级逻辑图中对应的节点和第二节点在第1级逻辑图中对应的节点,确定在第1级逻辑图中从第一节点至第二节点的至少一条备选路径,基于至少一条备选路径中每条备选路径的权重,从至少一条备选路径选择目标备选路径;在第0级逻辑图中确定目标备选路径中的下一跳所指示的环与第一节点所处的环之间的多个公共节点,将这多个公共节点确定与第一节点位于同一环的多个下一跳。
比如,对于图8所示的逻辑图集,当第一节点为卫星1、第二节点为卫星9时,也即,卫星1向卫星9发送报文时,基于图8中的第0级逻辑图(Level0)可知,卫星1和卫星9没有位于同一环。则从第1级逻辑图开始,在第1级逻辑图中,卫星1对应的节点为N(1,1),卫星9对应的节点为N(2,2),且在第1级逻辑图中,从N(1,1)至N(2,2)的备选路径有两条(分别沿顺时针方向和逆时针方向的两条路径),假设选择的目标备选路径为沿顺时针方向的路径,也即在第1级逻辑图中目标备选路径为从N(1,1)到N(1,2)到N(2,2)。
第1级逻辑图中的目标备选路径中的下一跳为N(1,2),第1级逻辑图中的N(1,2)指示第0级逻辑图中的环C(1,2),第0级逻辑图卫星1位于环C(1,1),如图8所示,在第0级逻辑图中,环C(1,2)与环C(1,1)的公共节点分别为第0级逻辑图中的N(1,2)(也即卫星2)和N(2,2)(也即卫星5),因此最终确定的与卫星1位于同一环的多个下一跳分别是卫星2和卫星5。
步骤503:第一节点从与第一节点位于同一环的多个下一跳中确定目标下一跳。
在一些实施例中,第一节点从与第一节点位于同一环的多个下一跳中确定目标下一跳的实现方式可以为:第一节点获取与第一节点位于同一环的多个下一跳中每个下一跳的对应的路径的权重,每个下一跳对应的路径的权重指示报文从第一节点传输指示相应下一跳的质量;第一节点基于与第一节点位于同一环的多个下一跳中每个下一跳对应的路径的权重确定目标下一跳。
示例地,路径的权重越高,表明通过该路径传输报文的质量越高。因此,可以选择权重较大的路径对应的下一跳作为目标下一跳。
另外,对于任一下一跳,如果从第一节点达到该下一跳对应有多条路径,则先从该下一跳对应的多条路径中选择权重最大的一条路径,然后再将选择的路径的权重和其他下一跳对应的路径的权重进行比对,以确定目标下一跳。
通过这种方式,可以提高空间网络中的报文转发质量,以应对空间网络中的流量拥堵问题。
在一些实施例中,与第一节点位于同一环内的每个下一跳对应的路径的权重可以预先通过对链路状态进行监测得到。示例地,可以预先测试报文从第一节点传输至下一跳的某条路径的时延,根据时延确定该路径的权重。
这种场景下,可以预先根据测试的时延配置逻辑图集中各条路径的权重,以便于在转发报文时快速选择某条路径。
示例地,第一节点预先确定某条路径的权重的实现方式可以为:第一节点每隔第二参考时长确定所述第一节点至第三节点之间的路径的时延,第三节点为与所述第一节点位于同一环的任一节点;所述第一节点基于所述第一节点至第三节点之间的路径的时延,更新第一节点至第三节点之间的路径的权重。
上述第一节点至第三节点的路径是指第一节点至第三节点的某一条路径,如果第一节点至第三节点有多条路径,则对于多条路径中每条路径均执行上述操作。
比如,在图9中,在第0级逻辑图中每个环内,每个节点每间隔△t2(比如100ms)发送特殊的“hello”包,且分别沿着顺时针、逆时针两个方向发送。该“hello”包经过每个节点时,该节点打上时间戳、自身的地址并将该包发往环内的下一个节点。每个节点通过该“hello”包中携带的时间戳以及地址等信息可以计算得到自身到环内其他节点在顺时针、逆时针两个方向上的时延,并基于确定的时延确定各条路径的权重,以生成自己的环内转发表。
如图9所示,卫星1处于环C(1,1)内,向同处C(1,1)环内的卫星2、4、5分别发送沿顺时针、逆时针的特殊hello包检测该环内的链路信息,以通过上述方式得到卫星1到环C(1,1)内任意节点的顺时针、逆时针两条路径的时延,并基于确定的时延生成自己的环内转发表。对于卫星1,当给定一个位于同环中的终点时,可以直接根据当前自身的环内转发表,按照最低时延(也即权重最大)的链路转发报文包至终点。
上述是以第0级逻辑图为例说明如何确定环内转发表中各条备选路径的权重。在一些实施例中,对于更高级别的逻辑图中各条链路,每条链路的权重则可为第0级逻辑图中该链路对应的多条路径的权重的平均值。比如,对于图8中第1级逻辑图中的N(1,1)至N(1,2)这条链路的权重,可以先确定第0级逻辑图中N(1,1)至N(2,1)至N(2,2)这条路径的权重,以及第0级逻辑图中N(1,1)至N(1,2)这条路径的权重,将这两个权重的平均值作为第1级逻辑图中的N(1,1)至N(1,2)这条链路的权重。
步骤504:第一节点基于目标下一跳转发该报文。
在第一节点通过步骤503确定出目标下一跳之后,便可通过目标下一跳转发该报文,以实现本申请实施例提供的报文转发方案。
其中,步骤502中确定多个下一跳有两种情况,相应地,步骤504中基于目标下一跳转发该报文也对应有两种情况。
针对步骤502中第一节点和第二节点位于同一环的场景,由于步骤502中确定的多个下一跳为通过环内转发表确定的下一跳,因此在步骤504中,直接将该报文转发给目标下一跳即可。
针对步骤502中第一节点和第二节点没有位于同一环的场景,由于步骤502中确定的多个下一跳为第一节点所在环与其他环之间的公共节点,因此在步骤504中,第一节点还可以通过环内转发表确定到达目标下一跳的多条备选路径,并从这多条备选路径中选择权重较大的备选路径转发该报文。
下面以图8所示的逻辑图集为例对步骤501至步骤504进行举例说明。
比如,对于图8所示的逻辑图集,当从卫星1向卫星2发送报文时,如图10所示,报文的转发流程如下:
1、当卫星1向卫星2发送报文时,卫星1通过比对卫星1的地址和卫星2的地址,以判断报文的起点和终点是否在同一环内。
卫星1的地址:L1C(1,1)L0C(1,1)N(1,1)
卫星2的地址:L1C(1,1)L0C(1,1)C(1,2)N(1,2)
通过两个卫星的地址之间的比对,确定出卫星1和卫星2的地址中都有L0C(1,1),即卫星1和卫星2在同一环内,且卫星1和卫星2均处于第0级逻辑图的环C(1,1)中。
其中,两个卫星的地址之间的比对示例地可通过正则表达式进行判定。可选地,也可以通过其他方式比对,在此不再一一举例说明。
2、由于卫星1和卫星2在同一环内,因此从卫星1到卫星2的环路径只有一条环路径,也即第1级逻辑图中的环路径1:C(1,1)->C(1,1),因此当前选择环路径1作为卫星1的路由方向。
3、如图10所示,卫星1通过环路径1环C(1,1)到卫星2有顺时针、逆时针两条路径。
路径1:从卫星1顺时针发送报文到卫星2,达到终点。
路径2:从卫星1逆时针发送报文到卫星4,卫星4收到报文,发现终点为卫星2,检查环路径为C(1,1)且自身处于该环内,不做任何操作继续沿该环发送报文到卫星5,同理卫星5将报文发往卫星2。
卫星1根据自身节点当下的环内转发表,选择权重较小的路径(比如可以为图10中的路径1),将报文从卫星1发送到卫星2。
又比如,对于图8所示的逻辑图集,当从卫星1向卫星9发送报文时,如图11和图12所示,报文的转发流程如下:
1、卫星1通过比对卫星1的地址和卫星9的地址,以判断报文的起点和终点是否在同一环内。
卫星1的地址:L1C(1,1)L0C(1,1)N(1,1)
卫星9的地址:L1C(1,1)L0C(2,2)N(3,3)
通过比对卫星1和卫星9的地址,确定出卫星1和卫星9不在同一环内。
2、由于报文的起点和终点不在同一环内,因此根据卫星的地址以及第1级逻辑图可得到从起点到终点的环路径,从卫星1所在环L0C(1,1)环到卫星2所在的环L0C(2,2)有两条可选环路径(如图11中第1级逻辑图中所示的路径)。
环路径1:C(1,1)->C(1,2)->C(2,2)
环路径2:C(1,1)->C(2,1)->C(2,2)
卫星1可根据权重进行最优路径选择,此处假设选环路径1。
3、根据环路径1,首先卫星1需通过C(1,1)将报文发送至C(1,2),根据通信网络中各个卫星的地址可得到C(1,1)和C(1,2)共享的节点(也即卫星2和卫星5),因此卫星1需要将报文发送到卫星2或者卫星5以到达环C(1,2),也即当前共有两条备选路径(如图11中第0级逻辑图所示的路径)。
路径1:卫星1->卫星2
从卫星1发送报文到卫星2,卫星2接收到报文后将起点改为卫星2,根据卫星2自身的地址以及逻辑图,由于卫星2属于环C(1,2),报文已到达环C(1,2)。
路径2:卫星1->卫星4->卫星5
从卫星1发送报文到卫星4,卫星4接收到报文后将起点改为卫星4,通过查看卫星4的地址,确定出卫星4属于环C(1,1),并未到达环C(1,2),因此直接将报文沿环C(1,1)发送至卫星5,报文到卫星5后,检查卫星5属于环C(1,2)。
卫星1可根据权重进行最优路径选择,此处假设选路径1。
4、报文到达卫星2后,卫星2属于环C(1,2),报文已到达环C(1,2),卫星2根据逻辑图确定C(1,2)->C(2,2)的路径,假设确定的路径为如图12中第1级逻辑图所示的路径(具体确定方式参考前述实施例)。根据第0级逻辑图可知环C(1,2)与环C(2,2)之间的公共节点为卫星5和卫星6,因此卫星2需要通过环C(1,2)将报文发往卫星5或卫星6以到达环C(2,2),也即当前共有两条备选路径(如图12中第0级逻辑图所示的路径)。
路径1:卫星2->卫星3->卫星6
从卫星2发送报文到卫星3,卫星3接收到报文后将起点改为卫星3,通过查看卫星3的地址,确定出卫星3属于环C(1,2),并未到达环C(2,2),因此直接将报文沿环C(1,2)发至卫星6,报文到卫星6后,检查卫星6属于环C(2,2)。
路径2:卫星2->卫星5
从卫星2发送报文到卫星5,卫星5接收到报文后将起点改为卫星5,通过查看卫星5的地址,确定出卫星5属于环C(2,2),报文已到达环C(2,2)。
可根据权重进行最优路径选择,此处假设选路径1。
5、报文到达卫星6后,卫星6属于环C(2,2),报文已到达环C(2,2),卫星6需要将报文在环C(2,2)内部发往终点卫星9,具体流程如前所述。
综上所述,在本申请实施例中,考虑到环的结构特性为从环内一个节点出发必然有两条路径,因此可以根据各个节点所处环进行编址,以使各个节点的地址携带环标签,以通过环标签基于当前节点所处的环和目的节点所处的环之间的网络拓扑,确定出与第一节点位于同一环的多个下一跳,也即确定出多条备选路径。以便于后续基于每条备选路径的流量特征,选择合适的备选路径转发流量。因此,本申请实施例提供的方法可以避免某些链路发生拥堵。
另外,第一节点从与第一节点位于同一环的多个下一跳中确定目标下一跳时,如果与所述多个下一跳分别对应的多条路径中存在故障路径,则从多条路径中除故障路径之外的路径对应的下一跳中确定目标下一跳。
由于当前确定出多个下一跳,因此即使当前时间某个下一跳对应的路径出现故障,也即通过某个下一跳无法成功发送该报文,第一节点也可以从其他非故障路径对应的下一跳中选择一个下一跳来发送该报文,对当前报文的发送基本没有影响。避免了网络故障对正常业务流量产生较大影响,从而降低通信时延。
这种场景下,如果故障路径的故障情况是由第一节点检测得到的,比如,第一节点与直连的另一个节点之间链路发生故障,则第一节点通过链路状态监测报文检测到该故障情况,此时第一节点还可以在发送该报文之后,还可以基于故障路径对应的环,确定故障域,并在故障域内发布故障通告消息,该故障通告消息用于通告故障路径的故障情况。
在空间网络中,当某一个卫星或者一条链路出现故障时,通过全网泛洪方式(如传统开放最短路径优先(open shortest path first,OSPF)路由协议)通告故障情况会造成带宽浪费,降低了链路传输效率,同时在重路由的收敛时间内报文无法有效传输,造成延迟高、误码率高的影响。
因此在本申请实施例中,当故障发生时,可以将通告故障的区域控制在发生故障的环内,发生故障的环也即故障域,只向故障域内的卫星泛洪故障通告消息,以使故障域内的卫星更新逻辑图集。
其中,在第一节点的地址通过前述所示的编址方式得到的场景中,第一节点基于故障路径对应的环,确定故障域的实现方式可以为:第一节点根据自身的地址确定自身所处的环,以及故障路径对端所处的环,将自身所处的环以及对端所处的环中所有节点组成的区域确定为故障域。
第一节点发布故障通告消息的目的在于触发故障域内其他节点更新存储的逻辑图集。可选地,在通信网络中的各个节点通过前述编址方式确定地址的情况下,该故障通告消息还用于触发故障域内其他节点更新自己的地址。
目前空间网络发生故障的情形一般有两种:故障发生在网络边缘(极地轨道的上升轨道和下降轨道之间存在不建链的情况)以及故障发生在网络中间。下面以两个例子进行说明。
示例1:如图13所示,当卫星1与卫星4之间的链路发生故障,该故障即为网络边缘处的故障。
当卫星1与卫星4在某一时间段内无法接收来自对方的报文时,卫星1将检测到该故障情况,由于该条链路失效将导致环C(1,1)失效,因此卫星1可以确定故障域为图13中的第0级逻辑图(图13中标记为Level0)中的环C(1,1)。此时,卫星1可以向处在环C(1,1)内的其他卫星发出故障通告消息。卫星4的处理方式相同,从而实现故障通告消息在环C(1,1)内泛洪,以使环C(1,1)内的卫星1、2、4、5均完成对地址、链路状态(比如直连的邻居的信息)、逻辑图以及环内转发表的更新。
其中,环C(1,1)内包含卫星1,2,4,5,这些卫星收到泛洪的故障通告信息后更新节点地址,各个节点的地址更新情况分别为:
卫星1的地址:L1C(1,1)L0C(1,1)N(1,1)更新为L1C(1,1)L0C(1,1)C(1,2)N(1,1)
卫星2的地址:L1C(1,1)L0C(1,1)C(1,2)N(1,2)更新为L1C(1,1)L0C(1,1)C(1,2)N(1,2)
卫星4的地址:L1C(1,1)L0C(1,1)C(2,1)N(2,1)更新为L1C(1,1)L0C(1,1)C(2,1)N(2,1)
卫星5的地址:L1C(1,1)L0C(1,1)C(1,2)C(2,1)C(2,2)N(2,2)更新为L1C(1,1)L0C(1,1)C(1,2)C(2,1)C(2,2)N(2,2)
由于卫星1只处于环C(1,1)内,当环C(1,1)失效,需要将卫星1归入与之相连的卫星2所处的环C(1,2)中;其余卫星如卫星2、4、5则在自身编址中去除环C(1,1)的相关信息即可。
示例2:如图14所示,当卫星5与卫星6之间的链路发生故障,该故障即为网络中间的故障。
当卫星5与卫星6在某一时间段内无法接收来自对方的报文时,卫星5将检测到该故障情况,由于该条链路失效将导致环C(1,2)和C(2,2)失效,因此卫星5可以确定故障域为图14中的第0级逻辑图(图13中标记为Level0)中的环C(1,2)和C(2,2)。也即,故障域为卫星2、3、5、6、8、9围成的区域。卫星5向处在环C(1,2)、C(2,2)内的所有节点泛洪故障通告信息。卫星6的处理方式相同,从而实现故障通告消息在环C(1,2)和C(2,2)内泛洪,以使这些节点均完成对地址、链路状态、逻辑图以及环内转发表的更新。
需要说明的是,当故障链路发生在网络中间时,由于故障链路可能涉及左、右,或者上、下两个环,此时可以先对对环进行合并,以得到新的网络拓扑,从而基于新的网络拓扑更新逻辑图集和地址。
在一些实施例中,合并环可按照以下规则进行合并。
(1)当个环的Y轴相等时,则向X轴值更小的环合并。比如,图14中的卫星5与卫星6之间的链路发生故障,环C(1,2)和C(2,2)合并,则新环为C(1,2)。
(2)两个环的X轴相等时,向Y轴值更小的环合并,。比如,图14中的卫星5与卫星8之间发生故障,环C(2,2)和环C(2,1)合并,则新环为C(2,1)。
(3)当多个邻接的环合并时,优先向X轴值更小的环合并,其次再向Y轴值更小的环合并。比如,图14中卫星5、卫星6和卫星8之间的链路发生故障,环C(1,2)、环C(2,2)和环C(2,1)合并,则新环为C(1,2)。
在合并环之后,其中,原来的环C(1,2)和环C(2,2)内包含卫星2,3,5,6,8,9,这些节点去除原地址中环C(2,2)的信息,以完成对地址的更新。其中,各个节点的地址更新情况分别为:
卫星2的地址:L1C(1,1)L0C(1,1)C(1,2)N(1,2)更新为L1C(1,1)L0C(1,1)C(1,2)N(1,2)
卫星3的地址:L1C(1,1)L0C(1,2)N(1,3)更新为L1C(1,1)L0C(1,2)N(1,3)
卫星5的地址:L1C(1,1)L0C(1,1)C(1,2)C(2,1)C(2,2)N(2,2)更新为L1C(1,1)L0C(1,1)C(1,2)C(2,1)C(2,2)N(2,2)
卫星6的地址:L1C(1,1)L0C(1,2)C(2,2)N(2,3)更新为L1C(1,1)L0C(1,2)C(2,2)N(2,3)
卫星8的地址:L1C(1,1)L0C(2,1)C(2,2)N(3,2)更新为L1C(1,1)L0C(2,1)C(2,2)C(1,2)N(3,2)
卫星9的地址:L1C(1,1)L0C(2,2)N(3,3)更新为L1C(1,1)L0C(2,2)C(1,2)N(3,3)
上述实施例是以第一节点在故障域内发布故障通告消息为例进行说明。可选地,第一节点也可以在通信网络的全域内发布故障通告消息,以使全部节点更新逻辑图集。
另外,在本申请实施例中,第一节点在发布故障通告消息时,还可以发送该报文后,在参考时间段内发布故障通告消息,该故障通告消息用于通告所述故障路径的故障情况。
其中,参考时间段为预先设置的时间段,该时间段内通信网络中的流量流通量较低,以避免故障通告消息的泛洪对正常业务流量造成影响。
通常情况下,在空间网络中,两两卫星之间通过彼此发送报文监测链路状况,如果卫星之间彼此没有收到报文,则确定两者之间的链路故障。在出现故障后,便可发布故障通告消息,以使通信网络中的节点更新逻辑图集。
基于前述内容可知,在本申请实施例中,由于环的路径多样性,即环内任意两个节点之间都拥有互不相交的两条路径,因此当链路发生故障时,无需立即进行重路由,以避免造成网络传输负担得到增加,当前的业务流量可以转移到剩余路径上。当在某个合适时间(如网络传输压力较低时),再将故障通告喜爱新泛洪到故障域其余节点。
比如,如图15所示,当卫星1向卫星9发送报文时,卫星2与卫星3之间的链路发生故障。则卫星1转发报文的流程可以如下:
1、卫星1根据第1级逻辑图选择环路径C(1,1)->C(1,2)->C(2,2)传输报文。
2、卫星1根据第0级逻辑图选择卫星1->卫星2的路径发送报文。
3、卫星2接收到报文后将起点改为卫星2,根据逻辑图,卫星2属于C(1,2),因此下一步将报文从C(1,2)发往C(2,2),有两条可选路径:
路径1:卫星2->卫星3->卫星6
路径2:卫星2->卫星5
此处根据环内转发表,假设卫星1选择路径1转发报文,此时突然卫星2与卫星3之间发生故障,因为此时局部的网络链路传输压力过大,故暂时不将卫星2与卫星3的故障通告信息泛洪到环C(1,2)内的其他节点,而是直接选择另一条路径,即路径2转发报文。
在链路发生故障后,在一个合适时间段(链路传输压力小时)内,故障节点将故障通告消息泛洪到故障域内其余的节点,故障域内节点收到泛洪的故障通告消息后,更新自身地址、逻辑图集,并在后续周期性通过发送hello包获取环内的链路状态、生成新的环内转发表。
如图16所示,当卫星1向卫星16发送报文时,卫星6与7、以及卫星6与10之间的链路发生故障,这种场景下,网络中各个节点的处理流程如下:
1、卫星6、7、10发现链路故障,根据自身的地址,确定故障域,故障域为卫星2、3、5、6、7、9、10、11所构成的环(如图16中红色节点所示),向故障域的其余节点泛洪故障通告消息,故障域内所有节点收到泛洪的故障通告消息后重新计算并更新第1级逻辑图,并更新卫星的地址,故障域外的其余节点无需知道故障域内发生的故障,因此逻辑图不变。
2、卫星1通过比对报文的起点(卫星1)与终点(卫星16)之间的地址,发现卫星1与卫星16不在同一环内,根据卫星1的逻辑图,选择环路径C(1,1)->C(1,2)->C(1,3)->C(2,3)->C(3,3)传输报文(卫星1不在故障域内,因此第1级逻辑图仍为之前的逻辑图),并选择卫星1->卫星2的路径发送报文。
3、卫星2接收到来自卫星1的报文,同样判定卫星2与卫星16不在同一个环内,由于卫星2处于故障域,卫星2根据自身新的逻辑图(如图16下右)进行转发,从环C(1,2)到环C(3,3)有多条环路径:
环路径1:C(1,2)->C(1,3)->C(3,3)
环路径2:C(1,2)->C(2,3)->C(3,3)
环路径3:C(1,2)->C(3,2)->C(3,3)
环路径4:C(1,2)->C(3,1)->C(3,2)->C(3,3)
可根据权重进行最优路径选择,此处假设选环路径2。
4、根据环路径2,卫星2需要通过C(1,2)将报文发送至C(2,3),根据编址可得到C(1,2)和C(2,3)共享的节点为卫星7和卫星11,即卫星2需要将报文发送到卫星7或者卫星11以到达环C(2,3),共有两条可选路径:
路径1:卫星2->卫星3->卫星7
路径2:卫星2->卫星6->卫星5->卫星9->卫星10->卫星11
可根据权重进行最优路径选择,此处假设选环路径1。
5、卫星7接收到来自卫星3的报文,由于卫星7属于环C(2,3),根据自身编址和逻辑图,接下来选择环路径为C(2,3)->C(3,3),根据编址可得到C(2,3)与C(3,3)之间的公共节点为卫星11和卫星12,因此卫星7可通过路径卫星7->卫星11或卫星7->卫星8->卫星12路径将报文传输至卫星11或者12,假设选择前者。
6、卫星11接收到来自卫星7的报文,根据自身编址和逻辑图,发现自身与终点卫星16处于同环内,直接根据环内转发表选择当前最优路径进行转发即可。
综上所述,当转发报文过程中某条路径发生故障时,由于当前确定出多个下一跳,因此即使当前时间某个下一跳对应的路径出现故障,也即通过某个下一跳无法成功发送该报文,第一节点也可以从其他非故障路径对应的下一跳中选择一个下一跳来发送该报文,对当前报文的发送基本没有影响。避免了网络故障对正常业务流量产生较大影响,从而提高通信质量。并且,在发布故障通告消息时,一方面可以在指定的参考时间段内发布故障通告消息,以避免对当前业务流量造成压力。另一方面,还可以将故障通告控制在故障域内,避免在全网内进行故障通告,降低全网的流量压力。
另外,本申请实施例还提供了一种报文转发装置,该所述装置应用于通信网络中的第一节点,所述通信网络包括多个节点,多个节点之间形成多个环。如图17所示,该装置1700包括处理模块1701和通信模块1702。
处理模块1701,用于获取报文,报文的目的地为第二节点,第一节点和第二节点为多个节点中任意两个节点。具体实现方式可以参考图5实施例中的步骤501。
处理模块1701,还用于基于第一节点所处的环与第二节点所处的环之间的网络拓扑,确定与第一节点位于同一环的多个下一跳。具体实现方式可以参考图5实施例中的步骤502。
处理模块1701,还用于从与第一节点位于同一环的多个下一跳中确定目标下一跳。具体实现方式可以参考图5实施例中的步骤503。
通信模块1702,用于基于目标下一跳转发报文。具体实现方式可以参考图5实施例中的步骤504。
可选地,处理模块在基于第一节点所处的环与第二节点所处的环之间的网络拓扑,确定与第一节点位于同一环的多个下一跳时,用于:
分别确定第一节点和第二节点在逻辑图集中的逻辑图中所处的环,逻辑图集包括第0级逻辑图至第n级逻辑图,第0级逻辑图指示多个节点之间的真实网络拓扑,第i级逻辑图中每个节点指示第i-1级逻辑图中的一个环,第i级逻辑图中相邻两个节点之间的链路指示第i-1级逻辑图中对应的相邻两个环之间的公共边,n大于等于1,i大于等于1;
如果在第0级逻辑图中,第一节点和第二节点位于同一环,则基于第0级逻辑图确定与第一节点位于同一环的多个下一跳。
可选地,处理模块还用于:
如果在第0级逻辑图中,第一节点和第二节点没有位于同一环,对于第n级逻辑图,基于第一节点在逻辑图中对应的节点和第二节点在逻辑图中对应节点,确定在逻辑图中从第一节点至第二节点的至少一条备选路径,基于至少一条备选路径中每条备选路径的权重,从至少一条备选路径选择目标备选路径,每条备选路径的权重指示相应备选路径传输报文的质量;
在下一级逻辑图中确定目标备选路径中的下一跳所指示的环与第一节点所处的环之间的多个公共节点,将多个公共节点更新为第二节点,对下一级逻辑图执行基于第一节点在逻辑图中对应的节点和第二节点在逻辑图中对应的节点,确定在逻辑图中从第一节点至第二节点的至少一条备选路径,直至遍历至第0级逻辑图,得到通过第0级逻辑图确定的多个公共节点,将多个公共节点确定与第一节点位于同一环的多个下一跳。
可选地,通信网络为空间网络,空间网络包括多个轨道,每个轨道包括多颗卫星,第一节点和第二节点为任意两颗卫星。
这种场景下,第一节点的地址包括多个逻辑图描述信息以及卫星标定信息;其中,每个逻辑图描述信息包括逻辑图标识以及多个环标签,逻辑图标识指示一个逻辑图,多个环标签中每个环标签指示第一节点在相应逻辑图中处于的一个环,卫星标定信息指示第一节点所处的轨道以及在相应轨道中的编号。
可选地,每个逻辑图描述信息还包括环标签数量,环标签数量指示相应逻辑图描述信息包括的环标签的数量。
可选地,处理模块还用于:
每隔第一参考时长基于通信网络中其他节点发送的链路状态通告消息,确定通信网络的真实网络拓扑,链路状态通告消息携带相应节点的直连邻居信息;
基于通信网络的真实网络拓扑,更新逻辑图集。
可选地,处理模块在从与第一节点位于同一环的多个下一跳中确定目标下一跳时,用于:
获取与第一节点位于同一环的多个下一跳中每个下一跳对应的路径的权重,每个下一跳对应的路径的权重指示报文从第一节点传输指示相应下一跳的质量;
基于与第一节点位于同一环的多个下一跳中每个下一跳对应的路径的权重确定目标下一跳。
可选地,处理模块还用于:
每隔第二参考时长确定第一节点至第三节点之间的路径的时延,第三节点为与第一节点位于同一环的任一节点;
基于第一节点至第三节点之间的路径的时延,更新第一节点至第三节点之间的路径的权重。
可选地,处理模块在从与第一节点位于同一环的多个下一跳中确定目标下一跳时,用于:
如果与多个下一跳分别对应的多条路径中存在故障路径,则从多条路径中除故障路径之外的路径对应的下一跳中确定目标下一跳。
可选地,通信模块还用于:
在转发报文之后,在参考时间段内发布故障通告消息,故障通告消息用于通告故障路径的故障情况。
可选地,处理模块还用于,基于故障路径所对应的环,确定故障域;
通信模块还用于,在故障域内发布故障通告消息,故障通告消息用于通告故障路径的故障情况。
综上所述,在本申请实施例中,考虑到环的结构特性为从环内一个节点出发必然有两条路径,因此可以基于当前节点所处的环和目的节点所处的环之间的网络拓扑,确定出与第一节点位于同一环的多个下一跳,也即确定出多条备选路径。以便于后续基于每条备选路径的流量特征,选择合适的备选路径转发流量。因此,本申请实施例提供的方法可以避免某些链路发生拥堵。
需要说明的是:上述实施例提供的报文转发装置在转发报文时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的报文转发装置与报文转发方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图18是本申请实施例提供的一种网络设备的结构示意图。前述实施例中的任一节点可以通过图18所示的网络设备来实现。参见图18,该网络设备包括至少一个处理器1801,通信总线1802、存储器1803以及至少一个通信接口1804。
处理器1801可以是一个通用中央处理器(central processing unit,CPU)、特定应用集成电路(application-specific integrated circuit,ASIC)或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线1802可包括一通路,在上述组件之间传送信息。
存储器1803可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only Memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器1803可以是独立存在,通过通信总线1802与处理器1801相连接。存储器1803也可以和处理器1801集成在一起。
其中,存储器1803用于存储执行本申请方案的程序代码,并由处理器1801来控制执行。处理器1801用于执行存储器1803中存储的程序代码。程序代码中可以包括一个或多个软件模块。前述实施例中任一节点可以通过处理器1801以及存储器1803中的程序代码中的一个或多个软件模块,来确定用于开发应用的数据。
通信接口1804,使用任何收发器一类的装置,用于与其它设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。
在具体实现中,作为一种实施例,网络设备可以包括多个处理器,例如图18中所示的处理器1801和处理器1805。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
上述的网络设备可以是一个通用网络设备或者是一个专用网络设备。在具体实现中,网络设备可以是空间网络中的卫星、地面网络中的路由器或交换机等。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(digital subscriber line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(digital versatile disc,DVD))、或者半导体介质(例如:固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上内容并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
Claims (24)
1.一种报文转发方法,其特征在于,所述方法应用于通信网络,所述通信网络包括多个节点,所述多个节点之间形成多个环;所述方法包括:
第一节点获取报文,所述报文携带的目的地址为第二节点的地址,所述第一节点和所述第二节点为所述多个节点中任意两个节点,所述第一节点的地址和所述第二节点的地址均携带环标签,所述环标签指示相应节点所处的环;
所述第一节点基于所述第一节点所处的环与第二节点所处的环之间的网络拓扑,确定与所述第一节点位于同一环的多个下一跳;
所述第一节点从与所述第一节点位于同一环的多个下一跳中确定目标下一跳;
所述第一节点基于所述目标下一跳转发所述报文。
2.如权利要求1所述的方法,其特征在于,所述第一节点基于所述第一节点所处的环与第二节点所处的环之间的网络拓扑,确定与所述第一节点位于同一环的多个下一跳,包括:
分别确定所述第一节点和所述第二节点在逻辑图集中的逻辑图中所处的环,所述逻辑图集包括第0级逻辑图至第n级逻辑图,所述第0级逻辑图指示所述多个节点之间的真实网络拓扑,第i级逻辑图中每个节点指示第i-1级逻辑图中的一个环,第i级逻辑图中相邻两个节点之间的链路指示第i-1级逻辑图中对应的相邻两个环之间的公共边,所述n大于等于1,所述i大于等于1;
如果在所述第0级逻辑图中,所述第一节点和所述第二节点位于同一环,则基于所述第0级逻辑图确定与所述第一节点位于同一环的多个下一跳。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
如果在所述第0级逻辑图中,所述第一节点和所述第二节点没有位于同一环,对于第n级逻辑图,基于所述第一节点在所述逻辑图中对应的节点和所述第二节点在所述逻辑图中对应节点,确定在所述逻辑图中从所述第一节点至所述第二节点的至少一条备选路径,基于所述至少一条备选路径中每条备选路径的权重,从所述至少一条备选路径选择目标备选路径,每条备选路径的权重指示相应备选路径传输报文的质量;
在下一级逻辑图中确定所述目标备选路径中的下一跳所指示的环与所述第一节点所处的环之间的多个公共节点,将所述多个公共节点更新为所述第二节点,对下一级逻辑图执行基于所述第一节点在所述逻辑图中对应的节点和所述第二节点在所述逻辑图中对应的节点,确定在所述逻辑图中从所述第一节点至所述第二节点的至少一条备选路径,直至遍历至第0级逻辑图,得到通过所述第0级逻辑图确定的多个公共节点,将所述多个公共节点确定与所述第一节点位于同一环的多个下一跳。
4.如权利要求2或3所述的方法,其特征在于,所述通信网络为空间网络,所述空间网络包括多个轨道,每个轨道包括多颗卫星,所述第一节点和所述第二节点为任意两颗卫星;
所述第一节点的地址包括多个逻辑图描述信息以及卫星标定信息;
其中,每个逻辑图描述信息包括逻辑图标识以及至少一个环标签,所述逻辑图标识指示一个逻辑图,所述至少一个环标签中每个环标签指示所述第一节点在相应逻辑图中处于的一个环,所述卫星标定信息指示所述第一节点所处的轨道以及在相应轨道中的编号。
5.如权利要求4所述的方法,其特征在于,每个逻辑图描述信息还包括环标签数量,所述环标签数量指示相应逻辑图描述信息包括的环标签的数量。
6.如权利要求2-5任一所述的方法,其特征在于,所述方法还包括:
所述第一节点每隔第一参考时长基于所述通信网络中其他节点发送的链路状态通告消息,确定所述通信网络的真实网络拓扑,所述链路状态通告消息携带相应节点的直连邻居信息;
所述第一节点基于所述通信网络的真实网络拓扑,更新所述逻辑图集。
7.如权利要求1-6任一所述的方法,其特征在于,所述第一节点从与所述第一节点位于同一环的多个下一跳中确定目标下一跳,包括:
所述第一节点获取与所述第一节点位于同一环的多个下一跳中每个下一跳对应的路径的权重,每个下一跳对应的路径的权重指示报文从所述第一节点传输指示相应下一跳的质量;
所述第一节点基于与所述第一节点位于同一环的多个下一跳中每个下一跳对应的路径的权重确定所述目标下一跳。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
所述第一节点每隔第二参考时长确定所述第一节点至第三节点之间的路径的时延,所述第三节点为与所述第一节点位于同一环的任一节点;
所述第一节点基于所述第一节点至第三节点之间的路径的时延,更新所述第一节点至第三节点之间的路径的权重。
9.如权利要求1-8任一所述的方法,其特征在于,所述第一节点从与所述第一节点位于同一环的多个下一跳中确定目标下一跳,包括:
如果与所述多个下一跳分别对应的多条路径中存在故障路径,则从所述多条路径中除所述故障路径之外的路径对应的下一跳中确定所述目标下一跳。
10.如权利要求9所述的方法,其特征在于,所述方法还包括:
在转发所述报文之后,在参考时间段内发布所述故障通告消息,所述故障通告消息用于通告所述故障路径的故障情况。
11.如权利要求9或10所述的方法,其特征在于,所述方法还包括:
基于所述故障路径所对应的环,确定故障域;
在所述故障域内发布故障通告消息,所述故障通告消息用于通告所述故障路径的故障情况。
12.一种报文转发装置,其特征在于,所述装置应用于通信网络中的第一节点,所述通信网络包括多个节点,所述多个节点之间形成多个环;所述装置包括:
处理模块,用于获取报文,所述报文携带的目的地址为第二节点的地址,所述第一节点和所述第二节点为所述多个节点中任意两个节点,所述第一节点的地址和所述第二节点的地址均携带环标签,所述环标签指示相应节点所处的环;
所述处理模块,还用于基于所述第一节点所处的环与第二节点所处的环之间的网络拓扑,确定与所述第一节点位于同一环的多个下一跳;
所述处理模块,还用于从与所述第一节点位于同一环的多个下一跳中确定目标下一跳;
通信模块,用于基于所述目标下一跳转发所述报文。
13.如权利要求12所述的装置,其特征在于,所述处理模块在基于所述第一节点所处的环与第二节点所处的环之间的网络拓扑,确定与所述第一节点位于同一环的多个下一跳时,用于:
分别确定所述第一节点和所述第二节点在逻辑图集中的逻辑图中所处的环,所述逻辑图集包括第0级逻辑图至第n级逻辑图,所述第0级逻辑图指示所述多个节点之间的真实网络拓扑,第i级逻辑图中每个节点指示第i-1级逻辑图中的一个环,第i级逻辑图中相邻两个节点之间的链路指示第i-1级逻辑图中对应的相邻两个环之间的公共边,所述n大于等于1,所述i大于等于1;
如果在所述第0级逻辑图中,所述第一节点和所述第二节点位于同一环,则基于所述第0级逻辑图确定与所述第一节点位于同一环的多个下一跳。
14.如权利要求13所述的装置,其特征在于,所述处理模块还用于:
如果在所述第0级逻辑图中,所述第一节点和所述第二节点没有位于同一环,对于第n级逻辑图,基于所述第一节点在所述逻辑图中对应的节点和所述第二节点在所述逻辑图中对应节点,确定在所述逻辑图中从所述第一节点至所述第二节点的至少一条备选路径,基于所述至少一条备选路径中每条备选路径的权重,从所述至少一条备选路径选择目标备选路径,每条备选路径的权重指示相应备选路径传输报文的质量;
在下一级逻辑图中确定所述目标备选路径中的下一跳所指示的环与所述第一节点所处的环之间的多个公共节点,将所述多个公共节点更新为所述第二节点,对下一级逻辑图执行基于所述第一节点在所述逻辑图中对应的节点和所述第二节点在所述逻辑图中对应的节点,确定在所述逻辑图中从所述第一节点至所述第二节点的至少一条备选路径,直至遍历至第0级逻辑图,得到通过所述第0级逻辑图确定的多个公共节点,将所述多个公共节点确定与所述第一节点位于同一环的多个下一跳。
15.如权利要求13或14所述的装置,其特征在于,所述通信网络为空间网络,所述空间网络包括多个轨道,每个轨道包括多颗卫星,所述第一节点和所述第二节点为任意两颗卫星;
所述第一节点的地址包括多个逻辑图描述信息以及卫星标定信息;
其中,每个逻辑图描述信息包括逻辑图标识以及多个环标签,所述逻辑图标识指示一个逻辑图,所述多个环标签中每个环标签指示所述第一节点在相应逻辑图中处于的一个环,所述卫星标定信息指示所述第一节点所处的轨道以及在相应轨道中的编号。
16.如权利要求15所述的装置,其特征在于,每个逻辑图描述信息还包括环标签数量,所述环标签数量指示相应逻辑图描述信息包括的环标签的数量。
17.如权利要求13-16任一所述的装置,其特征在于,所述处理模块还用于:
每隔第一参考时长基于所述通信网络中其他节点发送的链路状态通告消息,确定所述通信网络的真实网络拓扑,所述链路状态通告消息携带相应节点的直连邻居信息;
基于所述通信网络的真实网络拓扑,更新所述逻辑图集。
18.如权利要求12-17任一所述的装置,其特征在于,所述处理模块在从与所述第一节点位于同一环的多个下一跳中确定目标下一跳时,用于:
获取与所述第一节点位于同一环的多个下一跳中每个下一跳对应的路径的权重,每个下一跳对应的路径的权重指示报文从所述第一节点传输指示相应下一跳的质量;
基于与所述第一节点位于同一环的多个下一跳中每个下一跳对应的路径的权重确定所述目标下一跳。
19.如权利要求18所述的装置,其特征在于,所述处理模块还用于:
每隔第二参考时长确定所述第一节点至第三节点之间的路径的时延,所述第三节点为与所述第一节点位于同一环的任一节点;
基于所述第一节点至第三节点之间的路径的时延,更新所述第一节点至第三节点之间的路径的权重。
20.如权利要求12-19任一所述的装置,其特征在于,所述处理模块在从与所述第一节点位于同一环的多个下一跳中确定目标下一跳时,用于:
如果与所述多个下一跳分别对应的多条路径中存在故障路径,则从所述多条路径中除所述故障路径之外的路径对应的下一跳中确定所述目标下一跳。
21.如权利要求20所述的装置,其特征在于,所述通信模块还用于:
在转发所述报文之后,在参考时间段内发布所述故障通告消息,所述故障通告消息用于通告所述故障路径的故障情况。
22.如权利要求20或21所述的装置,其特征在于,
所述处理模块还用于,基于所述故障路径所对应的环,确定故障域;
所述通信模块还用于,在所述故障域内发布故障通告消息,所述故障通告消息用于通告所述故障路径的故障情况。
23.一种网络设备,其特征在于,所述网络设备包括存储器和处理器;
所述存储器用于存储支持所述装置执行权利要求1-11任一项所述的方法的程序,以及存储用于实现权利要求1-11任一项所述的方法所涉及的数据;
所述处理器被配置为用于执行所述存储器中存储的程序。
24.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行权利要求1-11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211494099.6A CN118101024A (zh) | 2022-11-25 | 2022-11-25 | 报文转发方法、装置、网络设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211494099.6A CN118101024A (zh) | 2022-11-25 | 2022-11-25 | 报文转发方法、装置、网络设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118101024A true CN118101024A (zh) | 2024-05-28 |
Family
ID=91144438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211494099.6A Pending CN118101024A (zh) | 2022-11-25 | 2022-11-25 | 报文转发方法、装置、网络设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118101024A (zh) |
-
2022
- 2022-11-25 CN CN202211494099.6A patent/CN118101024A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111211828B (zh) | 一种低轨通信卫星星座星间路由选择方法及装置 | |
KR102496586B1 (ko) | 내부 게이트웨이 프로토콜 플러딩 최소화 | |
US6987727B2 (en) | Automatic protection switching using link-level redundancy supporting multi-protocol label switching | |
US8780696B2 (en) | System and method of implementing lightweight not-via IP fast reroutes in a telecommunications network | |
US8817665B2 (en) | Alternate down paths for directed acyclic graph (DAG) routing | |
US10439880B2 (en) | Loop-free convergence in communication networks | |
CN110535763B (zh) | 一种路由备份方法、装置、服务器及可读存储介质 | |
US20210211376A1 (en) | Fast flooding topology protection | |
WO2022002093A1 (en) | Distributing information in communication networks | |
Kanagavelu et al. | A pro-active and adaptive mechanism for fast failure recovery in SDN data centers | |
CN114222345B (zh) | 路由路径计算方法、装置、电子设备及存储介质 | |
US10567270B1 (en) | Dynamic signaling of bypass tunnel based on bandwidth threshold at a point of local repair | |
CN118101024A (zh) | 报文转发方法、装置、网络设备及计算机存储介质 | |
Xu et al. | Failure inference for shortening traffic detours | |
US11811611B2 (en) | System and method for backup flooding topology split | |
CN113691446B (zh) | 一种报文发送的方法和装置 | |
US20230137047A1 (en) | Satellite communication system having primary and secondary neighborhood egress nodes | |
Babu et al. | INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY | |
CN115150329A (zh) | 发送报文、生成路由的方法、装置、存储介质及系统 | |
CN115499369A (zh) | 路径保护方法及装置 | |
Patil et al. | Enhanced fault tolerance using EMRC in wireless communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |