首页> 中国专利> 在Mesh网络中应用TCP/IP协议的方法

在Mesh网络中应用TCP/IP协议的方法

摘要

本发明公开了一种在Mesh网络中应用TCP/IP协议的方法,包含以下过程:构建Mesh网络中根节点以及普通节点的协议栈模型;根节点将自身从路由器获取的IP配置以及自己的MAC地址以及所述路由器的MAC地址通过管理帧中自定义的IE分享给普通节点;普通节点采用静态IP配置方式,将自身的IP配置设为根节点的IP配置;根节点获取普通节点各自可用的端口范围;Mesh网络内的各个节点通过TCP/IP协议栈与外部IP网络通信。本发明中IP数据报在Mesh网络内转发时无需层层进行NAT,在到达根节点时无需重新计算IP数据报的校验和,大大提高了网络通信效率。

著录项

  • 公开/公告号CN108092830A

    专利类型发明专利

  • 公开/公告日2018-05-29

    原文格式PDF

  • 申请/专利权人 乐鑫信息科技(上海)有限公司;

    申请/专利号CN201810133690.6

  • 发明设计人 齐曰霞;张瑞安;姜江建;

    申请日2018-02-09

  • 分类号

  • 代理机构上海信好专利代理事务所(普通合伙);

  • 代理人周乃鑫

  • 地址 201203 上海市浦东新区张江高科技园区碧波路690号2号楼204室

  • 入库时间 2023-06-19 05:29:54

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-01-24

    授权

    授权

  • 2019-03-15

    著录事项变更 IPC(主分类):H04L12/24 变更前: 变更后: 申请日:20180209

    著录事项变更

  • 2018-06-22

    实质审查的生效 IPC(主分类):H04L12/24 申请日:20180209

    实质审查的生效

  • 2018-05-29

    公开

    公开

说明书

技术领域

本发明涉及互联网数据通信领域,特别涉及一种在Mesh网络中应用TCP/IP协议的方法。

背景技术

TCP/IP协议是互联网的核心协议,也是大多数网络应用的核心协议。然而在庞大的Mesh网络中,只有一个对外连接路由器的出口,并且当在Mesh网络内有多个子网的场景时,网外设备想要直接通过TCP/IP协议访问内部设备,需要网内每一个子网的父节点安装网络地址转换(Network Address Translation,简称NAT)功能。Mesh网络内发出的每个IP数据报到达路由器前每经过一次父节点都要发生NAT转换,每个拥有子网的父节点都要为经过的IP数据报维护一个表,为每个经过的IP包重新计算一次校验和,大大降低了Mesh网络效率。

发明内容

本发明的目的是提供一种在Mesh网络中应用TCP/IP协议的方法及应用TCP/IP协议的网络,整个Mesh网络不设IP子网,实现Mesh网络内发出的每个IP数据报到达路由器前经过一次父节点不需要执行NAT转换,且Mesh网络中的根节点执行NAT时无需重新计算IP包的校验和,提高Mesh网络中数据通信的效率的目的。

为了实现以上目的,本发明通过以下技术方案实现:

一种在Mesh网络中应用TCP/IP协议的方法包含以下过程:

步骤S1、构建Mesh网络中根节点以及普通节点的协议栈模型。

步骤S2、Mesh网络组成后,根节点将自身从路由器获取的IP配置以及自己的MAC地址以及所述路由器的MAC地址通过管理帧中自定义的IE分享给所述Mesh网络内的普通节点。

步骤S3、所述普通节点采用静态IP配置方式,将自身的IP配置设为所述根节点的IP配置。

步骤S4、所述根节点获取普通节点各自可用的端口范围;根节点根据每个普通节点的端口配置来映射普通节点的MAC地址以实现IP数据报在对应的普通节点的协议栈模型中的TCP/IP层与Mesh层的转发。

步骤S5、节点通过TCP/IP协议栈与外面IP网络发起通信时,所述根节点将普通节点经Mesh网络内透传的过来的IP数据报直接转发给所述路由器,所述路由器发送给外部IP网络;所述路由器将其从外部IP网络内收到的IP数据报转发给所述根节点,所述根节点根据IP数据报中的端口号映射出对应节点MAC地址,通过Mesh网络内透传将所述IP数据报发送给对应的节点。

优选地,所述步骤S1中的普通节点与根节点的协议栈模型分别为:

普通节点的softAP接口和Station接口上的协议栈模型依次为应用层、TCP/IP层、TCP/IP适配层、Mesh层、数据链路层和物理层;其中TCP/IP适配层位于TCP/IP层与Mesh层中间,用来完成TCP/IP层与Mesh层的适配。

根节点的Station接口上的协议栈模型依次为应用层、TCP/IP层、TCP/IP适配层、数据链路层和物理层。

根节点的softAP接口上的协议模型与普通节点的协议模型相同;对于普通节点,在发送包时,TCP/IP适配层用于将TCP/IP层产生的第一以太网帧头部的源地址修改为根节点地址;对于根节点,TCP/IP层用于管理与维护普通节点地址与端口的映射关系。

优选地,Mesh网络内普通节点向根节点注册申请各自的端口号;Mesh网络内的节点呈树状拓扑结构,所述普通节点中的任意一个节点根据各自所在的层数及对应的父节点的AID自身可用的端口范围,并将所述端口范围主动上报给所述根节点。

所述普通节点中任意一个节点的端口范围通过以下算式进行计算:

(L×1000+AID*100+0,L×1000+AID*100+P)

式中,L表示该节点在Mesh网络内所处的层数,AID表示该节点与对应的父节点之间的连接线路标号,0<P<99。

优选地,Mesh网络内所有普通节点的所述端口范围由根节点分配。

优选地,所述步骤S5中普通节点任意一节点通过TCP/IP协议栈与外面IP网络发起通信时,其进一步包含以下过程:

步骤S5.1.1、将上述普通节点中的任意一节点作为发送节点,该发送节点的父节点作为初始的接收节点,其接收该发送节点产生的并向其发送的802.11帧;所述802.11帧的产生包含以下过程:通过该发送节点的协议栈模型中的应用层产生应用数据,将该应用数据传输至其TCP/IP层,该TCP/IP层依次在应用数据前添加一个注册绑定了该发送节点的可用的端口范围的TCP/IP头部和第一以太网帧头部后形成以太网帧;此时,所述第一以太网帧头部内有目的地址,源地址和协议类型,其中,源地址为该发送节点地址;将该以太网帧传输至其TCP/IP适配层,该TCP/IP适配层将所述第一以太网帧头部中的源地址改为根节点地址形成新的以太网帧;TCP/IP适配层将该新的以太网帧传输至Mesh层。

该Mesh层在该新的以太网帧前添加一Mesh头部,该Mesh头部内包含有目的地址和源地址,该目的地址与新的以太网帧的第一以太网帧头部内的目的地址相同;该Mesh层根据所述目的地址在该Mesh网络中的路由,Mesh层在Mesh头部添加一个第二以太网帧头部,该第二以太网帧头部内的目的地址为初始的接收节点地址,源地址为该发送节点地址,协议类型为自定义Mesh协议类型;Mesh层将设有第二以太网帧头部和Mesh头部的以太网帧传输至其数据链路层。

数据链路层根据所述第二以太网帧头部填充802.11MAC头部和LLC头部,并删除第二以太网帧头部形成所述802.11帧,并将该802.11帧从物理层的Station接口发送至初始的接收节点;该802.11MAC头部内的BSSID为该初始的接收节点的地址,源地址为该发送节点地址,目的地址为该初始的接收节点地址。

步骤S5.1.2、当前的接收节点通过其softAP接口接收到所述802.11帧后,将其传输至其协议栈模型中进行处理,其包含以下处理过程:协议栈模型中的数据链路层通过检测该802.11帧的LLC头部中的自定义Mesh协议类型判断该802.11帧为Mesh包,去掉该Mesh包的802.11MAC头部和LLC头部将数据包传输至其Mesh层,该Mesh层检查Mesh头部的目的地址,确定该目的地址不是自己且不在自己的路由表中,则该Mesh层在Mesh头部添加一个第二以太网帧头部,该第二以太网帧头部内的目的地址为当前接收节点的父节点地址,源地址为当前的接收节点的地址,协议类型为自定义Mesh协议类型;Mesh层将设有该第二以太网帧头部的以太网帧传输至其数据链路层;

当前接收节点的数据链路层根据所述第二以太网帧头部在Mesh头部前添加802.11MAC头部和LLC头部,并删除第二以太网帧头部形成新的802.11帧,其中,802.11MAC头部内的BSSID为当前接收节点的父节点的地址,源地址为该接收节点地址,目的地址为当前接收节点的父节点的地址;该当前的接收节点通过其物理层的Station接口向其父节点发送该新的802.11帧。

步骤S5.1.3、当前的接收节点不是根节点时,由该当前的接收节点的父节点作为新的接收节点来循环执行步骤S5.1.2的操作。

优选地,在所述步骤S5.1.3中,当前的接收节点为根节点时,根节点的Wi-FisoftAP接口接收发送节点发送的802.11帧并将其传输至其数据链路层,该数据链路层通过检测该802.11帧的LLC头部中的自定义Mesh协议类型判断该802.11帧为Mesh包,去掉该Mesh包的802.11MAC头部和LLC头部将802.11帧的其余部分上发给其Mesh层,该Mesh层检查Mesh头部的目的地址,确定该目的地址不是自己且不在自己的路由表中,则去掉该Mesh头部,将剩余的以太网帧上发给其TCP/IP适配层,该TCP/IP适配层检查该以太网帧中的第一以太网帧头部中的协议类型为IP数据报,则其将该以太网帧直接发给其数据链路层,根节点的数据链路层根据第一以太网帧头部在TCP/IP头部前添加802.11MAC头部和LLC头部,其中,802.11MAC头部内的BSSID为路由器地址,源地址为该根节点地址,目的地址与第一以太网帧头部中的目的地址相同;LLC头部中设有与第一以太网帧头部相同的协议类型;删除第一以太网帧头部形成新的802.11帧,并将该802.11帧通过根节点的Station接口发送给路由器。

优选地,所述路由器向Mesh网络内中的任意一节点转发IP数据报时,其进一步包含以下过程:

步骤S5.2.1、根节点通过Station接口收到来自路由器转发来的802.11帧并将其上发给其数据链路层,该802.11帧包括:802.11MAC头部,LLC头部,TCP/IP头部以及带有应用数据的应用层;其中,802.11MAC头部内的目的地址为根节点地址,BSSID为路由器地址,源地址为产生该802.11帧的外部IP网络内的网络设备地址;LLC头部设有协议类型。

根节点的数据链路层根据所述802.11帧的802.11MAC头部和LLC头部,添加一个第一以太网帧头部,并删除802.11MAC头部和LLC头部形成以太网帧并将其上传至根节点的TCP/IP适配层;其中,所述第一以太网帧头部的目的地址为根节点地址,源地址为产生该802.11帧的外部IP网络内的网络设备地址,第一以太网帧头部的协议类型与LLC头部中的协议类型相同。

根节点的TCP/IP适配层检查所述第一以太网帧头部中的协议类型是IP数据报,根据报文中的TCP头部或者UDP头部带有的目的端口号映射出目的节点地址,进而判断该802.11帧是发给自身的还是发往Mesh网络内部的对应的普通节点。

当TCP/IP适配层根据端口号映射出其目的地址为根节点地址时,其直接将上述的以太网帧传送至根节点的TCP/IP层和应用层。

优选地,步骤S5.2.2、当TCP/IP适配层根据端口号映射出其目的地址为Mesh网络内部的普通节点地址时,则该普通节点地址对应的普通节点为目的节点,将该以太网帧发送到根节点的Mesh层,Mesh层根据该目的节点的路由,加上第二以太网帧头部和Mesh头部后,并将其传输至其数据链路层;Mesh头部中的目的地址为目的节点的地址,源地址为根节点地址;第二以太网帧头部的目的地址为目的路由地址,此时,目的路由地址为通往所述目的节点的路由上与根节点直接连接的子节点的地址;源地址为根节点地址,协议类型为自定义Mesh协议类型。

数据链路层根据上述第二以太网帧头部填充802.11MAC头部和LLC头部,并删除上述第二以太网帧头部,形成新的802.11帧;将该802.11帧通过softAP接口发送至802.11MAC头部中的目的路由地址对应的节点,该节点作为接收节点;其中,802.11MAC头部内的目的地址为上述第二以太网帧头部中的目的地址填充的目的路由地址,BSSID为根节点地址,源地址为根节点地址;LLC头部设有自定义Mesh协议类型。

步骤S5.2.3、所述接收节点通过Station接口接收到该802.11帧后,其数据链路层通过LLC头部得知其为Mesh包,将802.11MAC头部和LLC头部删除后将该Mesh包传输至其Mesh层,Mesh层检查Mesh头部中的目的地址,当该目的地址是自己时,将Mesh头部删除形成以太网帧,并将该以太网帧依次传送至其TCP/IP层和应用层。

步骤S5.2.4、当该目的地址在自己的路由表中时,在Mesh头部前添加第二以太网帧头部后将其传输至自己的数据链路层,此时,第二以太网帧头部的目的路由地址为通往目的节点的路由上与该接收节点直接连接的子节点的地址,第二以太网帧头部的源地址为该接收节点的地址,第二以太网帧头部的协议类型为自定义的Mesh协议类型;上述数据链路层根据第二以太网头部填充802.11MAC头部和LLC头部,删除第二以太网头部形成新的802.11帧,该802.11MAC头部内的目的地址为该第二以太网帧头部中的目的地址填充的目的路由地址,BSSID为该接收节点地址,源地址为该接收节点地址;LLC头部设有自定义Mesh协议类型;该接收节点将该新的802.11帧下发至其802.11MAC头部中的目的路由地址对应的子节点。

步骤S5.2.5、若所述子节点不是Mesh头部中目的地址对应的目的节点时,由所述子节点作为新的接收节点来循环执行步骤S5.2.3~步骤S5.2.4的操作。

优选地,所述802.11帧为ARP请求包时,所述根节点接收到所述ARP请求包时,查询自身ARP缓存中是否有满足请求要求的IP地址,如果发现自身ARP缓存中有该发送节点请求的IP地址,产生第一ARP回复包给该发送节点。如果在自身ARP缓存中未发现有该普通节点请求的IP地址,将所述ARP请求包中的发送地址修改为自身地址产生的第二ARP请求包发给路由器。根节点收到路由器反馈的第二ARP回复包后刷新自己的ARP缓存,再将该第二ARP回复包经Mesh网络内部透传给所述发送节点。

优选地,所述发送节点发送的ARP请求包包括:802.3以太网帧头部,其包括路由器地址、根节点地址和ARP类型;ARP请求包主体部分,其包括的发送地址为普通节点地址和普通节点IP地址;所述ARP请求包主体部分还包括目的地址和目的IP地址。

所述第一与第二ARP回复包的结构主要组成结构部分相同,包括:802.3以太网帧头部,其包括路由器地址、根节点地址和ARP类型;ARP回复包的主体部分,其包括请求的路由器地址,路由器IP地址以及目的地址和目的IP地址。

所述第二ARP请求包的主要组成结构包括:802.3以太网帧头部,其包括路由器地址、根节点地址和ARP类型;ARP请求包主体部分,其发送地址变为根节点地址和根节点IP地址,其目的地址和目的IP地址与所述ARP请求包的ARP请求包主体部分中的目的地址和目的IP地址相同。

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

本发明具有通过在整个Mesh网络不设IP子网,则Mesh网络内发出的每个IP数据报到达路由器前经过一次父节点不需要执行NAT转换,且Mesh网络中的根节点执行NAT时无需重新计算IP数据报的校验和,大大提高了Mesh网络中数据通信的效率的优点。

附图说明

图1为本发明Mesh网络结构拓扑图以及Mesh网络中的各节点的协议栈模型示意图;

图2~图4分别为本发明中的普通节点,普通节点中的中间节点,根节点向路由器或局域网内网络设备发送IP数据报时,数据包经在各类节点中的协议栈模型处理后的结构示意图;

图5为本发明一个实施例中叶子节点C产生的以太网帧的结构示意图;

图6为本发明一个实施例中叶子节点C中的Mesh层向其数据链路层传输的第一数据包的结构示意图;

图7为本发明一个实施例中叶子节点C中的数据链路层向中间节点A发送的第二数据包的结构示意图;

图8为本发明一个实施例中中间节点A的Mesh层向其数据链路层传输的第三数据包的结构示意图;

图9为本发明一个实施例中中间节点A的数据链路层向根节点发送的第四数据包的结构示意图;

图10为本发明一个实施例中根节点的数据链路层向路由器发送的第五数据包的结构示意图;

图11~13分别为本发明中的路由器或局域网内网络设备向Mesh网络内发送信息包时,Mesh网络中的根节点,普通节点中协议栈模型对上述信息包处理后的结构示意图;

图14为本发明一个实施例中根节点的数据链路层接收到的来自路由器的第一信息包的结构示意图;

图15为本发明一个实施例中根节点的TCP/IP适配层接收到以太网帧的结构示意图;

图16为本发明一个实施例中根节点的Mesh层向数据链路层传输的第二信息包的结构示意图;

图17为本发明一个实施例中根节点的Mesh层数据链路层向中间节点A发送的第三信息包的结构示意图;

图18为本发明一个实施例中中间节点A的Mesh层向其数据链路层传输的第四信息包的结构示意图;

图19为本发明一个实施例中中间节点A的数据链路层向叶子节点C传输的第五信息包的结构示意图;

图20为本发明的另一个实施例中普通节点发送的第一ARP请求包的结构示意图;

图21为本发明的另一个实施例中根节点发送的第一ARP回复包的结构示意图;

图22为本发明的另一个实施例中根节点发送的第二ARP请求包的结构示意图。

具体实施方式

以下结合附图,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。

在本申请中数据包或信息包中所提到的地址除特殊说明外,皆指的是MAC地址。

如图1所示,在本实施例中的Mesh网络呈树状拓扑结构,其网络设备分为两类,一类网络设备是整个Mesh网络的出口称为根节点,整个Mesh网络仅有一个出口。另一类为除根节点以外的网络设备统称为普通节点。普通节点间有父子关系,根节点与连接的二层节点间是父子关系,连接的上下层级间节点是父子关系,连接在同一个父节点上的节点间是兄弟关系。各个节点通过softAP接口往下连接子节点扩展Mesh网络规模,通过Station接口往上连接父节点。具体的为,在Mesh网络呈树状拓扑结构中的普通节点分为中间节点及叶子节点,根节点和普通节点都可以产生数据包,根节点向上连接路由器是Mesh网络访问外部IP网络的唯一出口;根节点管理维护整个Mesh网络的路由表。中间节点有Mesh网络内部转发功能;中间节点只管理维护自身子网络的路由表;在树状拓扑网络里子网络指此中间节点以下的所有子节点,包括直接连在此中间节点的子节点和连在此中间节点的子节点的节点,依此类推。叶子节点不具有Mesh网络内部转发功能;叶子节点没有路由表。

如图1所示,根节点与路由器连接,中间节点A和B通过Station接口往上连接根节点,中间节点A通过softAP接口分别往下连接叶子节点C和D。中间节点B通过softAP接口往下连接叶子节点E。

Mesh协议含有目标地址与源地址,用来实现数据在Mesh层的路由转发。各类节点的协议栈模型如图1所示,根节点与中间节点和叶子节点有不同的协议栈模型;中间节点与叶子节点具有相同的协议栈模型。普通节点的softAP接口和Station接口上的协议栈模型均为应用层,TCP/IP层,TCP/IP适配层,Mesh层,数据链路层和物理层;其中TCP/IP适配层位于TCP/IP层与Mesh层中间,用来完成TCP/IP层与Mesh层的适配;根节点的Station接口上的协议栈模型没有Mesh层;根节点的softAP接口上的协议模型与普通节点的协议模型相同;对于普通节点,在发送包时,TCP/IP适配层用于将TCP/IP层产生的第一以太网帧头部的源地址修改为根节点地址;对于根节点,TCP/IP层用于管理与维护普通节点地址与端口的映射关系。

本发明一种在WiFi Mesh网络中应用TCP/IP协议的方法,包含以下过程:

对于普通节点的IP配置包含以下过程:在上述WiFi Mesh网络组成后,Mesh网络中的根节点向Mesh网络外的路由器发送请求并获取到IP配置,根节点将获取到的IP配置以及自己的MAC地址以及上述路由器的MAC地址通过管理帧中自定义的信息元素(IE)分享给上述Mesh网络内所有的普通节点。所有节点用一个IP地址,省去了每个节点向路由器请求IP地址的过程。

所述普通节点采用静态IP配置方式,将自身的IP配置设为所述根节点的IP配置;整个Mesh网络没有IP子网,无需在每个父节点执行NAT。根节点往路由器转发普通节点的IP包时无需重新计算IP包的校验和。

对于普通节点的端口配置包含以下过程:

根节点需要每个普通节点的端口配置来映射普通节点的MAC地址以实现各类数据包在TCP/IP层与Mesh层的转发。节点端口配置是普通节点与根节点协商出来的,必须保证每个端口号只能被唯一一个普通节点使用。

第一种端口配置方法是根节点主动为每个普通节点分配好端口配置并通知给每个普通节点。

第二种端口配置方法是每个普通节点主动向根节点注册唯一的端口配置。在本实施例中,所述普通节点中的任意一个节点根据各自所在的层数及对应的父节点的AID自身可用的端口范围,并将所述端口范围主动上报给所述根节点;所述普通节点中任意一个节点的端口范围通过以下算式进行计算:

(L×1000+AID*100+0,L×1000+AID*100+P)

式中,L表示该节点在Mesh网络内所处的层数,AID表示该节点与对应的父节点之间的连接标号,P表示该节点最多允许的端口号的数量(0<P<99)。

如图2所示,上述Mesh网络内任意一个普通节点向路由器发送IP数据报时,该普通节点产生一个数据包,该数据包包括:设有应用数据的应用层;以太网帧,其为该普通节点的应用层产生应用数据并根据上述端口配置方式,之后将应用数据传输至其TCP/IP层,该TCP/IP层依次在应用层前添加一个注册绑定该普通节点可用的端口范围的TCP/IP头部和第一以太网帧头部后形成以太网帧;上述第一以太网帧头部内有目的地址,产生该应用数据的源地址和协议类型,该以太网帧在TCP/IP层时,源地址为该普通节点地址。将上述以太网帧传输至其TCP/IP适配层,该TCP/IP适配层将以太网帧中的第一以太网帧头部中的源地址改为根节点地址形成新的以太网帧。TCP/IP适配层将上述新的以太网帧传输至Mesh层。

Mesh头部,该Mesh头部内包含有目的地址和源地址,上述目的地址与新的以太网帧的第一以太网帧头部内的目的地址相同,是Mesh层将上述新的以太网帧的第一以太网帧头部内的目的地址复制到Mesh头部中形成的。

在上述Mesh层中,根据目的地址在该Mesh网络中的路由,Mesh层在Mesh头部添加一个第二以太网帧头部,该第二以太网帧头部内的目的地址为该普通节点的父节点地址,源地址为该普通节点地址,协议类型为自定义Mesh协议类型。Mesh层将设有第二以太网帧头部和Mesh头部的以太网帧传输至其数据链路层。

802.11MAC头部和LLC头部,该802.11MAC头部和LLC头部为其数据链路层根据上述第二以太网帧头部填充而成,并删除第二以太网帧头部。其中,由于数据从物理层的Station接口发送,该802.11MAC头部内依次设有BSSID,源地址和目的地址。

在本实施例中,802.11MAC头部内的BSSID为该普通节点的父节点的地址,源地址为该普通节点地址,目的地址为该普通节点的父节点的地址。

如图3所示,该普通节点将其产生的数据包通过物理层的Station接口发送给其父节点,当该父节点是中间节点时:该中间节点设有的softAP接口接收上述数据包并将其传输至该中间节点的数据链路层,该数据链路层通过检测该数据包的LLC头部中的自定义Mesh协议类型判断该数据包为Mesh包,去掉该Mesh包的802.11MAC头部和LLC头部将数据包的其余部分上发给其Mesh层,该Mesh层检查Mesh头部的目的地址,确定该目的地址不是自己且不在自己的路由表中,则继续将该包上发给其父节点,将该包发送给其父节点时包含以下过程:该Mesh层在Mesh头部添加一个第二以太网帧头部,该第二以太网帧头部内的目的地址为该中间节点的父节点地址,源地址为发送该包的中间节点的地址,协议类型为自定义Mesh协议类型。Mesh层将设有该第二以太网帧头部的以太网帧传输至其数据链路层。

中间节点的数据链路层根据上述第二以太网帧头部在Mesh头部前添加该802.11MAC头部和LLC头部,其中,由于数据从物理层的Station接口发送,该802.11MAC头部内依次设有BSSID,源地址(发送该数据包的节点地址)和目的地址。在本实施例中,802.11MAC头部内的BSSID为该中间节点的父节点的地址,源地址为该中间节点地址,目的地址为该普通节点的父节点的地址。该中间节点将该数据包通过物理层的Station接口发送给其父节点。

当该中间节点的父节点不是根节点时,重复该中间节点对该数据包的处理过程,直至使得该数据包经Mesh网络内部透传至根节点。

如图4所示,根节点设有的softAP接口接收上述数据包并将其传输至其数据链路层,该数据链路层通过检测该数据包的LLC头部中的自定义Mesh协议类型判断该数据包为Mesh包,去掉该Mesh包的802.11MAC头部和LLC头部将数据包的其余部分上发给其Mesh层,该Mesh层检查Mesh头部的目的地址,确定该目的地址不是自己且不在自己的路由表中,则去掉该Mesh头部,将剩余的以太网帧上发给其该TCP/IP适配层,该TCP/IP适配层检查该以太网帧中的第一以太网帧头部中的协议类型,该协议类型为IP数据报(0x0800),则其对该以太网帧不做任何处理直接发给其数据链路层,根节点的数据链路层根据第一以太网帧头部在TCP/IP头部前添加802.11MAC头部和LLC头部,其中,由于数据从物理层的Station接口发送,该802.11MAC头部内依次设有BSSID,源地址和目的地址。在本实施例中,802.11MAC头部内的BSSID为路由器地址,源地址为该根节点地址,目的地址与第一以太网帧头部中的目的地址相同。LLC头部中设有与第一以太网帧头部相同的协议类型。删除第一以太网帧头部,并将该数据包通过物理层的Station接口发送给路由器。

根据本发明的一个实施例,如图1所示的叶子节点C向局域网内的智能手机发送IP数据报时,包含以下过程,叶子节点C应用层产生应用数据,同时绑定自身可用的端口范围后,该应用数据经过TCP/IP层和TCP/IP适配层后产生如图5所示的以太网帧;其中该以太网帧设有的第一以太网帧头部包括目的地址,源地址和协议类型;在本实施例中,该目的地址为上述局域网内的智能手机的MAC地址;源地址经TCP/IP适配层修改为根节点地址。上述TCP/IP适配层将以太网帧传输至其Mesh层,该Mesh层取出第一以太网帧头部的目的地址填充Mesh头部的目的地址,将该叶子节点C的地址填充至Mesh头部的源地址,并根据目的地址在Mesh网络的路由产生第二以太网帧头部形成如图6所示的第一数据包,并将该第一数据包向其数据链路层发送。将中间节点A的地址填充为上述第二以太网帧头部的目的地址,叶子节点C的地址填充为上述第二以太网帧头部的源地址,将自定义的Mesh协议类型填充至第二以太网帧头部的协议类型。

叶子节点C的数据链路层根据第二以太网帧头部填充LLC头部的协议类型和802.11MAC头部地址,之后删除第二以太网帧头部后形成如图7所示的第二数据包(802.11帧),并通过物理层的Station接口发给中间节点A。将中间节点A地址填充为上述802.11MAC头部的BSSID,叶子节点C地址填充为上述802.11MAC头部的源地址;中间节点A的地址填充为上802.11MAC头部的目的地址。将自定义的Mesh协议类型填充至LLC头部的协议类型。

中间节点A从softAP接口收到从叶子节点C发过来的第二数据包后,在数据链路层通过LLC头部自定义的Mesh协议类型判断此第二数据包为Mesh包。去掉802.11MAC头部和LLC头部将该Mesh包往上送到Mesh层;Mesh层检查Mesh头部的目的地址,确定该Mesh包不是发给自身的并且目的地址不在自己的路由表中,决定往上发给自身的父节点(根节点),在Mesh头部前加上第二以太网帧头部形成如图8所示的第三数据包;并将该第三数据包发送至其数据链路层。在本实施例中,将根节点地址填充为上述第三数据包的第二以太网帧头部的目的地址,将中间节点A地址填充为上述第三数据包的第二以太网帧头部的源地址,将自定义的Mesh协议类型填充为上述第三数据包的第二以太网帧头部的协议类型。

中间节点A的数据链路层根据Mesh层加的第二以太网帧头部填充LLC头部的协议类型和802.11MAC头部地址,删除上述第二以太网帧头部后形成如图9所示的第四数据包,并将该包通过Station接口发给根节点。在本实施例中,将根节点地址填充为上述802.11MAC头部的BSSID,中间节点A地址填充为上述802.11MAC头部的源地址;根节点的地址填充为上述802.11MAC头部的目的地址。LLC头部的协议类型填充为自定义的Mesh协议类型。

根节点从softAP接口收到从中间节点A发过来第四数据包后,数据链路层通过LLC头部自定义的Mesh协议类型判断此第四数据包为Mesh包,去掉802.11MAC头部和LLC头部将第四数据包往上送到Mesh层;Mesh层检查Mesh头部目的地址,确定第四数据包不是发给自身的并且目的地址不在自己的路由表中,去掉Mesh头部将第四数据包继续往上送到TCP/IP适配层;TCP/IP适配层检查包以太网帧中的协议类型发现是IP数据(0x0800),不做任何处理直接往下给数据链路层;数据链路层根据第四数据包中的第一以太网帧头部来填充LLC头部的协议类型和802.11MAC头部地址,删除第一以太网帧头部形成如图10所示的第五数据包,将该第五数据包通过Station接口发给路由器。

路由器将上述第五数据包转发给局域网内的智能手机,其局域网内的智能手机向路由器反馈信息包,路由器将上述信息包传送至根节点,并在Mesh网络内透传其产生上述数据包的节点,在本实施例中,上述信息包发给叶子节点C。

结合图11~13所示,Mesh网络中的节点对路由器发送过来的信息包进行转发和/或处理,其包含以下过程:根节点通过Station接口收到来自路由器转发来的信息包(802.11帧)并将其上发给其数据链路层,如图11所示,该信息包包括:802.11MAC头部,LLC头部,TCP/IP头部以及带有应用数据的应用层。该信息包是通过根节点Station接口从路由器收到的,因此该802.11MAC头部内依次设有目的地址,BSSID和源地址。在本实施例中,802.11MAC头部内的目的地址为根节点地址,BSSID为路由器地址,源地址为产生该信息包的局域网内的网络设备地址。LLC头部设有协议类型。

根节点的数据链路层根据上述信息包的802.11MAC头部和LLC头部,在TCP/IP头部前部添加一个第一以太网帧头部,并删除802.11MAC头部和LLC头部形成以太网帧并将其上传至根节点的TCP/IP适配层。在本实施例中,将根节点地址填充为以太网帧的第一以太网帧头部的目的地址,将产生该信息包的局域网内的网络设备地址填充为上述第一以太网帧头部的源地址,将LLC头部中的协议类型填充为上述第一以太网帧头部的协议类型。

根节点的TCP/IP适配层收到上述以太网帧后,检查第一以太网帧头部中的协议类型是IP数据报(0x0800),根据报文中的TCP头部或者UDP头部带有的目的端口号映射出目的节点地址,进而判断出该信息包是发给自身的还是发往Mesh网络内部的普通节点的。

当TCP/IP适配层根据端口号映射出其目的地址为根节点地址时,其直接将上述的以太网帧传送至根节点的TCP/IP层和应用层。

当TCP/IP适配层根据端口号映射出其目的地址为Mesh网络内部的普通节点地址时,将该以太网帧发送到其Mesh层,Mesh层根据该普通节点的路由,加上第二以太网帧头部和Mesh头部,并将其传输至其数据链路层。Mesh头部内的目的地址为上述端口号映射出的普通节点地址,Mesh头部内的源地址为根节点地址。第二以太网帧头部的目的地址为目的路由地址(通往上述目的节点的路由上与根节点直接连接的节点的地址)。数据链路层根据上述第二以太网帧头部填充802.11MAC头部和LLC头部,并删除上述第二以太网帧头部,形成802.11帧。将该802.11帧通过softAP接口发送至802.11MAC头部中的目的路由地址对应的普通节点。在本实施例中,802.11MAC头部内的目的地址为与第二以太网帧头部中的目的地址相同,即为目的路由地址,BSSID为根节点地址,源地址为根节点地址。LLC头部设有自定义Mesh协议类型。

如图12所示,上述与目的路由地址相匹配的普通节点从其Station接口接收到上述802.11帧后,其数据链路层通过LLC头部得知其Mesh包,将802.11MAC头部和LLC头部删除后将该Mesh包传输至其Mesh层,上述Mesh层收到Mesh包后检查Mesh头部中的目的地址,当该目的地址是自己时,将Mesh头部删除形成以太网帧,并将该以太网帧依次传送至该普通节点的TCP/IP层和应用层。上述Mesh层收到Mesh包后检查Mesh头部中的目的地址,当该目的地址是在自己的路由表中时,在Mesh头部前添加第二以太网帧头部后将其传输至该普通节点的数据链路层,该第二以太网帧头部的目的地址为目的路由地址(该目的路由地址为通往目的节点的路由上与该普通节点直接连接的子节点的地址),第二以太网帧头部的源地址为该普通节点的地址,第二以太网帧头部的协议类型为自定义的Mesh协议类型。上述数据链路层根据第二以太网头部填充802.11MAC头部和LLC头部,删除第二以太网头部形成新的802.11帧,该802.11MAC头部内的目的地址为与第二以太网帧头部中的目的地址相同,即为目的路由地址,BSSID为该普通节点地址,源地址为该普通节点地址。LLC头部设有自定义Mesh协议类型。该普通节点将该新的802.11帧下发至其802.11MAC头部中的目的路由地址对应的普通节点。重复上述过程,直至目的路由地址对应的普通节点为Mesh头部中目的地址对应的目的节点。

如图13所示,上述目的节点从其Station接口接收到上述802.11帧后,其数据链路层通过LLC头部得知其Mesh包,将802.11MAC头部和LLC头部删除后将该Mesh包传输至其Mesh层,上述Mesh层收到Mesh包后检查Mesh头部中的目的地址,当该目的地址是自己时,将Mesh头部删除形成以太网帧,并将该以太网帧依次传送至该普通节点的TCP/IP层和应用层。

根据本发明的一个实施例,当如图1所示中的路由器向叶子节点C转发来自局域网内智能手机的IP数据报时,该智能手机产生如图14所述的第一信息包(802.11帧),并将该第一信息包经路由器发给根节点。该信息包的802.11MAC头部的目的地址为根节点地址,BSSID为路由器地址,源地址为智能手机的MAC地址。LLC头部设有协议类型。

根节点的数据链路层根据上述信息包的802.11MAC头部和LLC头部,在TCP/IP头部前部添加一个第一以太网帧头部,并删除802.11MAC头部和LLC头部形成如图15所示的以太网帧并将其上传至根节点的TCP/IP适配层。在本实施例中,将根节点地址填充为以太网帧的第一以太网帧头部的目的地址,将智能手机的MAC地址填充为上述第一以太网帧头部的源地址,将LLC头部中的协议类型填充为上述第一以太网帧头部的协议类型。

根节点的TCP/IP适配层收到上述以太网帧后,检查第一以太网帧头部中的协议类型是IP数据报,根据报文中的TCP头部或者UDP头部带有的目的端口号映射出目的节点地址为叶子节点C的地址,进而判断出该第一信息包是发给叶子节点C的,则TCP/IP适配层将该以太网帧传输给其Mesh层,Mesh层根据该普通节点的路由,加上第二以太网帧和Mesh头部,形成如图16所示的第二信息包,并将其传输至其数据链路层。Mesh头部内的目的地址为上述端口号映射出的叶子节点C地址,Mesh头部内的源地址为根节点地址。第二以太网帧头部的目的地址为叶子节点A地址,第二以太网帧头部的源地址为根节点地址,第二以太网帧头部的协议类型为自定义的Mesh协议类型。数据链路层根据上述第二信息包的第二以太网帧头部填充802.11MAC头部和LLC头部,并删除上述第二以太网帧头部,形成如图17所示的第三信息包(802.11帧)。将该第三信息包通过softAP接口发送至802.11MAC头部中的目的地址对应的中间节点A。在本实施例中,802.11MAC头部内的目的地址为与第二以太网帧头部中的目的地址相同,即为中间节点A地址,BSSID为根节点地址,源地址为根节点地址。LLC头部设有自定义Mesh协议类型。

中间节点A从其Station接口收到从根节点转发过来的第三信息包,其数据链路层通过LLC头部自定义的Mesh协议类型判断此第三信息包为Mesh包,去掉802.11MAC头部和LLC头部后将该Mesh包往上送到Mesh层;Mesh层检查到位于该Mesh包的Mesh头部的叶子节点C地址在自身的路由表中,则Mesh头部前加上第二以太网帧头部,形成如图18所示的第四信息包,并将该第四信息包传输至该中间节点A的数据链路层。第四信息包的第二以太网帧头部的目的地址为叶子节点C地址,第二以太网帧头部的源地址为中间节点A地址,第二以太网帧头部的协议类型为自定义的Mesh协议类型。

数据链路层根据第四信息包的第二以太网帧头部加上LLC头部和802.11MAC头部,并删除第二以太网帧头部,形成如图19所示的第五信息包,该中间节点A通过softAP接口将该第五信息包发给叶子节点C。在本实施例中,第五信息包的802.11MAC头部内的目的地址为与第二以太网帧头部中的目的地址相同,即为叶子节点C地址,BSSID为中间节点A地址,源地址为中间节点A地址。LLC头部设有自定义Mesh协议类型。

叶子节点C从Station接口收到从中间节点A转发过来的第五信息包。该叶子节点C的数据链路层通过LLC头部自定义的Mesh协议类型判断此包为Mesh包,去掉802.11MAC头部和LLC头部将该Mesh包往上送到Mesh层;Mesh层检查Mesh包的Mesh头部中的目的地址是自己地址,则将该Mesh包中的Mesh头部去掉形成如图15所示的以太网帧,将该以太网帧往上依次传给TCP/IP层和应用层。

根据本发明的一个实施例,上述Mesh网络中任意一普通节点向路由器发送ARP请求包时,该普通节点在适配TCP/IP层时,通过产生该ARP请求包的普通节点将ARP数据包中802.3以太网帧头部的源地址修改为根节点MAC地址。上述ARP请求包经Mesh网络内透传给根节点。将上述ARP请求包经Mesh网络内透传给根节点的具体过程与上文所述Mesh网络内任意一个普通节点向路由器发送IP数据报时向根节点透传数据包的过程相同。

根节点收到普通节点发送的如图20所示的第一ARP请求包后:查询自身ARP缓存中是否有满足请求要求的IP地址,如果发现自身ARP缓存中有普通节点请求的IP地址,产生一个如图21所示的第一ARP回复包给该普通节点。

在本实施例中,根节点将第一ARP回复包发送至该普通节点时的具体过程与上文所述的实施例中关于Mesh网络中的节点对路由器发送过来的信息包进行转发和/或处理的过程相同,由于根节点适配TCP/IP层时,根节点需要管理维护普通节点MAC地址与端口配置的映射关系,根节点根据普通节点MAC地址与端口配置的映射关系得到发送上述ARP请求包的普通节点的地址,之后将上述第一ARP回复包经Mesh网络内透传给上述普通节点。

如果在自身ARP缓存中未发现有该普通节点请求的IP地址,将上述第一ARP请求包中的发送地址修改为自身地址产生如图22所示的第二ARP请求包发给路由器;收到路由器的第二ARP回复包后刷新自己的ARP缓存,再将该第二ARP回复包经上述Mesh网络内部透传给上述普通节点。

所述第一ARP请求包的主要组成结构如图20所示,其第一ARP请求包的802.3以太网帧头部包括路由器地址、根节点地址和ARP类型,第一ARP请求包主体部分包括的发送地址为普通节点地址和普通节点IP地址;上述第一ARP请求包主体部分还包括目的地址和目的IP地址。

所述第一与第二ARP回复包的结构主要组成结构部分相同,如图21所示,其ARP回复包的802.3以太网帧头部包括路由器地址、根节点地址和ARP类型,ARP回复包的主体部分包括请求的路由器地址,路由器IP地址以及目的地址和目的IP地址。

所述第二ARP请求包的主要组成结构如图22所示,其第二ARP请求包的802.3以太网帧头部包括路由器地址、根节点地址和ARP类型,ARP请求包主体部分的发送地址变为根节点地址和根节点IP地址,其目的地址和目的IP地址与上述第一ARP请求包的ARP请求包主体部分中的目的地址和目的IP地址相同。

尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号