一种基于无线mesh网络的报文转发方法及装置与流程

文档序号:11148056阅读:1507来源:国知局
一种基于无线mesh网络的报文转发方法及装置与制造工艺

本发明涉及通信技术领域,特别是涉及一种基于无线mesh网络的报文转发方法及装置。



背景技术:

无线mesh网络包括多个无线mesh节点,每个无线mesh节点除了负责本节点上层业务的报文接收和发送外,还需负责将发送给其他节点的报文转发至下一跳节点,这就需要路由协议根据相应的规则确定合适的下一跳节点并重新封装报文,以将报文发送至下一跳节点。

传统的报文转发是通过路由协议软件在网络层实现,俗称“三层交换”,报文从射频接收至物理层解调成功后,被传送到数据链路层,数据链路层再将报文传送至网络层,网络层再根据报文的目的IP地址查找路由表,确定报文是继续上传,还是需要进行路由转发。如果需要路由转发,则重新封装报文头,发送至数据链路层,再经过物理层和射频通道发送至下一跳节点,完成报文转发。

这种报文转发方法存在一定的问题。一方面会导致话音的多跳指标达不到要求,优质的话音业务能够容忍的延时在200毫秒内,如果转发延迟过大,将导致话音在完成2至3跳后,延时即超过了200毫秒,极大的限制了话音传输的距离;另一方面,大量的转发报文上传至CPU,运行在CPU中的路由协议进行路由查找和转发,增加了CPU的负载,如果CPU性能较低,对大量的转发报文进行处理将导致CPU卡顿。



技术实现要素:

本发明的目的是提供一种基于无线mesh网络的报文转发方法及装置,以减小转发延迟,减轻CPU负载。

为解决上述技术问题,本发明提供如下技术方案:

一种基于无线mesh网络的报文转发方法,应用于无线mesh节点的数据链路层,所述无线mesh节点为无线mesh网络中的任意一个节点,包括:

接收所述无线mesh节点的物理层发送的第一报文;

对所述第一报文进行解析,确定所述第一报文是否为待转发报文;

如果是,则根据所述第一报文的目的IP地址,在预先获得的路由表中查找所述目的IP地址对应的下一跳地址,所述下一跳地址包括下一跳IP地址和下一跳MAC地址;

根据所述下一跳地址,重新封装所述第一报文,获得第二报文;

将所述第二报文发送给所述物理层,以使所述物理层对所述第二报文进行调制后由射频发送给下一跳节点。

在本发明的一种具体实施方式中,在确定所述第一报文不是转发报文时,还包括:

将所述第一报文发送给所述无线mesh节点的网络层。

在本发明的一种具体实施方式中,所述对所述第一报文进行解析,确定所述第一报文是否为待转发报文,包括:

对所述第一报文进行解析,获得所述第一报文的MAC帧类型、目的MAC地址、协议类型和目的IP地址;

如果所述MAC帧类型为数据类型、所述目的MAC地址为所述无线mesh节点的MAC地址、所述协议类型为IP协议类型、且所述目的IP地址不是所述无线mesh节点的IP地址,则确定所述第一报文为待转发报文。

在本发明的一种具体实施方式中,还包括:

接收所述网络层发送的路由信息;

根据所述路由信息,更新所述路由表。

在本发明的一种具体实施方式中,所述路由信息至少包含操作代码、目的IP地址、前缀长度、下一跳IP地址、下一跳MAC地址。

一种基于无线mesh网络的报文转发装置,应用于无线mesh节点的数据链路层,所述无线mesh节点为无线mesh网络中的任意一个节点,包括:

第一报文接收模块,用于接收所述无线mesh节点的物理层发送的第一报文;

待转发报文确定模块,用于对所述第一报文进行解析,确定所述第一报文是否为待转发报文,如果是,则触发下一跳地址查找模块;

所述下一跳地址查找模块,用于根据所述第一报文的目的IP地址,在预先获得的路由表中查找所述目的IP地址对应的下一跳地址,所述下一跳地址包括下一跳IP地址和下一跳MAC地址;

第二报文获得模块,用于根据所述下一跳地址,重新封装所述第一报文,获得第二报文;

第二报文发送模块,用于将所述第二报文发送给所述物理层,以使所述物理层对所述第二报文进行调制后由射频发送给下一跳节点。

在本发明的一种具体实施方式中,还包括第一报文发送模块,用于:

在确定所述第一报文不是转发报文时,将所述第一报文发送给所述无线mesh节点的网络层。

在本发明的一种具体实施方式中,所述待转发报文确定模块,具体用于:

对所述第一报文进行解析,获得所述第一报文的MAC帧类型、目的MAC地址、协议类型和目的IP地址;

如果所述MAC帧类型为数据类型、所述目的MAC地址为所述无线mesh节点的MAC地址、所述协议类型为IP协议类型、且所述目的IP地址不是所述无线mesh节点的IP地址,则确定所述第一报文为待转发报文。

在本发明的一种具体实施方式中,还包括路由表更新模块,用于:

接收所述网络层发送的路由信息;

根据所述路由信息,更新所述路由表。

在本发明的一种具体实施方式中,所述路由信息至少包含操作代码、目的IP地址、前缀长度、下一跳IP地址、下一跳MAC地址。

应用本发明实施例所提供的技术方案,无线mesh节点的数据链路层在接收到无线mesh节点的物理层发送的第一报文后,对第一报文进行解析,确定第一报文是否为待转发报文,如果是,则根据第一报文的目的IP地址,在预先获得的路由表中查找目的IP地址对应的下一跳地址,并根据下一跳地址,重新封装第一报文,获得第二报文,将第二报文发送给物理层,物理层对第二报文进行调制后由射频给下一跳节点。在数据链路层直接完成报文的转发,需要转发的报文不需要从数据链路层到达网络层,再从网络层发送回数据链路层,可以减小转发延迟,且数据链路层所在的FPGA并行运行具有较强的查找能力,通过FPGA进行路由查找,减轻了CPU负载。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中一种基于无线mesh网络的报文转发方法的实施流程图;

图2为本发明实施例中数据链路层整体框架示意图;

图3为本发明实施例中一种基于无线mesh网络的报文转发装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种基于无线mesh网络的报文转发方法,可以应用于无线mesh节点的数据链路层,该无线mesh节点为无线mesh网络中的任意一个节点。数据链路层工作在FPGA中,无线mesh网络中的每个无线mesh节点的数据链路层均保存一个路由表,该路由表与同节点网络层维护的路由表保持一致。

在本发明实施例中,网络层维护路由表中的信息,同时将路由表拷贝至工作在FPGA中的数据链路层,当数据链路层收到报文后,根据报文首部判断是否需要进行报文转发,如果不需要转发,则将报文上传至网络层;反之,则查找FPGA中数据链路层的路由表,找到下一跳地址后,对报文进行重新封装,将报文发送至物理层,再由射频发射出去,发送给下一跳节点。在数据链路层直接完成报文的转发,需要转发的报文不需要从数据链路层到达网络层,再从网络层发送回数据链路层,可以减小转发延迟。

参见图1所示,为本发明实施例所提供的一种基于无线mesh网络的报文转发方法的实施流程图,该方法可以包括以下步骤:

S110:接收无线mesh节点的物理层发送的第一报文。

在实际应用中,无线mesh节点的物理层通过射频可以接收报文,并将接收到的报文发送给数据链路层。

数据链路层接收到物理层发送的第一报文后,可以继续执行步骤S120的操作。

S120:对第一报文进行解析,确定第一报文是否为待转发报文。

工作在FPGA中的数据链路层接收到第一报文后,可以根据预设的MAC和IP首部的格式对第一报文进行解析,获得报文头中多种信息,根据这些信息可以确定第一报文是否为待转发报文。

在本发明的一种具体实施方式中,步骤S120可以包括以下步骤:

步骤一:对第一报文进行解析,获得第一报文的MAC帧类型、目的MAC地址、协议类型和目的IP地址;

步骤二:如果MAC帧类型为数据类型、目的MAC地址为无线mesh节点的MAC地址、协议类型为IP协议类型、且目的IP地址不是无线mesh节点的IP地址,则确定第一报文为待转发报文。

为便于描述,将上述两个步骤结合起来进行说明。

数据链路层对第一报文进行解析,可以获得第一报文的MAC帧类型、目的MAC地址、协议类型和目的IP地址等信息。

MAC帧类型有三种:控制帧类型、数据帧类型和管理帧类型。其中,控制帧负责区域的清空、信道的获取以及载波监听的维护,并在接收到数据时予以肯定确认,借此提高工作站之间数据传送的可靠性;数据帧负载在工作站之间传输数据;管理帧负责监督,主要用来加入或退出无线网络以及处理接入点之间的关联关系。

如果第一报文的MAC帧类型为数据帧类型,则表明第一报文传输的是数据。如果第一报文的目的MAC地址为该无线mesh节点的MAC地址,则表明该第一报文是发送给本节点的报文。

在MAC帧类型为数据帧类型、目的MAC地址为该无线mesh节点的MAC地址,协议类型为IP协议类型、且目的IP地址不是该无线mesh节点的IP地址时,可以确定第一报文为待转发报文,需要对该第一报文进行转发。

如果不符合上述任一条件,则可以确定第一报文不是待转发报文。

在确定第一报文为待转发报文时,可以继续执行步骤S130的操作。

在确定第一报文不是待转发报文时,可以由数据链路层将第一报文继续发送给无线mesh节点的网络层,如图1所示。

S130:根据第一报文的目的IP地址,在预先获得的路由表中查找目的IP地址对应的下一跳地址。

下一跳地址包括下一跳IP地址和下一跳MAC地址。

在本发明实施例中,每个无线mesh节点的数据链路层中均保存有与同节点的网络层一致的路由表,该路由表中记录的信息可以参考表1所示:

表1

在本发明的一种具体实施方式中,该方法还可以包括以下步骤:

第一个步骤:接收网络层发送的路由信息;

第二个步骤:根据路由信息,更新路由表。

为便于描述,将上述两个步骤结合起来进行说明。

在本发明实施例中,无线mesh节点的网络层维护路由表的信息,当有路由信息的变更时,网络层可以向数据链路层发送变更的路由信息,数据链路层接收网络发送的路由信息后,根据该路由信息,数据链路层可以更新FPGA中的路由表。

路由信息至少包含操作代码、目的IP地址、前缀长度、下一跳IP地址、下一跳MAC地址。

路由信息的具体格式可以参考表2所示:

表2

其中,操作代码可以根据实际情况进行定义,比如定义如下:

0x01:增加路由;

0x08:更新已存在的路由;

0x80:删除已失效的路由。

数据链路层接收到网络层发送的路由信息后,解析路由信息中的操作代码,可以获取具体的路由信息操作指令,并进行相应操作以维护位于FPGA中的路由表。这样可以保证数据链路层中的路由表与网络层中的路由表中的信息一致。

在本发明实施例中,FPGA中的路由表可以采用FPGA中丰富的RAM资源进行实现,可支持快速的路由信息查找,采用目的IP地址作为RAM地址,下一跳IP地址和下一跳MAC地址作为相应地址内容。当收到路由查找的请求时,只需用一个时钟周期即可将下一跳路由信息查找到。

数据链路层确定第一报文为待转发报文后,可以根据第一报文的目的IP地址,在预先获得的路由表中查找目的IP地址对应的下一跳地址,即下一跳IP地址和下一跳MAC地址。

S140:根据下一跳地址,重新封装第一报文,获得第二报文;

在步骤S130,数据链路层在路由表中查找到下一跳地址,可以根据下一跳地址,更改第一报文的报文头,将更改后的报文头与第一报文的数据一起重新封装,获得第二报文。第二报文的目的IP地址与第一报文的目的IP地址相同,第二报文的目的MAC地址为当前查找到的下一跳MAC地址。

S150:将第二报文发送给物理层,以使物理层对第二报文进行调制后由射频发送给下一跳节点。

数据链路层对第一报文重新封装,获得第二报文后,将第二报文发送给物理层,物理层对第二报文进行调制后由射频发送出去,发送给下一跳节点。具体的,数据链路层可以将数据写入至发送缓冲队列中,发送完成队列在判断信道空闲后,将第二报文发送给物理层。

至此,在确定第一报文为待转发报文后,对第一报文的转发工作完成。

图2为数据链路层整体框架图。以图2为例,对本发明实施例所提供的方法的整体流程进行说明。

网络层可以通过AXI(一种总线协议)写信道发送路由信息,设备开机后,网络层向数据链路层发送路由命令,将路由表变更的路由信息按照表2所示格式逐条写入FPGA中的先入先出队列FIFO,进行命令解析,读取路由信息,解析操作代码,获取具体的路由信息操作指令,并进行具体的操作以维护位于FPGA中的路由表。

物理层接收到第一报文后,对第一报文进行解析,获取MAC帧类型、目的MAC地址、协议类型和目的IP地址,据此确定第一报文是否为待转发报文,如果是,则从路由表中查找下一跳地址,重新封装第一报文,获得第二报文,将数据经过数据选择器MUX写入到AXI发送缓冲队列中,发送完成队列在判断信道空闲后,将第二报文发送至物理层,经物理层调制后由射频发送出去。如果否,则由AXI接收缓冲通过AXI读通道发送给网络层。

本发明实施例将传统的网络层报文转发方式改变为网络层协助维护路由表,由数据链路层进行报文的快速转发,这种方式极大的利用了CPU串行运行管理能力强,而FPGA芯片并行运行具有较强的运算查找能力的特点,让运行在CPU中的网络层进行路由维护和管理,而运行在FPGA中的数据链路层进行转发路由的快速查找和包重组,减少了报文多层传递引入的时延,减轻了CPU负载,也极大地减少了因转发过程引入的整个链路延时,提高了话音的最高跳数,提升了设备的传输性能。

应用本发明实施例所提供的方法,无线mesh节点的数据链路层在接收到无线mesh节点的物理层发送的第一报文后,对第一报文进行解析,确定第一报文是否为待转发报文,如果是,则根据第一报文的目的IP地址,在预先获得的路由表中查找目的IP地址对应的下一跳地址,并根据下一跳地址,重新封装第一报文,获得第二报文,将第二报文发送给物理层,物理层对第二报文进行调制后由射频给下一跳节点。在数据链路层直接完成报文的转发,需要转发的报文不需要从数据链路层到达网络层,再从网络层发送回数据链路层,可以减小转发延迟,且数据链路层所在的FPGA并行运行具有较强的查找能力,通过FPGA进行路由查找,减轻了CPU负载。

相应于上面的方法实施例,本发明实施例还提供了一种基于无线mesh网络的报文转发装置,应用于无线mesh节点的数据链路层,无线mesh节点为无线mesh网络中的任意一个节点,下文描述的一种基于无线mesh网络的报文转发装置与上文描述的一种基于无线mesh网络的报文转发方法可相互对应参照。

参见图3所示,该装置包括以下模块:

第一报文接收模块310,用于接收无线mesh节点的物理层发送的第一报文;

待转发报文确定模块320,用于对第一报文进行解析,确定第一报文是否为待转发报文,如果是,则触发下一跳地址查找模块330;

下一跳地址查找模块330,用于根据第一报文的目的IP地址,在预先获得的路由表中查找目的IP地址对应的下一跳地址,下一跳地址包括下一跳IP地址和下一跳MAC地址;

第二报文获得模块340,用于根据下一跳地址,重新封装第一报文,获得第二报文;

第二报文发送模块350,用于将第二报文发送给物理层,以使物理层对第二报文进行调制后由射频发送给下一跳节点。

应用本发明实施例所提供的装置,无线mesh节点的数据链路层在接收到无线mesh节点的物理层发送的第一报文后,对第一报文进行解析,确定第一报文是否为待转发报文,如果是,则根据第一报文的目的IP地址,在预先获得的路由表中查找目的IP地址对应的下一跳地址,并根据下一跳地址,重新封装第一报文,获得第二报文,将第二报文发送给物理层,物理层对第二报文进行调制后由射频给下一跳节点。在数据链路层直接完成报文的转发,需要转发的报文不需要从数据链路层到达网络层,再从网络层发送回数据链路层,可以减小转发延迟,且数据链路层所在的FPGA并行运行具有较强的查找能力,通过FPGA进行路由查找,减轻了CPU负载。

在本发明的一种具体实施方式中,还包括第一报文发送模块,用于:

在确定第一报文不是转发报文时,将第一报文发送给无线mesh节点的网络层。

在本发明的一种具体实施方式中,待转发报文确定模块320,具体用于:

对第一报文进行解析,获得第一报文的MAC帧类型、目的MAC地址、协议类型和目的IP地址;

如果MAC帧类型为数据类型、目的MAC地址为无线mesh节点的MAC地址、协议类型为IP协议类型、且目的IP地址不是无线mesh节点的IP地址,则确定第一报文为待转发报文。

在本发明的一种具体实施方式中,还包括路由表更新模块,用于:

接收网络层发送的路由信息;

根据路由信息,更新路由表。

在本发明的一种具体实施方式中,路由信息至少包含操作代码、目的IP地址、前缀长度、下一跳IP地址、下一跳MAC地址。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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