在无线局域网中支持协作通信的媒介控制方法转让专利

申请号 : CN200910047041.5

文献号 : CN101494879B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 金奂王新兵徐友云

申请人 : 上海交通大学

摘要 :

本发明涉及一种无线局域网传输技术领域的在无线局域网中支持协作通信的媒介控制方法。本发明通过控制帧的三角交互确定中继节点是否可用,如果可用,同时根据之前对误包率的估计,采用三角的数据传输方式。本发明保留了传统MAC协议的优点,而当误包率较高的时候通过协作支持协作通信来提高整个网络的饱和吞吐量,减少平均延时,降低丢包率。本发明保留了IEEE 802.11b的退避过程,所以节点的公平性能和IEEE 802.11b一样。本发明用于无线局域网,具有协议修改量少,性能改善卓越的特点。当信道衰落比较明显时,本发明能有效提高无线网络的性能,当误包率比较大的时候,吞吐量能增加约17%,丢包率不到原来的1/10。

权利要求 :

1.一种在无线局域网中支持协作通信的媒介控制方法,其特征在于:控制帧的传输使用三角交换的方式,源发出的是CoopRTS帧,中继节点发出的是RTR帧,目的节点发出的是CTS帧,如果源节点能接收到中继节点的RTR帧和目的节点的CTS帧,那么中继节点可用;同时对之前发出的数据包和接收的ACK帧的统计值计算出误包率,根据这个误包率和阈值的关系,决定中继节点是否参与数据传输,其中:所述控制帧的传输使用三角交换的方式,其交互过程中,CTS就是IEEE802.11的CTS,RTR的帧格式和CTS基本一样,唯一的区别在于帧控制中的子类型标为RTR,CoopRTS是在IEEE 802.11 RTS帧格式的基础上修改而来的,RTS的帧包括五部分:帧控制、持续时间、目的地址、源地址和校验和,CoopRTS在RTS的源地址部分后面增加两部分:中继节点地址和中继节点到目的节点的速率。

2.根据权利要求1所述的在无线局域网中支持协作通信的媒介控制方法,其特征是,所述帧的三角交换的方式如下:假设存在三个节点,源节点S,目的节点D和潜在的中继节点R,首先,源节点S向目的节点D发出控制帧CoopRTS,在CoopRTS的帧格式中包含了可以参与传输的中继节点的地址,假设这个节点是R,所有在节点S传输范内的节点都能监听到这个CoopRTS帧,但只有中继节点R能接受帧CoopRTS,然后向源节点S发出帧RTR表示R符合CoopRTS帧格式中的速率要求,可以参与数据传输,发送RTR的同时R需要启动发送定时器,等待网络中一个CTS的到来;

当目的节点D监听到中继节点R发出的RTR包时,目的节点D就能确定中继节点R能参与数据传输了,然后目的节点D向源节点S发出帧CTS,CTS能被网络中的每个节点收到,当中继节点R收到CTS后,就停止发送定时器,准备参与数据传输;如果没有收到CTS,R就等待定时器时间到,进入退避过程;当源节点S接收到CTS时,源节点S就可以开始数据传输过程了。

3.根据权利要求1所述的在无线局域网中支持协作通信的媒介控制方法,其特征是,所述三角交换的方式,在其物理层的协作通信中数据传输分为两个时隙:在第一个时隙,源节点S发送数据包给目的节点D,R同时监听并把这个包保存下来,目的节点D收到包后继续等待从中继节点R来的同一个数据包;在第二个时隙,R把第一个时隙保存的包发给目的节点D,这样目的节点D就接收到了同个数据包从不同信道来的两个拷贝。

说明书 :

技术领域

本发明涉及一种无线局域网(WLAN)传输技术领域的方法,具体是一种在无线局域网中支持协作通信的媒介控制方法。

背景技术:

对于在无线网络中应用协作通信,前人已经做了大量的工作。一部分研究工作是物理层的理论分析,给出在衰落信道中应用不同的协作通信协议和编码方式的性能比较;还有一部分工作是基于传统的无线局域网MAC层协议(IEEE802.11b),把协作通信这个概念引入到MAC层协议设计,从而来改善无线局域网的性能。

经过对现有技术的文献检索发现,Pei Liu等在《IEEE Journal On SelectedAreas In Communications》(IEEE通讯选题杂志)(2007年2月第2卷第340-354页)上发表了“CoopMAC:A Cooperative MAC For Wireless LANs”(CoopMAC:一种应用于无线局域网的协作MAC协议),该文设计了一种在无线局域网中不同节点可以相互协作的MAC协议。节点间相互协作的具体方式如下:每个节点保存一个表格CoopTable,为本节点到其他节点的每对链接保存可能的中继节点的信息。现在假设有个节点A要给B发数据包。A开始传输前,先搜索CoopTable,看有没有可用的中继节点。如果没有,则使用IEEE 802.11b协议。如果表中存在中继节点C,则通过一次三角的控制帧交换来确定C是否可用。如果C不可用,A进入退避过程。如果C可用,则A先将数据包发给C,然后C延迟SIFS时间,把这个数据包发给B。该文献通过理论分析和仿真,证明了如果在无线局域网中存在少数速率比较慢的节点,CoopMAC可以提高整个网络的性能。其不足在于,CoopMAC的协作方式仅仅局限在MAC层,并不能支持物理层的协作方式。

发明内容

本发明针对现有技术的不足,提供了一种在无线局域网中支持协作通信的媒介控制方法,称为C-MAC,使其通过修改数据包的传输方式,当直接链路的误包率比较高时,提高整个网络的吞吐量,降低平均延时。
本发明是通过以下技术方案实现的,本发明控制帧的传输使用三角交换的方式,源发出的是CoopRTS帧,中继节点发出的是RTR帧,目的节点发出的是CTS帧,如果源节点能接收到中继节点的RTR帧和目的节点的CTS帧,那么中继节点可用;同时对之前发出的数据包和接收的ACK帧的统计值计算出误包率,根据这个误包率和阈值的关系,决定中继节点是否参与数据传输,其中:
所述控制帧的传输使用三角交换的方式,其交互过程中,CTS就是IEEE802.11的CTS,RTR的帧格式和CTS基本一样,唯一的区别在于帧控制中的子类型标为RTR。CoopRTS是在IEEE 802.11 RTS帧格式的基础上修改而来的。RTS的帧包括五部分:帧控制,持续时间,目的地址,源地址和校验和。CoopRTS在RTS的源地址部分后面增加两部分:中继节点地址和中继节点到目的节点的速率。这样CoopRTS就包含了第三个节点的部分信息。
所述帧的三角交互的方式如下:假设存在三个节点,源节点S,目的节点D和潜在的中继节点R。首先,源节点S向目的节点D发出控制帧CoopRTS。在CoopRTS的帧格式中包含了可以参与传输的中继节点的地址,假设这个节点是R。所有在节点S传输范内的节点都可以监听到这个CoopRTS帧,但只有中继节点R可以接受帧CoopRTS,然后向源节点S发出帧RTR表示R符合CoopRTS帧格式中的速率要求,可以参与数据传输,发送RTR的同时R需要启动发送定时器,等待网络中一个CTS的到来。当目的节点D监听到中继节点R发出的RTR包时,目的节点D就可以确定中继节点R能参与数据传输了,然后目的节点D向源节点S发出帧CTS。CTS可以被网络中的每个节点收到。当中继节点R收到CTS后,就停止发送定时器,准备参与数据传输。如果没有收到CTS,R就等待定时器时间到,进入退避过程。当源节点S接收到CTS时,源节点S就可以开始数据传输过程了。
所述三角的数据传输方式,也就是物理层的协作通信方式。数据传输分为两个时隙:在第一个时隙,源节点S发送数据包给目的节点D,R同时监听并把这个包保存下来,目的节点D收到包后继续等待从中继节点R来的同一个数据包。在第二个时隙,R把第一个时隙保存的包发给目的节点D,这样目的节点D就接收到了同个数据包从不同信道来的两个拷贝。
与现有技术相比,本发明具有以下优点:首先本发明是基于IEEE 802.11bMAC的,只修改了控制帧的交换方式和数据传输方式,因此对协议的修改幅度不大。其次,通过修改数据传输方式,就可以在MAC层支持物理层的协作通信方式,再配合物理层的联合解码,在衰落信道误包率稍大的时候,本发明C-MAC可以减少误包率,提高整个网络的吞吐量。
在误包率比较低的时候使用IEEE 802.11b,而误包率高的时候使用本发明来减少总的误包率。本发明保留了传统MAC协议的优点,而当误包率较高的时候通过协作支持协作通信来提高整个网络的饱和吞吐量,减少平均延时,降低丢包率。本发明基于IEEE 802.11b协议,保留了IEEE 802.11b的退避过程,所以节点的公平性能和IEEE 802.11b一样。本发明应用于无线局域网,具有协议修改量少,性能改善卓越的特点。当信道衰落比较明显时,本发明能有效提高无线网络的性能。与传统的MAC协议相比,当误包率比较大的时候,吞吐量能增加约17%,丢包率不到原来的1/10。

附图说明

图1是本发明在没有中继节点的情况下的工作方式图。
图2是本发明在有中继节点的情况下的工作方式图。
图3是本发明中每个节点用来保存中继节点信息的表格结构图。
图4本发明和802.11b在不同的误包率下饱和吞吐量的比较示意图;
图中:在数据包长度L=1024字节,数据流数10,中继节点速率11Mbps的情况下,和802.11b在不同的误包率下饱和吞吐量包括理论结果和仿真结果的比较。
图5本发明和802.11b在不同的误包率下饱和吞吐量的比较示意图;
图中:在数据包长度L=1024字节,数据流数10,中继节点速率分别是11Mbps和5.5Mbps的情况下,和802.11b在不同的误包率下饱和吞吐量包括理论结果和仿真结果的比较。
图6本发明和802.11b在不同的数据包长度下饱和吞吐量的比较示意图;
图中:在数据流数为10,中继节点速率为11Mbps。
图7本发明和802.11b的MAC层服务时间的累积分布函数示意图;
图中:在数据包长度L=1024字节,数据流数10,中继节点速率为11Mbps,直接链路的误包率为0.3。
图8本发明和802.11b在不同的误包率情况下的丢包率示意图;
图中:数据包长度L=1024字节,数据流数10,中继节点速率为11Mbps。
图9是本发明C-MAC和IEEE 802.11b在不同误包率下的丢包率比较示意图。

具体实施方式

下面结合附图对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本实施例的整体工作过程如图1、2所示。其中专业术语(IEEE 802.11标准)含义如下:
NAV(Network Allocation Vector):网络分配向量
SIFS(Short InterFrame Space):短帧间间隔
DIFS(DCF InterFrame Space):DCF(分布协调函数)帧间间隔
Backoff:退避过程
ACK:IEEE 802.11MAC层确认帧
1)图1是CMAC在没有中继节点时的工作方式。具体来说,就是源节点发出CoopRTS后没有中继节点回应,则等待两个SIFS时间后,由目的节点回复CTS帧,然后开始802.11的数据传输方式。由图1可以看到中继节点Sr没有回复帧RTR,所以目的节点Sd等待了两个SIFS后回复了CTS。这样源节点Ss就以IEEE802.11b的数据传输方式发送数据包。在这个整个过程中,信道为Ss和Sd的传输所占用,其他节点(STA1和STA2)处于等待状态,根据监听到的控制帧(如CoopRTS,CTS)来跟新网络分配向量。
2)图2是CMAC在有中继节点时的工作方式。中继节点Sr在收到CoopRTS后回复帧RTR,然后目的节点发送CTS给源节点Ss。源节点Ss和中继节点Sr都参与之后的数据传输过程,Ss先发一次,然后Sr再发一次,这样Sd收到一个数据包两个拷贝。在这个整个过程中,信道为Ss,Sr和Sd的传输所占用,其他节点(STA1和STA2)处于等待状态,根据监听到的控制帧(如CoopRTS,CTS)来跟新网络分配向量。
本实施例具体实施包括控制帧的交换和数据包的传输两个部分:
1.控制帧的交互过程
参与本实施例控制信息三角交换的有三个帧:CoopRTS,RTR,CTS。帧格式请参照上面。CTS就是IEEE 802.11中使用的CTS帧,RTR的帧格式和CTS基本一样,只有说明帧类型的一位不同。
下面是IEEE 802.11标准中RTS的帧格式。字节数:
2           2           6         6         4
帧控制 持续时间 目的地址 源地址 校验和
帧控制的细节如下:
比特数:
   2        2       4      1      1       1        1        1       1         1            1
 Protocol  Type  Sub type  To DS  From DS  More Frag  Retry  Pwr Mgmt  More Data  Protected Frame  Order
Protocol:协议版本
Type:帧类型(控制帧为Control,数据帧为Data)
Subtype:帧的子类型(RTS,CTS,RTR,ACK等等)
To DS:(是否)发向分布式系统
From DS:(是否)来自分布式系统
More Frag:上层数据(是否)分片段
Retry:(是否)重试
Pwr Mgmt:(是否)启用电源管理
More Data:在启用省电模式下,这位表示(是否)有更多的数据发给目的节点
Protected Frame:如果这个帧被链路层的安全协议保护,设为1
Order:当帧或上层的数据片段有序传输时,这位设为1
IEEE 802.11 CTS的帧格式如下:
帧控制 持续时间 源地址 校验和
CoopRTS是根据IEEE 802.11b的RTS帧修改而来的,帧格式如图3所示。相比IEEE 802.11b中的RTS,CoopRTS帧多了RRA(中继节点的MAC地址)和Rrd(中继节点到目的节点的速率)两块。同时每个节点需要维持一个表格RelayTable,格式如图3所示,总共有6个区域,分别是:(1)RE:是否启用中继;(2)IR:本节点是否是中继节点;(3)RA:本次传输的目的节点;(4)TA:本次传输的源节点;(5)RRA:中继节点的MAC地址;(6)Rrd:中继节点到目的节点的速率。这个表格需要在控制帧的交互过程中实时更新,在数据传输过程中会用到这个表格的信息。
先说明下面出现参数的含义。设所有帧所耗费的发送时间为Tx形式(以CoopRTS为例,CoopRTS帧在网络中的传输时间为TCoopRTS),SIFS,DIFS为帧间隔时间(IEEE 802.11标准)。CTStimout表示定时器等待帧CTS的定时时间,过了CTStimout就表示超时了。则控制帧的交互过程如下:
源节点S
1)当源节点S有数据包要发送时,S首先搜索是否有潜在的中继节点(如何搜索不在本实施例的说明范围内,但在本地保存潜在中继节点的列表),如果没有,则使用IEEE 802.11b协议;如果存在潜在的中继节点,S向D发送CoopRTS帧,设定发送定时器,时间为:
CTStimeout=2TSIFS+2TCTS+TCoopRTS
再设置RelayTable,RelayTable的第1个值暂时不设,后面5个值都可以设置了,其中最后两个值是根据前面的搜索过程找到的。
2)如果过了TSIFS+TCTS时间源节点S没有从中继节点收到RTR帧,但从发送开始过了2TSIFS+2TCTS时间从目的节点收到了CTS帧,这说明中继节点不可用,所以源节点S数据包发送方式采用IEEE 802.11b的方式。
3)如果S没有从D收到CTS帧,这可能是发生了帧碰撞,S进入退避过程,等待下次发送机会。
4)如果S收到了R的RTR帧和D的CTS帧,这说明中继节点可用而且信道也可用,S设置RelayTable的第一个值,然后开始向D发送数据包。
中继节点R
1)因为在同一跳内的节点都能监听到S发出的CoopRTS包,每个节点把CoopRTS帧的RRA和自己的MAC地址比较,如果不一样,则丢弃CoopRTS包,设置NAV(网络分配向量)。如果一样,再检查是否能支持Rrd所示的速率,如果可以,本节点就是此次数据传输的中继节点R,R根据CoopRTS的内容设置RelayTable的后四个值,前两个值RE和IR都设置为true。然后延时SIFS时间后R向S发出RTR帧。因为R需要监听到一个D发出的CTS帧来确定本次数据传输的顺利进行,所以R发送RTR时设定发送定时器,时间为:
CTStimeout=TSIFS+TCTS
2)如果R没有接收到CTS,R认为本次传输被终止了。所以R把RelayTable清空,然后进入退避过程。否则,R进入等待过程,监听从S发出的数据包。
目的节点D
1)如果D接收到了S发出的CoopRTS帧,D就设置RelayTable的后五个值,其中最后四个值在CoopRTS中都有。然后D开始延时2SIFS,当延时结束时向S发送CTS帧。
2)如果在延时过程中没有监听到R发出RTR帧,D在延时结束时清空RelayTable,然后向S发送CTS帧。
3)如果D在延时过程中监听到了R发出的RTR帧,D终止延时过程,设置RE为真。然后延时SIFS后D向S发送CTS帧。
2.数据传输过程
如果没有可用的中继,数据传输过程和IEEE 802.11b一样。但如果有可用的中继,中继参与进来。具体步骤如下:
源节点S
当源节点开始数据传输过程时,S首先检查RelayTable的RE位,如果是真,则说明中继节点可用,S设置数据包发送过程的持续时间为:
DurationDATAS=3TSIFS-TDATAR+TACK
这里,DurationDATAS表示S发出的数据包在网络中的持续时间,而DurationDATAR则表示中继节点R发出的数据包在网络中的持续时间。否则,S按照IEEE 802.11b的数据传输方式发送数据包。
无论S收到D返回的ACK(成功传输)或S的发送定时器到(发送失败),S立即清空RelayTable,准备下次的传输。
中继节点R
当S发送的数据包被一跳之内的其他节点监听到时,不是中继节点R的节点按照IEEE 802.11b的方式处理,丢弃这个包,更新NAV。中继节点R则将这个包接收并保存下来,对这个包的帧投进行一些小修改,把持续时间改掉:
TDATAR=TSIFS+TACK
经过SIFS的延时,R把这个数据包发个目的节点D。由于R并不需要D回发一个ACK帧来,所以R的发送定时器设置为:
TTimeout=TDATAR
当发送定时器时间到的时候,R就知道它的工作已经完成了,所以R可以把RelayTable清空,然后进入退避过程。
目的节点D
如果中继节点可用,D的物理层等待直到收到从R发出的数据包后,通过联合解码过程,给MAC层一个解码后的帧。MAC层然后给S回发一个ACK帧。
根据这样的改动,本实施例在MAC层可以控制中继节点是否参与进数据传输过程。再配合物理层的编码方式和联合解码过程,在衰落信道可以降低误包率,从而提高网络的整体性能。而当信道质量比较好的时候,即误包率比较低的时候,由于本实施例一次数据传输过程会比IEEE 802.11b长,所以即使在误包率上会有降低,但整体性能反而会下降。
本实施例的优势在直接链路的误包率比较大的时候才能体现出来,所以可以考虑把本实施例C-MAC和IEEE 802.11b结合起来:当误包率比较小的时候依然使用IEEE 802.11b,当误包率大于某个特定的值时,则使用本实施例C-MAC。
这里采用一个比较简单的方式来确定误包率。当测试次数很大的时候,一个事件发生的频率趋近于它发生的概率。本实施例就利用这个原理来估计误包率,但这种方法只能用于信道比较稳定的情况下,即误包率不会变化的很频繁。每个节点都有两个计数器,当发送数据包的时候(不管是不是重发),发送计数器加一,如果收到ACK,则接收计数器加一。因为考虑到误包率会有变化,所以每经过一段时间,计数器要重置一次,这个区间根据信道稳定情况而定,在仿真中间使用的是发送计数器每3000个包就重置一次。这样,误包率可以估计为:

如图4所示,源节点S在发送前判断使用本实施例C-MAC和IEEE802.11b的过程。其中THB和THC分别是使用IEEE 802.11b和本实施例C-MAC时的误包率的阈值。
误包率的阈值通过仿真和分析两部分的对比来完成的,结果在下面性能比较中给出。
本实施例C-MAC和IEEE 802.11b在不同的误包率下的性能比较
使用NS2(网络仿真)来搭建仿真平台,仿真所用参数如表格一所示。
表格一
MAC Header     272bits PHY Header     192bits CoopRTS     432bits CTS     304bits RTR     304bits ACK     304bits Data rate for PHY header     1Mbps Slot Time     20us SIFS     10us DIFS     50us aCWMin     31slots acWMax     1023slots retryLimit     4
在仿真模型中,节点的传输半径250m,感应半径550m。所有节点都是固定的而且是随机分布在一跳范围内的。仿真侧重于在不同的误包率下本实施例C-MAC和IEEE 802.11b的性能比较和阈值选择。一般来说,采用中继节点后的误包率和直接链接误包率(p)是函数关系f(p)。为了简化仿真,在仿真中假设f(p)=p2。这是对f(p)的一个很粗糙的估计,理论上已经证明了f(p)的上限近似于平方律关系。
图5是在不同的误包率下,本实施例C-MAC,IEEE 802.11b的饱和吞吐量的理论值和仿真值的比较。这幅图的重点在于阈值点,即使用本实施例C-MAC时的网络吞吐量和IEEE 802.11b的吞吐量相等是的直接链接的误包率。这副图对比了仿真和理论上的阈值,可以看到两者的值非常接近。本实施例还比较了在使用其他网络参数时仿真和理论上的阈值,结果如表二所示。表中L表示数据包的长度,R表示中继节点的速率,N表示网络中的数据流数。
表二
 THB     理论值     仿真值  L=1024字节,R=11M,N=10     0.2467     0.2452  L=512字节,R=11M,N=10     0.2833     0.2769  L=1024字节,R=11M,N=5     0.2453     0.2434  L=2048字节,R=11M,N=10     0.2194     0.2240  L=1024字节,R=5.5M,N=10     0.3841     0.3882
从这个表格中可以看到在不同的网络参数下理论值和仿真值都是很接近的,所以可以考虑使用理论值来代替仿真值。同时从这个表格可以看到不同参数对阈值有什么样的影响。首先,数据流数N对阈值的影响是微乎其微的,对比N=10和N=5的情况可以看出这点;其次,数据包的长度L对阈值有一定的影响,对比L=512,1024,2048字节的情况可以发现这点。越大的数据包长度可以降低阈值,所以在考虑误包率的时候本实施例C-MAC使用大的数据包会比较有利;最后,中继节点的速率R对阈值影响非常大。对比R=11M和R=5.5M的情况可以发现,在其他参数一样的条件下,R=11M比R=5.5M的阈值大了约0.14,对于误包率来说这是一个比较大的数了。
同时由于中继节点的速率是对阈值最大的影响因素,而且中继节点的速率对于源节点S是可知的,所以S在判断是使用本实施例C-MAC或IEEE 802.11b时可以以此来设定阈值。在仿真中,当R=11M是,THB设定为0.26,而当R=5.5M是,THB设定为0.4。
图6是中继节点的速率分别是11M和5.5M时候的网络吞吐量对比图。由图7可以看到,中继节点的速率对阈值影响很大,同时对网络的整体吞吐量有很大的影响。R=11M时网络吞吐量比R=5.5M时大了很多,当直接链路的误包率为0.4时,增幅大约为13%。
图7是对使用不同的数据包长度时作的网络吞吐量的比较。可以看出来发送大的数据包无论对C-AMC或IEEE 802.11b都能提高网络吞吐量,不过对本实施例C-MAC提高的更多一些。同时,在图7可以看到使用本实施例C-MAC时有一些跳跃点,尤其是L=2048字节是最为明显,这也反应了不同的数据包长度对阈值大小的影响。
图8是本实施例C-MAC和IEEE 802.11b在误包率为0.3时MAC层服务时间的累积分布函数。由于本实施例C-MAC一次完整传输时间比IEEE 802.11b要长,所以当服务时间比较小的时候,本实施例C-MAC的累积分布函数值比IEEE802.11b小。当服务时间越来越大时,由于本实施例C-MAC有误包率比较小的优势,所以本实施例C-MAC的累积分布函数值会超过IEEE 802.11b。
图9是本实施例C-MAC和IEEE 802.11b在不同误包率下的丢包率比较。可以看出使用IEEE 802.11b时误包率对丢包率的影响比较大,因为数据包的重发次数是有上限的,误包率大会导致重发次数增多。重发次数达到上限时,这个包就给丢弃了。而C-MAC有误包率的优势,所以当直接链路的误报率较大时,丢包率增长的不是很明显。