无线网状网的传输方法、通信设备及通信系统 【技术领域】
本发明涉及通信技术领域,具体涉及无线网状网(Wireless Mesh Network,简称WMN)的传输方法、通信设备及通信系统。
背景技术
WMN是一种新型的宽带无线网络,它可以由多个用户站(Subscriber Station,简称SS),即移动终端组网,也可以由多个基站(Base Station,简称BS)组成骨干网,能在大范围内提供高连通性和健壮性的接入服务,还可通过网状(Mesh)网关融合其他无线网,其网络中所有节点的地位平等,无需设置任何的中心控制节点。网络中的节点均具有报文转发能力,即具备路由器的功能。当节点要与其覆盖范围之外的节点进行通信时,需要中间节点的多跳(Multi Hop)转发,因此它也被称为多跳无线网状网(Multi Hop Wireless Mesh Network)。与固定网络的多跳不同,WMN中的多跳路由是由普通的节点完成的,而不是由专用的路由设备(如路由器)完成的。
虽然WMN提高了节点间相互通信的灵活度,但同时也造成了复杂的路径管理问题,特别是在网络庞大的时候。
现有技术中,WMN的路径管理需要依赖网际协议(Internet Protocol,简称IP)层。通信时,一个信息可能被细分为多个分组,每个分组独立地在各协议层中进行传输,其中,所谓的分组就是指包含用户数据和协议头(包括地址和管理信息)的块,每个分组遵循不同的路由到达最终的目的地,一旦信息的所有分组都到达目的地,它们将被重组成源信息,从而完成一个信息的传输。在此传输过程中,当节点接收到IP层的分组,即IP包时,需要对IP包头进行解析,从中获取IP目的地址,根据获取到的IP目的地址通过查找位于IP层的路由表来确定下一跳节点的转发路径地址,然后再根据转发路径地址进行转发,直至到达目的地的节点。
在对现有技术的研究和实践过程中,本发明的发明人发现,由于每个节点都需要通过解IP包头才能确定下一跳节点的转发路径地址,所以完成一次信息传输就需要与IP层进行多次交互,导致系统的传输效率低下。
【发明内容】
本发明实施例提供一种无线网状网的传输方法、通信设备及通信系统。目的在于减少与路由层交互的次数,提高WMN中系统的传输效率。
一种无线网状网的传输方法,包括:
接收媒体接入控制(Media Access Control,简称MAC)帧,即MAC层的分组;
根据MAC帧头的标签(Label)查找位于MAC层的标签路径转换表,所述标签为连接标识(connection Identifier,简称CID)和节点标识(Node ID);
根据所述标签路径转换表的记录更新MAC帧头;
发送更新了MAC帧头的MAC帧;
其中,所述根据所述标签路径转换表的记录更新MAC帧头之前还包括:
当在标签路径转换表中查找不到所述标签相应的记录时,通知IP层的控制器更新标签路径转换表;根据更新后的标签路径转换表的记录更新MAC帧头。
一种通信设备,包括:
接收单元,用于接收MAC帧;
第一查找单元,用于根据所述接收单元接收到的MAC帧头中的标签查找位于MAC层的标签路径转换表,所述标签为CID和Node ID;
设置单元,用于根据所述第一查找单元找到的标签路径转换表的记录更新MAC帧头;
第一发送单元,用于发送所述设置单元更新了MAC帧头的MAC帧;
第一请求单元,用于当标签路径转换表没有相应的记录时,通知IP层的控制器更新标签路径转换表;
所述设置单元,还用于根据更新后的标签路径转换表的记录更新MAC帧头。
一种通信系统,包括:
发送设备,用于发送MAC帧给接收设备;
接收设备,用于接收发送设备发送的MAC帧,根据MAC帧头的标签查找位于MAC层的标签路径转换表,然后根据所述标签路径转换表的记录更新MAC帧头,最后发送更新了MAC帧头的MAC帧,所述标签为CID和Node ID;其中,所述根据所述标签路径转换表的记录更新MAC帧头之前还包括:当在标签路径转换表中查找不到所述标签相应的记录时,通知IP层的控制器更新标签路径转换表;根据更新后的标签路径转换表的记录更新MAC帧头。
本发明实施例采用CID和Node ID作为标签,然后在MAC层建立标签路径转换表,这样,节点在接收MAC帧后,就可以根据MAC帧头的标签查找位于MAC层的标签路径转换表以确定下一跳节点的转发路径地址,而不需要通过查找IP层的路由表来确定,即采用本方案可以减少与IP层的交互次数,提高WMN中系统的传输效率,而且由于本方案采用了服务流中原有的CID和NodeID作为标签,所以不会给MAC层增加太多额外的开销(overhead),有利于保证系统具有较高的MAC数据率。
【附图说明】
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一的方法流程图;
图2是本发明实施例提供的节点中的控制器和转发器的结构示意图;
图3是本发明实施例二提供的WMN的MAC帧的结构示意图;
图4是本发明实施例二提供的标签路径转换的示意图;
图5是本发明实施例二的方法流程图;
图6是本发明实施例三提供的WMN的多路径的MAC帧的结构示意图;
图7是本发明实施例三提供的多路径的标签路径转换的示意图;
图8是本发明实施例三的方法流程图;
图9是本发明实施例三提供的WMN的多路径并行传输的MAC帧的结构示意图;
图10是本发明实施例四提供的通信设备的结构示意图;
图11是本发明实施例五提供的通信系统的结构示意图。
【具体实施方式】
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种无线网状网的传输方法,本发明实施例还提供相应的通信设备和通信系统,使得数据在MAC层就进行可以转发,以减少与IP层的交互次数,达到提高WMN中系统的传输效率的目的。以下分别进行详细说明。
实施例一、
一种无线网状网的传输方法,节点在接收媒体接入控制MAC帧后,可以根据MAC帧头的标签查找位于MAC层的标签路径转换表以确定下一跳节点的转发路径地址,同时可以根据所述标签路径转换表的记录更新MAC帧头,然后根据下一跳节点的转发路径地址发送更新了MAC帧头的MAC帧给下一跳节点;其中,为了节省MAC层的开销,保证系统具有较高的MAC数据率,可以以服务流中原本就携带有的CID,以及发送节点的ID,即Node ID作为标签。
如图1所示,具体流程可以如下:
101、接收媒体接入控制MAC帧;
102、根据MAC帧头的标签查找位于MAC层的标签路径转换表,所述标签为连接标识CID和Node ID;
其中,将CID和Node ID作为标签与现有的多协议标签转换(Multiple Protocol Label Switch,简称MPLS)技术有所不同,现有的MPLS技术是以路径转换标识(Label Switch Paths,简称LSP)作为标签的,如果在WMN中也直接采用LSP作为标签,那么就需要对MAC帧的结构进行修改,例如在extended header加入Label Header,以便可以携带标签,这势必会给MAC帧的额外的开销,同时也会降低系统的MAC数据率。由于WMN是面向连接的网络,传输是以服务流为单位,而每个服务流都分配了一个端到端专有的CID,所以可以利用每个服务流的CID,以及MAC帧原有的Node ID来代替LSP作为标签,在MAC层建立以CID和Node ID为标签的路由转换表,这样,即可以达到提高系统的传输效率的目的,也可以避免给MAC帧带来额外的开销;
103、根据所述标签路径转换表的记录更新MAC帧头;
104、发送更新了MAC帧头的MAC帧。
本发明实施例采用CID和Node ID作为标签,然后在MAC层建立标签路径转换表,这样,节点在接收MAC帧后,就可以根据MAC帧头的标签查找位于MAC层的标签路径转换表以确定下一跳节点的转发路径地址,而不需要通过查找IP层的路由表来确定,即采用本方案可以减少与IP层的交互次数,提高WMN中系统的传输效率,而且由于本方案采用了服务流中原有的CID和NodeID作为标签,所以不会给MAC层增加太多额外的开销,有利于保证系统具有较高的MAC数据率。
实施例二、
由实施一可知,本发明实施例是以CID和Node ID作为MAC帧的标签的,由于每个CID都是唯一的,所以为了减少MPLS使用在WMN中的复杂度,在本发明实施例中将不使用标签分发的MPLS采用的方法,而是使用控制器(Controller)和转发器(Forwarder)结构,可参见图2,其中,在路由层(即网际协议层)的控制器负责通过IP层的IP路由表信息,定期的更新位于MAC层转发器内的标签路径转换表。有了MAC层的标签转换表,转发器就可以在MAC层确定下一跳的节点的MAC地址,而不需要通过解IP包头,然后通过与IP层进行交互才能确定下一跳节点的转发路径地址。如图2所示,图2中的虚线箭头为现有技术的传输方式的示意图,实线箭头为本发明的传输方式的示意图,其中,MAC层的下一层为物理层(Physical Layer,简称PHY)。
下面将举例作进一步详细说明。
在实施该方案前,需要在每个WMN网络节点中,加入控制器和转发器。如图2所示,控制器设置在IP层,而转发器设置在MAC层,且含有标签路径转换表。控制器根据IP层的路由信息,创建或定期的去更新转发器中的标签路径转换表。当MAC帧到达节点时,如果节点已经有了这个MAC帧的路径信息等相应记录,节点就可以根据转发器中已有的标签路径转换表的记录更新MAC帧头,并转发MAC帧;如果节点没有MAC帧的相应记录,则转发器将通知IP层的控制器更新标签路径转换表,即通知IP层的控制器发起路由建立过程,并将结果收录到标签路径表中,然后再根据更新后的标签路径转换表的记录更新MAC帧头,并转发更新MAC帧头的MAC帧。
另外,虽然本发明实施例利用CID和Node ID作为路径转换标签,不用修改MAC帧的结构,但还是需要修改MAC帧的一些字段的功能。
图3为WMN的MAC帧的结构,其中,通用MAC帧头(Generic MAC Header)中的CID字段的前8位(bit)包括有服务质量(Quality of Service,简称QoS)等级信息,CID字段的后8bit则包括有链路标识(Link ID),每个节点在与邻居节点建立一个链接时,都会分派一个Link ID。又如图3所示,通用MAC帧头Generic MAC Header后面的网状子包头(Mesh sub‑header)为发送节点的Node ID,长度为16bit,相当于发送节点的MAC地址,即节点自身的MAC地址。所以,可以使用CID的最高有效位(Most Significant Bit,简称MSB),即CID前8bit,以及Node ID代替LSP作为路径转换标签(以下均简称为标签)。而CID的后8bit,即CID的最低有效位(Least Significant Bit,简称LSB),用于填充LinkID,可以用于寻址,相当于下一跳节点的MAC地址。这样,如果CID相同的话,则表示转发路径相同,即具有相同QoS要求的去往同一目的业务流经过相同的路径。
需要说明的是,MAC帧携带的LSP为下一跳节点的标签,以便下一跳节点收到MAC帧以后,可以根据LSP来确定是否接收MAC帧,比如判断LSP是否是自身的标签,是则接收MAC帧,否则丢弃MAC帧。由于本发明使用了CID MSB和Node ID来代替LSP作为标签,其中,MAC帧携带的Link ID为节点的相邻节点分配的,而Node ID为节点自身的ID,所以在MAC层建立的标签路径转换表与现有的MPLS中的路由表会有所不同。
如图4所示,假设S为源节点,D为目的节点,A和C为S的相邻节点,B为A和C的相邻节点,E和D为B的相邻节点,各个节点与自身的相邻节点建立链接时,会向自身的各个相邻节点分配相应的Link ID,并且为业务映射相应的CID MSB,假设S与C的Link ID为Link ID1,S与A的Link ID为Link ID2,C与B的Link ID为Link ID3,A与B的Link ID为Link ID4,B与D的Link ID为Link ID5,B与E的Link ID为Link ID6,E与D的Link ID为Link ID7,实线箭头所示的路径为最优路径,虚线箭头所示的路径为其他的路径,而且,各节点对业务的映射规则一致,即CID MSB相同;当S向D发送分组时,路由协议会寻找一条最优路径,假设该最优路径为S‑>C‑>B‑>D,可参见图4中实线箭头所示的路径,则各节点的标签路径转换表可以如表1~4所示,其中,表1为在源节点S的标签路径转换表,表2为在节点C的标签路径转换表,表3为在节点B的标签路径转换表,表4为在目的节点D的标签路径转换表,如下:
表1:
![]()
表2:
![]()
表3:
![]()
表4:
![]()
其中,Label.In字段表示入标签,Label.Out字段表示出标签,Mac.Out字段表示下一跳节点的MAC地址,Destination IP Address表示目的节点的IP地址,Lifetime字段表示表中对应记录的存活时间,如表1中,Lifetime为3S,则表示表1中的记录的存活时间为3秒;在Lifetime时间内,若对应的业务流没有被激活,则标签路径转换表中相应的记录被删除。Lifetime的初始值可以在链路建立时,根据信号强度等参数计算出来的链路稳定度来进行设置,后续的设置则根据输出分组来刷新。
为了描述方便,假设Node ID S为节点S的Node ID,相当于S的MAC地址,同理,Node ID C为节点C的Node ID,相当于节点C的MAC地址,Node ID B为节点B的Node ID,相当于节点B的MAC地址,Node ID D为节点D的Node ID,相当于节点D的MAC地址;NULL表示空,即无记录。
当源节点S收到上层的分组,即IP包时,解析IP包头,根据IP包头中的IP目的地址查找标签路径转换表,若没有找到相关记录,则通知IP层的控制器,由IP层的控制器发起路由请求,建立标签路径转换表;若有相关记录,则对IP包进行MAC帧的封装,采用在源节点S的标签路径转换表中的Label.Out的CIDMSB和Mac.Out的值填充Generic MAC Header的CID字段,Label.Out的Node ID的值填充Mesh sub‑header的Node ID字段。比如,用CID MSB的值填充CIDMSB,用Link ID1的值填充CID LSB,用Node ID S的值填充Mesh sub‑header的Node ID字段。
当中间节点,例如图4中的A、B、C或E收到一个MAC层的分组,即MAC帧后,根据MAC帧头的标签查找位于MAC层的标签路径转换表,如果标签路径转换表中没有相应的记录,则节点的转发器通知IP层的控制器更新标签路径转换表,然后从接收到的MAC帧头的Mesh sub‑header中获得上一跳节点的Node ID的值,从Generic MAC Header中获得CID MSB的值,将Node ID的值和CID MSB的值结合作为入标签,即Label.In,以获得标签交换项。如果节点在标签路径转换表中找到接收到的MAC帧所对应的记录,则根据标签路径转换表的记录判断自身是否为目的节点,若是,将MAC帧上交给上层,即IP层处理,例如,Mac.Out为NULL,则表明是目的节点,分组上交给IP层处理;否则,根据标签路径转换表的记录,比如Mac.Out的值和Label.Out的值更新MAC帧头,并转发更新了MAC帧头的MAC帧给下一跳节点,此过程无需IP层参与。其中,更新MAC帧头具体可以如下:
用Mac.Out的值更新MAC帧头的CID LSB字段,用Label.Out的CID MSB的值更新MAC帧头的CID MSB字段,用Label.Out的Node ID的值更新MAC帧头的Node ID字段。
需说明的是,IP层的地址解释协议(Address Resolution Protocol,简称ARP)也需要作相应的修改。ARP是一种将IP地址转化成MAC地址的协议。ARP具体说来就是将IP层的地址解析为数据连接层,即MAC层的MAC地址。因为一个节点转发分组时,需要找到下一跳节点的MAC地址,以完成MAC帧的构建。在IP层的路由表中,有下一跳节点的IP地址,但没有下一跳节点的MAC地址,所以,这时节点会向下一跳节点发送包含下一跳节点IP地址的地址解释请求,下一跳节点响应时带上其自身的MAC地址。由于本发明实施例采用Link ID寻址,因此需要把该MAC地址与Link ID进行映射,即在节点建立链路连接,分派Link ID时,同时建立起Link ID和MAC地址的绑定表,当ARP完成时,用对应的Link ID转发分组。
传输时,如图5所示,该实施例的具体流程可以如下:
201、源节点S接收IP包;
202、源节点S解析IP包头,根据IP包头中的IP目的地址,如表1中的“218.192.169.144”查找是否存在相应的标签路径转换表,若不存在,则执行步骤203,若存在,则执行步骤204;
203、通知IP层的控制器,由IP层的控制器发起路由请求,建立标签路径转换表,然后执行步骤204;
204、对IP包进行MAC帧的封装,采用源节点S的标签路径转换表中的Label.Out的CID MSB的值填充Generic MAC Header的CID MSB字段,用LinkID1的值填充Generic MAC Header的CID LSB字段,用Node ID S的值填充Meshsub‑header的Node ID字段;
205、由Generic MAC Header的CID LSB可知,下一跳节点的MAC地址为“Link ID1”,即节点C,源节点S发送封装好的MAC帧给节点C;
206、节点C接收MAC帧;
207、节点C解析MAC帧头,将MAC帧头中的Label.Out的值,即CID MSB和Node ID S作为入标签,即表中的Label.In,查找节点C的标签路径转换表,若节点C的标签路径转换表中不存在该入标签,即CID MSB和Node ID S相应的记录,则执行步骤208,若节点C的标签路径转换表中存在该入标签,即CID MSB和Node ID S相应的记录,则执行步骤209;
208、通知IP层的控制器更新节点C的标签路径转换表,然后执行步骤209;
209、根据节点C的标签路径转换表的记录判断自身是否为目的节点,例如确定Mac.Out的值是否为NULL,若是,则执行步骤210,若否,则执行步骤211;
210、将该MAC帧上交给IP层处理,流程结束;
211、根据节点C的标签路径转换表的记录更新MAC帧头,采用节点C的标签路径转换表中该Label.In对应的Label.Out中的CID MSB的值填充Generic MAC Header的CID MSB字段,用该Label.In对应的Mac.Out的值,即Link ID3填充Generic MAC Header的CID LSB字段,用该Label.In对应的Label.Out中的Node ID C的值填充Mesh sub‑header的Node ID字段,然后执行步骤212;
212、由Generic MAC Header的CID LSB可知,下一跳节点的MAC地址为“Link ID3”,即节点B,节点C发送更新了MAC帧头的MAC帧给节点B;
213、节点B接收到节点C发送的MAC帧;
214、节点B解析MAC帧头,将MAC帧头中的Label.Out的值,即CID MSB和Node ID C作为入标签,即表中的Label.In,查找节点B的标签路径转换表,若节点B的标签路径转换表中不存在该入标签,即CID MSB和Node ID C相应的记录,则执行步骤215,若节点B的标签路径转换表中存在该入标签,即CID MSB和Node ID C相应的记录,则执行步骤216;
215、通知IP层的控制器更新节点B的标签路径转换表,然后执行步骤216;
216、根据节点B的标签路径转换表的记录判断自身是否为目的节点,例如确定Mac.Out的值是否为NULL,若是,则执行步骤217,若否,则执行步骤218;
217、将该MAC帧上交给IP层处理,流程结束;
218、根据节点B的标签路径转换表的记录更新MAC帧头,采用节点B的标签路径转换表中的Label.Out的CID MSB的值填充Generic MAC Header的CIDMSB字段,用Link ID5的值填充Generic MAC Header的CID LSB字段,用Node ID B的值填充Mesh sub‑header的Node ID字段;
219、节点B将更新了MAC帧头的MAC帧发送给下一跳节点D;
220、节点D接收节点B发送的MAC帧;
221、节点D解析节点B发送的MAC帧头,将MAC帧头中的Label.Out的值,即CID MSB和Node ID B作为入标签,即Label.In,查找节点D的标签路径转换表;
222、节点D在节点D的标签路径转换表中找到该入标签,即CID MSB和Node ID B相应的记录,并得知Mac.Out的值为NULL,由此确定自身为目的节点;
223、节点D将该MAC帧上交给IP层处理,流程结束。
由上可知,本发明实施例采用在每个WMN网络节点中,加入控制器和转发器,控制器设置在IP层,而转发器设置在MAC层,且含有标签路径转换表。控制器根据IP层的路由信息,创建或定期的去更新转发器中的标签路径转换表,传输时,源节点会给每个MAC帧分配一个标签,这样,节点在接收MAC帧后,就可以根据MAC帧头的标签查找位于MAC层的标签路径转换表以确定下一跳节点的转发路径地址,而不需要通过查找IP层的路由表来确定,即采用本方案可以减少与IP层的交互次数,提高WMN中系统的传输效率,而且由于本方案采用了服务流中原有的CID和Node ID作为标签,所以不会给MAC层增加太多额外的开销,有利于保证系统具有较高的MAC数据率。
实施例三、
在WMN中,节点与节点之间由于无线信道的不稳定,或者由于节点的临时退出网络,通常难以像有线网络那样保持一条相对稳定的端到端路径链路。而如果通过路径恢复,即要求节点在下一跳出现问题时,通过IP层重新寻找路径来解决这个问题的话,又会导致某些QoS业务的延时要求不能保证。
因此,在实施例二的基础上,可以在建立主路径的同时,建立一条或多条的备用路径,以便在主路径出现故障时,可以马上切换到备用路径上进行传输,这样,恢复路径产生的延时就会减少,路由的可靠性也得到了提高。
同样的,在实施该方案前,需要在每个WMN网络节点中加入控制器和转发器。与实施例二不同的是,本实施例还需要在实施例二的帧结构中加入用于指示主、备路径的信息的字段,即加入关于传输时是使用主路径还是使用备用路径的信息,同时,在建立标签路径转换表时,也需要加入备用路径的信息,当然,前提是现有的多路径路由算法能保证我们的主路径和备用路径的选择。
如图6所示,图6为WMN中多路径的MAC帧的结构,该MAC帧的结构与实施例二中的MAC帧的结构大致相同,只是为了进一步节省MAC帧的开销,可以在Generic MAC Header内的一个预留位(Reserved,简称REV)设置一个标识,例如设置该标识为PRV,作为主、备用路径的指示,比如,当PRV=1,代表使用主路径,PRV=0代表使用备用路径。
下面将举例作进一步进行说明。
如图7所示,假设S1为源节点,D1为目的节点,A1和C1为S1的相邻节点,B1为A1和C1的相邻节点,B1和F1为C1的相邻节点,E1和D1为B1的相邻节点,D1为B1和F1的相邻节点,各个节点与自身的相邻节点建立链接时,会向自身的各个相邻节点分配相应的Link ID,并且为业务映射相应的CID MSB,假设S1与C1的Link ID为Link ID11,S1与A1的Link ID为Link ID12,C1与B1的Link ID为Link ID13,A1与B1的Link ID为Link ID14,B1与D1的Link ID为Link ID15,B1与E1的Link ID为Link ID16,E1与D1的Link ID为Link ID17,C1与F1的Link ID为Link ID18,F1与D1的LinkID为Link ID19,假设实线箭头所示的路径为主路径,即S1‑>C1‑>B1‑>D1,虚线箭头所示的路径为备用路径,如图7所示,主路径上的每一个节点都有一条备用路径到达最终的目的节点;又假设各节点对业务的映射规则一致,即CID MSB相同,则各节点的标签路径转换表可以如表5~8所示,其中,表5为在源节点S1的标签路径转换表,表6为在节点C1的标签路径转换表,表7为在节点B1的标签路径转换表,表8为在目的节点D1的标签路径转换表,如下:
表5:
![]()
表6:
![]()
表7:
![]()
表8:
![]()
表5~8列出了图7的主路径所有节点的标签路径转换表,这些标签路径转换表可在多路径算法的支持下,由MAC层的转发器通过IP层的控制器获得所需的信息,使得MAC帧可以不经过IP层就可进行转发。
其中,Label.In字段表示入标签,Label.Out字段表示出标签,Primary.Out字段表示主路径上的下一跳节点的MAC地址,Backup.Out表示备用路径上的下一跳节点的MAC地址,Destination IP Address表示目的节点的IP地址,Lifetime1字段表示主路径对应的记录的存活时间,Lifetime2字段表示备用路径对应的记录的存活时间,Lifetime1和Lifetime2的初始值可以在链路建立时,根据信号强度等参数计算出来的链路稳定度来进行设置,后续的设置则根据输出分组来刷新。
另外,为了描述方便,假设Node ID S1为节点S1的Node ID,相当于S1的MAC地址,同理,Node ID C1为节点C1的Node ID,相当于节点C1的MAC地址,Node ID B1为节点B1的Node ID,相当于节点B1的MAC地址,Node ID D1为节点D1的Node ID,相当于节点D1的MAC地址;NULL表示空,即无记录。
假设使用PRV作为主、备用路径的指示,当PRV=1,代表使用主路径,PRV=0代表使用备用路径,那么,若从源节点S1到达目的节点D1的主路径良好,并且主路径的Lifetime不为零,则PRV一直为1,中间节点C1和B1选择主路径转发数据。若从源节点S1到达目的节点D1中的某一段链路发生故障,则将PRV设置为0,采用备用路径进行传输;例如节点C1到达节点B1的链路在这一时候由于无线资源恶化,或B1临时停止通信使得C1感知MAC帧无法到达B1,并且备用路径对应的Lifetime不为零,则节点C1选择备用路径发送,并把PRV设为0,由于接收节点可根据PRV位是0或是1判断接收到的MAC帧是采用主路径还是备用路径,所以这时备用路径上的节点F1会接收节点C1的MAC帧并转发,最终到达目的地D1。
如图8所示,该实施例的具体流程可以如下:
301、源节点S1接收IP包;
302、源节点S1解析IP包头,根据IP包头中的IP目的地址,如表5中的“218.192.169.144”查找是否存在相应的标签路径转换表,若不存在,则执行步骤303,若存在,则执行步骤304;
303、通知IP层的控制器,由IP层的控制器发起路由请求,建立标签路径转换表,然后执行步骤304;
304、对IP包进行MAC帧的封装,采用源节点S1的标签路径转换表中的Label.Out的CID MSB的值填充Generic MAC Header的CID MSB字段,用Primary.Out的值,即Link ID11填充Generic MAC Header的CID LSB字段,用Node ID S1的值填充Mesh sub‑header的Node ID字段,并将PRV设置为1,表示采用主路径进行传输。
305、由Generic MAC Header的CID LSB可知,下一跳节点的MAC地址为“Link ID11”,即节点C1,源节点S1发送封装好的MAC帧给节点C1;
306、节点C1接收MAC帧;
307、节点C1解析MAC帧头,将MAC帧头中的Label.Out的值,即CID MSB和Node ID S1作为入标签,即表中的Label.In,查找节点C1的标签路径转换表,若节点C1的标签路径转换表中不存在该入标签,即CID MSB和Node ID S1相应的记录,则执行步骤308,若节点C1的标签路径转换表中存在该入标签,即CID MSB和Node ID S1相应的记录,则执行步骤309;
308、通知IP层的控制器更新节点C1的标签路径转换表,然后执行步骤309;
309、根据节点C1的标签路径转换表的记录判断自身是否为目的节点,例如确定Primary.Out或Backup.Out的值是否为NULL,若是,则执行步骤310,若否,则执行步骤311;
310、将该MAC帧上交给IP层处理,流程结束;
311、根据节点C1的标签路径转换表的记录更新MAC帧头,采用节点C1的标签路径转换表中该Label.In对应的Label.Out中的CID MSB的值填充Generic MAC Header的CID MSB字段,用该Label.In对应的Primary.Out的值,即Link ID13填充Generic MAC Header的CID LSB字段,用该Label.In对应的Label.Out中的Node ID C1的值填充Mesh sub‑header的Node ID字段,并将PRV设置为1,然后执行步骤312;
当然,假设此时节点C1检测到主路径上的下一跳节点B1出现故障,而备用路径的存活时间,即Lifetime2又不为零的话,则采用备用路径Link ID 18进行传输,即采用节点C1的标签路径转换表中的CID MSB的值填充Generic MAC Header的CID MSB字段,用Backup.Out的值,即Link ID18填充Generic MAC Header的CID LSB字段,用Node ID C1的值填充Mesh sub‑header的Node ID字段,并将PRV设置为0;然后将MAC帧转发给备用路径上的下一跳节点F1,F1后续动作与C1类似,在此不再累赘;
312、由Generic MAC Header的CID LSB可知,下一跳节点的MAC地址为“Link ID13”,即节点B1,节点C1发送更新了MAC帧头的MAC帧给节点B1;
313、节点B1接收节点C1发送的MAC帧;
314、节点B1解析MAC帧头,将MAC帧头中的Label.Out的值,即CID MSB和Node ID C1作为入标签,即表中的Label.In,查找节点B1的标签路径转换表,若节点B1的标签路径转换表中不存在该入标签,即CID MSB和Node ID C1相应的记录,则执行步骤315,若节点B1的标签路径转换表中存在该入标签,即CID MSB和Node ID C1相应的记录,则执行步骤316;
315、通知IP层的控制器更新节点C1的标签路径转换表,然后执行步骤316;
316、根据节点B1的标签路径转换表的记录判断自身是否为目的节点,例如确定Primary.Out或Backup.Out的值是否为NULL,若是,则执行步骤317,若否,则执行步骤318;
317、将该MAC帧上交给IP层处理,流程结束;
318、根据节点B1的标签路径转换表的记录更新MAC帧头,采用节点B1的标签路径转换表中的CID MSB的值填充Generic MAC Header的CID MSB,用Link ID15的值填充Generic MAC Header的CID LSB,用Node ID B1的值填充Mesh sub‑header的Node ID字段,并将PRV设置为1;
319、节点B1将更改了MAC帧头的MAC帧发送给下一跳节点D1;
320、节点D1接收节点B1发送的MAC帧;
321、节点D1解析B1发送的MAC帧头,将MAC帧头中的Label.Out的值,即CID MSB和Node ID B1作为入标签,即Label.In,查找节点D1的标签路径转换表;
322、节点D1在节点D1的标签路径转换表中找到该入标签,即CID MSB和Node ID B1相应的记录,得知Primary.Out和Backup.Out的值为NULL,由此确定自身为目的节点;
323、节点D1将该MAC帧上交给IP层处理,流程结束。
需说明的是,本实施例只是以建立一条备用路径为例对本发明进行描述,除此之外,还可以建立多条备用路径。
另外,还可以让主路径和备用路径同时发送MAC帧,以实现并行发送,提高传输速率。
为了实现主路径和备用路径并行传输,需要对Mesh sub‑header进行扩展,以携带8bit的备用链路标识(Backup Link ID),如图9所示。
图9为WMN中多路径的MAC帧的结构,该MAC帧的结构与实施例三中的MAC帧的结构大致相同,只是在Node ID后面增加Backup Link ID字段,用于携带备用路径的信息;不过此时就不需要设置PRV的值,即不需要区分主、备用路径。
由上可知,本发明实施例采用在每个WMN网络节点中,加入控制器和转发器,控制器设置在IP层,而转发器设置在MAC层,且含有标签路径转换表。控制器根据IP层的路由信息,创建或定期的去更新转发器中的标签路径转换表,传输时,源节点会给每个MAC帧分配一个标签,这样,节点在接收MAC帧后,就可以根据MAC帧头的标签查找位于MAC层的标签路径转换表以确定下一跳节点的转发路径地址,而不需要通过查找IP层的路由表来确定,即采用本方案可以减少与IP层的交互次数,提高WMN中系统的传输效率,而且由于本方案采用了服务流中原有的CID和Node ID作为标签,所以不会给MAC层增加太多额外的开销,有利于保证系统具有较高的MAC数据率。
进一步的,由于本实施例在建立主路径的同时,建立了一条或多条的备用路径,当主路径出现故障时,节点可以马上将数据切换到备用路径上进行传输,所以可以减少恢复路径产生的延时,提高路由的可靠性。
更进一步的,本发明所提供的实施例无需携带备用路径上的节点的MAC地址,而只需要携带8bit的Link ID,然后使用了1bit的PRV来标识主路径和备用路径,从而节省了MAC帧的开销。若备用路径为2条,也只需使用2bit的PRV来标识主路径、备用路径1和备用路径2,并携带16bit的Link ID用于寻址,相对于加入两条备用路径上的节点的MAC地址,显然可以大大减少MAC帧的开销,而且,随着路径的增加,节省的效果会更明显。
实施例四、
为了更好实施上述方法,本发明还相应地提供一种通信设备,如图10所示,包括接收单元1001、第一查找单元1002、设置单元1003和第一发送单元1004;
接收单元1001,用于接收MAC帧;
第一查找单元1002,用于根据所述接收单元1001接收到的MAC帧头中的标签查找位于MAC层的标签路径转换表,所述标签为连接标识(CID)和节点标识(Node ID);
设置单元1003,用于根据所述第一查找单元1002找到的标签路径转换表的记录更新MAC帧头;
第一发送单元1004,用于发送所述设置单元1003更新了MAC帧头的MAC帧。
该通信设备还可以包括第一请求单元1005;
第一请求单元1005,用于当标签路径转换表没有相应的记录时,通知IP层的控制器更新标签路径转换表;
所述设置单元1003,还用于根据更新后的标签路径转换表的记录更新MAC帧头。
进一步的,该通信设备还可以包括第一判断单元1006;
第一判断单元1006,用于根据所述标签路径转换表的记录判断自身是否为目的节点;
所述第一发送单元1004,还用于当所述第一判断单元1006判断自身为目的节点时,将MAC帧上交给IP层处理;
所述设置单元1003,还用于当所述第一判断单元1006判断自身不是目的节点时,根据所述标签路径转换表的记录更新MAC帧头。
当然,该通信设备还包括第二查找单元1102、第二请求单元1103、封装单元1104和第二发送单元1105;
所述接收单元1001,还用于接收IP包;
第二查找单元1102,用于当所述接收单元1001接收到IP包时,根据所述接收单元1001接收到的IP包头的IP目的地址查找MAC层是否存在标签路径转换表;
第二请求单元1103,用于当所述第二查找单元1102确定MAC层不存在相应的标签路径转换表时,向IP层的控制器发起路由请求,以建立相应的标签路径转换表;
封装单元1104,用于根据所述第二查找单元1102查找到的标签路径转换表,将所述接收单元1001接收到的IP包封装成MAC帧;然后将所述IP包封装成MAC帧;
第二发送单元1105,用于发送所述封装单元1104封装的MAC帧。
该通信设备具体可以为用户站或基站。
下面将举例对通信设备的具体操作流出作进一步详细说明。
首先,需要在每个上述的通信设备中,加入控制器和转发器。如图2所示,控制器设置在IP层,而转发器设置在MAC层,且含有标签路径转换表。控制器根据IP层的路由信息,创建或定期的去更新转发器中的标签路径转换表。
其次,进行数据传输,如下:
当接收单元1001接收到MAC帧时,第一查找单元1002根据接收单元1001接收到的MAC帧的帧头,即MAC帧头中的标签查找标签路径转换表;
如果可以找到这个MAC帧的路径信息等相应记录,则第一判断单元1006根据所述标签路径转换表的记录判断自身是否为目的节点,若是,则由第一发送单元1004将MAC帧上交给IP层处理;若否,则由设置单元1003根据转发器中已有的标签路径转换表的记录更新MAC帧头,然后第一发送单元1004转发MAC帧;
如果在标签路径转换表中找不到这个MAC帧的相应记录,则第一请求单元1005将通知IP层的控制器更新标签路径转换表,即通知IP层的控制器发起路由建立过程,并将结果收录到标签路径表中,然后设置单元1003再根据更新后的标签路径转换表的记录更新MAC帧头,然后再由第一发送单元1004发送更新了MAC帧头的MAC帧;或者如果第一判断单元1006根据所述更新后的标签路径转换表的记录判断自身为目的节点,则由第一发送单元1004将MAC帧上交给IP层处理。
当接收单元1001接收IP包时,则由第二查找单元1102根据接收单元1001接收到的IP包头的IP目的地址查找MAC层是否存在标签路径转换表,若不存在,则第二请求单元1103向IP层的控制器发起路由请求,以建立相应的标签路径转换表,若存在,或者是通过发送请求,使得控制器在MAC层建立了相应的标签路径转换表后,则由封装单元1104根据所述第二查找单元1102查找到的标签路径转换表,将所述接收单元1001接收到的IP包封装成MAC帧,然后由第二发送单元1105将封装单元1104封装的MAC帧发送出去。
由上可知,本发明实施例采用在每个作为WMN网络节点的通信设备中,加入控制器和转发器,控制器设置在IP层,而转发器设置在MAC层,且含有标签路径转换表。控制器根据IP层的路由信息,创建或定期的去更新转发器中的标签路径转换表,传输时,作为源节点的通信设备会给每个MAC帧分配一个标签,这样,作为中间节点的通信设备在接收MAC帧后,就可以根据MAC帧头的标签查找位于MAC层的标签路径转换表以确定下一跳节点的转发路径地址,而不需要通过查找IP层的路由表来确定,即采用本方案可以减少与IP层的交互次数,提高WMN中系统的传输效率,而且由于本方案采用了服务流中原有的CID和Node ID作为标签,所以不会给MAC层增加太多额外的开销,有利于保证系统具有较高的MAC数据率。
实施例五、
为了更好实施上述方法,本发明还相应地提供一种通信系统,如图11所示,包括发送设备1201和接收设备1202;
发送设备1201,用于发送MAC帧给接收设备1202;
接收设备1202,用于接收发送设备1201发送的MAC帧,根据MAC帧头的标签查找位于MAC层的标签路径转换表,然后根据所述标签路径转换表的记录更新MAC帧头,最后发送更新了MAC帧头的MAC帧,所述标签为连接标识CID和节点标识,即Node ID。
其中,发送设备1201包括接收单元1001、第一查找单元1002、设置单元1003和第一发送单元1004,还可以包括第一请求单元1005和第一判断单元1006,当然,还可以包括第二查找单元1102、第二请求单元1103、封装单元1104和第二发送单元1105;
接收设备1202可以包括接收单元1001、第一查找单元1002、设置单元1003和第一发送单元1004,还可以包括第一请求单元1005和第一判断单元1006,当然,还可以包括第二查找单元1102、第二请求单元1103、封装单元1104和第二发送单元1105。
发送设备1201和接收设备1202均为如实施四所述的通信设备,具体可以为用户站或基站。
当然,该通信系统还可以由多个如实施四所述的通信设备组成。
由上可知,本发明实施例的通信系统的发送设备会给每个MAC帧分配一个标签,这样,接收设备在接收MAC帧后,就可以根据MAC帧头的标签查找位于MAC层的标签路径转换表以确定下一跳节点的转发路径地址,而不需要通过查找IP层的路由表来确定,即采用本方案可以减少与IP层的交互次数,提高WMN中系统的传输效率,而且由于本方案采用了服务流中原有的CID和Node ID作为标签,所以不会给MAC层增加太多额外的开销,有利于保证系统具有较高的MAC数据率。
综上,本发明的实施例具有如下有益效果:
本发明实施例采用在每个WMN网络节点中,加入控制器和转发器,控制器设置在IP层,而转发器设置在MAC层,且含有标签路径转换表。控制器根据IP层的路由信息,创建或定期的去更新转发器中的标签路径转换表,传输时,源节点会给每个MAC帧分配一个标签,这样,节点在接收MAC帧后,就可以根据MAC帧头的标签查找位于MAC层的标签路径转换表以确定下一跳节点的转发路径地址,而不需要通过查找IP层的路由表来确定,从而减少与IP层的交互次数,提高WMN中系统的传输效率,而且由于本方案采用了服务流中原有的CID和Node ID作为标签,所以不会给MAC层增加太多额外的开销,有利于保证系统具有较高的MAC数据率。
进一步的,本发明实施例还可以在建立主路径的同时,建立了一条或多条的备用路径,以便当主路径出现故障时,节点可以马上将数据切换到备用路径上进行传输,从而减少恢复路径产生的延时,提高路由的可靠性。而且,无需携带备用路径上的节点的MAC地址,而只需要携带Link ID,然后使用了PRV来标识主路径和备用路径,从而大大节省了多路径的MAC帧的开销。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的无线网状网的传输方法、通信设备及通信系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。