CN103957162B - 一种无线网络的路由通信实现方法 - Google Patents
一种无线网络的路由通信实现方法 Download PDFInfo
- Publication number
- CN103957162B CN103957162B CN201410203374.3A CN201410203374A CN103957162B CN 103957162 B CN103957162 B CN 103957162B CN 201410203374 A CN201410203374 A CN 201410203374A CN 103957162 B CN103957162 B CN 103957162B
- Authority
- CN
- China
- Prior art keywords
- node
- hop
- list item
- domain
- value
- 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
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供了无线网络的路由通信实现方法,所述无线网络的节点为具有路由转发功能的节点,每个节点具有唯一性的节点ID且在一跳范围内定期广播信标帧;每个节点保存N个n跳节点表以及一个路由表,N为正整数且N小于无线网络的直径;n跳节点表和路由表各自包括一个表项,n跳节点表和路由表的表项都由四个域构成;所有节点定期在其自身的1跳范围内广播信标帧,信标帧的负载为N‑1个i跳节点表;节点通过扩展IEEE802.15.4协议中的命令帧实现路由表的建立,命令帧负载第一个字节标识命令帧的负载内容:无线网络启动后,开始进行无线网络初始化操作,即节点开始广播信标帧建立n跳节点表;此实现方法可广泛用于物联网和车载网络。
Description
技术领域
本发明涉及一种网络的路由通信实现方法,尤其涉及的是一种无线网络的路由通信实现方法。
背景技术
随着无线网络的不断成熟和发展,无线网络已成为未来发展的必然趋势。无线网络的路由协议负责将数据分组从源节点通过网络转发到目的节点。在无线网络中,节点处于移动状态,因此路由协议需要延迟短;同时网络节点数目往往很大,节点只能获取局部拓扑结构信息,路由协议要能在局部网络信息的基础上选择合适的路径。与传统网络的路由协议相比,无线网络的路由协议应具有以下特点:可扩展性,鲁棒性,快速收敛性。
本发明突破传统路由的思想,在链路层完成路由通信,可以减少链路层和网络层之间的传输时延、减少了包的封装和解封装的时间,达到降低路由通信延迟的目的。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种无线网络的路由通信实现方法。
技术方案:本发明公开了一种无线网络的路由通信实现方法,所述无线网络的节点为具有路由转发功能的节点,每个节点具有唯一性的节点ID且在一跳范围内定期广播信标帧;每个节点保存N个n跳节点表以及一个路由表,n=1,2……N,N为正整数且N小于无线网络的直径;n跳节点表和路由表各自包括一个表项,n跳节点表和路由表的表项都由四个域构成:目的节点ID域,下一跳域,路径长度以及生存时间;生存时间随着机器时钟自动衰减,当生存时间衰减为0时,相应的表项被删除;生存时间的最大值由节点平均移动速度以及传输半径决定,设置为2r/v,其中r为节点传输半径,v为节点平均移动速度;所有节点定期在其自身的1跳范围内广播信标帧,信标帧的负载为N-1个i跳节点表,i=1,2……N-1;节点通过扩展IEEE802.15.4协议中的命令帧实现路由表的建立,命令帧负载第一个字节标识命令帧的负载内容:
第一个字节值 | 负载内容 |
15 | 源节点ID和目的节点ID,路径长度变量 |
无线网络启动后,开始进行无线网络初始化操作,即节点开始广播信标帧建立n跳节点表;
节点H通过下述过程建立1跳节点表:
步骤101:开始;
步骤102:节点H收到邻居节点的信标帧后,判断自己的1跳节点表中是否存在一个表项,该表项的下一跳域为信标帧的源节点ID,如果是,进行步骤104,否则进行步骤103;
步骤103:节点H在1跳节点表中加入一个新表项,表项的目的节点ID域和下一跳域为信标帧的源节点ID,路径长度为1,生存时间为最大值;
步骤104:执行步骤102到步骤103直到将所有邻居节点到加入到1跳节点表为止;
步骤105:结束;
节点H建立1跳节点表后,通过下述过程建立j跳节点表,j=2……N:
步骤701:开始;
步骤702:节点H收到邻居节点的信标帧后,判断信标帧负载中的j-1跳节点表是否为空,如果是,进行步骤705,否则进行步骤703;
步骤703:节点H比较自己的j跳节点表和信标帧中的j-1跳节点表,判断信标帧中的j-1跳节点表中是否存在满足下述条件的表项,如果是,进行步骤704,否则进行步骤705;
条件:该表项的目的节点ID域的值与节点H的j跳节点表中所有表项的目的节点ID域的值都不相同;
步骤704:在节点H的j跳节点表中增加一个表项,表项的目的节点ID域为步骤703中满足条件的表项的目的节点ID域的值,下一跳域为信标帧的源节点ID,路径长度为j,生存时间为最大值;
步骤705:节点H比较j跳节点表和m跳节点表,m=1…j-1,判断j跳节点表中是否存在满足下述条件的表项,如果是,进行步骤706,否则进行步骤707;
条件:m跳节点表中存在一个表项,该表项的目的节点ID域的值等于j跳节点表中该表项的目的节点ID;
步骤706:节点H从j跳节点表中删除满足上述条件的表项;
步骤707:重复步骤702至步骤706,直到节点H将距离自己j跳的节点都加入到j跳节点表为止;
步骤708:结束。
由于无线网络节点数目往往很大,因此节点只能获取局部拓扑结构信息,因此路由通信要能在局部网络信息的基础上选择合适的路径从而降低路由延迟。本发明中,局部拓扑结构为n跳节点表,路由表在n跳节点表基础上建立。由于n跳表采用信标帧来建立,因此降低了n跳节点表的延迟和代价。如果源节点在n跳节点表中存在目的节点的表项,那么源节点无需建立路由表即可实现与目的节点的通信,从而大幅度降低路由通信延迟和代价。
本发明所述方法中,无线网络初始化结束后,如果节点X启动并加入无线网络后,通过下述过程建立1跳节点表:
步骤201:开始;
步骤202:节点X收到邻居节点的信标帧后,在1跳节点表中加入一个新表项,新表项的目的节点ID域和下一跳域为信标帧的源节点ID,路径长度为1;
步骤203:重复步骤202,直到节点X将所有邻居节点加入到节点X的1跳节点表中;
步骤204:结束;
节点X建立1跳节点表后,根据下述过程建立j跳节点表,j=2…N:
步骤801:开始;
步骤802:节点X收到邻居节点的信标帧后,比较自己的j跳节点表和信标帧中的j-1跳节点表,判断信标帧中的j-1跳节点表中是否存在满足下述条件的表项,如果是,进行步骤803,否则进行步骤804;
条件:该表项的目的节点ID域的值与节点X的j跳节点表中所有表项的目的节点ID域的值都不相同;
步骤803:节点X在j跳节点表中增加一个新表项,该表项的目的节点ID域为步骤802中满足条件的表项的目的节点ID域的值,下一跳域为信标帧的源节点ID,路径长度为j,生存时间为最大值;
步骤804:节点X比较自己的j跳节点表和m跳节点表,m=1…j-1,判断j跳节点表中是否存在满足下述条件的表项,如果是,进行步骤805,否则进行步骤806;
条件:该表项的目的节点ID域的值等于m跳节点表中一个表项的目的节点ID域的值;
步骤805:节点X从j跳节点表中删除满足上述条件的表项;
步骤806:重复步骤802至步骤805,直到节点X将所有距离自己j跳的节点都加入到j跳节点表;
步骤807:结束;
节点X建立n跳节点表之后,开始广播信标帧,节点X的邻居节点Y收到信标帧后,进行如下操作:
步骤301:开始;
步骤302:节点Y收到节点X的信标帧后,在1跳节点表中加入1个新表项,新表项的目的节点ID域的值和下一跳域的值均为节点X的节点ID,路径长度为1,生存时间为最大值;
步骤303:节点Y比较自己的j跳节点表和信标帧中的j-1跳节点表,判断信标帧中的j-1跳节点表中是否存在满足下述条件的表项,如果是,进行步骤304,否则进行步骤305;
条件:该表项的目的节点ID域的值与j跳节点表中所有表项的目的节点ID域的值都不相同;
步骤304:节点Y在j跳节点表中增加一个新表项,新表项的目的节点ID域为步骤303中满足条件的表项的目的节点ID域的值,下一跳域的值为节点X的源节点ID,路径长度为j,生存时间为最大值;
步骤305:节点Y比较自己的j跳节点表和m跳节点表,m=1…j-1,判断j跳节点表中是否存在满足下述条件的表项,如果是,进行步骤306,否则进行步骤307;
条件:该表项的目的节点ID域的值等于m跳节点表中一个表项的目的节点ID域的值;
步骤306:节点Y从j跳节点表中删除满足上述条件的表项;
步骤307;节点Y广播信标帧;
步骤308:结束;
节点Z收到邻居节点的信标帧后,进行如下操作;
步骤401:开始;
步骤402:节点Z收到邻居节点的信标帧后,判断信标帧的源节点ID是否与节点Z的1跳节点表中的一个表项的目的节点ID域的值相同,如果是,进行步骤404,否则进行步骤403;
步骤403:节点Z在1跳节点表中加入一个新表项,新表项的目的节点ID域的值和下一跳域的值为信标帧的源节点ID,路径长度为1,生存时间为最大值;
步骤404:节点Z比较自己的j跳节点表和信标帧中的j-1跳节点表,判断信标帧中的j-1跳节点表中是否存在满足下述条件的表项,如果是,进行步骤405,否则进行步骤406;
条件:该表项的目的节点ID域的值与j跳节点表中所有表项的目的节点ID域的值都不同;
步骤405:节点Z在j跳节点表中增加一个表项,表项的目的节点ID域为满足步骤404条件的表项的目的节点ID域的值,下一跳域的值为信标帧的源节点ID,路径长度为j,生存时间为最大值;
步骤406:节点Z比较自己的j跳节点表和m跳节点表,m=1…j-1,判断j跳节点表中是否存在满足下述条件的表项,如果是,进行步骤407,否则进行步骤408;
条件:该表项的目的节点ID域的值等于m跳节点表中一个表项的目的节点ID域的值;
步骤407:节点Z从j跳节点表中删除满足上述条件的表项;
步骤408:节点Z判断自己是否执行了步骤403和步骤405,如果是,进行步骤409,否则进行步骤410;
步骤409:节点Z广播信标帧;
步骤410:结束。
由于无线网络节点数目往往很大,因此节点只能获取局部拓扑结构信息,因此路由通信要能在局部网络信息的基础上选择合适的路径从而降低路由延迟。本发明中,局部拓扑结构为n跳节点表,路由表在n跳节点表基础上建立。上述过程中,当一个节点启动加入网络后,它通过上述过程能快速建立n跳节点表,而网络中的节点可通过上述过程快速更新n跳节点表,从而确保了路由的正确性和通信的连续性。
本发明所述方法中,无线网络初始化结束后,如果节点X移动且离开原来邻居节点之后即无法收到原来邻居节点的信标帧,则删除n跳节点表中的所有表项,然后执行步骤201至204以及步骤801至步骤807重新建立n跳节点表;
节点X建立n跳节点表之后,开始广播信标帧,节点X的邻居节点Y收到信标帧后,进行步骤301至步骤308更新n跳节点表;无线网络中的节点收到邻居节点的信标帧后,执行步骤401至步骤410更新n跳节点表。
当一个节点的位置发生移动时,它通过上述过程能快速建立n跳节点表,而网络中的节点可通过上述过程快速更新n跳节点表,从而确保了路由的正确性和通信的连续性。
本发明所述方法中,节点S与节点E进行通信时,如果节点S的n跳节点表和路由表中所有表项的目的节点ID域的值都不等于节点E的节点ID,那么节点S发起下述过程在路由表中建立到达节点E的路由表项:
步骤501:开始;
步骤502:节点S广播类型为15的命令帧,命令帧负载中源节点ID为节点S的节点ID,目的节点ID为节点E的节点ID,路径长度变量为0;
步骤503:无线网络中收到类型为15且帧负载为节点S和目的节点E的命令帧的节点,查看自己的n跳节点表或者路由表,判断是否有目的节点ID域值为节点S的表项,如果是,进行步骤505,否则进行步骤504;
步骤504:步骤503中的节点在路由表中建立一个新表项,新表项的目的节点ID域的值为节点S的节点ID,下一跳域的值为转发该命令帧的节点的节点ID,路径长度为命令帧中的路径长度值加1,生存时间为最大生存时间,进行步骤507;
步骤505:步骤504中的节点判断目的节点ID域的值为节点S的表项的路径长度是否大于命令帧中的路径长度d1加1,如果是,进行步骤506,否则进行步骤507;
步骤506:如果节点S在步骤505中的节点的路由表中,步骤505中的节点则将节点S的路由表表项的路径长度设置为d1+1,下一跳域的值设置为转发该命令帧的节点的节点ID,生存时间设置为最大生存时间,执行步骤507;如果节点S在步骤505中的节点的n跳节点表中,步骤505中的节点则从自己的n跳节点表中删除节点S的表项,然后在d1+1跳节点表中增加一个表项,表项的目的节点ID域的值为节点S的节点ID,下一跳域的值为转发该命令帧的节点的节点ID,路径长度为d1+1,生存时间为最大值,执行步骤507;
步骤507:步骤504或者步骤505或者步骤506中的节点判断节点E是否在自己的n跳节点表或者路由表中,如果是,则进行步骤509,否则进行步骤508;
步骤508:步骤507中的节点广播类型为15的命令帧,命令帧负载中源节点ID为节点S的节点ID,目的节点ID为节点E的节点ID,路由长度为步骤507中的节点的n跳节点表或者路由表中对应节点S的表项中的路径长度,返回步骤503;
步骤509:步骤507中的节点构造一个类型为15的命令帧,命令帧帧头中的目的链路地址为n跳节点表或者路由表中对应节点S的表项的下一跳域的节点ID,命令帧负载中的源节点ID为节点E的节点ID,命令帧负载中的目的节点ID为节点S的节点ID,路由长度为n跳节点表或者路由表中目的节点ID域为节点E的表项中的路径长度值,步骤507中的节点发送该命令帧;
步骤510:无线网络中收到类型为15且目的节点为节点S且源节点为节点E的命令帧的节点查看自己的n跳节点表或者路由表,判断是否有目的节点ID域为节点E的表项,如果是,进行步骤512,否则进行步骤511;
步骤511:步骤510中的节点在路由表中建立一个新表项,新表项目的节点ID域的值为节点E的节点ID,下一跳域的值为转发该命令帧的节点的节点ID,路径长度为命令帧中的路径长度值加1,生存时间为最大生存时间,进行步骤514;
步骤512:步骤510中的节点判断n跳节点表或者路由表中节点E的表项的路径长度是否大于命令帧中的路径长度d2加1,如果是,进行步骤513,否则进行步骤514;
步骤513:如果节点E在步骤512中的节点的路由表中,步骤512中的节点将节点E的路由表项的路径长度设置为d2+1,下一跳域设置为转发该命令帧的节点的节点ID,生存时间设置为最大生存时间,执行步骤514;否则如果节点E在步骤512中的节点的n跳节点表中,步骤512中的节点则从n跳节点表中删除节点E的表项,并在d2+1跳节点表中加入一个新表项,新表项目的节点ID域的值为节点E的节点ID,下一跳域的值为命令帧的源节点ID,路径长度为d2+1,生存时间为最大值,执行步骤514;
步骤514:判断步骤511或者步骤512或者步骤513中的节点是否为节点S,如果是,进行步骤516,否则进行步骤515;
步骤515:步骤514中的节点构造一个类型为15的命令帧,命令帧帧头中的目的链路地址为n跳节点表或者路由表中对应节点S的表项的下一跳域的节点ID,命令帧负载的源节点ID为节点E的节点ID,命令帧负载的目的节点ID为节点S的节点ID,路由长度为n跳节点表或者路由表中目的节点ID域为节点E的表项中的路径长度值,步骤514中的节点发送该命令帧,进行步骤510;
步骤516:结束。
由于无线网络节点数目往往很大,因此节点只能获取局部拓扑结构信息,因此路由通信要能在局部网络信息的基础上选择合适的路径从而降低路由延迟。本发明中,局部拓扑结构为n跳节点表,路由表在n跳节点表基础上建立。如果源节点在n跳节点表中没有目的节点的表项,那么源节点建立路由表来实现与目的节点的通信。由于路由表采用链路层来实现并且建立在n跳节点表之上,因此降低了建立路由表的延迟和代价,也降低了路由通信延迟。
本发明所述方法中,节点Y收到邻居节点X的信标帧后,如果节点Y的1跳节点表中存在一个表项,该表项的目的节点ID域的值为节点X的节点ID,节点Y则将该表项的生存时间设置为最大;
节点Y收到邻居节点X的信标帧后,比较自己j跳节点表和信标帧中的j-1跳节点表,如果信标帧中的j-1跳节点表中的目的节点ID等于节点Y的j跳节点表中一个表项的目的节点ID,那么节点Y将j跳节点表中相应表项的生存时间设置为最大值,下一跳域设置为该信标帧的源节点ID;
如果节点S检测到1跳节点表中目的节点X的表项中的生存时间衰减为0,则进行如下操作:
步骤601:开始;
步骤602:节点S从1跳节点表中删除目的节点X的表项;
步骤603:节点S查看j跳节点表中是否存在有下一跳域的值为节点X的表项,如果有则进行步骤604,否则进行步骤605;
步骤604;节点S从j跳节点表中删除下一跳域的值为节点X的表项;
步骤605:节点S查看路由表中是否存在有下一跳域的值为节点X的表项,如果有则进行步骤606,否则进行步骤608;
步骤606:节点S广播类型为15的命令帧,命令帧负载中源节点ID为节点S的节点ID,目的节点ID为路由表中下一跳域的值为节点X的表项中的目的节点E的节点ID,路径长度为0,然后从路由表中删除下一跳域的值为节点X的表项;
步骤607:节点S执行步骤503至步骤515建立到达节点E的路由表项;
步骤608:结束。
节点通过上述过程能快速更新n跳节点表和建立路由表,从而确保了路由的正确性和通信的连续性。
本发明所述方法中,节点S和节点E进行通信的过程包括如下步骤:
步骤901;开始;
步骤902:节点S查看所有n跳节点表判断是否有节点E的表项,如果是,进行步骤903,否则进行步骤904;
步骤903:节点S将目的地址为节点E的数据帧转发给节点E对应的n跳节点表表项中下一跳域所对应的下一跳节点,执行步骤907;
步骤904:节点S查看所有路由表判断是否有节点E的表项,如果是,进行步骤905,否则进行步骤906;
步骤905:节点S将目的地址为节点E的数据帧转发给节点E对应路由表项中下一跳域所对应的下一跳节点,执行步骤907;
步骤906:节点S执行步骤501到步骤515建立到达节点E的路由表项,并将目的地址为节点E的数据帧转发给节点E对应路由表项的下一跳域对应的下一跳节点;
步骤907:接收到目的地址为节点E的数据帧的下一跳节点收到数据帧后,判断自己是否为节点E,如果是进行步骤913,否则进行步骤908:
步骤908:步骤907中的下一跳节点查看n跳节点表判断是否有节点E的表项,如果是,进行步骤909,否则进行步骤910;
步骤909:步骤907中的下一跳节点将目的地址为节点E的数据帧转发给节点E对应表项的下一跳域对应的下一跳节点即自己的下一跳节点,执行步骤907;
步骤910:步骤907中的下一跳节点查看所有路由表判断是否有节点E的表项,如果是,进行步骤911,否则进行步骤912;
步骤911:步骤910中的下一跳节点将目的地址为节点E的数据帧转发给节点E对应路由表项的下一跳域对应的下一跳节点,执行步骤907;
步骤912:步骤910中的下一跳节点执行步骤501到步骤515建立到达节点E的路由表项,并将目的地址为节点E的数据帧转发给节点E对应路由表项的下一跳域对应的下一跳节点,执行步骤907;
步骤913:结束。
由于无线网络节点数目往往很大,因此节点只能获取局部拓扑结构信息,因此路由通信要能在局部网络信息的基础上选择合适的路径从而降低路由延迟。本发明中,局部拓扑结构为n跳节点表,路由表在n跳节点表基础上建立。如果源节点在n跳节点表中存在目的节点的表项,那么源节点无需建立路由即可实现与目的节点的通信,否则源节点才建立到达目的节点的路由表项。因此,本发明大幅度降低了路由延迟同时也确保了通信的正确性。
有益效果:本发明提供了一种无线网络的路由通信实现方法,此实现方法可广泛用于物联网和车载网络,例如,在车载网领域,可将无线网络的路由通信实现方法用于检测某一个区域内的道路拥塞情况,通过本发明提供的实现方法,节点之间可以进行通信并交互所在路段的拥塞情况,这样节点可以有效避免道路拥塞情况从而改善路况。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明所述的n跳节点表或者路由表的表项结构示意图。
图2为本发明所述的网络初始化过程中节点建立1跳节点表的流程示意图。
图3为本发明所述的网络初始化过程中节点建立j跳节点表的流程示意图。
图4为本发明所述的网络初始化结束后节点建立1跳节点表的流程示意图。
图5为本发明所述的网络初始化结束后节点建立j跳节点表的流程示意图。
图6为本发明所述的邻居节点更新n跳节点表的流程示意图。
图7为本发明所述的节点更新n跳节点表的流程示意图。
图8为本发明所述的节点建立路由表项的流程示意图。
图9为本发明所述的节点失效流程示意图。
图10为本发明所述的节点通信流程示意图。
具体实施方式:
图1为本发明所述的n跳节点表或者路由表的表项结构示意图。每个节点保存N个n跳节点表以及一个路由表,n=1,2……N,N为正整数且N小于无线网络的直径;n跳节点表和路由表各自包括一个表项,n跳节点表和路由表的表项都由四个域构成:目的节点ID域1,下一跳域2,路径长度3以及生存时间4;生存时间4随着机器时钟自动衰减,当生存时间4衰减为0时,相应的表项被删除;生存时间4的最大值由节点平均移动速度以及传输半径决定,设置为2r/v,其中r为节点传输半径,v为节点平均移动速度。
图2为本发明所述的网络初始化过程中节点建立1跳节点表的流程示意图。无线网络启动后,开始进行无线网络初始化操作,即节点开始广播信标帧建立n跳节点表;
节点H通过下述过程建立1跳节点表:
步骤101:开始;
步骤102:节点H收到邻居节点的信标帧后,判断自己的1跳节点表中是否存在一个表项,该表项的下一跳域为信标帧的源节点ID,如果是,进行步骤104,否则进行步骤103;
步骤103:节点H在1跳节点表中加入一个新表项,表项的目的节点ID域和下一跳域为信标帧的源节点ID,路径长度为1,生存时间为最大值;
步骤104:执行步骤102到步骤103直到将所有邻居节点到加入到1跳节点表为止;
步骤105:结束。
图3为本发明所述的网络初始化过程中节点建立j跳节点表的流程示意图。节点H建立1跳节点表后,通过下述过程建立j跳节点表,j=2……N:
步骤701:开始;
步骤702:节点H收到邻居节点的信标帧后,判断信标帧负载中的j-1跳节点表是否为空,如果是,进行步骤705,否则进行步骤703;
步骤703:节点H比较自己的j跳节点表和信标帧中的j-1跳节点表,判断信标帧中的j-1跳节点表中是否存在满足下述条件的表项,如果是,进行步骤704,否则进行步骤705;
条件:该表项的目的节点ID域的值与节点H的j跳节点表中所有表项的目的节点ID域的值都不相同;
步骤704:在节点H的j跳节点表中增加一个表项,表项的目的节点ID域为步骤703中满足条件的表项的目的节点ID域的值,下一跳域为信标帧的源节点ID,路径长度为j,生存时间为最大值;
步骤705:节点H比较j跳节点表和m跳节点表,m=1…j-1,判断j跳节点表中是否存在满足下述条件的表项,如果是,进行步骤706,否则进行步骤707;
条件:m跳节点表中存在一个表项,该表项的目的节点ID域的值等于j跳节点表中该表项的目的节点ID;
步骤706:节点H从j跳节点表中删除满足上述条件的表项;
步骤707:重复步骤702至步骤706,直到节点H将距离自己j跳的节点都加入到j跳节点表为止;
步骤708:结束。
图4为本发明所述的网络初始化结束后节点建立1跳节点表的流程示意图。无线网络初始化结束后,如果节点X启动并加入无线网络后,通过下述过程建立1跳节点表:
步骤201:开始;
步骤202:节点X收到邻居节点的信标帧后,在1跳节点表中加入一个新表项,新表项的目的节点ID域和下一跳域为信标帧的源节点ID,路径长度为1;
步骤203:重复步骤202,直到节点X将所有邻居节点加入到节点X的1跳节点表中;
步骤204:结束。
图5为本发明所述的网络初始化结束后节点建立j跳节点表的流程示意图。节点X建立1跳节点表后,根据下述过程建立j跳节点表,j=2…N:
步骤801:开始;
步骤802:节点X收到邻居节点的信标帧后,比较自己的j跳节点表和信标帧中的j-1跳节点表,判断信标帧中的j-1跳节点表中是否存在满足下述条件的表项,如果是,进行步骤803,否则进行步骤804;
条件:该表项的目的节点ID域的值与节点X的j跳节点表中所有表项的目的节点ID域的值都不相同;
步骤803:节点X在j跳节点表中增加一个新表项,该表项的目的节点ID域为步骤802中满足条件的表项的目的节点ID域的值,下一跳域为信标帧的源节点ID,路径长度为j,生存时间为最大值;
步骤804:节点X比较自己的j跳节点表和m跳节点表,m=1…j-1,判断j跳节点表中是否存在满足下述条件的表项,如果是,进行步骤805,否则进行步骤806;
条件:该表项的目的节点ID域的值等于m跳节点表中一个表项的目的节点ID域的值;
步骤805:节点X从j跳节点表中删除满足上述条件的表项;
步骤806:重复步骤802至步骤805,直到节点X将所有距离自己j跳的节点都加入到j跳节点表;
步骤807:结束。
图6为本发明所述的邻居节点更新n跳节点表的流程示意图。节点X建立n跳节点表之后,开始广播信标帧,节点X的邻居节点Y收到信标帧后,进行如下操作:
步骤301:开始;
步骤302:节点Y收到节点X的信标帧后,在1跳节点表中加入1个新表项,新表项的目的节点ID域的值和下一跳域的值均为节点X的节点ID,路径长度为1,生存时间为最大值;
步骤303:节点Y比较自己的j跳节点表和信标帧中的j-1跳节点表,判断信标帧中的j-1跳节点表中是否存在满足下述条件的表项,如果是,进行步骤304,否则进行步骤305;
条件:该表项的目的节点ID域的值与j跳节点表中所有表项的目的节点ID域的值都不相同;
步骤304:节点Y在j跳节点表中增加一个新表项,新表项的目的节点ID域为步骤303中满足条件的表项的目的节点ID域的值,下一跳域的值为节点X的源节点ID,路径长度为j,生存时间为最大值;
步骤305:节点Y比较自己的j跳节点表和m跳节点表,m=1…j-1,判断j跳节点表中是否存在满足下述条件的表项,如果是,进行步骤306,否则进行步骤307;
条件:该表项的目的节点ID域的值等于m跳节点表中一个表项的目的节点ID域的值;
步骤306:节点Y从j跳节点表中删除满足上述条件的表项;
步骤307;节点Y广播信标帧;
步骤308:结束。
图7为本发明所述的节点更新n跳节点表的流程示意图。节点Z收到邻居节点的信标帧后,进行如下操作;
步骤401:开始;
步骤402:节点Z收到邻居节点的信标帧后,判断信标帧的源节点ID是否与节点Z的1跳节点表中的一个表项的目的节点ID域的值相同,如果是,进行步骤404,否则进行步骤403;
步骤403:节点Z在1跳节点表中加入一个新表项,新表项的目的节点ID域的值和下一跳域的值为信标帧的源节点ID,路径长度为1,生存时间为最大值;
步骤404:节点Z比较自己的j跳节点表和信标帧中的j-1跳节点表,判断信标帧中的j-1跳节点表中是否存在满足下述条件的表项,如果是,进行步骤405,否则进行步骤406;
条件:该表项的目的节点ID域的值与j跳节点表中所有表项的目的节点ID域的值都不同;
步骤405:节点Z在j跳节点表中增加一个表项,表项的目的节点ID域为满足步骤404条件的表项的目的节点ID域的值,下一跳域的值为信标帧的源节点ID,路径长度为j,生存时间为最大值;
步骤406:节点Z比较自己的j跳节点表和m跳节点表,m=1…j-1,判断j跳节点表中是否存在满足下述条件的表项,如果是,进行步骤407,否则进行步骤408;
条件:该表项的目的节点ID域的值等于m跳节点表中一个表项的目的节点ID域的值;
步骤407:节点Z从j跳节点表中删除满足上述条件的表项;
步骤408:节点Z判断自己是否执行了步骤403和步骤405,如果是,进行步骤409,否则进行步骤410;
步骤409:节点Z广播信标帧;
步骤410:结束。
无线网络初始化结束后,如果节点X移动且离开原来邻居节点之后即无法收到原来邻居节点的信标帧,则删除n跳节点表中的所有表项,然后执行步骤201至204以及步骤801至步骤807重新建立n跳节点表;
节点X建立n跳节点表之后,开始广播信标帧,节点X的邻居节点Y收到信标帧后,进行步骤301至步骤308更新n跳节点表;
无线网络中的节点收到邻居节点的信标帧后,执行步骤401至步骤410更新n跳节点表。
图8为本发明所述的节点建立路由表项的流程示意图。所有节点定期在其自身的1跳范围内广播信标帧,信标帧的负载为N-1个i跳节点表,i=1,2……N-1;节点通过扩展IEEE802.15.4协议中的命令帧实现路由表的建立,命令帧负载第一个字节标识命令帧的负载内容:
第一个字节值 | 负载内容 |
15 | 源节点ID和目的节点ID,路径长度变量 |
节点S与节点E进行通信时,如果节点S的n跳节点表和路由表中所有表项的目的节点ID域的值都不等于节点E的节点ID,那么节点S发起下述过程在路由表中建立到达节点E的路由表项:
步骤501:开始;
步骤502:节点S广播类型为15的命令帧,命令帧负载中源节点ID为节点S的节点ID,目的节点ID为节点E的节点ID,路径长度变量为0;
步骤503:无线网络中收到类型为15且帧负载为节点S和目的节点E的命令帧的节点,查看自己的n跳节点表或者路由表,判断是否有目的节点ID域值为节点S的表项,如果是,进行步骤505,否则进行步骤504;
步骤504:步骤503中的节点在路由表中建立一个新表项,新表项的目的节点ID域的值为节点S的节点ID,下一跳域的值为转发该命令帧的节点的节点ID,路径长度为命令帧中的路径长度值加1,生存时间为最大生存时间,进行步骤507;
步骤505:步骤504中的节点判断目的节点ID域的值为节点S的表项的路径长度是否大于命令帧中的路径长度d1加1,如果是,进行步骤506,否则进行步骤507;
步骤506:如果节点S在步骤505中的节点的路由表中,步骤505中的节点则将节点S的路由表表项的路径长度设置为d1+1,下一跳域的值设置为转发该命令帧的节点的节点ID,生存时间设置为最大生存时间,执行步骤507;如果节点S在步骤505中的节点的n跳节点表中,步骤505中的节点则从自己的n跳节点表中删除节点S的表项,然后在d1+1跳节点表中增加一个表项,表项的目的节点ID域的值为节点S的节点ID,下一跳域的值为转发该命令帧的节点的节点ID,路径长度为d1+1,生存时间为最大值,执行步骤507;
步骤507:步骤504或者步骤505或者步骤506中的节点判断节点E是否在自己的n跳节点表或者路由表中,如果是,则进行步骤509,否则进行步骤508;
步骤508:步骤507中的节点广播类型为15的命令帧,命令帧负载中源节点ID为节点S的节点ID,目的节点ID为节点E的节点ID,路由长度为步骤507中的节点的n跳节点表或者路由表中对应节点S的表项中的路径长度,返回步骤503;
步骤509:步骤507中的节点构造一个类型为15的命令帧,命令帧帧头中的目的链路地址为n跳节点表或者路由表中对应节点S的表项的下一跳域的节点ID,命令帧负载中的源节点ID为节点E的节点ID,命令帧负载中的目的节点ID为节点S的节点ID,路由长度为n跳节点表或者路由表中目的节点ID域为节点E的表项中的路径长度值,步骤507中的节点发送该命令帧;
步骤510:无线网络中收到类型为15且目的节点为节点S且源节点为节点E的命令帧的节点查看自己的n跳节点表或者路由表,判断是否有目的节点ID域为节点E的表项,如果是,进行步骤512,否则进行步骤511;
步骤511:步骤510中的节点在路由表中建立一个新表项,新表项目的节点ID域的值为节点E的节点ID,下一跳域的值为转发该命令帧的节点的节点ID,路径长度为命令帧中的路径长度值加1,生存时间为最大生存时间,进行步骤514;
步骤512:步骤510中的节点判断n跳节点表或者路由表中节点E的表项的路径长度是否大于命令帧中的路径长度d2加1,如果是,进行步骤513,否则进行步骤514;
步骤513:如果节点E在步骤512中的节点的路由表中,步骤512中的节点将节点E的路由表项的路径长度设置为d2+1,下一跳域设置为转发该命令帧的节点的节点ID,生存时间设置为最大生存时间,执行步骤514;否则如果节点E在步骤512中的节点的n跳节点表中,步骤512中的节点则从n跳节点表中删除节点E的表项,并在d2+1跳节点表中加入一个新表项,新表项目的节点ID域的值为节点E的节点ID,下一跳域的值为命令帧的源节点ID,路径长度为d2+1,生存时间为最大值,执行步骤514;
步骤514:判断步骤511或者步骤512或者步骤513中的节点是否为节点S,如果是,进行步骤516,否则进行步骤515;
步骤515:步骤514中的节点构造一个类型为15的命令帧,命令帧帧头中的目的链路地址为n跳节点表或者路由表中对应节点S的表项的下一跳域的节点ID,命令帧负载的源节点ID为节点E的节点ID,命令帧负载的目的节点ID为节点S的节点ID,路由长度为n跳节点表或者路由表中目的节点ID域为节点E的表项中的路径长度值,步骤514中的节点发送该命令帧,进行步骤510;
步骤516:结束。
图9为本发明所述的节点失效流程示意图。节点Y收到邻居节点X的信标帧后,如果节点Y的1跳节点表中存在一个表项,该表项的目的节点ID域的值为节点X的节点ID,节点Y则将该表项的生存时间设置为最大;
节点Y收到邻居节点X的信标帧后,比较自己j跳节点表和信标帧中的j-1跳节点表,如果信标帧中的j-1跳节点表中的目的节点ID等于节点Y的j跳节点表中一个表项的目的节点ID,那么节点Y将j跳节点表中相应表项的生存时间设置为最大值,下一跳域设置为该信标帧的源节点ID;
如果节点S检测到1跳节点表中目的节点X的表项中的生存时间衰减为0,则进行如下操作:
步骤601:开始;
步骤602:节点S从1跳节点表中删除目的节点X的表项;
步骤603:节点S查看j跳节点表中是否存在有下一跳域的值为节点X的表项,如果是则进行步骤604,否则进行步骤605;
步骤604;节点S从j跳节点表中删除下一跳域的值为节点X的表项;
步骤605:节点S查看路由表中是否存在有下一跳域的值为节点X的表项,如果是则进行步骤606,否则进行步骤608;
步骤606:节点S广播类型为15的命令帧,命令帧负载中源节点ID为节点S的节点ID,目的节点ID为路由表中下一跳域的值为节点X的表项中的目的节点E的节点ID,路径长度为0,然后从路由表中删除下一跳域的值为节点X的表项;
步骤607:节点S执行步骤503至步骤515建立到达节点E的路由表项;
步骤608:结束。
图10为本发明所述的节点通信流程示意图。节点S和节点E进行通信的过程包括如下步骤:
步骤901;开始;
步骤902:节点S查看所有n跳节点表判断是否有节点E的表项,如果是,进行步骤903,否则进行步骤904;
步骤903:节点S将目的地址为节点E的数据帧转发给节点E对应的n跳节点表表项中下一跳域所对应的下一跳节点,执行步骤907;
步骤904:节点S查看所有路由表判断是否有节点E的表项,如果是,进行步骤905,否则进行步骤906;
步骤905:节点S将目的地址为节点E的数据帧转发给节点E对应路由表项中下一跳域所对应的下一跳节点,执行步骤907;
步骤906:节点S执行步骤501到步骤515建立到达节点E的路由表项,并将目的地址为节点E的数据帧转发给节点E对应路由表项的下一跳域对应的下一跳节点;
步骤907:接收到目的地址为节点E的数据帧的下一跳节点收到数据帧后,判断自己是否为节点E,如果是进行步骤913,否则进行步骤908:
步骤908:步骤907中的下一跳节点查看n跳节点表判断是否有节点E的表项,如果是,进行步骤909,否则进行步骤910;
步骤909:步骤907中的下一跳节点将目的地址为节点E的数据帧转发给节点E对应表项的下一跳域对应的下一跳节点,执行步骤907;
步骤910:步骤907中的下一跳节点查看所有路由表判断是否有节点E的表项,如果是,进行步骤911,否则进行步骤912;
步骤911:步骤910中的下一跳节点将目的地址为节点E的数据帧转发给节点E对应路由表项的下一跳域对应的下一跳节点,执行步骤907;
步骤912:步骤910中的下一跳节点执行步骤501到步骤515建立到达节点E的路由表项,并将目的地址为节点E的数据帧转发给节点E对应路由表项的下一跳域对应的下一跳节点,执行步骤907;
步骤913:结束。
综上所述,本发明提供了一种无线网络的路由通信实现方法,此实现方法可广泛用于物联网和车载网络,例如,在车载网领域,可将无线网络的路由通信实现方法用于检测某一个区域内的道路拥塞情况,通过本发明提供的实现方法,节点之间可以进行通信并交互所在路段的拥塞情况,这样节点可以有效避免道路拥塞情况从而改善路况。
实施例1
基于表1的仿真参数,本实施例模拟了本发明中方法,性能分析如下:在同一传输半径下,随着跳数的增加,路由延迟也随之增加。路由跳数的增加,增大了通信范围,从而增大了节点间彼此通信的频率,导致传输过程中路由帧的数量增大。在相同路由跳数的情况下,随着通信半径的增加,路由延迟也随之增大。由于传输半径的增大,相同跳数范围内的节点的数量也随之增加,节点的增多必定导致通信量的大幅度提高,从而会增大路由的开销。本发明中,由于路由表建立在n跳节点表基础之上,因此大幅度降低了路由延迟。在路由通信实现过程中,建立4跳路由的平均延迟为10ms,平均代价为40。
表1仿真参数
Claims (6)
1.一种无线网络的路由通信实现方法,其特征在于,所述无线网络的节点为具有路由转发功能的节点,每个节点具有唯一性的节点ID且在一跳范围内定期广播信标帧;
每个节点保存N个n跳节点表以及一个路由表,n=1,2……N,N为正整数且N小于无线网络的直径;n跳节点表和路由表各自包括一个表项,n跳节点表和路由表的表项都由四个域构成:目的节点ID域,下一跳域,路径长度以及生存时间;生存时间随着机器时钟自动衰减,当生存时间衰减为0时,相应的表项被删除;生存时间的最大值由节点平均移动速度以及传输半径决定,设置为2r/v,其中r为节点传输半径,v为节点平均移动速度;
所有节点定期在其自身的1跳范围内广播信标帧,信标帧的负载为N-1个i跳节点表,i=1,2……N-1;节点通过扩展IEEE802.15.4协议中的命令帧实现路由表的建立,命令帧负载第一个字节标识命令帧的负载内容:
无线网络启动后,开始进行无线网络初始化操作,即节点开始广播信标帧建立n跳节点表;
节点H通过下述过程建立1跳节点表:
步骤101:开始;
步骤102:节点H收到邻居节点的信标帧后,判断自己的1跳节点表中是否存在一个表项,该表项的下一跳域为信标帧的源节点ID,如果是,进行步骤104,否则进行步骤103;
步骤103:节点H在1跳节点表中加入一个新表项,表项的目的节点ID域和下一跳域为信标帧的源节点ID,路径长度为1,生存时间为最大值;
步骤104:执行步骤102到步骤103,直到节点H将所有邻居节点加入到自己的1跳节点表为止;
步骤105:结束;
节点H建立1跳节点表后,通过下述过程建立j跳节点表,j=2……N:
步骤701:开始;
步骤702:节点H收到邻居节点的信标帧后,判断信标帧负载中的j-1跳节点表是否为空,如果是,进行步骤705,否则进行步骤703;
步骤703:节点H比较自己的j跳节点表和信标帧中的j-1跳节点表,判断信标帧中的j-1跳节点表中是否存在满足下述条件的表项,如果是,进行步骤704,否则进行步骤705;
条件:该表项的目的节点ID域的值与节点H的j跳节点表中所有表项的目的节点ID域的值都不相同;
步骤704:在节点H的j跳节点表中增加一个表项,表项的目的节点ID域为步骤703中满足条件的表项的目的节点ID域的值,下一跳域为信标帧的源节点ID,路径长度为j,生存时间为最大值;
步骤705:节点H比较j跳节点表和m跳节点表,m=1…j-1,判断j跳节点表中是否存在满足下述条件的表项,如果是,进行步骤706,否则进行步骤707;
条件:m跳节点表中存在一个表项,该表项的目的节点ID域的值等于j跳节点表中该表项的目的节点ID;
步骤706:节点H从j跳节点表中删除满足上述条件的表项;
步骤707:重复步骤702至步骤706,直到节点H将距离自己j跳的节点都加入到j跳节点表为止;
步骤708:结束。
2.根据权利要求1所述的无线网络的路由通信实现方法,其特征在于,无线网络初始化结束后,如果节点X启动并加入无线网络后,通过下述过程建立1跳节点表:
步骤201:开始;
步骤202:节点X收到邻居节点的信标帧后,在1跳节点表中加入一个新表项,新表项的目的节点ID域和下一跳域为信标帧的源节点ID,路径长度为1;
步骤203:重复步骤202,直到节点X将所有邻居节点加入到节点X的1跳节点表中;
步骤204:结束;
节点X建立1跳节点表后,根据下述过程建立j跳节点表,j=2…N:
步骤801:开始;
步骤802:节点X收到邻居节点的信标帧后,比较自己的j跳节点表和信标帧中的j-1跳节点表,判断信标帧中的j-1跳节点表中是否存在满足下述条件的表项,如果是,进行步骤803,否则进行步骤804;
条件:该表项的目的节点ID域的值与节点X的j跳节点表中所有表项的目的节点ID域的值都不相同;
步骤803:节点X在j跳节点表中增加一个新表项,该表项的目的节点ID域为步骤802中满足条件的表项的目的节点ID域的值,下一跳域为信标帧的源节点ID,路径长度为j,生存时间为最大值;
步骤804:节点X比较自己的j跳节点表和m跳节点表,m=1…j-1,判断j跳节点表中是否存在满足下述条件的表项,如果是,进行步骤805,否则进行步骤806;
条件:该表项的目的节点ID域的值等于m跳节点表中一个表项的目的节点ID域的值;
步骤805:节点X从j跳节点表中删除满足上述条件的表项;
步骤806:重复步骤802至步骤805,直到节点X将所有距离自己j跳的节点都加入到j跳节点表;
步骤807:结束;
节点X建立n跳节点表之后,开始广播信标帧,节点X的邻居节点Y收到信标帧后,进行如下操作:
步骤301:开始;
步骤302:节点Y收到节点X的信标帧后,在1跳节点表中加入1个新表项,新表项的目的节点ID域的值和下一跳域的值均为节点X的节点ID,路径长度为1,生存时间为最大值;
步骤303:节点Y比较自己的j跳节点表和信标帧中的j-1跳节点表,判断信标帧中的j-1跳节点表中是否存在满足下述条件的表项,如果是,进行步骤304,否则进行步骤305;
条件:该表项的目的节点ID域的值与j跳节点表中所有表项的目的节点ID域的值都不相同;
步骤304:节点Y在j跳节点表中增加一个新表项,新表项的目的节点ID域为步骤303中满足条件的表项的目的节点ID域的值,下一跳域的值为节点X的源节点ID,路径长度为j,生存时间为最大值;
步骤305:节点Y比较自己的j跳节点表和m跳节点表,m=1…j-1,判断j跳节点表中是否存在满足下述条件的表项,如果是,进行步骤306,否则进行步骤307;
条件:该表项的目的节点ID域的值等于m跳节点表中一个表项的目的节点ID域的值;
步骤306:节点Y从j跳节点表中删除满足上述条件的表项;
步骤307;节点Y广播信标帧;
步骤308:结束;
节点Z收到邻居节点的信标帧后,进行如下操作;
步骤401:开始;
步骤402:节点Z收到邻居节点的信标帧后,判断信标帧的源节点ID是否与节点Z的1跳节点表中的一个表项的目的节点ID域的值相同,如果是,进行步骤404,否则进行步骤403;
步骤403:节点Z在1跳节点表中加入一个新表项,新表项的目的节点ID域的值和下一跳域的值为信标帧的源节点ID,路径长度为1,生存时间为最大值;
步骤404:节点Z比较自己的j跳节点表和信标帧中的j-1跳节点表,判断信标帧中的j-1跳节点表中是否存在满足下述条件的表项,如果是,进行步骤405,否则进行步骤406;
条件:该表项的目的节点ID域的值与j跳节点表中所有表项的目的节点ID域的值都不同;
步骤405:节点Z在j跳节点表中增加一个表项,表项的目的节点ID域为满足步骤404条件的表项的目的节点ID域的值,下一跳域的值为信标帧的源节点ID,路径长度为j,生存时间为最大值;
步骤406:节点Z比较自己的j跳节点表和m跳节点表,m=1…j-1,判断j跳节点表中是否存在满足下述条件的表项,如果是,进行步骤407,否则进行步骤408;
条件:该表项的目的节点ID域的值等于m跳节点表中一个表项的目的节点ID域的值;
步骤407:节点Z从j跳节点表中删除满足上述条件的表项;
步骤408:节点Z判断自己是否执行了步骤403和步骤405,如果是,进行步骤409,否则进行步骤410;
步骤409:节点Z广播信标帧;
步骤410:结束。
3.根据权利要求2所述的无线网络的路由通信实现方法,其特征在于,无线网络初始化结束后,如果节点X移动且离开原来邻居节点之后即无法收到原来邻居节点的信标帧,则删除n跳节点表中的所有表项,然后执行步骤201至204以及步骤801至步骤807重新建立n跳节点表;
节点X建立n跳节点表之后,开始广播信标帧,节点X的邻居节点Y收到信标帧后,进行步骤301至步骤308更新n跳节点表;
无线网络中的节点收到邻居节点的信标帧后,执行步骤401至步骤410更新n跳节点表。
4.根据权利要求3所述的无线网络的路由通信实现方法,其特征在于,节点S与节点E进行通信时,如果节点S的n跳节点表和路由表中所有表项的目的节点ID域的值都不等于节点E的节点ID,那么节点S发起下述过程在路由表中建立到达节点E的路由表项:
步骤501:开始;
步骤502:节点S广播类型为15的命令帧,命令帧负载中源节点ID为节点S的节点ID,目的节点ID为节点E的节点ID,路径长度变量为0;
步骤503:无线网络中收到类型为15且帧负载为节点S和目的节点E的命令帧的节点,查看自己的n跳节点表或者路由表,判断是否有目的节点ID域值为节点S的表项,如果是,进行步骤505,否则进行步骤504;
步骤504:步骤503中的节点在路由表中建立一个新表项,新表项的目的节点ID域的值为节点S的节点ID,下一跳域的值为转发该命令帧的节点的节点ID,路径长度为命令帧中的路径长度值加1,生存时间为最大生存时间,进行步骤507;
步骤505:步骤504中的节点判断目的节点ID域的值为节点S的表项的路径长度是否大于命令帧中的路径长度d1加1,如果是,进行步骤506,否则进行步骤507;
步骤506:如果节点S在步骤505中的节点的路由表中,步骤505中的节点则将节点S的路由表表项的路径长度设置为d1+1,下一跳域的值设置为转发该命令帧的节点的节点ID,生存时间设置为最大生存时间,执行步骤507;如果节点S在步骤505中的节点的n跳节点表中,步骤505中的节点则从自己的n跳节点表中删除节点S的表项,然后在d1+1跳节点表中增加一个表项,表项的目的节点ID域的值为节点S的节点ID,下一跳域的值为转发该命令帧的节点的节点ID,路径长度为d1+1,生存时间为最大值,执行步骤507;
步骤507:步骤504或者步骤505或者步骤506中的节点判断节点E是否在自己的n跳节点表或者路由表中,如果是,则进行步骤509,否则进行步骤508;
步骤508:步骤507中的节点广播类型为15的命令帧,命令帧负载中源节点ID为节点S的节点ID,目的节点ID为节点E的节点ID,路由长度为步骤507中的节点的n跳节点表或者路由表中对应节点S的表项中的路径长度,返回步骤503;
步骤509:步骤507中的节点构造一个类型为15的命令帧,命令帧帧头中的目的链路地址为n跳节点表或者路由表中对应节点S的表项的下一跳域的节点ID,命令帧负载中的源节点ID为节点E的节点ID,命令帧负载中的目的节点ID为节点S的节点ID,路由长度为n跳节点表或者路由表中目的节点ID域为节点E的表项中的路径长度值,步骤507中的节点发送该命令帧;
步骤510:无线网络中收到类型为15且目的节点为节点S且源节点为节点E的命令帧的节点查看自己的n跳节点表或者路由表,判断是否有目的节点ID域为节点E的表项,如果是,进行步骤512,否则进行步骤511;
步骤511:步骤510中的节点在路由表中建立一个新表项,新表项目的节点ID域的值为节点E的节点ID,下一跳域的值为转发该命令帧的节点的节点ID,路径长度为命令帧中的路径长度值加1,生存时间为最大生存时间,进行步骤514;
步骤512:步骤510中的节点判断n跳节点表或者路由表中节点E的表项的路径长度是否大于命令帧中的路径长度d2加1,如果是,进行步骤513,否则进行步骤514;
步骤513:如果节点E在步骤512中的节点的路由表中,步骤512中的节点将节点E的路由表项的路径长度设置为d2+1,下一跳域设置为转发该命令帧的节点的节点ID,生存时间设置为最大生存时间,执行步骤514;否则如果节点E在步骤512中的节点的n跳节点表中,步骤512中的节点则从n跳节点表中删除节点E的表项,并在d2+1跳节点表中加入一个新表项,新表项目的节点ID域的值为节点E的节点ID,下一跳域的值为转发该命令帧的节点的节点ID,路径长度为d2+1,生存时间为最大值,执行步骤514;
步骤514:判断步骤511或者步骤512或者步骤513中的节点是否为节点S,如果是,进行步骤516,否则进行步骤515;
步骤515:步骤514中的节点构造一个类型为15的命令帧,命令帧帧头中的目的链路地址为n跳节点表或者路由表中对应节点S的表项的下一跳域的节点ID,命令帧负载的源节点ID为节点E的节点ID,命令帧负载的目的节点ID为节点S的节点ID,路由长度为n跳节点表或者路由表中目的节点ID域为节点E的表项中的路径长度值,步骤514中的节点发送该命令帧,进行步骤510;
步骤516:结束。
5.根据权利要求4所述的无线网络的路由通信实现方法,其特征在于,节点Y收到邻居节点X的信标帧后,如果节点Y的1跳节点表中存在一个表项,该表项的目的节点ID域的值为节点X的节点ID,节点Y则将该表项的生存时间设置为最大;
节点Y收到邻居节点X的信标帧后,比较自己j跳节点表和信标帧中的j-1跳节点表,如果信标帧中的j-1跳节点表中的目的节点ID等于节点Y的j跳节点表中一个表项的目的节点ID,那么节点Y将j跳节点表中相应表项的生存时间设置为最大值,下一跳域设置为该信标帧的源节点ID;
如果节点S检测到1跳节点表中目的节点X的表项中的生存时间衰减为0,则进行如下操作:
步骤601:开始;
步骤602:节点S从1跳节点表中删除目的节点X的表项;
步骤603:节点S查看j跳节点表中是否存在有下一跳域的值为节点X的表项,如果有则进行步骤604,否则进行步骤605;
步骤604;节点S从j跳节点表中删除下一跳域的值为节点X的表项;
步骤605:节点S查看路由表中是否存在有下一跳域的值为节点X的表项,如果有则进行步骤606,否则进行步骤608;
步骤606:节点S广播类型为15的命令帧,命令帧负载中源节点ID为节点S的节点ID,目的节点ID为路由表中下一跳域的值为节点X的表项中的目的节点E的节点ID,路径长度为0,然后从路由表中删除下一跳域的值为节点X的表项;
步骤607:节点S执行步骤503至步骤515建立到达节点E的路由表项;
步骤608:结束。
6.根据权利要求4所述的无线网络的路由通信实现方法,其特征在于,节点S和节点E进行通信的过程包括如下步骤:
步骤901;开始;
步骤902:节点S查看所有n跳节点表判断是否有节点E的表项,如果是,进行步骤903,否则进行步骤904;
步骤903:节点S将目的地址为节点E的数据帧转发给节点E对应的n跳节点表表项中下一跳域所对应的下一跳节点,执行步骤907;
步骤904:节点S查看所有路由表判断是否有节点E的表项,如果是,进行步骤905,否则进行步骤906;
步骤905:节点S将目的地址为节点E的数据帧转发给节点E对应路由表项中下一跳域所对应的下一跳节点,执行步骤907;
步骤906:节点S执行步骤501到步骤515建立到达节点E的路由表项,并将目的地址为节点E的数据帧转发给节点E对应路由表项的下一跳域对应的下一跳节点;
步骤907:下一跳节点收到目的地址为节点E的数据帧后,判断自己是否为节点E,如果是进行步骤913,否则进行步骤908:
步骤908:步骤907中的下一跳节点查看n跳节点表判断是否有节点E的表项,如果是,进行步骤909,否则进行步骤910;
步骤909:步骤907中的下一跳节点将目的地址为节点E的数据帧转发给节点E对应表项的下一跳域对应的下一跳节点,执行步骤907;
步骤910:步骤907中的下一跳节点查看所有路由表判断是否有节点E的表项,如果是,进行步骤911,否则进行步骤912;
步骤911:步骤910中的下一跳节点将目的地址为节点E的数据帧转发给节点E对应路由表项的下一跳域对应的下一跳节点,执行步骤907;
步骤912:步骤910中的下一跳节点执行步骤501到步骤515建立到达节点E的路由表项,并将目的地址为节点E的数据帧转发给节点E对应路由表项的下一跳域对应的下一跳节点,执行步骤907;
步骤913:结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410203374.3A CN103957162B (zh) | 2014-05-14 | 2014-05-14 | 一种无线网络的路由通信实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410203374.3A CN103957162B (zh) | 2014-05-14 | 2014-05-14 | 一种无线网络的路由通信实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103957162A CN103957162A (zh) | 2014-07-30 |
CN103957162B true CN103957162B (zh) | 2017-02-15 |
Family
ID=51334389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410203374.3A Active CN103957162B (zh) | 2014-05-14 | 2014-05-14 | 一种无线网络的路由通信实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103957162B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283792B (zh) * | 2014-09-23 | 2017-07-28 | 同济大学 | 基于内容的WInternet管道通信协议路由算法 |
CN104243504B (zh) * | 2014-10-20 | 2017-04-26 | 常熟理工学院 | 下一代无线网络安全通信实现方法 |
CN109257319B (zh) * | 2017-07-12 | 2022-04-26 | 斑马智行网络(香港)有限公司 | 物联网、及其路由、分配标识的方法、装置及设备、介质 |
CN108768855B (zh) * | 2018-05-30 | 2020-09-25 | 常熟理工学院 | 一种以数据为中心的下一代网络实现方法 |
CN110336589B (zh) * | 2018-12-25 | 2021-12-03 | 深圳市联强邦盛实业有限公司 | 一种电力载波通讯方法 |
CN111510982B (zh) * | 2019-01-30 | 2022-03-11 | 大唐移动通信设备有限公司 | 一种传输数据的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4762735B2 (ja) * | 2005-02-16 | 2011-08-31 | 株式会社エヌ・ティ・ティ・ドコモ | 無線通信装置、通信経路制御装置、通信経路制御方法及び通信システム |
CN102106124B (zh) * | 2009-04-16 | 2013-08-28 | 华为技术有限公司 | 路由方法、装置及系统 |
-
2014
- 2014-05-14 CN CN201410203374.3A patent/CN103957162B/zh active Active
Non-Patent Citations (2)
Title |
---|
《6LoWPAN无线传感器网络无缝移动切换方案》;王晓喃,钱焕延等;《电子科技大学学报》;20131112 * |
《6LoWPAN无线传感器网络路由研究》;王晓喃,潘小清等;《铁道学报》;20140214 * |
Also Published As
Publication number | Publication date |
---|---|
CN103957162A (zh) | 2014-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103957162B (zh) | 一种无线网络的路由通信实现方法 | |
CN101267433B (zh) | 一种适应异构网络环境的中心控制源路由协议方法 | |
CN102790963B (zh) | 基于Android手机的移动自组网系统及其构建方法 | |
US20060101157A1 (en) | Communications routing | |
CN104080112B (zh) | 一种提高无线自组织网络业务可靠性的方法 | |
CN106535238A (zh) | 一种链路的切换方法和装置 | |
CN106888490A (zh) | 一种无线自组网的路由方法及装置 | |
CN105848247B (zh) | 一种车载Ad Hoc网络的自适应路由协议方法 | |
CN104320334A (zh) | 一种无线Mesh网络中的集中式路由算法 | |
CN106131161A (zh) | 一种城市环境下基于稳定性分簇的车载路由协议方法 | |
CN108471628B (zh) | 一种具备优化网络负载的路由控制器 | |
JP2006020332A (ja) | パケット中継方法、ルータ設定方法及びルータ設定システム | |
CN105763443A (zh) | 混合无线网状协议hwmp双路由协作方法 | |
CN103139073B (zh) | 一种基于Ad Hoc网络形式的认知路由方法 | |
CN106304229A (zh) | 一种基于内容存储的软件定义无线Mesh网络 | |
CN106304184B (zh) | 基于aodv的多度量量的路由发现和建立的方法 | |
CN106034322A (zh) | 一种移动自组网中基于链路质量的路由切换方法 | |
CN104582008A (zh) | 一种Android手机自组织网系统的建立方法 | |
CN103108374A (zh) | 一种混合结构矿井应急救援无线网状网的节能路由算法 | |
Lei et al. | Performance analysis and comparison of routing protocols in mobile ad hoc network | |
Mu et al. | Performance analysis of the ZigBee networks in 5G environment and the nearest access routing for improvement | |
CN101938804B (zh) | 适用于无线传感网路的多路径路由方法 | |
Alizadeh et al. | Improving routing in vehicular Ad-hoc network with VIKOR algorithm | |
CN105636144A (zh) | 一种延长zigbee网络生命周期的方法 | |
CN105072586B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220323 Address after: 215500 5th floor, building 4, 68 Lianfeng Road, Changfu street, Changshu City, Suzhou City, Jiangsu Province Patentee after: Changshu intellectual property operation center Co.,Ltd. Address before: 215500 School of computer science and engineering, Changshu Institute of Technology (southeast campus), Changshu City, Suzhou City, Jiangsu Province Patentee before: CHANGSHU INSTITUTE OF TECHNOLOGY |