CN106162787A - 一种路由建立方法及装置 - Google Patents

一种路由建立方法及装置 Download PDF

Info

Publication number
CN106162787A
CN106162787A CN201610791450.6A CN201610791450A CN106162787A CN 106162787 A CN106162787 A CN 106162787A CN 201610791450 A CN201610791450 A CN 201610791450A CN 106162787 A CN106162787 A CN 106162787A
Authority
CN
China
Prior art keywords
node
route
hop
metric
message
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.)
Granted
Application number
CN201610791450.6A
Other languages
English (en)
Other versions
CN106162787B (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.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
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 Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN201610791450.6A priority Critical patent/CN106162787B/zh
Publication of CN106162787A publication Critical patent/CN106162787A/zh
Application granted granted Critical
Publication of CN106162787B publication Critical patent/CN106162787B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • 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/123Evaluation of link 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/26Route discovery packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • H04W40/12Communication route or path selection, e.g. power-based or shortest path routing based on transmission quality or channel quality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • H04W40/22Communication route or path selection, e.g. power-based or shortest path routing using selective relaying for reaching a BTS [Base Transceiver Station] or an access point
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种路由建立方法及装置,通过不同的信道广播探测包,获取链路信息来计算本节点到邻居节点在不同信道下的单跳路由度量;将最小的单跳路由度量所采用的信道作为本节点到邻居节点间传输数据的最佳信道;并通过最佳信道向邻居节点发送所述路由请求报文;邻居节再次寻找最佳信道并发送路由请求报文,目标节点根据路由请求报文中的内容获得总路由度量,选择最优的总路由度量路由请求报文的传输路径回复路由回应报文,源节点根据路由回应报文中的内容建立到目标节点的路由,通过这样的方法路由在建立过程中充分考虑了信道的选择,从而建立起更加合理、高效的路由。

Description

一种路由建立方法及装置
技术领域
本发明涉及网络通讯领域,特别涉及一种路由建立方法及装置。
背景技术
无线网格网络由无线自组织网络发展而来,是在互联网和无线终端间建立联系的重要技术,能够有效解决无线接入“最后一公里”的瓶颈问题,在家庭、企业和公共场所等诸多环境有广阔的应用前景。无线网格网络中节点可以作为中继发送数据,网状型的拓扑结构使其支持多条路径协作传输数据,在充分利用网络资源的同时提高系统吞吐量。
在多射频多信道无线网格网络中,通过高效的信道分配算法,为节点间的通信选择合理的信道,能够有效的降低流内和流间干扰,改善网络吞吐率、公平性、延时等网络性能。在引入多射频多信道技术的无线网格网络中,路由算法的设计需要充分考虑路由选择与信道分配的相互影响:一方面,信道分配影响网络拓扑和网络状态,而路由选择需要基于网络拓扑和网络状态;另一方面,信道分配需要能够适应路由变化带来的流量分布变化。基于这种相互影响,在多射频多信道无线网格网络中,实现两者的联合设计优化是十分必要和有意义的。
目前现有的联合信道分配和路由技术优化方法为JCEED(Joint channelassignment and routing protocol based on end-to-end delay,最小化时延的联合信道分配和路由技术优化)方法。该方法先进行路由选择再进行信道分配,初始时为网络拓扑节点随机分配可用信道,然后将传输时延和队列时延作为路由度量,通过选择最小的路由度量来选择路径;根据已经建立的路由,根据各单跳路径上成功发送元组包的数目计算每个节点的IDX(Channel Interference Index,信道干扰标识因子)值,IDX值表示信道干扰大小,对于IDX值最小的节点重新分配可用信道集中的信道;然后将路由度量作为反馈信息,递归地调整路由和信道分配。在每次递归中,先选择时延最小的路径,然后根据成功传输数据包的数目选择信道。
然而在JCEED方法中,建立路由后多次递归的寻找信道,不能在建立路由的过程中直接找出较为合适的信道,对整个网络造成了较大的资源浪费和许多重复的业务量。
发明内容
本发明实施例的目的在于提供一种路由建立方法及装置,该方法在建立路由的过程中直接找出较为合适的信道,从而更为高效、合理的建立路由。
为达到上述目的,本发明实施例公开一种路由建立方法,应用于源节点,所述路由建立方法包括:
通过不同的信道向所述源节点的每个第一邻居节点广播探测包,其中,所述第一邻居节点为与所述源节点相邻的中继节点或目标节点,中继节点为转发数据的节点,目标节点为接收数据的节点;
通过所述探测包获得所述源节点与所述每个第一邻居节点在不同信道下的链路信息,并根据所述链路信息通过第一预设公式,确定所述源节点到所述第一邻居节点在不同信道下的单跳路由度量,其中,所述单跳路由度量用于衡量在同一信道中两个相邻节点之间的通信状态;
比较所述源节点到每个第一邻居节点在不同信道下的单跳路由度量,选择所述源节点到每个第一邻居节点在不同信道下的单跳路由度量中最小单跳路由度量的信道,作为所述源节点与所述每个第一邻居节点之间进行数据传输的第一最佳信道;
通过所述第一最佳信道向每个第一邻居节点发送路由请求报文;
接收所述目标节点针对所述路由请求报文返回的路由回应报文;
根据所述路由回应报文中的路由信息,在所述源节点的本地路由表中保存所述源节点到所述目标节点的正向路由,建立与所述目标节点的路由。
优选的,所述选择所述源节点到每个第一邻居节点在不同信道下的单跳路由度量中最小单跳路由度量的信道,作为所述源节点与所述每个第一邻居节点之间进行数据传输的第一最佳信道,包括;
选择第一信道分配给所述第一邻居节点中的一个当前邻居节点,并将所述第一信道作为所述第一最佳信道后,选择除所述第一信道以外的其他信道、给除所述当前邻居节点以外的其他第一邻居节点,并将所述其他信道作为第一最佳信道。
优选的,所述链路信息至少包括:数据包长度、数据包队列中已有数据包数目、链路带宽、发送数据包总数、成功接收数据包总数和最小窗口大小;
所述第一预设公式为:
WAEED n , m c = ( 1 - β ) EED i + βIF c = ( 1 - β ) EED i + β M n , m Σ pk n , m
其中,所述n为节点,所述m为节点,所述n与所述m是指不同节点,所述c为信道,所述为所述n和所述m之间经过所述c的单跳路由度量,所述β为权重可调因子,且0≤β≤1,所述i为链路,所述EEDi为所述i的平均端对端时延,所述IFc为所述c的干扰参数,所述Mn,m为所述n向所述m发送数据包总数,所述∑pkn,m为所述m成功接收到所述n发送的数据包总数;
其中,所述
所述EEDi为所述i的平均端对端时延,所述Mi为数据包队列中已有数据包数目,所述L表示数据包长度,所述B为链路带宽,所述pi为所述i的丢包率,且所述pi为预设值,Wmin为最小窗口大小。
本发明实施例公开一种路由建立方法,应用于中继节点,所述中继节点为转发数据的节点,所述路由建立方法包括:
接收由上一跳节点发送的路由请求报文,其中,所述路由请求报文至少包括:上一跳节点到当前中继节点的信道信息、所述上一跳节点到所述当前中继节点的单跳路由度量、所述源节点到所述上一跳节点路径的总路由度量,所述上一跳节点为向所述当前中继节点直接发送或转发路由请求报文的所述源节点或者其他中继节点;
从所述路由请求报文中,获得并累加所述上一跳节点到所述当前中继节点的单跳路由度量至所述路由请求报文中的总路由度量中;
向所述当前中继节点的每个第二邻居节点广播所述探测包,选择出所述当前中继节点到所述每个第二邻居节点在不同信道下的单跳路由度量中最小单跳路由度量的信道,作为所述当前中继节点与所述每个第二邻居节点之间进行数据传输的第二最佳信道,其中,所述第二邻居节点包括其他中继节点或目标节点;
通过所述第二最佳信道向所述每个第二邻居节点转发路由请求报文;
接收所述目标节点针对所述路由请求报文返回的路由回应报文,向所述上一跳节点转发所述路由回应报文;
根据所述路由回应报文中的路由信息,在所述当前中继节点的本地路由表中保存所述当前中继节点到所述目标节点的正向路由及所述当前中继节点到所述目标节点的总路由度量,建立与所述目标节点的路由。
本发明实施例公开一种路由建立方法,应用于目标节点,所述路由建立方法包括:
接收由上一跳节点发送的路由请求报文,所述上一跳节点为向所述目标节点直接发送或转发路由请求报文的所述源节点或者中继节点;
从所述路由请求报文中,获得上一跳节点到所述目标节点的单跳路由度量,并累加至所述路由请求报文中的总路由度量中;
首次接收到所述路由请求报文时,向所述上一跳节点返回路由回应报文;
再次接收到路由请求报文时,比较本次接收到所述路由请求报文的总路由度量是否小于本次之前的上一次接收到的其他路由请求报文的总路由度量;
当本次接收到所述路由请求报文的总路由度量小于本次之前的上一次接收到的其他路由请求报文的总路由度量时,向发送本次接收到的所述路由请求的上一跳节点返回路由回应报文。
本发明实施例公开一种路由建立装置,应用于源节点,所述源节点为发送数据的节点,所述路由建立装置包括:
探测模块,用于通过不同的信道向所述源节点的每个第一邻居节点广播探测包,其中,所述第一邻居节点为与所述源节点相邻的中继节点或目标节点,中继节点为转发数据的节点,目标节点为接收数据的节点;
单跳路由度量计算模块,用于通过所述探测包获得所述源节点与所述每个第一邻居节点在不同信道下的链路信息,并根据所述链路信息通过第一预设公式,确定所述源节点到每个第一邻居节点在不同信道下的单跳路由度量,其中,所述单跳路由度量用于衡量在同一信道中两个相邻节点之间的通信状态;
第一信道选择模块,用于比较所述源节点到每个第一邻居节点在不同信道下的单跳路由度量,选择所述源节点到每个第一邻居节点在不同信道下的单跳路由度量中最小单跳路由度量的信道,作为所述源节点与所述每个第一邻居节点之间进行数据传输的第一最佳信道;
第一发送模块,用于通过所述第一最佳信道向每个第一邻居节点发送路由请求报文;
第一接收模块,用于接收所述目标节点针对所述路由请求报文返回的路由回应报文;
第一路由建立模块,用于根据所述路由回应报文中的路由信息,在所述源节点的本地路由表中保存所述源节点到所述目标节点的正向路由,建立与所述目标节点的路由。
本发明实施例公开一种路由建立装置,应用于中继节点,所述中继节点为转发数据的节点,所述路由建立装置包括:
第二接收模块,用于接收由上一跳节点发送的路由请求报文,其中,所述路由请求报文至少包括:上一跳节点到当前中继节点的信道信息、所述上一跳节点到所述当前中继节点的单跳路由度量、所述源节点到所述上一跳节点路径的总路由度量,所述上一跳节点为向所述当前中继节点直接发送或转发路由请求报文的所述源节点或者其他中继节点;
第一累加模块,用于从所述路由请求报文中,获得并累加所述上一跳节点到所述当前中继节点的单跳路由度量至所述路由请求报文中的总路由度量中;
第二信道选择模块,用于向所述当前中继节点的每个第二邻居节点广播所述探测包,选择出所述当前中继节点到所述每个第二邻居节点在不同信道下的单跳路由度量中最小单跳路由度量的信道,作为所述当前中继节点与所述每个第二邻居节点之间进行数据传输的第二最佳信道,其中,所述第二邻居节点包括其他中继节点或目标节点;
第二发送模块,用于通过所述第二最佳信道向所述每个第二邻居节点转发路由请求报文;
第一回应模块,用于接收所述目标节点针对所述路由请求报文返回的路由回应报文,向所述上一跳节点转发所述路由回应报文;
第二路由建立模块,用于根据所述路由回应报文中的路由信息,在所述当前中继节点的本地路由表中保存所述当前中继节点到所述目标节点的正向路由及所述当前中继节点到所述目标节点的总路由度量,建立与所述目标节点的路由。
本发明实施例公开一种路由建立装置,应用于目标节点,所述路由建立装置包括:
第三接收模块,用于接收由上一跳节点发送的路由请求报文,所述上一跳节点为向所述目标节点直接发送或转发路由请求报文的所述源节点或者中继节点;
第二累加模块,用于从所述路由请求报文中,获得并累加上一跳节点到所述目标节点的单跳路由度量至所述路由请求报文中的总路由度量中;
第二回应模块,用于首次接收到所述路由请求报文时,向所述上一跳节点返回路由回应报文;
比较模块,用于再次接收到路由请求报文时,比较本次接收到所述路由请求报文的总路由度量是否小于本次之前的上一次接收到的其他路由请求报文的总路由度量;
第三回应模块,用于当本次接收到所述路由请求报文的总路由度量小于本次之前的上一次接收到的其他路由请求报文的总路由度量时,向发送本次接收到的所述路由请求的上一跳节点返回路由回应报文。
由上述的技术方案可见,本发明实施例中,通过使用所述探测包获得链路信息,并通过第一预设公式来计算单跳路由度量,根据单跳路由度量选择出最佳信道用来传输数据,在路由建立之前先选择出了最优的信道,不需要重复迭代,减少了网络资源的浪费和业务量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施列提供的路由建立方法的一种流程图;
图2是本发明实施列提供的路由建立方法的另一种流程图;
图3是本发明实施列提供的路由建立方法的再一种流程图;
图4是本发明实施列提供的一种网络拓扑节点图;
图5是本发明实施列提供的路由建立装置的一种结构图;
图6是本发明实施列提供的路由建立装置的另一种结构图;
图7是本发明实施列提供的路由建立装置的再一种结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面通过具体实施列,对本发明进行详细说明。
参见图1,图1是本发明实施列提供的路由建立方法的一种流程图,应用于源节点。
步骤101,通过不同的信道向所述源节点的每个第一邻居节点广播探测包,其中,所述第一邻居节点为与所述源节点相邻的中继节点或目标节点,中继节点为转发数据的节点,目标节点为接收数据的节点。
节点可以是工作站、网络用户或个人计算机,还可以是服务器。当一个节点获得向另一个节点发送数据的指令后,该节点就成为了源节点,而另一个节点就成为了目标节点。
在多射频多信道无线网格网络中,一个节点具有多个信道,所以源节点需要利用各种不同的信道向第一邻居节点发送探测包,通过探测包获得在不同信道下的链路信息,从而选择最佳的信道。
本发明实施例中,向第一邻居节点广播探测包,探测包中不包括源节点需要向目标节点发送的具体数据内容,所以不需要事先获得需要发送的具体数据内容,源节点只需要获得向目标节点发送数据的指令后,就可以开始进行信道选择和路由建立。其中通过探测包获得链路信息属于现有技术,不再赘述。
步骤102,通过探测包获得源节点与每个第一邻居节点在不同信道下的链路信息,并根据链路信息通过第一预设公式,确定源节点到每个第一邻居节点在不同信道下的单跳路由度量,其中,单跳路由度量用于衡量在同一信道中两个相邻节点之间的通信状态。
源节点通过探测包获得了不同信道下与每个第一邻居节点的链路信息后,利用得到的链路信息,可以计算出在不同信道下到第一邻居节点的单跳路由度量,不同信道下的单跳路由度量用来衡量在不同信道下节点之间的通信状态,为选择最佳信道提供了可靠数据信息。
步骤103,比较源节点到每个第一邻居节点在不同信道下的单跳路由度量,选择源节点到每个第一邻居节点在不同信道下的单跳路由度量中最小单跳路由度量的信道,作为源节点与每个第一邻居节点之间进行数据传输的第一最佳信道。
某个信道下单跳路由度量越小,就证明该信道下的两个节点之间的通信状态越好,所以比较源节点到每个第一邻居节点在不同信道下的单跳路由度量,得到源节点到每个第一节点单跳路由度量最小的信道,将该信道作为向每个第一邻居节点发送数据的第一最佳信道。
本发明实施例中,先选择出第一最佳信道,再进行路由的建立,使得所建立的路由都是基于最佳信道,从而建立的路由更加合理。
步骤104,通过第一最佳信道向每个第一邻居节点发送路由请求报文。
路由请求报文用来进行路由路径的探测,路由请求报文是现有技术中普遍的一种数据包,在本发明实施列中,在现有技术的路由请求报文的基础上增加了发送路由请求报文所使用的信道信息、单跳路由度量和总路由度量等信息。
在发送路由请求报文时,同时建立每个第一邻居节点到源节点的反向路由,反向路由用来返回路由回应报文。建立反向路由的过程属于现有技术,不再赘述。
步骤105,接收目标节点针对路由请求报文返回的路由回应报文。
当目标节点接收到路由请求报文后,就会返回路由回应报文。源节点接收到路由回应报文后,才能够建立起到目标节点的路由。路由回应报文属于现有技术,不再赘述。
步骤106,根据路由回应报文中的路由信息,在源节点的本地路由表中保存源节点到目标节点的正向路由,建立与目标节点的路由。
路由回应报文中含有目标节点的路由信息,源节点第一次接收到路由回应报文,直接将接收到的路由回应报文中目标节点的路由信息保存到源节点的本地路由表中,从而建立起到目标节点的路由。其中路由信息至少包括源节点到目标节点的路由和源节点到目标节点的总路由度量。
当源节点再次接收到路由回应报文后,按新接收到的路由回应报文中的路由信息,更新源节点的本地路由表中到目标节点的路由信息,从而更新到目标节点的路由。
在本发明实施例中,源节点通过探测包获得链路信息,通过第一预设公式计算出单跳路由度量,从而选择出最佳的信道。单跳路由度量中综合考虑了信道干扰和传输路径的时延。使得信道的选择更加合理,通过合理选择信道后建立起的路由则为更加合理和高效的路由。
优选的,本发明实施列的路由建立方法中,选择源节点到每个第一邻居节点在不同信道下的单跳路由度量中最小单跳路由度量的信道,作为源节点与每个第一邻居节点之间进行数据传输的第一最佳信道,包括;
选择第一信道分配给第一邻居节点中的一个当前邻居节点,并将第一信道作为第一最佳信道后,选择除第一信道以外的其他信道、给除当前邻居节点以外的其他第一邻居节点,并将其他信道作为第一最佳信道。
源节点在对不同的第一邻居节点选择信道时,可能会出现信道选择重复的情况,如同样在第一信道下,两个第一邻居节点的单跳路由度量都是最小的,那么此时只能为其中一个第一邻居节点选择第一信道,为另一个第一邻居节点选择次优的其他信道。
这样可以有效抑制信道的切换次数,减少信道间的干扰。提高数据传输的质量和效率。
优选的,本发明实施列的路由建立方法中,链路信息至少包括:数据包长度、数据包队列中已有数据包数目、链路带宽、发送数据包总数、成功接收数据包总数和最小窗口大小。
第一预设公式为:
WAEED n , m c = ( 1 - β ) EED i + βIF c = ( 1 - β ) EED i + β M n , m Σ pk n , m
其中,n为节点,m为节点,n与m是指不同节点,c为信道,为n和m之间经过c的单跳路由度量,β为权重可调因子,且0≤β≤1,i为链路,EEDi为i的平均端对端时延,IFc为c的干扰参数,Mn,m为n向m发送数据包总数,∑pkn,m为m成功接收到n发送的数据包总数。
其中,
EEDi为i的平均端对端时延,Mi为数据包队列中已有数据包数目,L表示数据包长度,B表示链路带宽,pi为i的丢包率,且pi为预设值,Wmin为最小窗口大小。
对于EEDi的计算,在本发明实施例中根据理论推导给出严谨的推导过程:
EEDi=E[Ti+Qi]=(Mi+1)E[Ti]
其中Ti为链路i上数据包的服务时间,Qi为队列时延,E[Ti+Qi]为平均的端对端时延,Mi为当一个新的数据包进入节点的队列中已有的数据包的数目,E[Ti]为平均传输时延,因此平均端对端时延可以表示为(Mi+1)E[Ti],而平均传输时延计算方式如下:
E [ T i ] = E [ t r a n s m i s s i o n t i m e ] + E [ b a c k o f f t i m e ] = L B Σ k = 1 ∞ k · p i k - 1 · ( 1 - p i ) + Σ k = 1 ∞ p i k - 1 ( 1 - p i ) Σ j = 1 k E [ W j ] = L B ( 1 - p i ) + W min 2 ( 1 - 2 p i ) - 1 2 ( 1 - p i )
其中E[transmissiontime]为期望传输时延,E[backofftime]为期望退让时间,L为数据包长度,B为链路带宽,pi为链路i的丢包率,k为最大重传次数,Wj为第j次退让阶段的竞争窗口,E[Wj]为Wj的期望值,Wmin为最小窗口大小。
在第一公式中β和pi均为预设值,其余参数均通过探测包获得。在本发明实施列中对于平均端对端时延EEDi给出的详细的计算过程和计算方法,对于信道的干扰参数IFc,不仅考虑了成功传输数据包的数目这一参数,还考虑了发送数据包的总数这一参数,使得对信道干扰的衡量更加准确合理。通过平均端对端时延EEDi和信道的干扰参数IFc得到的单跳路由度量在衡量两个信道之间的通信状态时则更加准确并更加严谨。
参见图2,图2是本发明实施列提供的路由建立方法的另一种流程图,应用于中继节点。
步骤201,接收由上一跳节点发送的路由请求报文,其中,路由请求报文至少包括:上一跳节点到当前中继节点的信道信息、上一跳节点到当前中继节点的单跳路由度量、源节点到上一跳节点路径的总路由度量,上一跳节点为向当前中继节点直接发送或转发路由请求报文的源节点或者其他中继节点。
中继节点是在源节点和目标节点之间作为中继进行数据发送的节点。数据从一个节点发送至另一个节点,称为一跳。
当前中继节点接收到的路由请求报文,可以是源节点发送的路由请求报文,也可以是其他的中继节点转发的路由请求报文。
步骤202,从路由请求报文中,获得并累加上一跳节点到当前中继节点的单跳路由度量至路由请求报文中的总路由度量中。
当前中继节点接收到路由请求报文后,此时路由请求报文中的总路由度量中仅包含源节点到上一跳节点的总路由度量,若上一跳节点为源节点,则此时总路由度量为0,所以当前中继节点需要将路由请求报文中的上一跳节点到当前中继节点的单跳路由度量累加到路由请求报文中的总路由度量中。
本步骤保证了每一次发送或转发的路由请求报文都累计一次单跳路由度量,为最终目标节点选择总路由度量最小的路由路径奠定了基础。
步骤203,向当前中继节点的每个第二邻居节点广播探测包,选择出当前中继节点到每个第二邻居节点在不同信道下的单跳路由度量中最小单跳路由度量的信道,作为当前中继节点与每个第二邻居节点之间进行数据传输的第二最佳信道,其中,第二邻居节点包括其他中继节点或目标节点。
同样的,当前中继节点选择第二最佳信道与源节点选择第一最佳信道时的过程相同。
当前中继节点获得不同信道下的到每个第二邻居节点的链路信息,通过第一预设公式获得不同信道下的单条路由度量,比较不同当前中继节点到每个第二邻居节点在不同信道下的单跳路由度量,选择当前中继节点到每个第二邻居节点在不同信道下的单跳路由度量中最小单跳路由度量的信道,作为当前中继节点与每个第二邻居节点之间进行数据传输的第二最佳信道。
同样的,为了抑制信道间的干扰,当前中继节点为一个第二邻居节点选择了第一信道后,不能为其他第二邻居节点选择第一信道。
需要说明的是,若当前中继节点的上一跳节点与当前中继节点之间已经使用了第一信道,则当前中继节点不能再为任何第二邻居节点选择第一信道,只能选择其他信道进行数据传输。
步骤204,通过第二最佳信道向每个第二邻居节点转发路由请求报文;
当前中继节点转发路由请求报文时,需要将转发路由请求报文所使用的信道信息和当前中继节点到第二邻居节点的单跳路由度量加入路由请求报文。当然,对不同的第二节点发送的路由请求报文中信道信息和单跳路由度量是不同的。
当前中继节点在向每个第二邻居节点发送路由请求报文的同时,建立起每个第二邻居节点到当前中继节点的反向路由。
步骤205,接收目标节点针对路由请求报文返回的路由回应报文,向上一跳节点转发路由回应报文;
当前中继节点接收到路由回应报文后,需要沿反向路由向上一跳节点发送该路由回应报文,最终源节点将会接收到该路由回应报文。
步骤206,根据路由回应报文中的路由信息,在当前中继节点的本地路由表中保存当前中继节点到目标节点的正向路由及当前中继节点到目标节点的总路由度量,建立与目标节点的路由。
当前中继节点接收到路由回应报文,从路由回应报文中获得到目标节点的路由信息,并将路由信息保存在当前中继节点的本地路由表中,从而建立起当前中继节点与目标节点的正向路由,其中路由信息至少包括:源节点到目标节点的路由和源节点到目标节点的总路由度量。
在本发明实施例中,当前中继节点转发路由请求报文时,同样进行最佳信道的选择,保证了数据传输的每一跳中,所使用的信道都是最佳的信道,从而保证了整个路由路径的质量和效率。
优选的,本发明实施列的路由建立方法中,当前中继节点通过第二最佳信道向每个第二邻居节点转发路由请求报文之前,还包括:
在当前中继节点的本地的路由表中存在当前中继节点到目标节点的路由及当前中继节点到目标节点的总路由度量时,将本地路由表中的当前中继节点到目标节点的总路由度量和当前中继节点本次接收到的路由请求报文中源节点到当前中继节点的总路由度量之和,作为源节点到目标节点的第一总路由度量。
当前中继节点的本地路由表中存在当前中继节点到目标节点的路由,则表示当前中继节点曾经接收到过其他传输路径下的路由请求报文,并且已经接收到过目标节点返回的路由回应报文,建立起了当前中继节点到目标节点的路由。
当前中继节点从本次接收到路由请求报文中获得总路由度量,此时的总路由度量由于在前面的步骤中已经进行了单跳路由度量的累加,所以是源节点到当前中继节点的总路由度量。将总路由度量和本地路由表中的当前中继节点到目标节点的总路由度量相加,获得第一总路由度量。
将本地路由表中的当前中继节点到目标节点的总路由度量和本次之前的上一次接收到的路由请求报文中的源节点到当前中继节点的总路由度量之和,作为源节点到目标节点的第二总路由度量。
每一次接收到的路由请求报文都会在本地进行保存,并通过编号或时间来区分。所以当前中继节点可以得到本次之前的上一次接收到的路由请求报文。将本次之前的上一次接收到的路由请求报文中的源节点到当前中继节点的总路由度量与本地路由表中的当前中继节点到目标节点的总路由度量相加,得到第二总路由度量。
在第一总路由度量小于第二总路由度量时,将本地路由表中的当前中继节点到目标节点的路由与本次接收到的路由请求报文中源节点到当前中继节点的路由合并,作为源节点到目标节点的路由;
比较第一总路由度量和第二总路由度量,在第一总路由度量小于第二总路由度量时,则表示本次接收到的路由请求报文的传输路径比上一次接收到路由请求报文的传输路径更优。
当前中继节点将本地路由表中的当前中继节点到目标节点的路由与本次接收到的路由请求报文中源节点到当前中继节点的路由合并,获得到源节点到目标节点的路由。
当前中继节点直接向上一跳节点返回路由回应报文,不再转发路由请求报文。
由于已经获得了源节点到目标节点的路由,则不需要再发送路由请求报文来探测到目标节点的路由,当前中继节点将源节点到目标节点的路由信息加入路由回应报文,当前中继节点直接沿反向路由向上一跳节点返回路由回应报文。
当第一总路由度量不小于第二总路由度量时,则表示本次接收到的路由请求报文的路由路径没有比上一次接收到路由请求报文的路由路径更优,则直接丢弃本次接收到的路由请求报文。
在本发明实施例中,当前中继节点的本地的路由表中存在当前中继节点到目标节点的路由及当前中继节点到目标节点的总路由度量时,当前中继节点对本次接收到的路由请求报文进行总路由度量的判断,不需要再转发路由请求报文,减少了整个网络中的业务量,也减轻了目标节点的业务量,使得可以更加高效的完成路由建立。
优选的,本发明实施列的路由建立方法中,当前中继节点通过第二最佳信道向每个第二邻居节点转发路由请求报文之前,还包括:
在当前中继节点的本地的路由表中不存在当前中继节点到目标节点的路由及当前中继节点到目标节点的总路由度量时,判断当前中继节点在本次接收路由请求报文之前是否接收过其他路由请求报文。
当前中继节点的本地的路由表中不存在当前中继节点到目标节点的路由及当前中继节点到目标节点的总路由度量时,当前中继节点也可能接收到过其他传输路径下的路由请求报文,但没有接收到过路由回应报文,所以在本地路由表中没有到目标节点的路由及当前中继节点到目标节点的总路由度量。
当前中继节点在本次接收路由请求报文之前没有接收过其他路由请求报文时,则当前中继节点向当前中继节点的每个第二邻居节点转发路由请求报文。
当前中继节点发送的路由请求报文,需要选择第二最佳信道,并将发送路由请求报文所使用的信道信息和当前中继节点到第二邻居节点的单跳路由度量加入路由请求报文。
当前中继节点在本次接收路由请求报文之前接收过其他路由请求报文时,则判断本次接收到的路由请求报文中源节点到当前中继节点的第三总路由度量是否小于本次之前的上一次接收到的其他路由请求报文中源节点到当前中继节点的第四总路由度量。
通过比较第三总路由度量和第四总路由度量,可以判断出本次接收到路由请求报文的传输路径和上一次接收到的路由请求报文的传输路径的优劣。
在第三总路由度量小于第四总路由度量时,当前中继节点将本次接收到的路由请求报文,再次转发至当前中继节点的每个第二邻居节点。
在第三总路由度量小于第四总路由度量时,表示本次接收到的路由请求报文的传输路径更优,则再次向每个第二邻居节点转发路由请求报文,来探测到目的节点的路由。
当在第三总路由度量不小于第四总路由度量时,表示本次接收到的路由请求报文的传输路径没有更优,则直接丢弃本次接收到的路由请求报文。
在本发明实施例中,当前中继节点每接收到一次路由请求报文,就进行一次判断,若接收到的路由请求报文的传输路径不比上一次更优时,直接丢弃本次接收到的路由请求报文。减少了整个网络的业务量,使得路由建立的过程更加高效。
参见图3,图3是本发明实施列提供的路由建立方法的再一种流程图,应用于目标节点。
步骤301,接收由上一跳节点发送的路由请求报文,上一跳节点为向目标节点直接发送或转发路由请求报文的源节点或者中继节点。
目标节点是需要接收源节点发送的数据的节点。
步骤302,从路由请求报文中,获得并累加上一跳节点到目标节点的单跳路由度量至路由请求报文中的总路由度量中。
目标节点接收到的路由请求报文中的总路由度量中只包括从源节点到目标节点的上一跳节点的总路由度量,所以目标节点接收到路由请求报文后,需要将路由请求报文中的上一跳节点到目标节点的单跳路由度量累加到总路由度量中,从而获得从源节点到目标节点的总路由度量。
步骤303,首次接收到路由请求报文时,向上一跳节点返回路由回应报文。
目标节点首次接收到路由请求报文,则直接沿到上一跳节点的反向路由返回路由回应报文,不需要判断本次接收到的路由请求报文的传输路径的总路由度量是否是最优的。
步骤304,再次接收到路由请求报文时,比较本次接收到路由请求报文的总路由度量是否小于本次之前的上一次接收到的其他路由请求报文的总路由度量。
目标节点再次接收到其他传输路径下的路由请求报文时,则必须进行判断本次接收到的路由请求报文的传输路径是否比上一次接收到的路由请求报文的传输路径更优,也就是需要比较两次接收到的路由请求报文中的总路由度量的大小。
步骤305,当本次接收到路由请求报文的总路由度量小于本次之前的上一次接收到的其他路由请求报文的总路由度量时,向发送本次接收到的路由请求的上一跳节点返回路由回应报文。
若本次接收到路由请求报文的总路由度量小于本次之前接收到的其他路由请求报文的总路由度量时,则表示本次接收到的路由请求的传输路径更优,所以沿反向路由向发送本次接收到的路由请求的上一跳节点返回路由回应报文,该路由回应报文返回至源节点后,则源节点会更新到目标节点的路由,从而建立更加优化的路由。
若本次接收到路由请求报文的总路由度量不小于本次之前接收到的其他路由请求报文的总路由度量时,则表示本次接收到的路由请求的传输路径没有更优,所以直接丢弃本次接收到的路由请求报文。
在本发明实施例中,目标节点每次接受到路由请求报文后,都会对路由请求报文中的总路由度量进行比较,从而找出最优的传输了路由请求的路径,并按最优路径的返回路由回应报文,使得源节点每次收到的路由回应报文都是比上一次更优的路由回应报文,源节点可以通过每次接收到的路由回应报文更新到目标节点的路由,保证了每次更新都是更优的路由。
参见图4,图4是本发明实施列提供的一种网络拓扑节点图,下面针对此网络拓扑节点图结合本发明给予说明。
假设在一个长1000m,宽1000m的区域中有8个节点,每个节点上安装3个射频接口,共有3个正交信道,可用信道集Ca={1,6,11}可供分配。信道带宽设为11Mbps,数据包长度为1000byte,丢包率为p=0.01。
第一节点401获得需要向第七节点407传输数据的业务需求。第一节点401成为源节点;第七节点407成为目标节点;其他节点成为中继节点。
第一节点401采用不同的信道组合(1,6,11)、(1,11,6)、(6,1,11)、(6,11,1)、(11,1,6)、(11,6,1)广播探测包,并发现第二节点402,第三节点403,第四节点404为其邻居节点,且获得不同信道组合下到每个邻居节点的链路信息。其中,第二节点402,第三节点403,第四节点404为第一邻居节点。
根据链路信息,计算第一节点401到在不同信道组合下到每个邻居节点的单跳路由度量。
将最小的单跳路由度量所采用的信道作为第一节点401到每个邻居节点的第一最佳信道,对于第一节点401到第二节点402的链路,分配信道CH1;同样为第一节点401到第三节点403的链路,分配信道CH6;为第一节点401到第四节点404的链路,分配信道CH11。
第一节点401用第一最佳信道CH1向第二节点402发送路由请求报文,同时建立第二节点402到401的反向路由;第一节点401用第一最佳信道CH6向第三节点403发送路由请求报文,同时建立第三节点403到第一节点401的反向路由;第一节点401用第一最佳信道CH11向第四节点404发送路由请求报文,同时建立第四节点404到第一节点401的反向路由。
当第二节点402接收到来自第一节点401的路由请求报文后,从路由请求报文的单跳信息域中获得第一节点401到第二节点402的单跳路由度量,将第一节点401到第二节点402的单跳路由度量累加到路由请求报文中的总路由度量中。因为第二节点402不是目标节点,第二节点402的本地路由表中没有到目标节点的路由,且第二节点402第一次接收到路由请求报文。第二节点402需要向第二节点402的邻居节点转发路由请求。因为第一节点401到第二节点402的链路,已经分配了信道CH1,所以第二节点402采用信道组合(6,11)(11,6)广播探测包,获得第二节点402到第五节点405和第三节点403的链路信息,计算单跳路由度量,利用单跳路由度量获得第二最佳信道。为第二节点402到第三节点403的链路,分配信道CH11;为第二节点402到第五节点405的链路,分配信道CH6;将第二节点402至第五节点405、第二节点402至第三节点403的单跳路由度量和信道信息写入路由请求报文;第二节点402向第五节点405和第三节点403转发路由请求文件。并建立第五节点405到第二节点402,第三节点403到第二节点402的反向路由。
当第三节点403接收到来自第一节点401的路由请求报文,第一节点401成为第三节点403的上一跳节点。第三节点403从路由请求报文的单跳信息域中获得第一节点401到第三节点403的单跳路由度量,将第一节点401到第三节点403的单跳路由度量累加到路由请求报文中的总路由度量中。第三节点403不是目标节点,根据同样的方法,找到第三节点403与第三节点403的邻居节点的第二最佳信道,为第三节点403到第六节点406的链路,分配信道CH1。将第三节点403至第六节点406的单跳路由度量和信道信息写入路由请求报文;第三节点403向第六节点406发送路由请求文件。并建立第六节点406到第三节点403的反向路由。
当第三节点403接收到第二节点402所发送的路由请求报文时,从路由请求报文的单跳信息域中获得第二节点402到第三节点403的单跳路由度量,将第二节点402到第三节点403的单跳路由度量累加到路由请求报文中的总路由度量中。则此时的路由请求报文中的总路由度量为第三节点403不是第一次接收到路由请求报文,判断此时接收到的路由请求报文与上一次接收到的路由请求报文中的总路由度量的大小,上一次接收到的路由请求报文为第一节点401发送的路由请求报文,其中路由总度量为经过比较得到:
第二节点402所转发的路由请求报文中的总路由度量没有优于上一次接收到的路由请求报文中的总路由度量。所以丢弃第二节点402所转发的路由请求报文。
第四节点404接收到第一节点401发送的路由请求报文后,第四节点404并没有其他邻居节点,所以丢弃路由请求报文。
当第五节点405接收到来自第二节点402的路由请求报文后,从路由请求报文的单跳信息域中获得第二节点402到第五节点405的单跳路由度量,将第二节点402到第五节点405的单跳路由度量累加到路由请求报文中的总路由度量中。因为第五节点405不是目标节点,第五节点405的本地路由表中没有到目标节点的路由,且第五节点405第一次接收到路由请求报文。第五节点405需要向第五节点405的邻居节点转发路由请求。因为第二节点402到第五节点405的链路。已经分配了信道CH6,所以第五节点405采用信道组合(1,11)(11,1)广播探测包,获得第五节点405到第七节点407和第六节点406的链路信息,计算单跳路由度量,利用单跳路由度量获得第二最佳信道。为第五节点405到第七节点407的链路,分配信道CH1;为第五节点405到第六节点406的链路,分配信道CH11;将第五节点405至第七节点407、第五节点405至第六节点406的单跳路由度量和信道信息写入路由请求报文;第五节点405向第七节点407和第六节点406,发送路由请求文件。并建立第七节点407到第五节点405,第六节点406到第五节点405的反向路由。
第七节点407接收到第五节点405发送的路由请求后,从路由请求报文的单跳信息域中获得第五节点405到第七节点407的单跳路由度量,将第五节点405到本第七节点407的单跳路由度量累加到路由请求报文中的总路由度量中。第七节点407是目标节点,则此时的总路由度量就为从源第一节点401经过第二节点402、第五节点405,到达目标第七节点407的整条路径的总路由度量。此时第七节点407第一次接收到路由请求报文,则沿反向路由:第七节点407、第五节点405、第二节点402和第一节点401,返回路由回应报文。
同样的,第六节点406接收到第三节点403发送的路由请求报文后,也会向第七节点407转发路由请求报文。当第七节点407接收到第六节点406转发的路由请求后,从路由请求报文的单跳信息域中获得第六节点406到第七节点407的单跳路由度量,将第六节点406到第七节点407的单跳路由度量累加到路由请求报文中的总路由度量中。第七节点407是目标节点,则此时的总路由度量就为从源第一节点401经过第三节点403、第六节点406,到达目标第七节点407的整条路径的总路由度量。此时节点已经接收到路由请求报文,需要判断本次接收到的路由请求报文中的总路由度量是否优于上一次接收到的路由请求报文中的总路由度量,经比较得到:
WAEED 401 , 402 1 + WAEED 402 , 405 6 + WAEED 405 , 407 1 > WAEED 401 , 403 6 + WAEED 403 , 406 1 + WAEED 406 , 407 6 .
所以本次接收到的路由请求报文中的总路由度量优于上一次接收到的路由请求报文中的总路由度量,则第七节点407按反向路由:第七节点407、第六节点406、第三节点403、第一节点401,重新返回路由回应报文。
第六节点406接收到第五节点405转发的路由请求报文后,从路由请求报文的单跳信息域中获得第五节点405到第六节点406的单跳路由度量,将第五节点405到第六节点406的单跳路由度量累加到路由请求报文中的总路由度量中。则此时的路由请求报文中的总路由度量为第六节点406不是第一次接收到路由请求报文,需要判断此时接收到的路由请求报文与上一次接收到的路由请求报文中的总路由度量的大小,上一次接收到的路由请求报文为第三节点403转发的路由请求报文,其中路由总度量为经过比较得到:
第五节点405所转发的路由请求报文中的总路由度量优于上一次接收到的路由请求报文中的总路由度量。所以第六节点406更新反向路由,丢弃原有路由请求报文,保存第五节点405所发送的路由请求报文,并向第七节点407再次转发路由请求报文。
当第七节点407再次接收到第六节点406所转发的路由请求报文时,同样的,再次进行比较本次接收到的路由请求中的路由总度量与上一次收到的路由请求中的路由中度量。经过比较得到:
本次接收到的路由请求中的路由总度量没有优于上一次接收到的路由请求中的路由中度量。所以丢弃本次接收到的第六节点406所发送的路由请求报文。
当第五节点405接收到第七节点407回复的路由回应报文,第五节点405不是源节点,则在第五节点405的本地路由表中建立到目标第七节点407的正向路由,并沿反向路由向第二节点402发送路由回应报文,其中第五节点405的本地路由表至少含有表1的内容,表1为第五节点405的本地路由表:
表1
当第二节点402接收到第五节点405转发的路由回应报文,第二节点402不是源节点,则在第二节点402的本地路由表中建立到目标第七节点407的正向路由,并沿反向路由向第一节点401转发路由回应报文,其中第二节点402的本地路由表至少含有表2的内容,表2为第二节点402的本地路由表:
表2
当第一节点401接收到第二节点402发送的路由回应报文,第一节点401是源节点,则在第一节点401的本地路由表中建立到目标第七节点407的正向路由,其中第一节点401的本地路由表至少含有表3的内容,表3为第一节点401的本地路由表:
表3
同理,当第七节点407沿反向路由:第七节点407到第六节点406到第三节点403到第一节点401,重新返回路由回应报文时。第六节点406和第三节点403也在本地路由表中建立到目标第七节点407的正向路由。当源第一节点401又一次接收到路由回应报文,则更新源第一节点401的本地路由表,建立新的到目标节点的路由。此时,第一节点401的本地路由表至少含有表4的内容,表4为更新后第一节点401的本地路由表:
表4
经过上述步骤,建立了从源第一节点401到目标第七节点407的路由。第一节点401的路由路径为:第一节点401、第三节点403、第六节点406和第七节点407,跳数为3跳;第三节点403的路由路径为第三节点403、第六节点406和第七节点407,跳数为2跳;第六节点406的路由路径为第六节点406到第七节点407,跳数为1跳。
为了维护路由,每个包含路由的节点周期地广播探测包。一个节点接收到一个探测包就可以知道一个邻居节点与本节点依然保持连接,还能获取队列长度,链路带宽,发包总数以及收包总数等信息。如果在一定时间内收不到一个邻居节点的探测包,则认为邻居节点与本节点不再连接,以邻居节点为下一跳的路由不能再用来传送数据,因此将这些路由设置为无效状态。路由将进行局部维修,本节点将启动路由发现过程,广播路由请求报文以便建立新路由,如果在给定时间里能建立起有效路由,就继续发送数据,如果建立路由不成功,则向上一跳节点发送路由错误报文。源节点接收到路由错误报文后,重新发起路由发现过程。
在本实施列中,若第三节点403到第六节点406的链路断开后,原路由不能连通,需要更新路由。第三节点403向第一节点401发出路由错误报文,第一节点401接收到路由错误报文后再次进行路由的发现过程,经过上述步骤,建立新的路由。
参见图5,图5是本发明实施列提供的路由建立装置的一种结构图,应用于源节点,其中包括:
探测模块501,用于通过不同的信道向源节点的每个第一邻居节点广播探测包,其中,第一邻居节点为与源节点相邻的中继节点或目标节点,中继节点为转发数据的节点,目标节点为接收数据的节点。
单跳路由度量计算模块502,用于通过探测包获得源节点与每个第一邻居节点在不同信道下的链路信息,并根据链路信息通过第一预设公式,确定源节点到每个第一邻居节点在不同信道下的单跳路由度量,其中,单跳路由度量用于衡量在同一信道中两个相邻节点之间的通信状态。
第一信道选择模块503,用于比较源节点到每个第一邻居节点在不同信道下的单跳路由度量,选择源节点到每个第一邻居节点在不同信道下的单跳路由度量中最小单跳路由度量的信道,作为源节点与每个第一邻居节点之间进行数据传输的第一最佳信道。
第一发送模块504,用于通过第一最佳信道向每个第一邻居节点发送路由请求报文,其中,每个第一邻居节点为发送数据的中继节点或目标节点。
第一接收模块505,用于接收目标节点针对路由请求报文返回的路由回应报文。
第一路由建立模块506,用于根据路由回应报文中的路由信息,在源节点的本地路由表中保存源节点到目标节点的正向路由,建立与目标节点的路由。
在本发明实施例中,源节点通过探测包获得链路信息,通过第一预设公式计算出单跳路由度量,从而选择出最佳的信道。单跳路由度量中综合考虑了信道干扰和传输路径的时延。使得信道的选择更加合理,通过合理选择信道后建立起的路由则为更加合理和高效的路由。
参见图6,图6是本发明实施列提供的路由建立装置的另一种结构图,应用于中继节点,其中包括:
第二接收模块601,用于接收由上一跳节点发送的路由请求报文,其中,路由请求报文至少包括:上一跳节点到当前中继节点的信道信息、上一跳节点到当前中继节点的单跳路由度量、源节点到上一跳节点路径的总路由度量,上一跳节点为向当前中继节点直接发送或转发路由请求报文的源节点或者其他中继节点;
第一累加模块602,用于从路由请求报文中,获得并累加上一跳节点到当前中继节点的单跳路由度量至路由请求报文中的总路由度量中;
第二信道选择模块603,用于向当前中继节点的每个第二邻居节点广播探测包,选择出当前中继节点到每个第二邻居节点在不同信道下的单跳路由度量中最小单跳路由度量的信道,作为当前中继节点与每个第二邻居节点之间进行数据传输的第二最佳信道,其中,第二邻居节点包括其他中继节点或目标节点;
第二发送模块604,用于通过第二最佳信道向每个第二邻居节点转发路由请求报文;
第一回应模块605,用于接收目标节点针对路由请求报文返回的路由回应报文,向上一跳节点发送路由回应报文;
第二路由建立模块606,用于根据路由回应报文中的路由信息,在当前中继节点的本地路由表中保存当前中继节点到目标节点的正向路由及所述当前中继节点到所述目标节点的总路由度量,建立与目标节点的路由。
在本发明实施例中,当前中继节点转发路由请求报文时,同样进行最佳信道的选择,保证了数据传输的每一跳中,所使用的信道都是最佳的信道,从而保证了整个路由路径的质量和效率。
参见图7,图7是本发明实施列提供的路由建立装置的再一种结构图,应用于目标节点,其中包括:
第三接收模块701,用于接收由上一跳节点发送的路由请求报文,上一跳节点为向目标节点直接发送或转发路由请求报文的源节点或者中继节点;
第二累加模块702,用于从路由请求报文中,获得并累加上一跳节点到目标节点的单跳路由度量至路由请求报文中的总路由度量中;
第二回应模块703,用于首次接收到路由请求报文时,向上一跳节点返回路由回应报文;
比较模块704,用于再次接收到路由请求报文时,比较本次接收到路由请求报文的总路由度量是否小于本次之前接收到的其他路由请求报文的总路由度量;
第三回应模块705,用于当本次接收到路由请求报文的总路由度量小于本次之前接收到的其他路由请求报文的总路由度量时,向发送本次接收到的路由请求的上一跳节点返回路由回应报文。
在本发明实施例中,目标节点每次接受到路由请求报文后,都会对路由请求报文中的总路由度量进行比较,从而找出最优的传输了路由请求的路径,并按最优路径的返回路由回应报文,使得源节点每次收到的路由回应报文都是比上一次更优的路由回应报文,源节点可以通过每次接收到的路由回应报文更新到目标节点的路由,保证了每次更新都是更优的路由。
本发明实施例的装置是应用上述路由建立方法的装置,则上述路由建立方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
需要说明的是,在本发明实施例中源节点、中继节点和目标节点并不是特指某几个节点,在一个网络拓扑结构中的任何一个节点根据不同的需要,可能成为源节点或中继节点或目标节点。以上所述的方法或装置,可以应用于网络拓扑结构中的任何一个节点。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种路由建立方法,其特征在于,应用于源节点,所述源节点为发送数据的节点,所述路由建立方法包括:
通过不同的信道向所述源节点的每个第一邻居节点广播探测包,其中,所述第一邻居节点为与所述源节点相邻的中继节点或目标节点,中继节点为转发数据的节点,目标节点为接收数据的节点;
通过所述探测包获得所述源节点与所述每个第一邻居节点在不同信道下的链路信息,并根据所述链路信息通过第一预设公式,确定所述源节点到所述第一邻居节点在不同信道下的单跳路由度量,其中,所述单跳路由度量用于衡量在同一信道中两个相邻节点之间的通信状态;
比较所述源节点到每个第一邻居节点在不同信道下的单跳路由度量,选择所述源节点到每个第一邻居节点在不同信道下的单跳路由度量中最小单跳路由度量的信道,作为所述源节点与所述每个第一邻居节点之间进行数据传输的第一最佳信道;
通过所述第一最佳信道向每个第一邻居节点发送路由请求报文;
接收所述目标节点针对所述路由请求报文返回的路由回应报文;
根据所述路由回应报文中的路由信息,在所述源节点的本地路由表中保存所述源节点到所述目标节点的正向路由,建立与所述目标节点的路由。
2.根据权利要求1所述的路由建立方法,其特征在于,所述选择所述源节点到每个第一邻居节点在不同信道下的单跳路由度量中最小单跳路由度量的信道,作为所述源节点与所述每个第一邻居节点之间进行数据传输的第一最佳信道,包括:
选择第一信道分配给所述第一邻居节点中的一个当前邻居节点,并将所述第一信道作为所述第一最佳信道后,选择除所述第一信道以外的其他信道、给除所述当前邻居节点以外的其他第一邻居节点,并将所述其他信道作为第一最佳信道。
3.根据权利要求1所述的路由建立方法,其特征在于,所述链路信息至少包括:数据包长度、数据包队列中已有数据包数目、链路带宽、发送数据包总数、成功接收数据包总数和最小窗口大小;
所述第一预设公式为:
WAEED n , m c = ( 1 - β ) EED i + βIF c = ( 1 - β ) EED i + β M n , m Σ pk n , m
其中,所述n为节点,所述m为节点,所述n与所述m是指不同节点,所述c为信道,所述为所述n和所述m之间经过所述c的单跳路由度量,所述β为权重可调因子,且0≤β≤1,所述i为链路,所述EEDi为所述i的平均端对端时延,所述IFc为所述c的干扰参数,所述Mn,m为所述n向所述m发送数据包总数,所述∑pkn,m为所述m成功接收到所述n发送的数据包总数;
其中,所述
所述EEDi为所述i的平均端对端时延,所述Mi为数据包队列中已有数据包数目,所述L表示数据包长度,所述B为链路带宽,所述pi为所述i的丢包率,且所述pi为预设值,Wmin为最小窗口大小。
4.一种路由建立方法,其特征在于,应用于中继节点,所述中继节点为转发数据的节点,所述路由建立方法包括:
接收由上一跳节点发送的路由请求报文,其中,所述路由请求报文至少包括:上一跳节点到当前中继节点的信道信息、所述上一跳节点到所述当前中继节点的单跳路由度量、所述源节点到所述上一跳节点路径的总路由度量,所述上一跳节点为向所述当前中继节点直接发送或转发路由请求报文的所述源节点或者其他中继节点;
从所述路由请求报文中,获得并累加所述上一跳节点到所述当前中继节点的单跳路由度量至所述路由请求报文中的总路由度量中;
向所述当前中继节点的每个第二邻居节点广播所述探测包,选择出所述当前中继节点到所述每个第二邻居节点在不同信道下的单跳路由度量中最小单跳路由度量的信道,作为所述当前中继节点与所述每个第二邻居节点之间进行数据传输的第二最佳信道,其中,所述第二邻居节点包括其他中继节点或目标节点;
通过所述第二最佳信道向所述每个第二邻居节点转发路由请求报文;
接收所述目标节点针对所述路由请求报文返回的路由回应报文,向所述上一跳节点转发所述路由回应报文;
根据所述路由回应报文中的路由信息,在所述当前中继节点的本地路由表中保存所述当前中继节点到所述目标节点的正向路由及所述当前中继节点到所述目标节点的总路由度量,建立与所述目标节点的路由。
5.根据权利要求4所述的路由建立方法,其特征在于,所述当前中继节点通过所述第二最佳信道向所述每个第二邻居节点转发路由请求报文之前,所述方法还包括:
在所述当前中继节点的本地的路由表中存在所述当前中继节点到所述目标节点的路由及所述当前中继节点到所述目标节点的总路由度量时,将所述本地路由表中的所述当前中继节点到所述目标节点的总路由度量和所述当前中继节点本次接收到的所述路由请求报文中所述源节点到所述当前中继节点的总路由度量之和,作为所述源节点到所述目标节点的第一总路由度量;
将所述本地路由表中的所述当前中继节点到所述目标节点的总路由度量和本次之前的上一次接收到的所述路由请求报文中的源节点到所述当前中继节点的总路由度量之和,作为所述源节点到所述目标节点的第二总路由度量;
在所述第一总路由度量小于所述第二总路由度量时,将所述本地路由表中的当前中继节点到所述目标节点的路由与所述本次接收到的所述路由请求报文中所述源节点到所述当前中继节点的路由合并,作为所述源节点到所述目标节点的路由;
所述当前中继节点直接向所述上一跳节点返回路由回应报文,不再转发路由请求报文。
6.根据权利要求4所述的路由建立方法,其特征在于,所述当前中继节点通过所述第二最佳信道向所述每个第二邻居节点转发路由请求报文之前,所述方法还包括:
在所述当前中继节点的本地的路由表中不存在所述当前中继节点到所述目标节点的路由及所述当前中继节点到所述目标节点的总路由度量时,判断所述当前中继节点在本次接收所述路由请求报文之前是否接收过其他路由请求报文;
当所述当前中继节点在本次接收路由请求报文之前没有接收过所述其他路由请求报文时,则所述当前中继节点向所述当前中继节点的每个第二邻居节点转发所述路由请求报文;
当所述当前中继节点在本次接收路由请求报文之前接收过所述其他路由请求报文时,则判断本次接收到的所述路由请求报文中所述源节点到所述当前中继节点的第三总路由度量是否小于本次之前的上一次接收到的所述其他路由请求报文中所述源节点到所述当前中继节点的第四总路由度量;
在所述第三总路由度量小于所述第四总路由度量时,所述当前中继节点将所述本次接收到的所述路由请求报文,再次转发至所述当前中继节点的每个第二邻居节点。
7.一种路由建立方法,其特征在于,应用于目标节点,所述路由建立方法包括:
接收由上一跳节点发送的路由请求报文,所述上一跳节点为向所述目标节点直接发送或转发路由请求报文的所述源节点或者中继节点;
从所述路由请求报文中,获得上一跳节点到所述目标节点的单跳路由度量,并累加至所述路由请求报文中的总路由度量中;
首次接收到所述路由请求报文时,向所述上一跳节点返回路由回应报文;
再次接收到路由请求报文时,比较本次接收到所述路由请求报文的总路由度量是否小于本次之前的上一次接收到的其他路由请求报文的总路由度量;
当本次接收到所述路由请求报文的总路由度量小于本次之前的上一次接收到的其他路由请求报文的总路由度量时,向发送本次接收到的所述路由请求的上一跳节点返回路由回应报文。
8.一种路由建立装置,其特征在于,应用于源节点,所述源节点为发送数据的节点,所述路由建立装置包括:
探测模块,用于通过不同的信道向所述源节点的每个第一邻居节点广播探测包,其中,所述第一邻居节点为与所述源节点相邻的中继节点或目标节点,中继节点为转发数据的节点,目标节点为接收数据的节点;
单跳路由度量计算模块,用于通过所述探测包获得所述源节点与所述每个第一邻居节点在不同信道下的链路信息,并根据所述链路信息通过第一预设公式,确定所述源节点到每个第一邻居节点在不同信道下的单跳路由度量,其中,所述单跳路由度量用于衡量在同一信道中两个相邻节点之间的通信状态;
第一信道选择模块,用于比较所述源节点到每个第一邻居节点在不同信道下的单跳路由度量,选择所述源节点到每个第一邻居节点在不同信道下的单跳路由度量中最小单跳路由度量的信道,作为所述源节点与所述每个第一邻居节点之间进行数据传输的第一最佳信道;
第一发送模块,用于通过所述第一最佳信道向每个第一邻居节点发送路由请求报文;
第一接收模块,用于接收所述目标节点针对所述路由请求报文返回的路由回应报文;
第一路由建立模块,用于根据所述路由回应报文中的路由信息,在所述源节点的本地路由表中保存所述源节点到所述目标节点的正向路由,建立与所述目标节点的路由。
9.一种路由建立装置,其特征在于,应用于中继节点,所述中继节点为转发数据的节点,所述路由建立装置包括:
第二接收模块,用于接收由上一跳节点发送的路由请求报文,其中,所述路由请求报文至少包括:上一跳节点到当前中继节点的信道信息、所述上一跳节点到所述当前中继节点的单跳路由度量、所述源节点到所述上一跳节点路径的总路由度量,所述上一跳节点为向所述当前中继节点直接发送或转发路由请求报文的所述源节点或者其他中继节点;
第一累加模块,用于从所述路由请求报文中,获得并累加所述上一跳节点到所述当前中继节点的单跳路由度量至所述路由请求报文中的总路由度量中;
第二信道选择模块,用于向所述当前中继节点的每个第二邻居节点广播所述探测包,选择出所述当前中继节点到所述每个第二邻居节点在不同信道下的单跳路由度量中最小单跳路由度量的信道,作为所述当前中继节点与所述每个第二邻居节点之间进行数据传输的第二最佳信道,其中,所述第二邻居节点包括其他中继节点或目标节点;
第二发送模块,用于通过所述第二最佳信道向所述每个第二邻居节点转发路由请求报文;
第一回应模块,用于接收所述目标节点针对所述路由请求报文返回的路由回应报文,向所述上一跳节点转发所述路由回应报文;
第二路由建立模块,用于根据所述路由回应报文中的路由信息,在所述当前中继节点的本地路由表中保存所述当前中继节点到所述目标节点的正向路由及所述当前中继节点到所述目标节点的总路由度量,建立与所述目标节点的路由。
10.一种路由建立装置,其特征在于,应用于目标节点,所述路由建立装置包括:
第三接收模块,用于接收由上一跳节点发送的路由请求报文,所述上一跳节点为向所述目标节点直接发送或转发路由请求报文的所述源节点或者中继节点;
第二累加模块,用于从所述路由请求报文中,获得并累加上一跳节点到所述目标节点的单跳路由度量至所述路由请求报文中的总路由度量中;
第二回应模块,用于首次接收到所述路由请求报文时,向所述上一跳节点返回路由回应报文;
比较模块,用于再次接收到路由请求报文时,比较本次接收到所述路由请求报文的总路由度量是否小于本次之前的上一次接收到的其他路由请求报文的总路由度量;
第三回应模块,用于当本次接收到所述路由请求报文的总路由度量小于本次之前的上一次接收到的其他路由请求报文的总路由度量时,向发送本次接收到的所述路由请求的上一跳节点返回路由回应报文。
CN201610791450.6A 2016-08-31 2016-08-31 一种路由建立方法及装置 Active CN106162787B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610791450.6A CN106162787B (zh) 2016-08-31 2016-08-31 一种路由建立方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610791450.6A CN106162787B (zh) 2016-08-31 2016-08-31 一种路由建立方法及装置

Publications (2)

Publication Number Publication Date
CN106162787A true CN106162787A (zh) 2016-11-23
CN106162787B CN106162787B (zh) 2019-07-30

Family

ID=57344545

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610791450.6A Active CN106162787B (zh) 2016-08-31 2016-08-31 一种路由建立方法及装置

Country Status (1)

Country Link
CN (1) CN106162787B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106792980A (zh) * 2016-11-25 2017-05-31 北京国电通网络技术有限公司 一种联合路由度量与部分重叠信道分配方法
CN107040468A (zh) * 2016-11-30 2017-08-11 新华三技术有限公司 一种通信设备及其fib表生成方法
CN109257277A (zh) * 2018-09-27 2019-01-22 深圳友讯达科技股份有限公司 最短路径计算方法和装置
CN110719618A (zh) * 2019-10-24 2020-01-21 辰芯科技有限公司 一种无线自组网的路由选择方法、装置、终端及存储介质
CN114040357A (zh) * 2020-11-26 2022-02-11 北京航空航天大学 一种在无人机自组网中基于分片缓存的内容请求方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101715224A (zh) * 2009-11-11 2010-05-26 南通大学 一种认知无线网格网络联合路由与信道分配方法
CN101854691A (zh) * 2010-04-29 2010-10-06 东南大学 用于多信道无线网络的路由方法
US20110134854A1 (en) * 2009-12-08 2011-06-09 Electronics And Telecommunications Research Institute Multi-channel and multi-interface mesh router and method for assigning channel according to fixed distribution scheme
CN102625362A (zh) * 2012-04-25 2012-08-01 北京邮电大学 一种多信道多射频无线Mesh网络中分布式信道分配方法
CN104053208A (zh) * 2014-06-26 2014-09-17 北京邮电大学 无线自组网中基于信道分配的路由方法、装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101715224A (zh) * 2009-11-11 2010-05-26 南通大学 一种认知无线网格网络联合路由与信道分配方法
US20110134854A1 (en) * 2009-12-08 2011-06-09 Electronics And Telecommunications Research Institute Multi-channel and multi-interface mesh router and method for assigning channel according to fixed distribution scheme
CN101854691A (zh) * 2010-04-29 2010-10-06 东南大学 用于多信道无线网络的路由方法
CN102625362A (zh) * 2012-04-25 2012-08-01 北京邮电大学 一种多信道多射频无线Mesh网络中分布式信道分配方法
CN104053208A (zh) * 2014-06-26 2014-09-17 北京邮电大学 无线自组网中基于信道分配的路由方法、装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CHANGSHENG YIN, ETC.: "Joint multi-channel assignment and routing in wireless mesh network", 《2016 17TH IEEE/ACIS INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ARTIFICIAL INTELLIGENCE, NETWORKING AND PARALLEL/DISTRIBUTED COMPUTING (SNPD)》 *
LEI ZHOU, ETC.: "JCEED: A joint channel assignment and routing protocol for minimizing delay in MR-MC wireless networks", 《2013 IEEE GLOBAL COMMUNICATIONS CONFERENCE (GLOBECOM)》 *
吴鹏: "多射频多信道Mesh网络中信道分配与路由优化算法研究", 《中国优秀硕士论文电子期刊网》 *
杜潇: "无线Mesh网络下优化机会路由设计关键技术的研究", 《中国博士学位论文电子期刊网》 *
马涛: "多射频多信道无线Mesh网络中基于功率控制的路由技术研究", 《中国优秀硕士论文电子期刊网》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106792980A (zh) * 2016-11-25 2017-05-31 北京国电通网络技术有限公司 一种联合路由度量与部分重叠信道分配方法
CN106792980B (zh) * 2016-11-25 2020-08-18 北京中电普华信息技术有限公司 一种联合路由度量与部分重叠信道分配方法
CN107040468A (zh) * 2016-11-30 2017-08-11 新华三技术有限公司 一种通信设备及其fib表生成方法
CN109257277A (zh) * 2018-09-27 2019-01-22 深圳友讯达科技股份有限公司 最短路径计算方法和装置
CN110719618A (zh) * 2019-10-24 2020-01-21 辰芯科技有限公司 一种无线自组网的路由选择方法、装置、终端及存储介质
CN110719618B (zh) * 2019-10-24 2022-02-08 辰芯科技有限公司 一种无线自组网的路由选择方法、装置、终端及存储介质
CN114040357A (zh) * 2020-11-26 2022-02-11 北京航空航天大学 一种在无人机自组网中基于分片缓存的内容请求方法
CN114040357B (zh) * 2020-11-26 2023-10-24 北京航空航天大学 一种在无人机自组网中基于分片缓存的内容请求方法

Also Published As

Publication number Publication date
CN106162787B (zh) 2019-07-30

Similar Documents

Publication Publication Date Title
CN103621144B (zh) 用于在网络中发现路由集合的方法
CN106162787A (zh) 一种路由建立方法及装置
CN101415248B (zh) 基于负载均衡的跨层动态源路由协议的建立方法
CN108989223A (zh) 一种强链路约束条件下的卫星路由算法
US20060126514A1 (en) Method for managing neighbor nodes and setting a routing path in a mobile ad-hoc network environment and network apparatus using the same
CN101647238A (zh) 用于多无线收发装置多信道多跳无线网络的无线收发装置和带宽感知路由度量
CN107318146B (zh) 移动集群自组网的拓扑控制方法
CN101945432A (zh) 一种用于无线mesh网络的多速率机会路由方法
CN104010343A (zh) 智能抄表系统无线网络优化方法
CN102625362A (zh) 一种多信道多射频无线Mesh网络中分布式信道分配方法
CN105101086B (zh) 一种基于车辆密度分布的数据传输路径选择方法
CN114124792B (zh) 混合双模异构配电场域网多径并发传输动态决策方法及装置
CN102149161A (zh) 一种层次规则化mesh网络路由方法
CN103118412A (zh) Ad Hoc网络中基于信任的按需多路径矢量路由算法
JP2012217164A5 (zh)
Korkmaz et al. Characterizing link and path reliability in large-scale wireless sensor networks
KR102346653B1 (ko) 강화학습 기반 uav 애드혹 네트워크 중계 시스템
Yao et al. A neighbor-table-based multipath routing in ad hoc networks
Wang et al. QoS routing with mobility prediction in MANET
CN102595458B (zh) 一种分布式多径路由修复方法
Michail et al. A distributed routing algorithm for supporting connection-oriented service in wireless networks with time-varying connectivity
CN104053208A (zh) 无线自组网中基于信道分配的路由方法、装置
Ngo et al. MRFR-Multipath-based routing protocol with fast-recovery of failures on MANETs
Jain et al. Performance Evaluation of Hybrid Multipath Progressive Routing Protocol for MANETs
CN105263121B (zh) 一种机会车载网络中基于十字路口的路由方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant