一种基于标签的动态源路由的路径表达方法与流程

文档序号:16902375发布日期:2019-02-19 18:08阅读:187来源:国知局
一种基于标签的动态源路由的路径表达方法与流程

本发明涉及动态路由的数据传输技术领域,尤其涉及一种基于标签的动态源路由的路径表达方法。



背景技术:

移动自组网(mobilead-hocnetworks)的网络环境中,结点可以自由移动,拓扑变化具有高度变化性。移动自组网中通信通过无线传输来完成,它提供的网络带宽相对有线信道低很多,考虑竞争无线信道产生的碰撞、信号衰减、噪音干扰等因素,移动结点获得的实际带宽比理论上的最大带宽小很多。

动态源路由协议(dsr)是一种基于源路由机制进行包转发的移动自组网协议。目的是保证数据包在拓扑高度变化的网络中也能被成功交付。dsr协议允许结点动态地发现从源结点到目的结点的多跳路由。源路由,指的是源结点发送的每个数据包,都会携带从源结点到目的结点经过的所有中间结点地址的列表,即包头部包含一条完整的路径。

动态源路由协议还存在很多值得改进的地方,路由过程中采用的洪泛广播,可能导致邻居结点间在进行路由信息请求时发生冲突,并且在结点移动速率较大,导致网络拓扑结构变化剧烈的情况下,造成大量的网络开销。源路由机制需要在每个数据包头部携带有从源结点到达目的结点的完整的路由信息,这就增加了数据包头部的长度,发送数据包占用的带宽比一般的包占用的带宽要大,造成了额外的路由开销,这个额外的路由开销增大了无线带宽的占用率和包的延迟时间。

动态源路由协议的这种路径表达方式会造成无线网络带宽的浪费,特别是针对带宽窄、传输能耗大的水声网络。现有的方法中,没有针对动态源路由协议路径表达方式造成的带宽浪费的问题而提出有效的减小路由开销的方法。



技术实现要素:

本发明的目的在于提供一种基于标签的动态源路由的路径表达方法,旨在减小路径表达带来的带宽消耗,降低网络负载,提高带宽利用率。

为了实现上述目的,本发明提供一种基于标签的动态源路由的路径表达方法,所述方法包括:

执行源结点到目的结点的路由请求过程;

在路由应答过程中,为从所述目的结点、所述源结点以及所述目的结点和所述源结点之间的每一个结点分配标签;

根据各个结点所对应的标签形成路由应答包。

本发明的一种实现方式中,所述方法还包括:

所述源节点根据所述目标路由应答包和每一个结点对应的压缩地址进行数据发送。

本发明的一种实现方式中,所述执行源结点到目的结点的路由请求过程的步骤,包括:

当第一结点收到路由请求包时,判断是否收到过该路由请求包,其中,所述第一结点为所述接收源结点至所述目的结点中的任意一个结点;

如果收到过,则丢弃该路由请求包;否则,判断路由缓存中是否有该第一结点;

如果路由缓存中已存在该第一结点,则丢弃该路由请求包;否则,判断该第一结点是否为目的结点;

如果是目的结点,则回复路由应答包;否则,判断是否存有到达目的第一结点的路由信息;

若存在,则回复路由应答包;若不存在,则存储第一结点自身的地址到路径中并且广播转发路由请求包。

本发明的一种实现方式中,所述在路由应答过程中,为从所述目的结点、所述源结点以及所述目的结点和所述源结点之间的每一个结点分配标签的步骤,包括:

从所述目的结点到所述源节点,针对每一个结点顺序执行:在上一个结点接收到路由应答包时,根据所述上一个结点确定其对应的下一跳下一个结点;

根据所述下一个结点对应的邻居表,获得所述下一个结点为所述上一个结点所分配的标签;

并经由所述上一个结点转发路由应答包至所述下一个结点;

直至所述下一个结点为所述源节点。

本发明的一种实现方式中,所述标签小于4个字节。

本发明的一种实现方式中,所述源节点根据所述目标路由应答包和每一个结点对应的压缩地址进行数据发送的步骤,包括:

数据发送步骤:在发送数据包时,发送方根据标签路径中接收方的标签,查找发送方的邻居表,得到接收方结点的压缩地址,把该结点的压缩地址作为接收方;

数据接收步骤:收到数据包的结点,将数据包中压缩的地址与自身的压缩地址进行比较,如果不相同,则丢弃该数据包,否则,如果是目的地址,则向源结点回复确认帧,如果不是目的地址,则查找数据包头部携带的标签路径中自身结点的下一跳结点,回到数据发送步骤继续执行下一个节点的数据发送。

本发明提供的一种基于标签的动态源路由的路径表达方法,有益效果如下:

每个结点维护一张邻居表,邻居表中保存有结点所有邻居的地址,本结点为这些邻居分配的标签号,以及邻居结点对应的压缩地址。在路由回复的过程中,形成了由含有字符较少的标签代替结点地址的路径。并且,本发明在数据包的发送过程中,根据标签路径查找接收方结点的压缩地址,并将该结点的压缩地址作为接受方来发送数据,减小了转发包头部携带的路由信息而造成的开销。相较于原来的动态源路由协议,本发明有着更低的端到端时延和更低的结点能耗,从而说明本发明减小了路径表达的带宽消耗,降低了网络负载,提高了带宽利用率。

附图说明

图1是本发明实施例基于标签的动态源路由的路径表达方法的系统结构图。

图2是本发明实施例基于标签的动态源路由的路径表达方法的第一种电路图。

图3是本发明实施例基于标签的动态源路由的路径表达方法的第二种电路图。

图4是本发明实施例基于标签的动态源路由的路径表达方法的第三种电路图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。

请参阅图1-4。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

具体的,如图1所示,本发明实施例提供了一种基于标签的动态源路由的路径表达方法,所述方法包括:

s101,执行源结点到目的结点的路由请求过程。

示例性的,如图2所示,假设移动自组网中有s,a,b,e,d五个结点,s为源结点,d为目的结点,a,b,e为中间结点。

一种实现方式中,所述执行源结点到目的结点的路由请求过程的步骤,包括:

当第一结点收到路由请求包时,判断是否收到过该路由请求包,其中,所述第一结点为所述接收源结点至所述目的结点中的任意一个结点;

如果收到过,则丢弃该路由请求包;否则,判断路由缓存中是否有该第一结点;

如果路由缓存中已存在该第一结点,则丢弃该路由请求包;否则,判断该第一结点是否为目的结点;

如果是目的结点,则回复路由应答包;否则,判断是否存有到达目的第一结点的路由信息;

若存在,则回复路由应答包;若不存在,则存储第一结点自身的地址到路径中并且广播转发路由请求包。

需要说明的是,在图2中,每个结点先通过压缩算法得到结点自己的压缩地址,然后每个结点广播hello消息包,hello消息包中包含结点的地址和结点的压缩地址。结点会收到其通信范围内所有邻居结点发来的hello消息包。此时,结点建立一个邻居表,邻居表的设计参考哈希表,为每一条邻居消息条目分配固定的存储空间,并为每一个存储空间分配一个标签号。图1中结点a的通信范围内有两个邻居结点,源结点s和结点b。其他结点的邻居表的建立同理。

在建立完邻居表后,进行路由发现过程,路由发现过程包括路由请求和路由应答两个过程,路由请求过程路径的表达方式仍为各结点的地址。如图3所示,当结点收到一个路由请求包(rreq)时,首先判断是否收到过该路由请求包,如果收到过,则丢弃这个包,否则判断路由缓存中是否有该结点,如果路由缓存中已存在该结点,则丢弃这个包,否则判断该结点是否为目的结点,如果是目的结点,则回复路由应答包,否则判断是否存有到达目的结点的路由信息,若存在,则回复路由应答包,若不存在,则存储结点自身的地址到路径中并且广播转发路由请求包。结点a收到的包中路径为s,结点b收到的包中路径为s->a,结点e收到的包中路径为s->a->b,结点d收到的包中路径为s->a->b->e。

s102,在路由应答过程中,为从所述目的结点、所述源结点以及所述目的结点和所述源结点之间的每一个结点分配标签。

本发明的一种实现方式中,所述在路由应答过程中,为从所述目的结点、所述源结点以及所述目的结点和所述源结点之间的每一个结点分配标签的步骤,包括:

从所述目的结点到所述源节点,针对每一个结点顺序执行:在上一个结点接收到路由应答包时,根据所述上一个结点确定其对应的下一跳下一个结点;

根据所述下一个结点对应的邻居表,获得所述下一个结点为所述上一个结点所分配的标签;

并经由所述上一个结点转发路由应答包至所述下一个结点;

直至所述下一个结点为所述源节点。

路由请求过程路径的表达方式仍为各结点的地址,在路由应答过程时,将路径的表达方式标签化,得到由标签表示的路径,关键在于路由应答过程中,将结点地址换成标签的方法。

本发明的一种实现方式中,所述标签为包含一个字符的标签。

示例性的,在建立邻居表的过程中,结点a建立的邻居表中结点s的标签号为1,结点b的标签号为2。

路由请求完成后,进行路由应答过程。当结点收到路由应答包(rrep)时,结点查找下一跳结点的邻居表中下一跳结点为自己分配的标签,把路径中自己的结点地址换成该标签,并转发路由应答包给下一跳结点。

图2给出了一个路径表达的示意图来说明路由应答过程。假设通过路由请求得到的路径为s->a->b->e->d,路由应答的步骤如下:

步骤1):从目的结点d开始路由应答,d结点的下一跳结点是e结点,e结点查找自己的邻居表中为d结点分配的标签为2,用标签2代替d的结点地址,将路径变为a->b->e->2,并转发路由应答包给结点e。

步骤2):结点e收到d结点的路由应答包,e结点的下一跳结点是b结点,b结点查找自己的邻居表中为e结点分配的标签为2,用标签2代替e的结点地址,将路径变为a->b->2->2,并转发路由应答包给结点b。

步骤3):结点b收到e结点的路由应答包,b结点的下一跳结点是a结点,a结点查找自己的邻居表中为b结点分配的标签为2,用标签2代替b的结点地址,将路径变为a->2->2->2,并转发路由应答包给结点a。

步骤4):结点a收到b结点的路由应答包,a结点的下一跳结点是s结点,s结点查找自己的邻居表中为a结点分配的标签为1,用标签1代替a的结点地址,将路径变为1->2->2->2,并转发路由应答包给源结点s。

本发明实施例中,标签为不大于4个字节,具体可以为1个字符(2字节),或者2个字符(4个字节),本发明实施例在此不做具体限定。

s103,根据各个结点所对应的标签形成路由应答包。

具体的,源结点收到由标签表达路径的路由应答包,例如1->2->2->2。

本发明的一种实现方式中,所述方法还包括:

所述源节点根据所述目标路由应答包和每一个结点对应的压缩地址进行数据发送。

具体的数据发送过程包括:数据发送步骤:在发送数据包时,发送方根据标签路径中接收方的标签,查找发送方的邻居表,得到接收方结点的压缩地址,把该结点的压缩地址作为接收方;数据接收步骤:收到数据包的结点,将数据包中压缩的地址与自身的压缩地址进行比较,如果不相同,则丢弃该数据包,否则,如果是目的地址,则向源结点回复确认帧,如果不是目的地址,则查找数据包头部携带的标签路径中自身结点的下一跳结点,回到数据发送步骤继续执行下一个节点的数据发送。

示例性的,根据标签路径1->2->2->2:

步骤6):源结点s查找自己的邻居表中标签1为结点a,发送数据包给结点a;

步骤7):a收到数据包后,结点a查找自己的邻居表中标签2为结点b,发送数据包给结点b;

步骤8):b收到数据包后,结点b查找自己的邻居表中标签2为结点e,发送数据包给结点e;

步骤9):e收到数据包后,结点e查找自己的邻居表中标签2为目的结点d,发送数据包给目的结点d。

如图4所示,在发送数据包时,发送方根据标签路径中接收方的标签,查找自己的邻居表,得到接收方结点的压缩地址,把该结点的压缩地址作为接收方发送数据,收到数据包的结点,将数据包中压缩的地址与自身的压缩地址进行比较,如果不相同,则丢弃该数据包,否则,判断该结点是否为目的地址,如果不是目的地址,则查找数据包头部携带的标签路径中自身结点的下一跳结点,向下一跳地址发送数据,如果是目的地址,则向源结点回复ack确认帧。

每个结点维护一张邻居表,邻居表中保存有结点所有邻居的地址,本结点为这些邻居分配的标签号,以及邻居结点对应的压缩地址。在路由回复的过程中,形成了由标签代替结点地址的路径。并且,本发明在数据包的发送过程中,根据标签路径查找接收方结点的压缩地址,并将该结点的压缩地址作为接受方来发送数据,减小了转发包头部携带的路由信息而造成的开销。相较于原来的动态源路由协议,本发明有着更低的端到端时延和更低的结点能耗。

本发明提供的一种基于标签的动态源路由的路径表达方法,有益效果如下:

每个结点维护一张邻居表,邻居表中保存有结点所有邻居的地址,本结点为这些邻居分配的标签号,以及邻居结点对应的压缩地址。在路由回复的过程中,形成了由标签代替结点地址的路径。并且,本发明在数据包的发送过程中,根据标签路径查找接收方结点的压缩地址,并将该结点的压缩地址作为接受方来发送数据,减小了转发包头部携带的路由信息而造成的开销。相较于原来的动态源路由协议,本发明有着更低的端到端时延和更低的结点能耗,从而说明本发明减小了路径表达的带宽消耗,降低了网络负载,提高了带宽利用率。

因此,本发明实施例中,通过每个结点给其邻居结点分配一个标签,在路径中每个结点的地址用标签来表示,具体为一个标签,占用字节较少,节省数据传输的带宽,使每个数据包头部均携带从源结点到达目的结点的由标签组成的完整路径,其中标签代替的地址既可以是结点的物理地址,也可以是结点的网络地址;被分配标签的结点不知道其邻居结点为自己分配的标签号,同一结点被不同邻居结点分配的标签号可以相同,也可以不同;

路由回复过程形成标签路径法中,在路由请求时,形成的路径的表达方式仍为各结点的地址,即{[结点1地址],[结点2地址],[结点m地址]...[结点n地址]},m为中间结点,n为目的结点,路由回复形成标签路径的过程包括如下步骤:从目的结点开始路由应答,当中间结点收到路由应答包时,结点查找其下一跳结点的邻居表,找到邻居表中与结点地址对应的标签,并将路径中该结点的地址替换成标签,并转发路由应答包给下一跳结点,在没有回复到源结点的时候,路由应答包中路径的形式为{[结点1地址],[结点2地址],[结点m地址],[标签1][标签2].....[标签n]},一部分为结点的地址形式,一半为标签形式,当路由应答包回复到源结点时,路由应答包中的路径完全标签化,路径的形式为{[标签1],[标签2]....[标签n]};因此,可以有效的通过用标签代替结点地址来表达路由的方法,减小路径表达带来的带宽消耗,降低网络负载,提高带宽利用率。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1