CN103957085A - 一种基于网络编码的无线网状网络介质访问控制方法 - Google Patents
一种基于网络编码的无线网状网络介质访问控制方法 Download PDFInfo
- Publication number
- CN103957085A CN103957085A CN201410216133.2A CN201410216133A CN103957085A CN 103957085 A CN103957085 A CN 103957085A CN 201410216133 A CN201410216133 A CN 201410216133A CN 103957085 A CN103957085 A CN 103957085A
- Authority
- CN
- China
- Prior art keywords
- node
- packet
- general data
- data bag
- coded data
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 101100127285 Drosophila melanogaster unc-104 gene Proteins 0.000 claims description 12
- 238000000205 computational method Methods 0.000 claims description 7
- 230000001186 cumulative effect Effects 0.000 claims description 7
- 230000015572 biosynthetic process Effects 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 abstract description 17
- 238000004364 calculation method Methods 0.000 abstract description 2
- 238000012544 monitoring process Methods 0.000 abstract description 2
- 238000002474 experimental method Methods 0.000 description 34
- 238000004891 communication Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 23
- 230000005540 biological transmission Effects 0.000 description 22
- 238000011160 research Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 10
- 101100172132 Mus musculus Eif3a gene Proteins 0.000 description 7
- 239000007787 solid Substances 0.000 description 7
- 230000009467 reduction Effects 0.000 description 6
- 238000004088 simulation Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000000151 deposition Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000002834 transmittance Methods 0.000 description 2
- 102000006479 Heterogeneous-Nuclear Ribonucleoproteins Human genes 0.000 description 1
- 108010019372 Heterogeneous-Nuclear Ribonucleoproteins Proteins 0.000 description 1
- 241000396836 Trinodes Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000011430 maximum method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002969 morbid Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于网络编码的无线网状网络介质访问控制方法,该方法包含的步骤有:数据包接收阶段、数据包发送阶段、ACK监听阶段。本协议在介质访问控制层中引入了网络编码机制,比传统基于冲突避免的介质访问控制方法有较大的吞吐提升;该方法解码成功率高,控制开销少,硬件消耗计算消耗低,移植性强,兼容性好,从另外一个角度,部分解决了网络拥塞问题。
Description
技术领域
本发明涉及无线网络技术领域,具体涉及一种基于网络编码的无线网络介质访问控制方法,适用于以提供高吞吐量为服务目的的无线网状网络。
背景技术
如何提高数据吞吐量是无线网状网络的重点研究课题。在信道介质资源有限的情况下,为接入设备提供高带宽高吞吐优质的数据传输服务,对无线网状网络的物理层、介质访问控制层提出较高要求。同时,无线网状网络的组网设备一般价格低廉,数据缓存能力、运算处理能力有限,在这样苛刻的硬件条件下,保证介质访问控制方法高效稳定运行同样是一个关键性问题。由于网络编码对吞吐量提升有显著作用,另外,网络编码需要额外的硬件资源,所以,基于网络编码兼具稳定性扩展性的无线网状网络介质访问控制方法是一个突破口。
无线网状网络在近些年有了广泛应用。主要为企业、学校、商场、车站等人员密集场所提供无线网络接入解决方案。其主要特征在于部署便捷、成本低廉、自动组网、扩展性高。在有线网络部署困难,扩展性无法保证的情况下,使用无线网状网络替代底层基础设施,是最简单有效的办法。利用无线网状网络提供互联网接入服务的关键在于,如何为众多无线终端提供高吞吐、稳定的数据传输机制。现有技术中,为了提高无线网状网络的数据吞吐量,主要有以下几种研究:
第一类:物理层更高带宽;该方法的缺点是通过硬件技术,提高单频带宽或多频复用,技术难度大,增加了无线接入设备价格,对终端设备要求高,属于一种治标不治本的解决办法。同时高频通信、多频通信,换取吞吐量的代价是无线信号空间的电磁污染。
第二类:网络层机会路由;该方法的缺点是额外通信开销大,控制复杂,实现难度大。路由协议一般工作在网络层,机会路由正常工作使用的控制信息需要额外传输来完成,这导致数据链路层付出了额外开销。而且机会路由实现起来技术难度大,对硬件资源的消耗还没有详尽的研究。
第三类:更严格的介质访问控制方法;该类方法的缺点是要求无线网状网络节点与节点之间达到一定程度的默契,也就是说彼此知道对方即将做什么,节点之间时钟同步要求极高。而且,一旦网络中某个设备出现问题,与其合作的其他设备也将面临同样问题。网络普适性、鲁棒性、扩展性都存在问题。
第四类:网络层加入网络编码机制;该类方法的缺点是网络编码独立于介质访问控制层和TCP层,需要使用额外的无线广播协议来提供可靠的广播服务。同时,这类方法会在网络中制造范围更大的虚拟瓶颈节点,导致大范围网络拥塞。而且,网络层的拥塞控制理论,会导致这类方法无法正常工作。另外,这类方法也很少考虑对硬件资源的消耗,实现起来技术难度大,设备适应性差。
独立于介质访问控制层和TCP层的网络编码机制,每个节点都要机会监听邻居节点广播的数据包,放在自己的缓存内,以备解码时使用。这样做带来的缺陷主要有:1)无节制的监听邻居数据包对本地缓存消耗是灾难性的。其缓存消耗除了链路负载外,还受邻居个数影响。而且这些监听到的数据包是否会被利用也是未知数。吞吐量提升付出的机会成本太高,应用不确定性高,可控性差。2)节点预测邻居是否缓存了某个数据包,主要依据链路传输成功率ETX指标进行概率估计。根据ROC校验理论,其使用的估计模型都有固定的错误率。在节点数量高,终端设备多,通信干扰大,无线链路质量较差的情况下,此固定错误率会导致相当一部分编码包不能被正确解码,从而浪费了更多硬件资源和信道资源。3)这种机制通常追求每次编码都将尽可能多的数据包编在一次,以减少单个节点的广播次数。但这种做法在实际中并不合适。一来未必所有的目标节点都能正确解码,二来可靠的广播协议在目的节点多的时候,往往会限制更大范围内的节点通信,造成整片区域信道利用率低下。
发明内容
基于网络编码的无线网状网络介质访问控制方法与通常的介质访问控制方法显著不同,针对现有无线网状网络介质访问控制方法在吞吐量提升能力上的不足和网络层引入编码机制的诸多缺陷,本发明提出一种高吞吐、低消耗,兼具普适性鲁棒性的介质访问控制方法。
为了实现上述任务,本发明采用的技术方案是:
一种基于网络编码的无线网状网络介质访问控制方法,在该无线网状网络中,当一个节点收到邻居节点发来的一个数据包后,判断该数据包是普通数据包还是编码数据包:
如果是编码数据包,则对该编码数据包进行解码,解码成功得到需要的普通数据包,解码不成功则丢弃该编码数据包;
如果是普通数据包,则判断该普通数据包是否达到编码数据包的生成条件,如达到则对其进行编码,并将编码后的得到的编码数据包向邻居节点广播;
编码数据包的生成条件及编码过程如下:
在该无线网状网络中,节点A至少有两个邻居节点,设初始时刻节点A的转发队列为空,则从初始时刻开始:节点A收到邻居节点发来的一个普通数据包p2后,在转发队列中寻找一个普通数据包p1,如果存在p1同时满足公式1和公式2,则将p1和p2编码成为编码数据包p;
在公式1中,s1、s2分别为数据包p1、p2的源节点MAC地址,d1、d2分别为p1、p2下一跳节点的MAC地址,t1、t2分别为p1、p2达到节点A的时间,θ取值为0.3秒;
在公式2中,r和c分别为节点A从初始时刻开始,收到邻居节点发送的普通数据包的累计个数和节点A的转发队列中,满足公式1的普通数据包的累计个数,其中r每次累加1,c每次累加2,ξ取值为0.08。
进一步地,普通数据包p1和p2经过亦或运算编码成为编码数据包p,具体为:
将普通数据包p2目的节点的MAC地址和p1目的主机MAC地址做亦或运算,所得结果填入p1的目的主机MAC字段;将普通数据包p2源主机MAC地址和p1源主机MAC地址做亦或运算,所得结果填入p1的源节点的MAC字段;将p2的数据部分和p1的数据部分做亦或运算,所得结果填入p1的数据部分字段;如果p1和p2的数据部分长度不一致,则将长度较短的一方尾部填0补位,生成的新的数据包为编码数据包p。
进一步地,在该无线网状网络中,每个节点中均设置有资源队列,当节点将一个普通数据包成功发送给另一个节点后,将该普通数据包从转发队列移入到资源队列中,并为该普通数据包启动一个倒计时器,倒计时器初始值为θ,倒计时器归零后,将该普通数据包从资源队列移除。
进一步地,当节点收到一个编码数据包后,对其进行解码操作:节点从自己的资源队列中寻找与收到的编码数据包对应的普通数据包,将找到的普通数据包和收到的编码数据包进行亦或运算,得到需要的普通数据包。
进一步地,节点A生成编码数据包p后,对p进行广播的步骤如下:
步骤S1,创建广播RTS帧,将普通数据包p1、p2的下一跳节点的MAC地址写入RTS帧中,并确定信道占用时长Tb,将Tb添加到广播RTS帧的通信时间字段,Tb计算方法如下:
Tb=5×SIFS+(82+L)×t0 (公式3)
公式3中,SIFS为802.11协议规定的最短等待时间常数,L为编码数据包p的长度,t0为传输一个字节所需要的时间,由链路带宽决定;
步骤S2,节点A广播RTS帧申请信道;
步骤S3,邻居节点收到RTS帧后,确定自己回复RTS帧的等待时间Tcts,并在等待时间后回复CTS帧给节点A;Tcts计算方法如下:
公式4中,iMAC为该邻居节点的MAC地址,d1、d2分别是数据包p1、p2的下一跳节点的MAC地址;
步骤S4,节点A发送完广播RTS帧,等待2×SIFS+28×t0时间后,查看收到的CTS帧情况,如果分别收到p1、p2的下一跳节点回复的CTS帧,则节点A等待SIFS时间后开始发送编码数据包p,否则节点A进入退避等待。
本发明的优点主要有以下几点:
1.增加了网络吞吐量;
由于引入网络编码机制到数据链路层,本发明从本质上提升了网络吞吐量。在硬件条件不变情况下,使用本发明可以提高7%-40%的网络数据吞吐能力。
2.移植性强,兼容性好;
由于对CSMA/CA做了很好的向下兼容,因此支持本发明的设备可以同不支持本发明的设备正常通信、组网。同时,本发明增加并强化了介质访问控制子层,对网络其他层面不构成影响,接口透明。
3.解码成功率高,额外通信少;
与其他网络编码机制不同,本发明使用ACK帧和数据包头传递必要的编码信息,节点不使用ETX路由尺进行预测,因此,不存在预测误差带来的无法解码现象。而且,本发明不依赖其他协议(如机会路由)的控制信息,不需要节点之间传递独立的控制信息。
4.硬件消耗少;
与其他网络编码机制相比,本方法更注重对缓存资源和计算资源的占用。节点不再机会监听邻居之间的通信,因而存储解码资源的缓存消耗降至最少。
5.部分解决了网络拥塞问题;
在没有拥塞控制的网络中,网络负载大时,主干路瓶颈节点及瓶颈节点周围难免出现拥塞现象。本方法恰恰利用瓶颈节点传输信息量大的优点,将可能的数据包编码在一起。从而让这些数据包快速通过瓶颈节点,减少拥塞,减缓拥塞的产生。
附图说明
图1是编码机制原理及网络部署示意图;
图2是数据发送阶段过程图;
图3是数据接收阶段过程图;
图4是ACK帧监听阶段过程图;
图5(a)和图5(b)是本发明中帧的结构示意图;
图6是编码数据包广播过程示意图;
图7是本方案整体流程图;
图8是研究网络负载对编码机会的影响以及ξ确定示意图;
图9是研究θ对编码机会数量影响的实验结果图;
图10(a)、图10(b)、图10(c)、图10(d)是相同ω、不同θ下,解码资源队列使用情况图;
图11(a)、图11(b)、图11(c)、图11(d)是不同的ω下,θ对三种节点所占比例的影响示意图;
图12(a)、图12(b)是研究网络负载对各方法性能影响的实验结果图;
图13(a)、图13(b)是研究链路传输成功率对各方法性能影响的实验结果图;
图14(a)、图14(b)、图14(c)、图14(d)是研究网络负载对各方法缓存使用影响的实验结果图;
具体实施方式
申请人在建筑物中部署大规模无线网状网络,为给手机、笔记本电脑等设备提供互联网接入服务,需要吞吐量高、兼容性好、消耗资源少的介质访问控制方法,以保障各接入设备的数据服务质量。针对节点硬件条件有限、吞吐需求高、无线信道质量差等复杂情况,提出了基于网络编码的无线网状网络介质访问控制方法。
本方法使用网络编码机制提高吞吐量,因此在无线网状网络部署时,除网络边缘节点外,其他节点至少要有2个邻居节点,而且在所有邻居节点中,至少存在1对不能相互直接通信的邻居节点,如图1所示。节点B、C、D在A的通信范围内,但节点D不在B的通信范围内,只有这样,节点A才能对B-A-D这条链路上的往返数据进行编码,否则如果D在B的通信范围内,B将把数据直接传递给D,A不会获得编码机会。
本方法所有节点位置固定或只有微小的移动。所有节点的通信半径不变。每个节点中均设置和维护三个队列:转发队列,用于存放将要发送给其他节点的数据包,可以是普通数据包,也可以是编码数据包;资源队列,用于存放解码时使用的普通数据包;还原队列,用于存放编码数据包发送失败后还原操作使用的普通数据包。
本方法所使用的网络编码机制,其核心思想在于,如图1所示,节点D首先发送普通数据包p1给B,中间要经过中转节点A转发;A收到p1后,并不立刻将p1转发给B,而是将p1缓存一段时间;节点B发送另一个普通数据包p2给节点D,同样需要A中转;A收到p2后,把p2和p1编码到一起,将编码数据包p1⊕p2广播出去,节点B和D收到编码包p1⊕p2后,都进行解码操作,得到各自需要的普通数据包。整个过程消耗三个通信周期,比原来的“接收——转发”过程减少一个通信周期,从而达到提升吞吐量的目的。
本方法以802.11协议为基础,方案中用到的普通数据包,即为802.11协议中,两个节点之间用于传递数据信息的数据包。本方案中,在802.11协议原有的基础上增加了广播RTS帧、编码数据包、编码ACK帧三种帧格式,各类帧和数据包的格式与802.11中基本相同,不同之处在于在普通数据包帧实体头部增加了长度为4B的数据包ID字段,在编码数据包帧实体头部增加了数据包ID字段和数据包长度字段。图5(a)、图5(b)给出了所有使用到的数据帧(包)格式,由于图片较大因此分为图5(a)和图5(b)两个图,但其表示的是一套;表1以图1的示例为例,给出了本方案用到的数据包(帧)的结构当中,与802.11中相同的数据包(帧)含义不同的字段的说明,除了这些字段,其余字段与802.11协议中字段的含义相同。其中“帧”是数据链路层概念,是数据包的单位。本方案中,“帧”与“包”的含义相同,均指含有控制信息和数据信息在内的比特序列。本方案中着重在于对帧或包内部结构的讨论,因此凡出现“帧”的地方都可用“包”替换,如“编码数据帧”即指“编码数据包”。
表1
一、本发明方法详细步骤
在本发明的无线网状网络结构中,除了边缘节点之外,其余节点均按照本方法进行数据包的转发和处理过程,这些节点所做的事情是相同的,因此为了便于清晰地介绍本方案,下面以图1所示的模型为例,将方案简化到一个信息交互单元,即A、B、D三个节点之间的信息交互过程来说明;这个模型中的A节点可以是网状网络中除边缘节点之外任意的一个节点,而B、D节点为A的邻居节点,并且D需要发送普通数据包p1给B,同时B需要发送普通数据包p2给节点D。
本方案中,在不同的节点内部产生数据包接收阶段、数据包发送节点和ACK帧监听阶段,下面分别对每个阶段进行详细介绍。
1.数据包接收阶段
在本方案中,从源节点发送到目的节点的数据包,在源节点得到该数据包时,称为普通数据包,该数据包和802.11中的数据包结构相同,唯一不同之处是在该数据包的帧实体头部增加了长度为4B的数据包ID字段,该ID字段由源节点生成。普通数据包在网络中各个节点的传递过程中,如果其在某个节点处符合编码条件,就将两个普通数据包编码成为编码数据包并广播;如其不符合编码条件,则该普通数据包按照802.11协议当中的普通数据包一样进行转发,从而完成该节点处的传递过程,因此一个节点收到邻居节点发来的数据包就有两种类型:普通数据包和编码数据包。
当一个节点A收到邻居节点发来的数据包后,判断该数据包是普通数据包还是编码数据包,如图3所示;
步骤S10,确定数据包的类型
节点物理层收到完整无误的数据包后,根据数据包MAC header长度判断这是一个普通数据包还是编码数据包。帧分为三个部分:帧头(Mac header)、帧实体(body)、FCS域。如果MAC header长度为30B,表明收到一个普通数据包,如果MAC header长度为36B,表明收到一个编码数据包。
对于编码数据包,对该编码数据包进行解码,解码成功得到需要的普通数据包;解码不成功则丢弃该编码数据包;得到普通数据包后,节点将该数据包当做新接收的数据包一样进行处理;
对于普通数据包,节点首先提取这个数据包帧实体头部的数据包ID记作idx,然后在自己的资源队列中查找。如果找到了包含idx的解码资源包,说明收到的普通数据包曾经是某个编码数据包的一部分,但那个编码数据包没有被成功接收到,上一跳节点把编码数据包解码后,进行了重传操作,因此节点要移除寻找到的解码资源包。如果找不到包含idx的解码资源包,说明收到的普通数据包可以进行编码处理。
编码数据包的生成条件及编码过程如下:
设置初始时刻节点A的转发队列为空,即转发队列中没有数据包。每个节点都在缓存中维护两个整形变量r和c,一张四列表格b。r和c的初始时刻值均为零,从初始时刻开始,两个变量的值一直不断累加;b存放转发队列中普通数据包的辅助信息。
这里的初始时刻是为了说明本发明的方案而定义的一个时刻,在该时刻,节点A的转发队列中没有数据包。这个初始时刻可以理解为节点A设置在传感器网络中的时间点,即传感器节点开始工作时的时刻,从这个时刻开始,节点A中维护的变量r和c的值就从0开始一直累加。
节点A收到邻居节点B发来的普通数据包p2后,在转发队列的表格b中由后向前寻找一个普通数据包p1,如果存在p1同时满足公式1和公式2,则将p1和p2编码成为编码数据包p;
在公式1中,s1、s2分别为数据包p1、p2的源节点MAC地址,d1、d2分别为p1、p2下一跳节点的MAC地址,节点A可通过路由算法获取;t1、t2分别为p1、p2达到节点A的时间,θ取值为0.3秒,其确定过程见实验二。
公式1所给出的条件是,节点A收到普通数据包p2后,在其转发队列中存在数据包p1还没有转发出去,并且p1和p2满足:p1的下一跳节点(目的节点)是p2的源节点,p1的源节点是p2的下一跳节点(目的节点),p2与p1到达节点A的时间差小于θ(即p1的源节点还在资源队列中保存着一个p1的副本),满足这些条件后,即图1示例中给出的,D需要发送普通数据包p1给B,同时B需要发送普通数据包p2给节点D这种情况;
在公式2中,r为节点A从初始时刻开始,收到邻居节点发送的普通数据包的累计个数,即只要A收到一个普通数据包,就将r的值加1;c指节点A的转发队列中,满足公式1的普通数据包的累计个数,即可进行编码的数据包的个数,如果一个普通数据包符合公式1的条件,可进行编码,则c的值累加2;ξ是一个固定常数,其取值为0.08;k为编码开关,当k<ξ时,说明当前节点工作在低负载的情况下,或附近网络在为FTP、流媒体等应用提供服务,则该普通数据包不需要编码,按照802.11的普通数据包进行转发;而k>ξ时,说明流经当前节点的数据流方向足够复杂,应采用本方法进行普通数据包的编码,ξ值的确定过程见实验一。
步骤S11,普通数据包的编码
本方案中对符合编码条件的普通数据包p1和p2经过亦或运算编码成为编码数据包p,即p=p1⊕p2,具体为:
节点A将普通数据包p2放入还原队列,以备编码数据包p发送失败时还原过程使用。节点A在p1的MAC header中目的节点MAC字段后,增加一个目的节点2MAC字段,其中写入p2的目的节点MAC地址;用p1的目的主机MAC和p2的目的主机MAC地址做亦或运算,所得结果填入p1的目的主机MAC字段;用p1的源主机MAC和p2的源主机MAC地址做亦或运算,所得结果填入p1的源主机MAC字段;在p1的帧实体数据包ID字段后,添加p2的数据包ID、p1帧实体数据部分长度、p2帧实体数据部分长度;用p1的帧实体数据部分与p2的帧实体数据部分做亦或运算,所得结果填入p1的帧实体数据部分字段,如果p1和p2的数据部分长度不一致,则将长度较短的一方尾部填0补位;则两者编码后生成的新的数据包即为编码数据包p。
步骤S12,编码信息传递
节点A将普通数据包p2与p1编码到一起后,制作一个编码ACK帧,该帧的尾缀ID1字段填入数据包p1帧头部的数据包ID,尾缀ID2字段填入数据包p2帧头部的数据包ID。等待SIFS时间后,节点A将编码ACK帧发送给节点B。
步骤S13,编码数据包解码
A制作好编码数据包p后,向邻居节点广播。当节点D将数据包p1发送给节点A后,节点D将p1从转发队列移入到资源队列中,并为该普通数据包p1启动一个倒计时器,倒计时器初始值为θ,倒计时器归零后,将该普通数据包从资源队列移除。移入到资源队列中的普通数据包p1在D收到由p1生成的编码数据包进行解码时使用。
其邻居节点D收到A广播的p,首先从这个p的帧实体的头部提取出数据包1ID、数据包2ID、数据包1长度、数据包2长度,分别记作id1、id2、l1、l2。节点D在自己的资源队列中寻找与收到的编码数据包p对应的普通数据包,即帧实体头部包含id1或id2的普通数据包。找到后将这个普通数据包记作p3,如果找不到p3,说明p不能被成功解码,将p丢弃。
节点D从p3中提取数据包ID和数据包长度,分别记作id3和l3。如果id3等于id2,则将编码数据包p的目的节点2MAC地址复制到p3的目的节点MAC字段;用p3的目的主机MAC地址与p的编码目的主机MAC地址做亦或运算,所得结果放入p3的目的主机MAC字段;用p3的源主机MAC地址与p的编码源主机MAC地址做亦或运算,所得结果放入p3的源主机MAC字段;用p3帧实体中的数据部分与p编码帧实体中的编码数据部分做亦或运算,所得结果长度如果大于l2,则进行截取,只保留前l2个字节,并将截取后的结果写入p3的帧实体数据部分。id3等于id1时做法类似;新生产的p3即解码后得到的数据包p2。
节点D在解码p时,确定回复ACK帧等待时间Tack,然后回复普通ACK帧给节点A,表明自己收到了编码数据包,并且已将数据包成功解码。节点D把p成功解码后,将处理过的p3数据包提交给网络层。
注:步骤S13部分介绍的编码数据包解码过程,是以节点D为当前节点进行解释的,而节点A如果收到其他节点发来的编码数据包,和这部分的解码过程是一样的。以D为当前节点进行解释是以图1给出的示例进行的说明,实际上在应用过程中,节点A所完成的过程是在除了边缘节点之外的每个节点中均发生的,B-A-D是抽象出来的一个用于解释本方案的简单模型,其实B、D和A完成的过程是一样的。
2.数据包发送阶段
步骤S20,确定信道占用类型
节点A判断自己的转发队列中第一个数据包MAC header的长度,如果是30B,说明这是一个普通数据包,按照802.11的RTS-CTS流程操作。
如果MAC header长度是36B,说明将要广播一个编码数据包,如编码数据包p,如2所示。
步骤S21,创建RTS帧
创建一个广播RTS帧,将自己的MAC地址添加到该帧的源节点MAC字段,将p的MAC header中的目的节点1MAC和目的节点2MAC字段复制到该编码RTS帧的对应字段,以图1所示模型为例,即将普通数据包p1、p2的下一跳节点的MAC地址复制到该广播RTS帧的MAC字段;然后确定信道占用时长Tb,将Tb添加到RTS帧通信时间字段,Tb计算方法如下:
Tb=5×SIFS+(82+L)×t0 (公式3)
公式3中,SIFS为802.11协议规定的最短等待时间常数,L为编码数据包p的长度,t0为传输一个字节所需要的时间,由链路带宽决定;图6是编码数据包发送全过程示意图,Tb是从节点A开始发送广播RTS帧到节点B结束发送ACK帧所经历的时间,一共包括5个SIFS时间、1个广播RTS帧传输时间、2个CTS帧传输时间、1个编码数据帧传输时间和2个普通ACK帧传输时间。广播RTS帧长度26B,CTS帧和普通ACK帧长度都是14B。
步骤S22,节点A广播RTS帧申请信道;
步骤S23,邻居节点收到RTS帧后,确定自己回复RTS帧的等待时间Tcts,并在等待时间后回复CTS帧给节点A;Tcts计算方法如下:
公式4中,iMAC为该邻居节点,如邻居节点D收到该RTS帧,即为D的MAC地址,d1、d2分别是数据包p1、p2的下一跳节点的MAC地址,即B和D的MAC地址;节点D等待Tcts时间后,如果发现周围没有节点在使用信道,则回复CTS帧给节点A,表明自己可以与节点A通信。在接下来的Tb-Tcts-40×t0时间内,即使再收到其他节点发送的RTS帧也不做任何回复。如果节点D发现周围信道正在被使用,则直接丢掉节点A发来的RTS帧。节点B所做的事情与D相同。
步骤S24,判定信道申请结果
节点A发送完广播RTS帧,等待2×SIFS+28×t0时间后,查看收到的CTS帧情况,如果分别收到p1、p2的下一跳节点回复的CTS帧,说明信道申请成功,则节点A等待SIFS时间后开始发送编码数据包p,如果只收到一个CTS帧或没有收到CTS帧,说明书申请信道失败,节点A进入退避等待。
节点D收到A广播的编码数据帧后,进行解码操作(具体过程见步骤S13),并确定回复ACK帧的等待时间Tack,Tack计算方法如下:
其中iMAC为节点D的MAC地址,MACheader.DtMAC1是节点D收到的编码数据包的目的节点1MAC地址,即B的MAC地址;MACheader.DtMAC2是目的节点2MAC地址,即D的MAC地址。节点D等待Tack时间,如果编码包解码正确,回复普通ACK帧给节点A,否则直接丢弃收到的编码数据包。节点B所做的事情与D相同。
步骤S25,判定重传状态
节点A将p=p1⊕p2发送完毕后,等待2×SIFS+28×t0时间,查看收到的ACK帧情况。如果节点A分别收到来自节点B和节点D的两个ACK帧,说明B与D已收到编码数据包p1⊕p2并成功解码,这时节点A将p从转发队列移除,并从自己的还原队列中找到p2,将p2移除。如果一个ACK帧都没收到,则进入退避等待。
如果只收到节点D回复的ACK帧,而没有收到B回复的ACK帧,说明B没能正确收到编码数据包p或不能正确解码。此时,节点A需要从自己的还原队列中找到普通数据包p2,直接用p2替换转发队列中的p1⊕p2,然后退避等待。
如果只收到节点B回复的ACK帧,而没有收到D回复的ACK帧,说明B没能正确收到编码数据包p1⊕p2或不能正确解码。节点A从自己的还原队列中找到普通数据包p2。节点A需要将编码数据包p1⊕p2的MAC header中的目的节点2MAC字段(地址)移除;用编码目的主机MAC地址与p2的目的主机MAC地址做亦或运算,用所得结果替换p的编码目的主机MAC地址;用编码源主机MAC地址与p2的源主机MAC地址做亦或运算,用所得结果替换p的编码源主机MAC地址;去掉编码数据包帧实体头部的数据包2ID和数据包2长度;用p的帧实体中编码数据部分与p2的帧实体中数据部分做亦或运算,用所得结果替换p的编码数据部分;根据编码帧实体头部剩余的数据包1长度截断编码帧实体,丢弃多余部分;刷新p的FCS字段;最后从还原队列中移除p2。这样,便将编码数据包p还原成数据包p1,然后退避等待。
3.ACK帧监听阶段
本发明实施例ACK帧监听阶段包括更新资源队列、维护资源计时器等。主要功能是管理解码资源队列。在这一阶段,节点不但要侦听即将发送给自己的ACK帧,还要在退避等待过程中,空闲侦听其他节点之间传递的ACK帧。
图4为ACK帧监听阶段过程图,结合图1、图5及图6说明本实施例ACK帧监听阶段过程图具体步骤如下:
步骤S30,确定ACK帧状态。节点监听到ACK帧后,查看ACK帧的目的节点MAC字段是否与自己的MAC地址相同。如果相同,说明该ACK帧是对自己刚才发送的数据包的确认,需要更新资源队列并创建资源计时器;如果不相同,说明该ACK帧是空闲侦听得到的,查看该ACK帧是否为编码ACK帧,即其中是不是包含尾缀ID字段,若不含有尾缀ID字段,直接将这个ACK帧丢弃,否则,需要维护资源计时器。
步骤S31,更新资源队列。节点B发送普通数据包p2给节点A后,等待SIFS,如果没收到ACK帧,说明p2发送失败,进入退避等待。如果收到ACK帧,不论该ACK帧是不是编码ACK帧,都说明A已经成功收到p2。节点B将普通数据包p2从转发队列移入资源队列,并为资源包p2启动一个倒计时器,倒计时器初始值为θ,倒计时器归零后,把资源包p2从资源队列移除。因为根据公式1,倒计时器归零,节点A不会再对p2编码。
步骤S32,查看编码信息。如果节点B收到的ACK帧属于编码ACK帧,说明节点A不但成功接收了普通数据包p2,而且已经将p2同其他数据包编码到一起。节点B从ACK帧的尾缀ID1中提取数据包ID记作id1,即普通数据包p1帧实体头部的数据包ID。节点B停止步骤S31中为资源包p2开启的倒计时器,防止p2被意外移除,导致编码数据包p1⊕p2不解码。节点B将普通数据包p2帧实体头部的数据包ID改为id1,以便步骤S13操作。此后,普通数据包p2从资源队列中被移除只有两种情况发生:一是编码数据包p到达并成功解码,二是帧实体头部为id1的数据包到达(步骤S13)。
步骤S33,更新倒计时器。节点D发送普通数据包p1给节点A后,收到节点A回复的确认ACK帧,那是一个普通ACK帧,根据步骤S31,p1被移动到节点D的资源队列,并且一个倒计时器正在为资源包p1计时。此后节点D虽然没有使用信道发送数据,但要一直侦听通信范围内其他节点之间的通信。节点A收到节点B发送给它的普通数据包p2并达到编码条件后,将p2编码,并回复一个编码ACK帧给节点B。此时节点D会空闲侦听的这个编码ACK帧。节点D提取编码ACK帧的尾缀ID1记作id1,提取尾缀ID2记作id2。节点D在资源队列中查找帧实体头部为id1资源包,如果找到,说明空闲侦听到的编码ACK帧与自己有关,将找到的资源包帧实体头部改为id2,并停止这个资源包的倒计时器;如果找不到,说明这个编码ACK帧与自己无关,直接将其丢弃。
二、本发明方法中各相关参数的确定:
实验一:研究网络负载对编码机会的影响,以及ξ的确定;
步骤一,仿真实验场景初始化:
申请人模拟出一个长度为1400m,宽度为600m的无线网状网络,其中布置86个节点。在该实验中,每个节点的通信半径为175m,节点之间的链路传输成功率由物理环境测得。每次实验仿真时长为5s,每个节点每秒产生ω个数据包,目的地址随机选定,每个数据包的长度为1000B,链路带宽为54Mbps,网络层使用最小跳步数路由,通过ω控制网络负载。
步骤二,取ω=50,100,150…300,对于每一个ω的值,取θ=0.25s,0.50s,0.75s,1.00s,因此,共做了6×4组评估。为了保证实验结果的真实性,每组评估进行了1000次实验,取结果的期望值作为每组最终结果。
步骤三,分析与处理实验数据:
图8示出了在不同的ω取值下,步骤S23中(数据流复杂度)的变化情况。图中不同线代表不同θ取值。从实验结果可以看出:(1)对于不同θ,数据流复杂度有同样的走势。(2)当ω<50时,数据流复杂度增加较快;随着ω增加,数据流复杂度逐渐降低,而后趋于稳定。(3)不同θ的数据流复杂度曲线距离很近。这三个观察结果说明,当网络负载小时,节点很容易获取到信道资源,转发队列里的数据包很少,几乎找不到可以编码到一起的数据包;随着网络负载增大,转发队列开始堆积数据包,出现了许多两个数据包可以编码到一起的情况,也就是说编码机会在增多;但是,能编码到一起的数据包的总量占收到数据包的比例并不是一直增加的,当网络负载达到一个很高的值,数据流复杂度趋近于一个常量,这个常量同网络带宽和部署有关。也就是说,当网络负载很高时,影响数据流复杂度的因素主要是网络中数据流的复杂度。因此,我们通过观察,当<0.08时,只可能有两种情况出现:一是节点及其邻居都工作在低负载情况下,转发队列基本为空;二是节点及其邻居在为FTP、流媒体等一些特殊应用提供服务,网络中数据流的复杂度比较低,基本上是单向的。为了减少算法复杂性,我们将ξ确定为0.08。
实验二:研究θ对编码机会数量的影响;
步骤一,仿真实验场景初始化:
申请人模拟出一个长度为1400m,宽度为600m的无线网状网络,其中布置86个节点。在该实验中,每个节点的通信半径为175m,节点之间的链路传输成功率由物理环境测得。每次实验仿真时长为5s,每个节点每秒产生ω个数据包,目的地址随机选定,每个数据包的长度为1000B,链路带宽为54Mbps,网络层使用最小跳步数路由,通过ω控制网络负载。
步骤二,取θ=0.25s,0.50s,0.75s,1.00s,取ω=10,20,30,40,50,100,150,200,250,300,总共进行了4×10组评估。为了保证实验结果的真实性,每组评估进行了1000次实验,取结果的期望值作为每组最终结果。
步骤三,分析与处理实验数据:
图9示出了不同θ下,编码机会变化情况。图中不同线代表不同ω取值。从实验结果可以看出:(1)当ω<50时,编码机会几乎不随θ增大而发生变化;(2)当ω>50时,编码机会随θ增加而增加。这两个观察结果说明,当网络负载小时,即便θ再大,也不会出现更多的编码机会,主要节点很容易申请到信道将要转发的数据发送出去;当网络负载大时,随着θ增大,编码机会在逐渐增多,而且不同负载下的增长趋势基本一致,这个增长加速度是有数据流复杂度决定的。另外,图9中下面6条线的垂直距离比较大,远大于上面4条线的垂直距离,说明网络复杂对编码机会的影响更大一些。这个实验最终得到的结论是,θ对编码机会的影响远没有ω大,因为不能为了获得更多编码机会而将θ设得很大。
实验三:研究θ对节点缓存占用的影响,以及θ的确定;
步骤一,仿真实验场景初始化:
申请人模拟出一个长度为1400m,宽度为600m的无线网状网络,其中布置86个节点。在该实验中,每个节点的通信半径为175m,节点之间的链路传输成功率由物理环境测得。每次实验仿真时长为5s,每个节点每秒产生ω个数据包,目的地址随机选定,每个数据包的长度为1000B,链路带宽为54Mbps,网络层使用最小跳步数路由,通过ω控制网络负载。每个节点的缓存分配如下:转发队列长度不限定,解码资源队列长度400,如果解码资源队列使用完毕,另有长度为500的应急队列供存放解码资源使用,恢复队列占用与解码资源队列使用情况存在相关性,不做重点讨论。
步骤二,取θ从0.1s到1.0s,跳步为0.1s,取ω从50到300,跳步为50,总共进行了10×6组评估。为了保证实验结果的真实性,每组评估进行了1000次实验,取结果的期望值作为每组最终结果。
步骤三,分析与处理实验数据:
图10(a-d)示出了相同ω、不同θ下,资源队列使用情况。图中不同形状点代表不同消耗等级的节点:正方形节点资源消耗严重,不仅耗干了资源队列,还动用应急队列;圆形节点资源使用正常;菱形节点资源使用偏少,利用率低。从实验结果可以看出:(1)θ较小时,多数节点的资源队列没有得到充分利用;(2)θ较大时,虽然多数节点的资源队列得到充分利用,但将资源队列耗尽的节点也有很多。
图11(a-d)示出了在不同的ω下,θ对三种节点所占比例的影响。从实验结果可以看出:(1)在网络负载较小时,随着θ增加,三种节点的分布比例基本保持不变;(2)在网络负载处于中游时,相比负载轻的情况,缓存利用率低的节点大幅度减少,都转换成正常节点,但同时,在这种中度负载下,随着θ增加,会有一部分正常节点转换成红色的病态节点,当θ>0.3s时,这种变化特别明显;(3)在网络负载较高时,缓存利用率低的节点更少,但这种节点的数量也开始收到θ的影响,并且,病态节点的数量反倒比中度负载下少,这是由于在高负载情况下,数据量会分散在更广的范围,而不是快速向一部分节点汇集。
这些观察结果说明,在网络负载较低的情况下,θ的对缓存的使用情况几乎没有影响,这是影响缓存利用率的主要因素的网络的部署及链路质量,当网络负载较高时,θ的选择会带来两个主要影响,一是影响低利用率节点的数量,二是影响病态节点的数量。从这个实验,最终得到的结果是,想要增加缓存利用率,同时控制病态节点在忍受范围内,θ取0.3s。
三、本发明方法与其他方法的对比实验
下来我们通过一组实验来验证本发明方法相对于其他协议的优势。实验主要对以下三种算法的性能进行比较:
(1)FSNC:即本发明提出的方法。
(2)CSMA/CA:该协议是802.11使用最多的介质访问控制方法,使用RTS-CTS机制进行冲突避免,没有可靠的广播模块,没有编码机制。
(3)XORs:该方法是第一个将网络编码与实际应用结合起来的经典案例,也是被研究讨论最多的方法。与本发明提出的方法不同,XORs将网络编码机制放在介质访问控制层与TCP层之间,对两个层次都没有做出修改。
在这些实验中,我们使用了信息吞吐量这个概念做衡量指标,其含义是:单位时间内,全网所有节点发送的数据包的信息含量之和,其中信息含量,指的是编码时参加亦或运算的数据包的个数,没有经过编码的数据包信息含量恒为1。实验主要从以下几方面来证明本发明的优势:
①网络负载对协议性能的影响,②链路传输成功率对协议性能的影响,③网络负载对缓存利用的影响。
(1)网络负载对协议性能的影响:
仿真网络初始化:
申请人模拟出一个长度为1400m,宽度为600m的无线网状网络,其中布置86个节点。在该实验中,每个节点的通信半径为175m,节点之间的链路传输成功率由物理环境测得。每次实验仿真时长为5s,每个节点每秒产生ω个数据包,目的地址随机选定,每个数据包的长度为1000B,链路带宽为54Mbps,网络层使用最小跳步数路由,通过ω控制网络负载。根据之前试验结果,我们设定参数θ为0.3s,ξ为0.08。
仿真实验过程:
在该实验中,取ω=10,20,30,40,50,100,150,200,250,300,总共进行了10组评估。为了保证实验结果真实性,针对每个方法,每组评估进行了1000次测试,取结果的期望值作为每组最终结果。
实验结果:
图12(a,b)示出了各个协议全网多对多吞吐量与网络负载ω中间的关系。从图中可以看出,随着网络负载增加,没有编码机制的CSMA/CA的吞吐量逐渐增加而后趋于平稳,这是由于网络负载较高时,信道带宽被耗尽,全网吞吐不会无限增加下去;FSNC相比CSMA/CA有较明显的吞吐量提升,基本维持在7%以上,最时能达到40%;网络负载处于50到100之间时,XORs的吞吐量要高于FSNC,这是因为XORs和FSNC相比,主要不同在于使用了机会侦听,根据ETX路由尺进行邻居状态预测,将多个包编码到一起。但在负载较低和较高情况下,XORs的吞吐量不如FSNC,这是因为,在负载较低时,XORs寻找不到将多个包编码到一起的机会从而放弃编码,在负载较高时,有部分节点一次将多个数据包编码在一起,广播给更多对象,但是因为XORs也明确使用了可靠的广播协议,这就导致广播编码包时申请信道十分困难,经常由于某一个节点信道忙而取消整个广播过程;另外,在大信息量的数据包在广播时,所有接收节点的邻居都不能使用信道,这样就导致了更大范围内信道资源利用率低下,从而影响了全网吞吐量。这个实验说明,FSNC比CSMA/CA有更高的吞吐,同时比XORs有更好的适应性,能够适应多种网络负载。
(2)链路传输成功率对协议性能的影响:
仿真网络初始化:
申请人模拟出一个长度为1400m,宽度为600m的无线网状网络,其中布置86个节点。在该实验中,每个节点的通信半径为175m,每次实验仿真时长为5s,每个节点每秒产生ω个数据包,目的地址随机选定,每个数据包的长度为1000B,链路带宽为54Mbps,网络层使用最小跳步数路由,通过ω控制网络负载。根据之前试验结果,我们设定参数θ为0.3s,ξ为0.08。
仿真实验过程:
在该实验中,取ω=100,300,使用随机生成,满足高斯分布的链路传输成功率代替实际测得的链路传输成功率,高斯分布期望值取1到0.8,跳步为0.02。总共进行了2组评估,为了保证实验结果真实性,针对每个协议,每组评估进行了1000次测试,取结果的期望值作为每组最终结果。
实验结果:
图13(a,b)示出了在中度负载和高负载情况下,各个协议全网多对多吞吐量与链路传输成功率之间的关系。从图中可以看出,在中度负载情况下,随着信道环境变差,CSMA/CA和FSNC都需要付出额外的信息吞吐量以克服信道环境带来的错包丢包现象,而XORs在信道环境好的情况下,有较高的吞吐量,因为在这是,XORs的邻居预测模型得出的结果很高比例都是正确的,但随着信道环境变差,XORs的预测模型正确率开始降低,很多编码包不能被成功解码,吞吐量开始向FSNC接近。在高负载情况下,XORs与CSMA/CA的吞吐非常接近,这是由于XORs广播高信息量编码包时,所有接收节点的邻居都被至于静默状态,导致区域性信道利用率低下,从而影响了全网吞吐;而且,这两种协议的吞吐几乎不随链路质量的变化而变化,这是由于负载高时,信道已经不能提供额外的带宽用于数据包重传。此时,FSNC仍然保持着7%的吞吐提升。这个实验说明,FSNC的性能受链路传输成功率的影响更小,鲁棒性更强。
(3)网络负载对缓存利用的影响:
仿真网络初始化:
申请人模拟出一个长度为1400m,宽度为600m的无线网状网络,其中布置86个节点。在该实验中,每个节点的通信半径为175m,节点之间的链路传输成功率由物理环境测得。每次实验仿真时长为5s,每个节点每秒产生ω个数据包,目的地址随机选定,每个数据包的长度为1000B,链路带宽为54Mbps,网络层使用最小跳步数路由,通过ω控制网络负载。根据之前试验结果,我们设定参数θ为0.3s,ξ为0.08。
仿真实验过程:
在该实验中,取ω=60,100,200,300,总共进行了4组评估,为了保证实验结果真实性,针对每个协议,每组评估进行了1000次测试,取结果的期望值作为每组最终结果。
实验结果:
图14(a-d)示出了XORs和FSNC两种方法解码资源缓存队列的使用与网络负载的关系。从图中可以看出,在各种网络负载下,XORs节点的缓存使用量都比FSNC高,某些情况甚至高出数倍,这是因为XORs节点不但缓存自身转发过的数据,还缓存机会监听到的邻居节点的数据,并且没有一个很好的缓存管理机制。另外,XORs点比FSNC点分布更加广泛,而FSNC点更为集中,意味着XORs的缓存使用差异较大,方法稳定性较差,对缓存的分配更难控制,相比之下,FSNC更加稳定,也更容易控制。
Claims (5)
1.一种基于网络编码的无线网状网络介质访问控制方法,其特征在于,在该无线网状网络中,当一个节点收到邻居节点发来的一个数据包后,判断该数据包是普通数据包还是编码数据包:
如果是编码数据包,则对该编码数据包进行解码,解码成功得到需要的普通数据包,解码不成功则丢弃该编码数据包;
如果是普通数据包,则判断该普通数据包是否达到编码数据包的生成条件,如达到则对其进行编码,并将编码后的得到的编码数据包向邻居节点广播;如不能达到生成条件,则将该普通数据包按照802.11协议进行转发;
编码数据包的生成条件及编码过程如下:
在该无线网状网络中,节点A至少有两个邻居节点,设初始时刻节点A的转发队列为空,则从初始时刻开始:节点A收到邻居节点发来的一个普通数据包p2后,在转发队列中寻找一个普通数据包p1,如果存在p1同时满足公式1和公式2,则将p1和p2编码成为编码数据包p;
在公式1中,s1、s2分别为数据包p1、p2的源节点MAC地址,d1、d2分别为p1、p2下一跳节点的MAC地址,t1、t2分别为p1、p2达到节点A的时间,θ取值为0.3秒;
在公式2中,r和c分别为节点A从初始时刻开始,收到邻居节点发送的普通数据包的累计个数和节点A的转发队列中,满足公式1的普通数据包的累计个数,其中r每次累加1,c每次累加2,ξ取值为0.08。
2.如权利要求1所述的基于网络编码的无线网状网络介质访问控制方法,其特征在于,所述的普通数据包p1和p2经过亦或运算编码成为编码数据包p,具体为:
将普通数据包p2目的主机MAC地址和p1目的主机MAC地址做亦或运算,所得结果填入p1的目的主机MAC字段;将普通数据包p2源主机MAC地址和p1源主机MAC地址做亦或运算,所得结果填入p1的源主机MAC字段;将p2的数据部分和p1的数据部分做亦或运算,所得结果填入p1的数据部分字段;如果p1和p2的数据部分长度不一致,则将长度较短的一方尾部填0补位,生成的新的数据包为编码数据包p。
3.如权利要求1所述的基于网络编码的无线网状网络介质访问控制方法,其特征在于,在该无线网状网络中,每个节点中均设置有资源队列,当节点将一个普通数据包成功发送给另一个节点后,将该普通数据包从转发队列移入到资源队列中,并为该普通数据包启动一个倒计时器,倒计时器初始值为θ,倒计时器归零后,将该普通数据包从资源队列移除。
4.如权利要求3所述的基于网络编码的无线网状网络介质访问控制方法,其特征在于,当节点收到一个编码数据包后,对其进行解码操作:节点从自己的资源队列中寻找与收到的编码数据包对应的普通数据包,将找到的普通数据包和收到的编码数据包进行亦或运算,得到需要的普通数据包。
5.如权利要求1所述的基于网络编码的无线网状网络介质访问控制方法,其特征在于,所述的节点A生成编码数据包p后,对p进行广播的步骤如下:
步骤S1,创建广播RTS帧,将普通数据包p1、p2的下一跳节点的MAC地址写入RTS帧中,并确定信道占用时长Tb,将Tb添加到广播RTS帧的通信时间字段,Tb计算方法如下:
Tb=5×SIFS+(82+L)×t0 (公式3)
公式3中,SIFS为802.11协议规定的最短等待时间常数,L为编码数据包p的长度,t0为传输一个字节所需要的时间,由链路带宽决定;
步骤S2,节点A广播RTS帧申请信道;
步骤S3,邻居节点收到RTS帧后,确定自己回复RTS帧的等待时间Tcts,并在等待时间后回复CTS帧给节点A;Tcts计算方法如下:
公式4中,iMAC为该邻居节点的MAC地址,d1、d2分别是数据包p1、p2的下一跳节点的MAC地址;
步骤S4,节点A发送完广播RTS帧,等待2×SIFS+28×t0时间后,查看收到的CTS帧情况,如果分别收到p1、p2的下一跳节点回复的CTS帧,则节点A等待SIFS时间后开始发送编码数据包p,否则节点A进入退避等待。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410216133.2A CN103957085B (zh) | 2014-05-21 | 2014-05-21 | 一种基于网络编码的无线网状网络介质访问控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410216133.2A CN103957085B (zh) | 2014-05-21 | 2014-05-21 | 一种基于网络编码的无线网状网络介质访问控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103957085A true CN103957085A (zh) | 2014-07-30 |
CN103957085B CN103957085B (zh) | 2017-02-15 |
Family
ID=51334319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410216133.2A Expired - Fee Related CN103957085B (zh) | 2014-05-21 | 2014-05-21 | 一种基于网络编码的无线网状网络介质访问控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103957085B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107294807A (zh) * | 2017-07-04 | 2017-10-24 | 中国联合网络通信集团有限公司 | 协议互操作性测试方法及装置 |
CN111327707A (zh) * | 2020-03-05 | 2020-06-23 | 重庆邮电大学 | 一种无线网络中基于网络编码的缓存替换方法 |
CN112584460A (zh) * | 2020-12-09 | 2021-03-30 | 重庆邮电大学 | 一种无线网络中基于网络编码的机会路由选择方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080247407A1 (en) * | 2007-04-04 | 2008-10-09 | Nokia Corporation | Combined scheduling and network coding for wireless mesh networks |
CN101611598A (zh) * | 2007-03-08 | 2009-12-23 | 英特尔公司 | 为双向中继在物理层中组合分组 |
EP2216954A1 (en) * | 2009-02-10 | 2010-08-11 | Fujitsu Limited | Data relay apparatus, communication apparatus and communication method |
CN101888358A (zh) * | 2010-07-15 | 2010-11-17 | 华中科技大学 | 降低基于网络编码的双向中继节点计算复杂度的传输方法 |
-
2014
- 2014-05-21 CN CN201410216133.2A patent/CN103957085B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101611598A (zh) * | 2007-03-08 | 2009-12-23 | 英特尔公司 | 为双向中继在物理层中组合分组 |
US20080247407A1 (en) * | 2007-04-04 | 2008-10-09 | Nokia Corporation | Combined scheduling and network coding for wireless mesh networks |
EP2216954A1 (en) * | 2009-02-10 | 2010-08-11 | Fujitsu Limited | Data relay apparatus, communication apparatus and communication method |
CN101888358A (zh) * | 2010-07-15 | 2010-11-17 | 华中科技大学 | 降低基于网络编码的双向中继节点计算复杂度的传输方法 |
Non-Patent Citations (2)
Title |
---|
王龙翔: ""基于网络编码的MAC协议研究"", 《中国优秀硕士论文全文数据库》 * |
黄勐: ""无线多跳网络中基于网络编码的MAC机制研究"", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107294807A (zh) * | 2017-07-04 | 2017-10-24 | 中国联合网络通信集团有限公司 | 协议互操作性测试方法及装置 |
CN111327707A (zh) * | 2020-03-05 | 2020-06-23 | 重庆邮电大学 | 一种无线网络中基于网络编码的缓存替换方法 |
CN111327707B (zh) * | 2020-03-05 | 2022-04-05 | 重庆邮电大学 | 一种无线网络中基于网络编码的缓存替换方法 |
CN112584460A (zh) * | 2020-12-09 | 2021-03-30 | 重庆邮电大学 | 一种无线网络中基于网络编码的机会路由选择方法 |
CN112584460B (zh) * | 2020-12-09 | 2022-06-03 | 重庆邮电大学 | 一种无线网络中基于网络编码的机会路由选择方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103957085B (zh) | 2017-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109995515B (zh) | 一种量子密钥中继方法 | |
Zhuo et al. | Contact duration aware data replication in delay tolerant networks | |
CA2854599C (en) | Routing communications based on link quality | |
CA2854636C (en) | Routing communications based on node availability | |
CN102273176A (zh) | 用于在通信网络中进行重发和分割的***和方法 | |
US7996534B2 (en) | File distribution in wireless networks | |
CN108696449A (zh) | 一种数据调度方法及装置 | |
CN103957085A (zh) | 一种基于网络编码的无线网状网络介质访问控制方法 | |
US20140321384A1 (en) | Data broadcasting with a prepare-to-broadcast message | |
CN104243098A (zh) | 一种基于并行批次网络编码的传输方法 | |
CN103188054B (zh) | 反馈时延的获取方法、装置及*** | |
He et al. | Greedy construction of load‐balanced virtual backbones in wireless sensor networks | |
WO2015106444A1 (zh) | 一种数据包的传输方法和传输设备 | |
CN103402233B (zh) | 基于串行干扰消除的高吞吐量无线分布式网络路由方法 | |
CN103634846A (zh) | 在多信道多跳无线网络中用贪心算法分配信道资源的方法 | |
Chlebus et al. | Energy efficient adversarial routing in shared channels | |
JP2016201833A (ja) | ブロードキャスト準備メッセージを用いたデータブロードキャスト | |
Yu et al. | PYRAMID: Informed content reconciliation for vehicular peer-to-peer systems | |
Chhaya et al. | Cross layer optimization and simulation of smart grid home area network | |
CN103002017B (zh) | 一种获取资源的方法、设备及*** | |
CN104811720A (zh) | 基于Mesh网络视频传输IPB帧的映射机制实现方法 | |
Wu et al. | A chain-based fast data aggregation algorithm based on suppositional cells for wireless sensor networks | |
Zhou et al. | Performance analysis of network coded cooperative D2D communications | |
Conde et al. | Content Distribution Optimization Algorithms in Vehicular Networks | |
Narayana et al. | Using WAN Aggrandizement explication to remove defects in TCP performance in AD-Hoc network |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170215 |
|
CF01 | Termination of patent right due to non-payment of annual fee |