无线自组织网络中低开销的可靠组播路由方法与流程

文档序号:12492496阅读:216来源:国知局
无线自组织网络中低开销的可靠组播路由方法与流程

本发明属于通信技术领域,更进一步涉及一种可靠组播路由方法,可应用于无线自组织网络中。



背景技术:

无线自组织网络不同于传统的无线通信网络技术,它不需要固定设备来支持,并没有基站和中心节点,每个节点即用户终端自行组网,当需要进行通信时,每个用户节点都能进行数据的发送或转发。无线自组织网络突破了传统无线蜂窝网络的地理局限性,能够更加快速、便捷、高效地进行部署,适用于一些紧急场合特殊的通信需要,如救灾和军事用途等。

组播是一种一对多或者多对多的数据传输方式,相对于广播和单播,组播提高了数据传输的效率。在组播传输中,可靠性是一个很重要的指标,然而在无线自组网中,信道的不稳定性和节点的移动性难免使得丢包率较高,这正是可靠组播需要解决的问题。

组播可靠性的含义是保证源节点发送的每一个分组均正确到达每个组播组成员。目前,无线自组网中的可靠组播协议大概分为基于自动请求重传ARQ、基于前向纠错FEC、基于闲聊Gossip和基于网络编码NC这几种。但是这几种可靠组播方法均有各自特定的应用环境,且各自具有一些扩展性、开销、效率或者复杂性上的缺点。基于自动请求重传ARQ和基于前向纠错FEC的可靠组播协议开销较大,基于闲聊Goss ip的可靠组播协议不能保证较高的分组投递率,基于网络编码NC的可靠组播协议复杂性较高且分组接收延时较大。目前关于可靠组播的研究工作,很多都是将不同的可靠组播协议的特点相结合,以实现更好的适应性和可靠性。

作者黄梦洁在其发表的论文“Ad Hoc网络中基于协同通信的可靠组播丢失恢复技术”(《电子科技大学》,2010年)中将协同丢失恢复方法与网络编码相结合,提出了一种新的基于网络编码的协同可靠组播丢失恢复算法。协同通信的方法是通过丢失节点的所有一跳内邻居节点、上游节点和发送节点来协同帮助进行丢失恢复,避免了恢复期间个别节点的负荷,可将网络中的丢失恢复负载分布到了整个网络,但是此方法效率较低,开销较大。网络编码技术中节点将重传的分组异或编码然后进行发送,可减少丢失分组的发送次数,但是复杂度较高,可应用的场景有限。

作者黄少炜在其发表的论文“Ad Hoc网络下基于网络编码可靠组播技术”(《国防科学技术大学》,2011年)中提出了一种基于网络编码的可靠组播技术,其不需要底层组播路由机制的支持,依靠闲聊机制完成组播分组的分发过程。该技术虽然可以很好地适应由于节点快速移动而引起的网络拓扑变化,但是依然存在网络编码复杂度较高,应用场景有限的不足。



技术实现要素:

本发明的目的在于针对上述已有可靠组播技术的不足,提出一种无线自组织网络中低开销的可靠组播路由方法,以在提高可靠性的同时,降低协议的复杂度和开销。

为了实现上述目的,本发明技术方案包括如下:

(1)网络中的源节点将组播分组进行缓存,并将分组封装于可靠组播报文RM中进行发送;

(2)对接收到的可靠组播报文RM进行处理:

(2a)网络中的其它节点接收可靠组播报文RM,并对报文中封装的组播分组进行缓存;

(2b)在规定的时间间隔后,接收到可靠组播报文RM的节点根据报文中的分组ID更新缓存中的丢失组播分组记录;

(2c)接收到RM报文的节点判断RM报文中是否有自己的丢失分组ID,若有,则执行步骤(2d),若没有,则执行步骤(2e);

(2d)等待丢失分组,若在规定的时间间隔后仍未收到这些丢失分组,则将丢失分组ID封装为组播分组恢复报文MMR并发送给发送可靠组播报文RM的节点;

(2e)判断自己是否为可靠组播报文RM中组播分组所属的组播组成员,若不是,则丢弃此RM报文,返回步骤(2a),否则,执行步骤(2f);

(2f)判断自己是否收到过此RM报文中的组播分组,若是,则丢弃此RM报文,否则,将此RM报文中的组播分组重新封装为新的RM报文并发送,返回步骤(2a);

(3)发送组播分组恢复报文MMR:

(3a)网络中的每个节点刷新缓存中的丢失组播分组记录;

(3b)每个节点判断自己缓存中的丢失组播分组记录是否为空,若是,则返回步骤(3a),否则,执行步骤(3c);

(3c)每个节点判断自己是否长时间未与邻居节点进行报文的交互,若是,则执行步骤(3d),否则,返回步骤(3a);

(3d)长时间未与邻居节点进行报文交互的节点在规定的时间间隔后将自己丢失的组播分组的ID封装为组播分组恢复报文MMR进行广播发送,返回步骤(3a);

(4)对接收到的组播分组恢复报文MMR进行处理:

(4a)网络中的其它节点接收到组播分组恢复报文MMR,在规定的时间间隔后,根据报文中的分组ID更新缓存中的丢失组播分组记录;

(4b)接收到组播分组恢复报文MMR的节点判断MMR报文的接收地址是否为自己或广播的地址,若不是,则丢弃报文,返回步骤(4a),否则,执行步骤(4c);

(4c)接收到组播分组恢复报文MMR的节点判断缓存中是否有发送MMR报文节点的丢失分组,若不是,则丢弃报文,返回步骤(4a),否则,执行步骤(4d);

(4d)接收到组播分组恢复报文MMR的节点判断MMR报文的接收地址是否为自己的地址,若不是,则执行步骤(4e),否则,执行步骤(4f);

(4e)接收到组播分组恢复报文MMR的节点在规定的时间间隔后,如果未检测到邻居节点给发送此MMR报文的节点发送了封装其丢失组播分组的可靠组播报文RM,则将此丢失分组封装于RM报文中进行发送,返回步骤(4a);

(4f)接收到组播分组恢复报文MMR的节点判断缓存中待回复组播分组记录中是否有发送MMR报文的节点的丢失分组,若是,则丢弃此MMR报文,返回步骤(4a),否则,执行步骤(4g);

(4g)接收到组播分组恢复报文MMR的节点在规定的时间间隔后,将发送此MMR报文节点的丢失分组封装于可靠组播报文RM中进行发送,返回步骤(4a)。

本发明与现有技术相比具有以下优点:

第一,降低了复杂度和开销。

本发明中只有可靠组播报文RM和组播分组恢复报文MMR这两种报文类型,当节点接收到邻居节点发来的RM报文后,可根据报文中携带最近收到组播分组的ID知道该邻居节点缓存中是否有自己丢失的组播分组,并可向邻居节点请求重发分组;当节点接收到邻居节点发来的MMR报文后,可根据报文中携带丢失分组的ID知道该邻居节点丢失了哪些组播分组,并将这些分组发送给该邻居节点,所以节点之间不需要互相发送大量不同类型的报文来进行丢失分组的寻找和恢复,与现有技术相比降低了复杂度和开销;

第二,减少了重复报文的交互次数。

本发明中的节点由于在每次发送可靠组播报文RM或组播分组恢复报文MMR之前,要经过一段时间间隔后判断是否可以不发送,这样不仅避免了不必要的报文发送,而且减少了节点之间重复报文的交互次数,与现有技术相比进一步降低了开销。

附图说明

图1是本发明的实现总流程图;

图2是本发明中组播分组ID的结构示意图;

图3是本发明中可靠组播报文RM的结构示意图;

图4是本发明中组播分组恢复报文MMR的结构示意图;

图5是本发明中处理可靠组播报文RM的子流程图;

图6是本发明中发送组播分组恢复报文MMR的子流程图;

图7是本发明中处理组播分组恢复报文MMR的子流程图。

具体实施方式

本发明的使用场景为无线自组织网络,组播组的建立和维护由按需距离矢量组播路由协议MAODV来完成,组播分组的分发和丢失组播分组的恢复由本发明来实现。

下面结合附图,对本发明作进一步的详细描述。

参照图1,本发明的实现步骤如下:

步骤1.网络中的源节点将组播分组进行缓存,并将分组封装于可靠组播报文RM中进行发送。

可靠组播报文RM中封装待发送组播分组和最近收到组播分组的ID,其他节点接收到RM报文既可以缓存报文中封装的组播分组,又可以知道发送报文的节点最近收到了哪些分组,从而利用这些组播分组的ID知道自己丢失哪些分组。

组播分组的ID用来区分不同的组播分组,其结构如图2所述,它包括组播分组的源节点地址、序号和组播地址。

可靠组播报文RM的结构如图3所述,它包括报文类型、最近收到的组播分组数n、最近收到的n个组播分组的ID、待发送组播分组的ID、报文发送节点地址、报文接收节点地址和待发送的组播分组。

步骤2.对接收到的可靠组播报文RM进行处理:

参照图5,本步骤的具体实现如下:

(2a)网络中的其它节点接收可靠组播报文RM,并对报文中封装的组播分组进行缓存;

(2b)在规定的时间间隔后,接收到可靠组播报文RM的节点根据报文中的分组ID更新缓存中的丢失组播分组记录;

所述的时间间隔服从均匀分布,取值区间是根据网络中的平均丢包率和组播分组平均到达速率进行设定,设定它的原因是组播分组可能不按顺序到达,所以不能收到RM报文就立刻更新丢失分组记录。

接收到RM报文的节点根据报文更新缓存中的丢失组播分组记录,按如下两种情况进行:

第一种情况是:接收到可靠组播报文RM的节点将携带发送RM报文节点最近收到组播分组的ID与自己缓存中的组播分组ID进行对比,查看自己丢失了哪些分组,并将丢失的分组存入缓存中的丢失组播分组记录中;

第二种情况是:若接收到可靠组播报文RM的节点为RM报文中组播分组所属的组播组成员,则将组播分组的序号与自己记录的发送RM报文的源节点的最大分组序号进行对比,查看丢失了哪些分组,并将丢失的分组存入缓存中的丢失组播分组记录中。

(2c)接收到RM报文的节点判断RM报文中是否有自己的丢失分组ID,若有,则执行步骤(2d),若没有,则执行步骤(2e);

(2d)等待丢失分组,若在规定的时间间隔后仍未收到这些丢失分组,则将丢失分组ID封装为组播分组恢复报文MMR,并发送给发送可靠组播报文RM的节点;

所述的时间间隔服从均匀分布,取值区间是根据网络中的平均丢包率和组播分组平均到达速率进行设定,设定它的原因是分组可能不按顺序到达,所以等待一段时间再将丢失分组ID封装于MMR报文进行发送。

组播分组恢复报文MMR中封装了丢失组播分组的ID,此时报文接收节点为发送RM报文的节点,当此节点接收到MMR报文后,可根据报文中携带丢失分组的ID知道发送报文的节点丢失了哪些组播分组,并将分组发送给该节点。

组播分组恢复报文MMR的结构如图4所述,它包括报文类型、报文发送节点地址、报文接收节点地址、丢失的组播分组数n、丢失的n个组播分组的ID。

(2e)判断自己是否为可靠组播报文RM中组播分组所属的组播组成员,若不是,则丢弃此RM报文,返回步骤(2a),否则,执行步骤(2f);

(2f)判断自己是否收到过此RM报文中的组播分组,若有,则丢弃此RM报文,否则,将此RM报文中的组播分组重新封装为新的RM报文并发送,返回步骤(2a);

所述将接收到的RM报文中的组播分组重新封装为新的RM报文并发送,目的是转发接收到的RM报文的组播分组,其转发规则是:

若准备转发可靠组播报文RM的节点在组播组中为叶子节点,且发送RM报文的节点为自己的上游节点,则不转发;

若准备转发可靠组播报文RM的节点的下游节点数量大于2个,则在规定的时间间隔T1后检测自己所有的上下游节点是否均转发了接收到的RM报文中的组播分组,若是,则不转发,否则,将组播分组重新封装为可靠组播报文RM进行发送。时间间隔T1服从均匀分布,取值区间是根据网络中的平均丢包率和组播分组平均到达速率进行设定。

若准备转发可靠组播报文RM的节点的下游节点数量不大于2个,则在规定的时间间隔T2后检测自己所有的上下游节点是否均转发了接收到的RM报文中的组播分组,若是,则不转发,否则,将组播分组重新封装为可靠组播报文RM进行发送。时间间隔T2服从均匀分布,取值区间是根据网络中的平均丢包率和组播分组平均到达速率进行设定,且T2必须大于T1,既可使上下游节点数大于2个节点尽量优先转发组播分组,又可使上下游节点数不大于2个的节点晚一些转发甚至不转发组播分组,这样可避免一些不必要的分组转发。

步骤3.发送组播分组恢复报文MMR。

参照图6,本步骤实现如下:

(3a)网络中的每个节点刷新缓存中的丢失组播分组记录:

网络中的每个节点刷新丢失组播分组记录,其刷新规则是:每个节点查看缓存中丢失组播分组记录中的每一个组播分组所属的组播组,若自己已经退出这个分组所属的组播组,则在丢失组播分组记录中删除这个组播分组;

(3b)每个节点判断自己缓存中的丢失组播分组记录是否为空,若是,则返回步骤(3a),否则,执行步骤(3c);

(3c)每个节点判断自己是否长时间未与邻居节点进行报文的交互,若是,则执行步骤(3d),否则,返回步骤(3a);

(3d)长时间未与邻居节点进行报文交互的节点在规定的时间间隔后将自己丢失的组播分组的ID封装为组播分组恢复报文MMR进行广播发送,返回步骤(3a),广播发送MMR报文的目的是使所有邻居节点均能收到该报文,邻居节点接收到报文后,可根据报文中携带丢失分组的ID知道发送报文的节点丢失了哪些组播分组,并将分组发送给该节点。

所述的时间间隔服从均匀分布,取值区间是根据网络中的平均丢包率和组播分组平均到达速率进行设定,设定它的目的是防止多个节点在同一时间发送相同的MMR报文。

步骤4.对接收到的组播分组恢复报文MMR进行处理:

参照图7,本步骤实现方法如下:

(4a)网络中的其它节点接收到组播分组恢复报文MMR,在规定的时间间隔后,根据报文中的分组ID更新缓存中的丢失组播分组记录,即接收到MMR报文的节点将报文中携带丢失组播分组的ID与自己缓存中的组播分组ID进行对比,查看自己丢失了哪些分组,并将自己丢失的分组存入缓存中的丢失组播分组记录;该时间间隔服从均匀分布,取值区间是根据网络中的平均丢包率和组播分组平均到达速率进行设定,设定它的原因是组播分组可能不按顺序到达,所以不能收到MMR报文就立刻更新丢失分组记录;

(4b)接收到组播分组恢复报文MMR的节点判断MMR报文的接收地址是否为自己或广播的地址,若不是,则丢弃报文,返回步骤(4a),否则,执行步骤(4c);

(4c)接收到组播分组恢复报文MMR的节点判断缓存中是否有发送MMR报文节点的丢失分组,若不是,则丢弃报文,返回步骤(4a),否则,执行步骤(4d);

(4d)接收到组播分组恢复报文MMR的节点判断MMR报文的接收地址是否为自己的地址,若不是,则执行步骤(4e),否则,执行步骤(4f);

(4e)接收到组播分组恢复报文MMR的节点在规定的时间间隔后,如果未检测到邻居节点给发送此MMR报文的节点发送了封装其丢失组播分组的可靠组播报文RM,则将此丢失分组封装于RM报文中进行发送,返回步骤(4a);

所述的时间间隔服从均匀分布,取值区间是根据网络中的平均丢包率和组播分组平均到达速率进行设定,设定该时间间隔的目的是避免多个接收到MMR报文的节点在同一时间向同一节点发送封装同一组播分组的RM报文;

(4f)接收到组播分组恢复报文MMR的节点,判断缓存中待回复组播分组记录中是否存放发送MMR报文的节点丢失分组,若是,则说明有邻居节点也丢失了该分组且自己准备发送封装该丢失分组的RM报文给邻居节点,丢弃接收到的MMR报文,返回步骤(4a),否则,执行步骤(4g);

(4g)接收到组播分组恢复报文MMR的节点在规定的时间间隔后,将发送此MMR报文节点的丢失分组封装于可靠组播报文RM中进行发送,返回步骤(4a),该时间间隔服从均匀分布,取值区间是根据网络中的平均丢包率和组播分组平均到达速率进行设定,设定时间间隔的目的是避免短时间内接收到MMR报文的节点多次发送封装同一组播分组的可靠组播报文RM。

以上描述仅是本发明的一个具体实例,不构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。

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