CN106789649B - 一种基于标签的层二多路径快速路由方法 - Google Patents

一种基于标签的层二多路径快速路由方法 Download PDF

Info

Publication number
CN106789649B
CN106789649B CN201611173869.1A CN201611173869A CN106789649B CN 106789649 B CN106789649 B CN 106789649B CN 201611173869 A CN201611173869 A CN 201611173869A CN 106789649 B CN106789649 B CN 106789649B
Authority
CN
China
Prior art keywords
node
packet
rdr
sequence number
routing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611173869.1A
Other languages
English (en)
Other versions
CN106789649A (zh
Inventor
孙杰
刘子君
李富强
刘虎成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 20 Research Institute
Original Assignee
CETC 20 Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CETC 20 Research Institute filed Critical CETC 20 Research Institute
Priority to CN201611173869.1A priority Critical patent/CN106789649B/zh
Publication of CN106789649A publication Critical patent/CN106789649A/zh
Application granted granted Critical
Publication of CN106789649B publication Critical patent/CN106789649B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/66Layer 2 routing, e.g. in Ethernet based MAN's
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/124Shortest path evaluation using a combination of metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]

Abstract

本发明提供了一种基于标签的层二多路径快速路由方法,包括路由发现和快速路由两个部分,若源节点S需要向目的节点D发送数据,首先查找路由表中是否存在S到D的路由表项,如果S到D的路由表项存在,则进行快速路由过程;如果S到D的路由表项不存在或被清除,则先进行路由发现过程建立路由表项。本发明由层二来负责路由转发功能,从而降低了包头开销;采用基于标签的固定前缀匹配规则,提升了转发效率;路由节点不需要解析路由包头,只需按照标签转发,从而精简了路由包头,降低了包头开销。

Description

一种基于标签的层二多路径快速路由方法
技术领域
本发明涉及通信技术领域,尤其是一种多路径快速路由方法。
背景技术
在大规模分布式Ad Hoc网络中,源节点和目的节点往往通过多跳的方式传输数据。由于Ad Hoc网络拓扑的随机性和不规则性,个别节点可能成为传输瓶颈,导致网络负载不均衡,影响网络中传输业务的服务质量。基于此,多路径路由成为Ad Hoc分布式路由的一个重要的研究方向。多路径路由的研究一般可以分为两类:第一种是先验式(表驱动)路由,通过周期性的交互路由信息,全网任何一个节点都维护一张整网的路由表,并基于此全局路由表生成多路径路由。其不足之处在于:路由维护的开销大,路由表查找复杂,转发速度慢。第二种是按需路由,节点在需要传输数据时首先发起路由查找过程,而后将查找到的路径填入数据包的包头域中。其不足之处在于:所有数据包的包头都包含完整的路径信息,开销太大。
发明内容
为了克服现有技术的不足,本发明提供一种基于标签的层二(开放系统互联参考模型的第二层,数据链路层)多路径快速路由方法,可以降低包头开销,提升转发效率,增加路由协议的灵活性。
本发明解决其技术问题所采用的技术方案包括以下步骤:
1)每个节点维护自身的本地路由表,表项内容包含源节点ID、目的节点ID、序列号、跳数、中间节点ID列表、QoS等级和时延;每一个路由表项都设定了一个生存周期TS,D,如果TS,D超时,则发送节点清除掉该路由表项;所有节点的本地路由表默认初始化为空,序列号为0;
2)若源节点S需要向目的节点D发送数据,查找路由表中是否存在S到D的路由表项,如果S到D的路由表项存在,则进入步骤4);如果不存在或被清除,则进入步骤3);
3)进行路由发现,建立路由表项,步骤如下:
3.1)源节点S生成路由发现请求包RDR,在该请求包中包含源节点ID、目的节点ID、中间节点ID列表、QoS等级、序列号、发送时间;其中源节点ID填写为自身ID,目的节点ID填写为数据接收方ID,中间节点ID列表初始化为源节点ID,跳数初始化为0,QoS等级填写为拟发数据包的QoS等级,序列号初始化为上一次本节点到目的节点D路由发现过程的序列号加1的值,上一次本节点到目的节点D路由发现过程序列号的初始值为0;之后,源节点将RDR包广播出去,同时设置路由发现应答请求包RDP等待定时器,定时时长TRDP
3.2)收到RDR包的节点,首先判断其自身是否是目的节点,如果是则执行步骤3.3);否则本节点为中间节点,执行下述步骤:
3.2.1)若本地路由表中存在S到D的路由记录,则执行步骤3.2.2),否则执行步骤3.2.6);
3.2.2)若该RDR包中的序列号小于本节点记录的S到D序列号,则将该包丢弃,本节点流程结束;否则执行步骤3.2.3);
3.2.3)若该RDR包中的序列号大于本节点记录的S到D序列号,则更新S到D序列号,执行步骤3.2.6),否则执行步骤3.2.4);
3.2.4)若该RDR包的中间节点ID列表包含自身,则将该包丢弃,本节点流程结束;否则执行步骤3.2.5);
3.2.5)若该RDR包中间节点ID列表的中间节点数量比本地S到D记录的最小中间节点数量超过允许的差值则将该包丢弃,本节点流程结束;否则执行步骤3.2.6);
3.2.6)若该RDR包中间节点ID列表的中间节点数量超过允许中间节点最大值则将该包丢弃,本节点流程结束;否则执行步骤3.2.7);
3.2.7)将本节点ID添加到该RDR包的中间节点ID列表中,RDR包中跳数加1,将RDR包广播,本节点流程结束;
3.3)目的节点接收到RDR包,则执行下述步骤:
3.3.1)若该RDR包中的序列号节点小于本节点记录的S到D序列号,则将该包丢弃,本流程结束;否则执行步骤3.3.2);
3.3.2)若该RDR包中的序列号节点大于本节点记录的S到D序列号,则更新S到D序列号,执行步骤3.3.3);否则执行步骤3.3.4);
3.3.3)开启RDR等待定时器,定时时长TRDR
3.3.4)若该RDR包在TRDR超时后到达,则将该包丢弃,本流程结束;否则执行步骤3.3.5);
3.3.5)若TRDR超时前到达了NRDR个数据包,且这些数据包达到路径选择阈值,则认定TRDR超时,执行步骤3.3.6);
3.3.6)TRDR超时,关闭TRDR定时器,执行路径选择算法,选定1条或多条路径,并计算所选定路径的时延;
3.4)目的节点生成RDP包,执行下述步骤:
3.4.1)针对S到D的发送数据随机生成一个label ID;
3.4.2)基于选择的一条或多条路径反向发送RDP包,该包中包含源节点ID、目的节点ID、中间节点ID列表、序列号、QoS等级、label ID、路径时延;
3.5)收到RDP包的节点,首先判断其自身是否是源节点,如果是则执行步骤3.6);否则其为中间节点,执行下述步骤:
3.5.1)若该RDP包中的序列号节点小于自身记录的S到D序列号,则将该包丢弃,本流程结束;否则执行步骤3.5.2);
3.5.2)若该RDP包中的序列号节点大于本节点记录的S到D序列号,则更新S到D序列号,执行步骤3.5.3);否则执行步骤3.5.4);
3.5.3)删除本节点路由表中所有的S到D表项,执行步骤3.5.4);
3.5.4)增加新的S到D路由表项,表项内容包含源节点ID、目的节点ID、序列号、跳数、中间节点ID列表、QoS等级、时延和标签entry,其中entry为label ID,执行步骤3.5.5);
3.5.5)继续沿着RDP包中的反向路径传输RDP包;
3.6)源节点接收到RDP包,执行下述步骤:
3.6.1)若该TRDP已超时,则将该包丢弃,本流程结束;否则执行步骤3.6.2);
3.6.2)关闭TRDP定时器;若该RDP包中的序列号节点小于自身记录的S到D序列号,则将该包丢弃,本流程结束;否则执行步骤3.6.3);
3.6.3)增加S到D路由表项,表项内容包含源节点ID、目的节点ID、序列号、跳数、中间节点ID列表、QoS等级、时延和标签entry,其中entry为label ID,执行步骤3.6.4);
3.6.3)本次路由发现过程结束;
4)快速路由,步骤如下:
4.1)当源节点S需要发送数据包到目的节点D时,查询其路由表项,根据多路径或多目的路由策略选择路径,而后沿着每一条路径发送数据包,数据包中包含MAC包头、labelID、源地址、目的地址、QoS、新流业务量、新流预留带宽、数据载荷,其中至少包括MAC包头、label ID、数据载荷;所述的MAC包头包括链路发送节点ID、链路接收节点ID、数据包类型、是否最后一个包、是否新流首包;
4.2)中间节点收到路由数据包后,执行下述步骤:
4.2.1)若不匹配MAC地址中的链路接收节点ID,则丢弃该数据包,流程结束;否则执行步骤4.2.2);
4.2.2)若MAC包头中是否最后一个包比特指示1,则剩余数据量清0,执行步骤4.2.4);否则,剩余数据流减去数据载荷大小,执行步骤4.2.3);
4.2.3)若MAC包头中是否新流比特指示1,则查询QoS域、新流业务量域和新流预留带宽,将其更新到路由表项对应的位置中,执行步骤4.2.4),并且从此刻起该节点的多址接入模块需要为该流预留带宽;否则,直接执行步骤4.2.4);
4.2.4)直接根据label查询到的下一跳ID,将该数据包转发出去,MAC包头仅需修改链路发送节点ID和链路接收节点ID。
本发明的有益效果是:由层二来负责路由转发功能,从而降低了包头开销;采用基于标签的固定前缀匹配规则,提升了转发效率;路由节点不需要解析路由包头,只需按照标签转发,从而精简了路由包头,降低了包头开销。
本发明中充分考虑了多路径中存在的时延和环路等问题,并增加了控制策略,其中步骤2.1和步骤2.3保证路由不会出现环路和混乱;步骤2.4和步骤2.5控制广播的数量。此外,目的节点只负责选路,不负责业务流分配,该分配由源节点统一完成。
附图说明
图1是本发明实施例的网络示意图。
具体实施方式
下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施例。
本发明中的每个节点都需要维护自身的本地路由表,表项内容包含源节点ID、目的节点ID、序列号(Seq)、跳数、中间节点ID列表、QoS(Quality of Service)等级和时延。路由表的中每一个路由表项都设定了一个生存周期TS,D(例如TS,D=180s),如果TS,D超时,则发送节点清除掉该路由表项。所有节点的本地路由表默认初始化为空,序列号为0。
本发明包括路由发现和快速路由两个部分。若源节点S需要向目的节点D发送数据,首先查找路由表中是否存在S->D(表示S到D,下同)的路由表项,如果S->D的路由表项存在,则进行快速路由过程;如果S->D的路由表项不存在或被清除,则需要进行路由发现过程建立路由表项。
路由发现过程的步骤如下:
步骤1.源节点S生成路由发现请求包(Route Discovery Request,RDR),在该请求包中包含源节点ID、目的节点ID、中间节点ID列表、QoS(Quality of Service)等级、序列号、发送时间。其中将源节点ID填写为自身ID、目的节点ID填写为数据接收方ID、中间节点ID列表初始化为源节点ID,跳数初始化为0,QoS等级填写为拟发数据包的QoS等级、序列号初始化为上一次本节点到目的节点D路由发现过程的序列号(初始值设为0)加1的值。之后,源节点将RDR包广播出去。同时设置路由发现应答请求包(route discovery response,RDP)等待定时器,定时时长TRDP
步骤2.收到RDR包的节点,首先判断其自身是否是目的节点,如果是则执行步骤3;否则本节点为中间节点,执行下述步骤:
步骤2.1.若本地路由表中存在S->D的路由记录,则执行步骤2.2。否则执行步骤2.6。
步骤2.2.若该RDR包中的序列号小于本节点记录的S->D序列号,则将该包丢弃,本节点流程结束。否则执行步骤2.3。
步骤2.3.若该RDR包中的序列号大于本节点记录的S->D序列号,则更新S->D序列号,执行步骤2.6。否则执行步骤2.4。
步骤2.4.若该RDR包的“中间节点ID列表”域中包含自身,则将该包丢弃,本节点流程结束。否则执行步骤2.5。
步骤2.5.若该RDR包“中间节点ID列表”域的中间节点数量比本地S->D记录的最小中间节点数量超过允许的差值(例如),则将该包丢弃,本节点流程结束。否则执行步骤2.6。
步骤2.6.若该RDR包“中间节点ID列表”域的中间节点数量超过允许中间节点最大值(例如),则将该包丢弃,本节点流程结束。否则执行步骤2.7。
步骤2.7.将本节点ID添加到该RDR包的“中间节点ID列表”域中,RDR包中“跳数”加1,将RDR包广播,本节点流程结束。
步骤3.目的节点接收到RDR包,则执行下述步骤:
步骤3.1.若该RDR包中的序列号节点小于本节点记录的S->D序列号,则将该包丢弃,本流程结束。否则执行步骤3.2。
步骤3.2.若该RDR包中的序列号节点大于本节点记录的S->D序列号,则更新S->D序列号,执行步骤3.3。否则执行步骤3.4。
步骤3.3.开启RDR等待定时器,定时时长TRDR
步骤3.4.若该RDR包在TRDR超时后到达,则将该包丢弃,本流程结束。否则执行步骤3.5。
步骤3.5.若TRDR超时前到达了NRDR个数据包(例如NRDR=3),且这些数据包达到路径选择阈值,则设定/认定TRDR超时,执行步骤3.6。
步骤3.6.TRDR超时,关闭TRDR定时器,执行路径选择算法,选定1条或多条路径,并计算所选定路径的时延。
步骤4.目的节点生成RDP包,具体执行下述步骤:
步骤4.1.针对该S->D的发送数据随机生成一个label ID,用于后续的快速路由,执行步骤4.2。
步骤4.2.基于选择的一条或多条路径(RDR包“中间节点ID列表”)反向发送RDP包,该包中包含源节点ID、目的节点ID、中间节点ID列表、序列号、QoS等级、label ID、路径时延。
步骤5.收到RDP包的节点,首先判断其自身是否是源节点,如果是则执行步骤6;否则其为中间节点,执行下述步骤:
步骤5.1.若该RDP包中的序列号节点小于自身记录的S->D序列号,则将该包丢弃,本流程结束。否则执行步骤5.2。
步骤5.2.若该RDP包中的序列号节点大于本节点记录的S->D序列号,则更新S->D序列号,执行步骤5.3。否则执行步骤5.4。
步骤5.3.删除本节点路由表中所有的S->D表项,执行步骤5.4。
步骤5.4.增加新的S->D路由表项,其中entry为label ID,表项内容包含源节点ID、目的节点ID、序列号、跳数,中间节点ID列表、QoS等级和时延(还有标签entry),执行步骤5.5。
步骤5.5.继续沿着RDP包中的反向路径传输RDP包。
步骤6.源节点接收到RDP包,则执行下述步骤:
步骤6.1.若该TRDP已超时,则将该包丢弃,本流程结束。否则执行步骤6.2。
步骤6.2.关闭TRDP定时器。若该RDP包中的序列号节点小于自身记录的S->D序列号,则将该包丢弃,本流程结束。否则执行步骤6.3。
步骤6.3.增加S->D路由表项,其中entry为label ID,表项内容包含源节点ID、目的节点ID、序列号、跳数,中间节点ID列表、QoS等级和时延,执行步骤6.4。
步骤6.4.本次路由发现过程结束。
快速路由过程的步骤如下:
当源节点S需要发送数据包到目的节点D时,查询其路由表项,根据多路径或多目的路由策略选择路径,而后沿着每一条路径发送数据包,数据包中包含MAC包头(链路发送节点ID、链路接收节点ID、数据包类型、是否最后一个包、是否新流首包)、label ID、源地址(可选)、目的地址(可选)、QoS(可选)、新流业务量(可选)、新流预留带宽(可选)、数据载荷。
步骤1.中间节点收到路由数据包后,执行下述步骤:
步骤1.1.若不匹配MAC地址中的链路接收节点ID,则丢弃该数据包,流程结束。否则执行步骤1.2。
步骤1.2.若MAC包头域中“是否最后一个包”比特指示1,则剩余数据量清0,执行步骤1.4。否则,剩余数据流减去数据载荷大小,执行步骤1.3。
步骤1.3.若MAC包头域中“是否新流”比特指示1,则查询QoS域、新流业务量域和新流预留带宽,将其更新到路由表项对应的位置中,执行ⅳ,并且从此刻起该节点的多址接入模块需要为该流预留带宽(值得注意的是,一个节点可能通过多个路由表支持一个流,这是因为采用多路径路由之后可能流经同样的节点,此时label不同,可作独立处理)。否则,直接执行步骤1.4。
步骤1.4.直接根据label查询到的下一跳ID(不需要解析路由包头,从而路由包头可以精简),将该数据包转发出去,MAC包头仅需修改链路发送节点ID和链路接收节点ID。
以图1中的网络为例,说明快速路由方法的实施步骤。在图1网络中节点1(源节点)需要向节点8(目的节点)发送数据,查询本地路由表(见表1-1),发现本地路由表中不存在1->8的路由表项,则需要进行路由发现过程。
表1-1发送节点(节点1)初始化路由表信息
label ID 源节点 目的节点 序列号 跳数 QoS 路径 时延
0
0
路由发现:
步骤1:1号节点生成RDR包,初始化该RDR数据包中的相关信息,S(源节点ID):1;D(目的节点ID):8;路径R(中间节点ID列表):{1};跳数:0;序列号(Seq):1;Qos等级:2。之后,1号节点将RDR包广播出去,同时设置RDP(路由发现应答请求包)等待定时器,定时时长TRDP
步骤2:2号节点收到1号广播的RDR包,判断发现自身不是目的节点,则自身为中间节点。
步骤2.1:2号节点的本地路由表中不存在S->D的路由记,执行步骤2.6。
步骤2.6:该RDR包“中间节点ID列表”为{1},“跳数”为0,中间节点数量为没有超过允许中间节点最大值执行步骤2.7。
步骤2.7:将本节点ID添加到该RDR包“中间节点ID列表”中,为{1,2};RDR包中“跳数”由0加为1。将RDR包广播,本节点流程结束。
1、3、4、6号节点收到2号节点的广播RDR包,发现自身不是目的节点8,则自身为中间节点,继续步骤2:
1号节点:提取RDR包中的Seq(1)与自身记录的1->8序列号Seq(1)对比,1等于1;检查发现RDR包“中间节点ID列表”域{1,2}包含自身节点,则丢弃该包,本节点流程结束。
3号节点:提取RDR包中的Seq(1)与自身记录的1->8序列号Seq(0)对比,1大于0,则更新自身记录的序列号Seq为1;将3号节点写入RDR中间节点列表为{1,2,3};跳数加为2。广播RDR,本节点流程结束。
4号节点:提取RDR包中的Seq(1)与自身记录的1->8序列号Seq(0)对比,1大于0,则更新自身记录的序列号Seq为1;将4号节点写入RDR中间节点列表为{1,2,4};跳数加为2。广播RDR,本节点流程结束。
6号节点:提取RDR包中的Seq(1)与自身记录的1->8序列号Seq(0)对比,1大于0,则更新自身记录的序列号Seq为1;将6号节点写入RDR中间节点列表为{1,2,6};跳数加为2。广播RDR,本节点流程结束。
2号节点:收到3、4、6号节点广播回传的RDR包,提取RDR包中的Seq(1)与自身记录的1->8序列号Seq(1)对比,1等于1;检查发现RDR包“中间节点ID列表”域包含自身节点,则丢弃该包,本节点流程结束。
5、7号节点收到4号节点的广播RDR包,发现自身不是目的节点8,则自身为中间节点,继续步骤2:
5号节点:提取RDR包中的Seq(1)与自身记录的1->8序列号Seq(0)对比,1大于0,则更新自身记录的序列号Seq为1;将5号节点写入RDR中间节点列表为{1,2,4,5};跳数加为3。广播RDR,本节点流程结束。
7号节点:提取RDR包中的Seq(1)与自身记录的1->8序列号Seq(0)对比,1大于0,则更新自身记录的序列号Seq为1;将4号节点写入RDR中间节点列表为{1,2,4,7};跳数加为3。广播RDR,本节点流程结束。
4号节点:收到5、7号节点广播回传的RDR包,发现RDR包“中间节点ID列表”域包含自身节点,则丢弃该包,本节点流程结束。
步骤3:目的节点8号节点收到4号节点和6号节点的广播RDR包。
8号节点:收到6号节点的RDR包,检查发现自己是目的节点;提取RDR包中的Seq(1)与自身记录的1->8序列号Seq(0)对比,1大于0,则更新自身记录的序列号Seq为1;将8号节点写入RDR中间节点列表为{1,2,6,8};跳数加为3。开启RDR等待定时器,定时时长TRDR
8号节点:收到7号节点的RDR包,检查发现自己是目的节点;提取RDR包中的Seq(1)与自身记录的1->8序列号Seq(0)对比,1大于0,则更新自身记录的序列号Seq为1;将8号节点写入RDR中间节点列表为{1,2,4,7,8};跳数加为4。开启RDR等待定时器,定时时长TRDR
步骤4:8号目的节点在步骤3结束时收到2个RDR包。
步骤4.1:8号节点随机生成2个label ID:3075和2016,执行步骤4.2。
步骤4.2:8号节点生成两个RDP包。第一个RDP包中包含:label ID(3075)、源节点ID(1)、目的节点ID(8)、中间节点ID列表{1,2,6,8}、跳数(3)、QoS等级(2)、序列号Seq(1)和路径时延(xx);第二个RDP包中包含:label ID(2016)、源节点ID(1)、目的节点ID(8)、中间节点ID列表{1,2,4,7,8}、跳数(4)、QoS等级(2)、序列号Seq(1)和路径时延(xx)。然后按照路径发送RDP包。
步骤5:6号、7号节点收到8号节点反向发送的RDP包,发现自身不是源节点,则自身为中间节点,执行以下步骤:
6号节点:提取RDP包中的Seq(1)与自身记录的1->8序列号Seq(1)对比,1等于1,则增加新的1->8路由表项,其中entry为3075,表项内容包含:源节点ID(1)、目的节点ID(8)、中间节点ID列表{1,2,6,8}、跳数(3)、QoS等级(2)、序列号Seq(1)和路径时延(xx);继续反向发送RDP包,本节点流程结束。
7号节点:提取RDP包中的Seq(1)与自身记录的1->8序列号Seq(1)对比,1等于1,则增加新的1->8路由表项,其中entry为2016,表项内容包含:源节点ID(1)、目的节点ID(8)、中间节点ID列表{1,2,4,7,8}、跳数(4)、QoS等级(2)、序列号Seq(1)和路径时延(xx);继续反向发送RDP包,本节点流程结束。
2号节点收到8号节点反向发送的RDP包label ID(3075),发现自身不是源节点,则自身为中间节点,继续执行步骤5:
2号节点:提取RDP包中的Seq(1)与自身记录的1->8序列号Seq(1)对比,1等于1,则增加新的1->8路由表项,其中entry为3075,表项内容包含:源节点ID(1)、目的节点ID(8)、中间节点ID列表{1,2,6,8}、跳数(3)、QoS等级(2)、序列号Seq(1)和路径时延(xx);继续反向发送RDP包,本节点流程结束。
4、2号节点依次收到8号节点反向发送的RDP包label ID(2016),发现自身不是源节点,则自身为中间节点,继续执行步骤5:
4号节点:提取RDP包中的Seq(1)与自身记录的1->8序列号Seq(1)对比,1等于1,则增加新的1->8路由表项,其中entry为2016,表项内容包含:源节点ID(1)、目的节点ID(8)、中间节点ID列表{1,2,4,7,8}、跳数(4)、QoS等级(2)、序列号Seq(1)和路径时延(xx);继续反向发送RDP包,本节点流程结束。
2号节点:提取RDP包中的Seq(1)与自身记录的1->8序列号Seq(1)对比,1等于1,则增加新的1->8路由表项,其中entry为2016,表项内容包含:源节点ID(1)、目的节点ID(8)、中间节点ID列表{1,2,4,7,8}、跳数(4)、QoS等级(2)、序列号Seq(1)和路径时延(xx);继续反向发送RDP包,本节点流程结束。
步骤6:1号节点收到2个8号节点反向发送的RDP包,发现自身是源节点,执行以下步骤:
1号节点:提取RDP包中的Seq(1)与自身记录的1->8序列号Seq(1)对比,1等于1,则增加新的1->8路由表项,其中entry为3075,表项内容包含:源节点ID(1)、目的节点ID(8)、中间节点ID列表{1,2,6,8}、跳数(3)、QoS等级(2)、序列号Seq(1)和路径时延(xx)。
1号节点:提取RDP包中的Seq(1)与自身记录的1->8序列号Seq(1)对比,1等于1,则增加新的1->8路由表项,其中entry为2016,表项内容包含:源节点ID(1)、目的节点ID(8)、中间节点ID列表{1,2,4,7,8}、跳数(4)、QoS等级(2)、序列号Seq(1)和路径时延(xx)。
本次路由发现过程结束,路由表的信息如表1-2所示。
表1-2节点路由发现后的路由表信息
label ID 源节点 目的节点 序列号 跳数 QoS 路径 时延
3075 1 8 1 3 2 {1,2,6,8} xx
2016 1 8 1 4 2 {1,2,4,7,8} xx
本发明的的路由协议由层二来负责路由转发功能,从而降低了包头开销。
本发明的路由协议采用基于标签的固定前缀匹配规则,提升了转发效率。
本发明的路由协议中路由节点只需按照标签转发,与路径不完全绑定有利于路由的灵活性。

Claims (1)

1.一种基于标签的层二多路径快速路由方法,其特征在于包括下述步骤:
1)每个节点维护自身的本地路由表,表项内容包含源节点ID、目的节点ID、序列号、跳数、中间节点ID列表、QoS等级和时延;每一个路由表项都设定了一个生存周期TS,D,如果TS,D超时,则发送节点清除掉该路由表项;所有节点的本地路由表默认初始化为空,序列号为0;
2)若源节点S需要向目的节点D发送数据,查找路由表中是否存在S到D的路由表项,如果S到D的路由表项存在,则进入步骤4);如果不存在或被清除,则进入步骤3);
3)进行路由发现,建立路由表项,步骤如下:
3.1)源节点S生成路由发现请求包RDR,在该请求包中包含源节点ID、目的节点ID、中间节点ID列表、QoS等级、序列号、发送时间;其中源节点ID填写为自身ID,目的节点ID填写为数据接收方ID,中间节点ID列表初始化为源节点ID,跳数初始化为0,QoS等级填写为拟发数据包的QoS等级,序列号初始化为上一次本节点到目的节点D路由发现过程的序列号加1的值,上一次本节点到目的节点D路由发现过程序列号的初始值为0;之后,源节点将RDR包广播出去,同时设置路由发现应答请求包RDP等待定时器,定时时长TRDP
3.2)收到RDR包的节点,首先判断其自身是否是目的节点,如果是则执行步骤3.3);否则本节点为中间节点,执行下述步骤:
3.2.1)若本地路由表中存在S到D的路由记录,则执行步骤3.2.2),否则执行步骤3.2.6);
3.2.2)若该RDR包中的序列号小于本节点记录的S到D序列号,则将该包丢弃,本节点流程结束;否则执行步骤3.2.3);
3.2.3)若该RDR包中的序列号大于本节点记录的S到D序列号,则更新S到D序列号,执行步骤3.2.6),否则执行步骤3.2.4);
3.2.4)若该RDR包的中间节点ID列表包含自身,则将该包丢弃,本节点流程结束;否则执行步骤3.2.5);
3.2.5)若该RDR包中间节点ID列表的中间节点数量比本地S到D记录的最小中间节点数量超过允许的差值则将该包丢弃,本节点流程结束;否则执行步骤3.2.6);
3.2.6)若该RDR包中间节点ID列表的中间节点数量超过允许中间节点最大值则将该包丢弃,本节点流程结束;否则执行步骤3.2.7);
3.2.7)将本节点ID添加到该RDR包的中间节点ID列表中,RDR包中跳数加1,将RDR包广播,本节点流程结束;
3.3)目的节点接收到RDR包,则执行下述步骤:
3.3.1)若该RDR包中的序列号节点小于本节点记录的S到D序列号,则将该包丢弃,本流程结束;否则执行步骤3.3.2);
3.3.2)若该RDR包中的序列号节点大于本节点记录的S到D序列号,则更新S到D序列号,执行步骤3.3.3);否则执行步骤3.3.4);
3.3.3)开启RDR等待定时器,定时时长TRDR
3.3.4)若该RDR包在TRDR超时后到达,则将该包丢弃,本流程结束;否则执行步骤3.3.5);
3.3.5)若TRDR超时前到达了NRDR个数据包,且这些数据包达到路径选择阈值,则认定TRDR超时,执行步骤3.3.6);
3.3.6)TRDR超时,关闭TRDR定时器,执行路径选择算法,选定1条或多条路径,并计算所选定路径的时延;
3.4)目的节点生成RDP包,执行下述步骤:
3.4.1)针对S到D的发送数据随机生成一个label ID;
3.4.2)基于选择的一条或多条路径反向发送RDP包,该包中包含源节点ID、目的节点ID、中间节点ID列表、序列号、QoS等级、label ID、路径时延;
3.5)收到RDP包的节点,首先判断其自身是否是源节点,如果是则执行步骤3.6);否则其为中间节点,执行下述步骤:
3.5.1)若该RDP包中的序列号节点小于自身记录的S到D序列号,则将该包丢弃,本流程结束;否则执行步骤3.5.2);
3.5.2)若该RDP包中的序列号节点大于本节点记录的S到D序列号,则更新S到D序列号,执行步骤3.5.3);否则执行步骤3.5.4);
3.5.3)删除本节点路由表中所有的S到D表项,执行步骤3.5.4);
3.5.4)增加新的S到D路由表项,表项内容包含源节点ID、目的节点ID、序列号、跳数、中间节点ID列表、QoS等级、时延和标签entry,其中entry为label ID,执行步骤3.5.5);
3.5.5)继续沿着RDP包中的反向路径传输RDP包;
3.6)源节点接收到RDP包,执行下述步骤:
3.6.1)若该TRDP已超时,则将该包丢弃,本流程结束;否则执行步骤3.6.2);
3.6.2)关闭TRDP定时器;若该RDP包中的序列号节点小于自身记录的S到D序列号,则将该包丢弃,本流程结束;否则执行步骤3.6.3);
3.6.3)增加S到D路由表项,表项内容包含源节点ID、目的节点ID、序列号、跳数、中间节点ID列表、QoS等级、时延和标签entry,其中entry为label ID,执行步骤3.6.4);
3.6.3)本次路由发现过程结束;
4)快速路由,步骤如下:
4.1)当源节点S需要发送数据包到目的节点D时,查询其路由表项,根据多路径或多目的路由策略选择路径,而后沿着每一条路径发送数据包,数据包中至少包括MAC包头、labelID、数据载荷;所述的MAC包头包括链路发送节点ID、链路接收节点ID、数据包类型、是否最后一个包、是否新流首包;
4.2)中间节点收到路由数据包后,执行下述步骤:
4.2.1)若不匹配MAC地址中的链路接收节点ID,则丢弃该数据包,流程结束;否则执行步骤4.2.2);
4.2.2)若MAC包头中是否最后一个包比特指示1,则剩余数据量清0,执行步骤4.2.4);否则,剩余数据流减去数据载荷大小,执行步骤4.2.3);
4.2.3)若MAC包头中标志“是否新流首包”的比特指示1,则查询QoS域、新流业务量域和新流预留带宽,将其更新到路由表项对应的位置中,执行步骤4.2.4),并且从此刻起该节点的多址接入模块需要为该流预留带宽;否则,直接执行步骤4.2.4);
4.2.4)直接根据label查询到的下一跳ID,将该数据包转发出去,MAC包头仅需修改链路发送节点ID和链路接收节点ID。
CN201611173869.1A 2016-12-19 2016-12-19 一种基于标签的层二多路径快速路由方法 Active CN106789649B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611173869.1A CN106789649B (zh) 2016-12-19 2016-12-19 一种基于标签的层二多路径快速路由方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611173869.1A CN106789649B (zh) 2016-12-19 2016-12-19 一种基于标签的层二多路径快速路由方法

Publications (2)

Publication Number Publication Date
CN106789649A CN106789649A (zh) 2017-05-31
CN106789649B true CN106789649B (zh) 2019-12-31

Family

ID=58889680

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611173869.1A Active CN106789649B (zh) 2016-12-19 2016-12-19 一种基于标签的层二多路径快速路由方法

Country Status (1)

Country Link
CN (1) CN106789649B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107659502B (zh) * 2017-11-01 2020-06-02 上海海洋大学 一种基于能量有效性与链路可靠性的按需路由协议算法
US10587517B2 (en) * 2017-11-30 2020-03-10 Juniper Networks, Inc. Optimizing fabric path forwarding for virtual nodes within an electronic device
CN109039912B (zh) * 2018-08-13 2020-10-27 常熟理工学院 一种基于多路径的软件定义网络实现方法
CN112650705A (zh) * 2020-12-31 2021-04-13 清华大学 路由控制方法及人工智能处理器
CN113347099A (zh) * 2021-05-31 2021-09-03 中国工商银行股份有限公司 一种分布式网络流量转发方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1531284A (zh) * 2003-02-20 2004-09-22 ���Ͽع����޹�˾ 网络基础结构的保护及控制信息的安全通信
CN1700676A (zh) * 2005-06-03 2005-11-23 港湾网络有限公司 以太网交换机跨虚拟局域网的二层组播数据传输方法
WO2007128399A1 (en) * 2006-05-04 2007-11-15 Nokia Siemens Networks Gmbh & Co. Kg Automatic packet protection forwarding to an mpls network by a dual-homed ethernet bridge
CN101848155A (zh) * 2010-05-12 2010-09-29 北京星网锐捷网络技术有限公司 标签交换路径的检测方法及标签交换路由器
CN103648144A (zh) * 2013-12-13 2014-03-19 重庆邮电大学 一种无线多跳网络中带多QoS约束的多路径生成方法
US8948179B2 (en) * 2012-08-21 2015-02-03 Futurewei Technologies, Inc. Method of multiprotocol label switching encapsulation for united router farm forwarding

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8098656B2 (en) * 2009-06-26 2012-01-17 Avaya, Inc. Method and apparatus for implementing L2 VPNs on an IP network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1531284A (zh) * 2003-02-20 2004-09-22 ���Ͽع����޹�˾ 网络基础结构的保护及控制信息的安全通信
CN1700676A (zh) * 2005-06-03 2005-11-23 港湾网络有限公司 以太网交换机跨虚拟局域网的二层组播数据传输方法
WO2007128399A1 (en) * 2006-05-04 2007-11-15 Nokia Siemens Networks Gmbh & Co. Kg Automatic packet protection forwarding to an mpls network by a dual-homed ethernet bridge
CN101848155A (zh) * 2010-05-12 2010-09-29 北京星网锐捷网络技术有限公司 标签交换路径的检测方法及标签交换路由器
US8948179B2 (en) * 2012-08-21 2015-02-03 Futurewei Technologies, Inc. Method of multiprotocol label switching encapsulation for united router farm forwarding
CN103648144A (zh) * 2013-12-13 2014-03-19 重庆邮电大学 一种无线多跳网络中带多QoS约束的多路径生成方法

Also Published As

Publication number Publication date
CN106789649A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
CN106789649B (zh) 一种基于标签的层二多路径快速路由方法
US7567547B2 (en) Method and system for loop-free ad-hoc routing
US8451807B2 (en) Configuration aware packet routing in an ad-hoc network
CN110149274B (zh) 基于位置信息和内容推送的命名数据网络综合路由方法
CN101674630B (zh) 一种可感知拥塞的跨层路由实现方法
US20070086358A1 (en) Directed acyclic graph computation by orienting shortest path links and alternate path links obtained from shortest path computation
CN106922008B (zh) 一种基于RPL路由协议的IPv6无线传感网多路径传输方法
RU2012116597A (ru) Способ и устройство для обмена маршрутной информацией и для установления связи через множество сегментов сети
CN107294852B (zh) 一种使用拓扑分散短路径集的网络路由方法
US20080151793A1 (en) Voice-over-internet protocol intra-vehicle communications
CN101827415B (zh) 一种无线网格网络中的信道分配方法和系统
CN111954281A (zh) 一种基于无线紫外光通信的蜂群无人机编队分簇路由方法
CN106850436B (zh) 基于虚拟势能场的矿井混合无线mesh网络路由方法
EP3200404A1 (en) Content-centric network on-demand distance vector route method
CN110691379A (zh) 一种适于无线自组网的主动式路由通信方法
CN103023773A (zh) 多拓扑网络中转发报文的方法、装置和系统
CN101527645A (zh) 网络拓扑信息收集方法、系统及相关设备
CN102752210B (zh) 一种局域网间传输报文的方法和系统
CN101106520A (zh) 基于aodv的数根节点独立的多路由技术
Nishitha et al. Performance evaluation of anthocnet routing algorithm in ad hoc networks
Liu et al. A hybrid relay node selection strategy for VANET routing
US9226219B2 (en) System and method for route learning and auto-configuration
CN106658636B (zh) 一种基于剩余带宽的毫米波网络多路径回传路由方法
CN104540240A (zh) 无线网络支持车载客户机的接入方法
Rong et al. LSMR: A label switching multipath routing protocol for ad hoc 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
GR01 Patent grant
GR01 Patent grant