无线自组网中支持视频数据传输的多信道多址接入方法技术领域
本发明涉及视频和通信领域,是一种支持视频等实时业务数据传输的多信道多址
接入协议。
背景技术
随着优酷、酷6等视频分享网站的发展,人们越来越多的选择看视频作为一种获
得知识或者是消遣的方式。人们对于视频的主观需求是要有较高的清晰度和流畅度,
针对此需求,由ITU-T(国际电信联盟电信标准化部门)的视频编码专家组和ISO/IEC
(国际标准化组织之国际电工委员会)的动态图像专家组联合组成的联合视频组提出
了H.264/AVC(Advanced Video Coding)标准。该标准由于可以支持超高清晰度的视
频编解码,是目前最热门的视频编解码技术,其对高清媒体的支持更是符合当代人们
对视频质量的需求。有了高清的视频,分享就需要通过网络的方式实现。传统的业务
例如文档、电邮等数据量很小,且对传输延迟要求很低。而高清视频业务则是一种大
数据量、高延迟要求的业务,特别对于在线视频点播、视频通话等应用,其对延迟的
要求更高。
根据传输介质的不同,网络大体可以分为有线网络和无线网络两大类。对于有线
网络特别是光纤等大传输量的网络,由于传输介质特性稳定,对于高清视频等大数据
量、高延迟要求的业务的传输问题不是很突出,但是对于无线网络来说,由于传输介
质(通常是空气)特性不稳定、可用带宽等限制,在传输这类业务时很难满足其对带
宽和延迟的要求。
目前应用最广泛的无线网络有两类:移动蜂窝网和无线局域网(WLAN:Wireless
Local Area Network)。移动蜂窝网的骨干网还是有线的,其性能瓶颈在于空中接口部
分,这类网络对实时视频传输支持问题不是本发明的讨论范围。无限局域网俗称
“WIFI”,因其具有无需布线、安装周期短、易于维护、容量扩充容易等优点,其
应用范围非常广泛。目前主流的WLAN接入协议是IEEE802.11b协议,采用该协议的
网卡价格低廉,广泛存在于笔记本电脑、游戏机、手机等各种手持终端。针对无限局
域网目前的IEEE802.11b协议在传输视频数据时存在的带宽和延迟问题,有不少的相
关工作。
带宽方面:IEEE802.11b协议采用单信道接入技术,所谓单信道接入技术,是指
所有的分组都在一个信道中传输,然而IEEE802.11b的物理层提供了3个互不干扰的
信道,IEEE802.11a则多达12个。鉴于以上事实,人们提出了多信道接入技术来提高
WLAN的速率。在多信道技术中,业务分组可以同时在所有互不干扰的信道中传
输,这就充分利用了物理层可用的信道资源,提高了传输速率。目前已有很多应用多
信道接入技术的多址接入方案。J.Dunagan等人在2004年提出了SSCH(Slotted Seeded
Channel Hopping)的接入方案,该方案要求所有终端以时隙为单位,按照一个伪随机
序列进行信道的切换,为了使所有终端时隙对齐,SSCH方案要求整个网络保持时间
同步,这在无线网络中是很难实现的。为了解决SSCH方案的同步问题,F.Hou等人
在2011年提出了DSMMAC(Difference Set based Multi-channel Medium Access Control)
方案,与SSCH方案相比,通过设计巧妙的差集跳频序列,DSMMAC无须时间同
步,但是,SSH和DSMMAC每个分组在放送前仍然采用信道竞争方式,无法保证延
迟,故这一类型的协议都无法适应H.264格式的实时视频数据传输。另一类无需时间
同步的多信道协议是Shih-Lin和Chinh-Yu等人提出的DCA-MAC(Dynamic Channel
Assignment Medium Access Control)协议。DCA-MAC协议采用一个公共的控制信道
传输控制分组,在公共的控制信道上完成信道分配后在分配的信道进行数据分组交
换。但是,DCA-MAC仍然没有改变竞争接入机制,无法保证视频分组的延迟性能。
延迟方面:IEEE802.11.b协议采用的是基于冲突避免的载波侦听多址接入技术,
该技术能很好的避免不同节点在竞争信道时的碰撞问题,但是由于每个分组发送时都
需要经过一个随机的退避和竞争过程,这就无法保证每个分组的延迟及不同分组之间
的延迟抖动(不同分组延迟之间的差值)。而分组延迟的大小及延迟抖动是否稳定直
接影响到视频的传输质量,故IEEE801.11b协议无法适应视频的传输。针对此问题,
L.Jacob等人提出了信道预约机制,该机制在每一次分组发送成功后,都会对下一个
分组的发送时间进行预约,预约的分组就可以不经过随机退避和信道竞争过程而直接
发送,从而保证分组具有较小的分组延迟和更稳定的延迟抖动。但是,经过H.264编
码的视频数据有个特性:帧率固定但是每一帧包含的数据量不同,这就导致在接入层
进行封装时,不同的帧经常会被封装为不同数量的分组。这时如果采用L.Jacob等人
提出的方法,属于同一帧的分组延迟不同,分组延迟的抖动性较差。
发明内容
为了克服现有无线局域网中多址接入协议在传输视频数据时无法保证带宽和延迟
的问题,本发明提供了一种新的多信道多址接入方法,该方法多址接入方法基于
IEEE802.11b协议,能够为视频业务提供足够的带宽和延迟保障。
本发明解决其技术问题所采用的技术方案是:网络中的每个终端都配备两幅半双
工天线,分别称为控制天线和数据天线。其中,控制天线用于发送接入协议的控制信
息,数据天线用于传输有效数据信息和少量的控制信息。假设网络中有n+1个带宽相
等的可用信道,其中一个作为公共控制信道,其余的n个作为数据信道。公共控制信
道对应控制天线,用于传输网络中所有终端控制天线发出的数据,类似的,数据信道
对应数据天线,所有的数据信道一起用于传输数据天线发出的数据。
本发明中源节点和目的节点在公共控制信道上按照IEEE802.11b标准进行信道竞
争,信道竞争成功后,如果源节点要发送的是视频数据,则源节点会在RTS分组中进
行标识。目的节点收到RTS分组后通过该标识就知道要接收的是视频分组,其在回复
的CTS分组中同样进行标识。这样,源节点和目的节点的邻居节点就能通过收到的
RTS或CTS分组预留公共控制信道T时间后的一段信道资源。
在本发明的技术方案中,一帧视频数据所包含的分组能在一次控制分组的交换后
连续发送,这就保证了一帧数据的延迟及延迟抖动性能。同时,通过资源预留,下一
帧数据发送时无需进行信道竞争,保证了延迟性能。以一对节点收发为例,称发送数
据的节点为源节点,接收数据的节点为目的节点,网络中其余节点称为其它节点,技
术方案的详细实施步骤如下:
●情况一:源节点发送非视频数据分组
步骤1:源节点在公共控制信道上按照IEEE802.11b协议进行信道竞争。如果竞争
成功转入步骤2,竞争失败则按照IEEE802.11b协议增加竞争窗后重新执行步骤1
进行信道竞争;
步骤2:源节点搜索自己的控制信道资源预留表和数据信道使用链表,判断此时公
共控制信道是否空闲,是否有可用的数据信道,两者都满足则转入步骤3,其他情
况返回步骤1;
步骤3:源节点发送包含所有可用的数据信道编号的RTS分组,并按照IEEE802.11b
协议等待目的节点回复CTS分组,在预定时间内收到CTS分组则转入步骤4,否
则转入步骤1;
步骤4:源节点收到CTS分组后,在公共控制信道发送RES分组,同时在CTS分
组指定的数据信道上发送数据分组,发送完成后在该数据信道等待目的节点回复
ACK分组,如在预定时间内收到ACK分组或者在预定时间内没有收到ACK分组
且该数据分组的重发次数已经达IEEE802.11b协议规定的上限,则转入步骤1发送
下一个分组,如果在预定时间内没有收到ACK分组但该数据分组重发次数没有达
到IEEE802.11b协议规定的上限,则转入步骤1重新发送该数据分组。
●情况二:源节点发送没有预留信道资源的视频数据分组
步骤1:同情况一步骤1;
步骤2:源节点搜索自己的控制信道资源预留表和数据信道使用链表,判断此时和
T时刻后公共控制信道是否空闲,是否有可用的数据信道,两者都满足则转入步骤
3,其它情况转入步骤1;
步骤3:源节点发送包含所有可用数据信道编号的RTS分组,并在RTS分组中标
识将要发送的数据分组为视频数据,RTS分组发送完成后按照IEEE802.11b协议等
待目的节点回复CTS分组,在预定时间内收到CTS分组则转入步骤4,否则转入
步骤1;
步骤4:源节点收到CTS分组后,在公共控制信道发送RES分组,与此同时在CTS
分组指定的数据信道上将该视频帧的所有视频分组进行发送。
●情况三:源节点发送已经预留信道资源的视频数据分组
步骤1:在预留的信道资源到来时,直接进入步骤2;
步骤2:同情况一之步骤2;
步骤3:同情况二之步骤3;
步骤4:同情况二之步骤4;
●情况四:目的节点收到给自己的RTS/数据分组
步骤1:目的节点在收到给自己的RTS分组后根据其中的标志位判断将要发送的
数据是否为视频数据,如果不是视频数据,则目的节点搜索自己的控制信道资源
预留表,判断控制信道是否空闲,同时回复CTS分组。
步骤2:目的节点收到给自己的数据分组后,在同一数据信道上回复ACK分组。
●情况五:其它节点收到不是自己的CTS/RTS/RES/ACK/数据分组
步骤1:其它节点收到不是自己的CTS/RES分组后,节点按照CTS/RES中的资源
预留信息更新自己的预留信息表;
步骤2:其它节点收到不是自己的RTS/ACK/数据分组后,无需任何操作。
本发明的有益效果是:本发明可在支持双天线网卡的固件中实现,实现复杂度
低,同时也可实现在该类网卡的驱动程序之中;本发明提高了视频数据在网络中传输
的延迟及延迟抖动性能;采用分布式的实现方式,网络中无需中心控制节点,也无需
时间同步,能够为视频业务提供足够的带宽和延迟保障。
下面结合附图和实施例对本发明进一步说明。
附图说明
图1是本发明的原理示意图;
图2是本发明的视频数据平均延迟仿真结果示意图;
图3是本发明的视频数据延迟抖动概率分布仿真结果示意图;
图4是本发明采用的RTS帧格式示意图;
图5是本发明采用的CTS/RES帧格式示意图;
图6控制分组传输示意图;
图7是NAV的计算示意图。
具体实施方式
本发明可以在支持双天线的无线网卡中通过固件实现,也可以实现在该类型无线
网卡的驱动程序之中。
(一)帧格式
本发明采用的RTS/CTS帧格式与标准的IEEE802.11协议不同,同时增加了一个
新的RES帧。
(1)RTS帧格式
本发明采用的RTS帧格式如图4所示。
(2)CTS/RES帧格式
本发明采用的CTS/RES帧格式如图5所示。
(二)相关参数计算
在本发明中,对控制信道的资源预留等都需要进行必要的参数计算,下面对各个
分组中的参数如何计算进行描述。
(1)公共控制信道预留时间长度计算
假设分组的介质中的传播延迟为δ,物理层为控制分组添加的物理层头信息长度
为H比特。为视频数据发送预留的公共控制信道时间长度为可以完成一次
RTS/CTS/RES控制分组传输,用TR表示,如图6所示。
假设RTS/CTS/RES分组的长度分别为LRTS/LCTS/LRES,分组的传输速率分别为
VRTS/VCTS/VRES,传输时间分别为TRTS/TCTS/TRES。物理层头信息的传输速率为VH,TSIFS为
SIFS时长,则由图6可得:
T R = T RTS + T CTS + T RES + 2 T SIFS + 2 δ T RTS = L H V H + L RTS V RTS , T CTS = L H V H + L CTS V CTS , T RES = L H V H + L RES V RES ]]>
代入LRTS=192,LCTS=LRES=136,VRTS=VCTS=VRES=2Mbps,VH=1Mbps。δ值可
用最大传播时延代替,即:δ=2us。TSIFS=10us。代入计算得到:
TR=832us
(2)分组中NAV的计算
与IEEE802.11b协议不同,本发明中控制分组中的NAV标识的是数据信道将要被
占用的时间,也即是数据分组和ACK传输所需的时间,假设其耗时为TN,如图7所
示。对于视频数据,每一帧可能包含多个分组,本发明要求一次RTS/CTS/RES传输后
将一帧数据发送完毕,故NAV时间就是所有分组传输所需的时间。
在第一小结假设的基础之上,假设需要发送的分组数目为N,分组长度分别为:L1,
L2,…LN,发送速率为VDATA,MAC层为数据分组加上的MAC头长度为LM,ACK分
组长度为LACK,发送速率为VACK,由图7可得:
T N = 2 NL H V H + NL M + ( L 1 + L 2 + · · · + L N ) V DATA + NL ACK V ACK + 2 Nδ + ( 2 N - 1 ) T SIFS ]]>
源节点传输非视频数据时,每次只发送一个分组,即N=1,传输视频分组时,N
为一帧视频包含的分组数目。本发明中,LM,LACK,VACK,VDATA取值和IEEE802.11b
一致,分别为272bit(内含处于分组尾部的MAC层校验比特长度),112bit,1Mbps,
11Mbps。
(三)控制信道资源预留表的建立及更新
(1)控制信道资源预留表的建立
为了保证预留给发送视频数据的源节点的公共控制信道不被其它节点冲突,本发
明要求每个网络中每个节点创建并维持一个控制信道资源预留结构体链表,简称为
CCRL。CCRL中的每个结构体中包含以下几个参数:
1、host:要求预留信道资源的节点编号;
2、Stime:信道资源预留的开始时间;
3、Ltime:预留信道的时间长度
节点在接入网络时即完成上述结构体链表的建立。
(2)控制信道资源预留表的更新
其它节点在收到不是给自己的CTS/RES分组后,会更新自己的CCRL,具体步骤
如下:
1、在CCRL链表尾部增加一个新结构体CCRL[i],并将CTS/RES分组的目的
MAC地址赋给CCRL[i].host;
2、假设收到分组的时刻为TC,预留信道的时刻可由TC计算得到。如果收到的是
CTS分组,则CCRL[i].stime=TCYCLE+TC-TSIFS-TRTS-TCTS-2δ,如果收到的是RES
分组,则CCRL[i].stime=TCYCLE+TC-TR;
3、将TR赋给CCRL[i].Ltime。
(四)数据信道使用列表的建立及更新
(1)数据信道使用列表的建立
为了记录各个数据信道的使用情况,每个节点都会在网络初始化时建立一个数据
信道使用情况列表。简称为DCUL,DCUL是一个结构体链表,每个结构体包含以下
几个参数:
1、host:使用该数据信道的节点MAC地址;
2、Cnumber:被使用的数据信道编号;
3、Stime:数据信道被该节点开始使用的时刻;
4、Ltime;该节点使用该数据信道的时间长度;
(2)数据信道使用列表的更新
其它节点在收到不是给自己的CTS/RES分组后,会更新自己的DCUL链表。具
体步骤如下:
1、在DCUL链表尾部增加一个新结构体DCUL[i],并将CTS/RES分组的目的
MAC地址赋给DCUL[i].host;
2、假设收到分组的时刻为TC,数据信道被host节点使用的时间可以由其计算得
到。如果收到的是CTS分组,则DCUL[i].Stime=TC+δ+TSIFS+TRES;如果收到的是
RES分组,则DCUL[i].Stime=TC-TRES;
3、无论收到的是CTS分组或者是RES分组,DCUL[i].Ltime=TN,TN为CTS/RES
分组中NAV域的值。
(五)信道空闲的判断
在源节点发送RTS分组前,和目的节点回复CTS分组前都需要对控制信道资源
预留表和数据信道使用表进行搜索,判断是否有足够的时间完成分组传输。简单来说
就是如何判断控制信道和数据信道是否空闲。
(1)控制信道空闲的判断
无论是发送视频数据还是非视频数据,控制信道空闲必须满足两个条件。第一,
满足IEEE802.11b协议的载波侦听空闲条件,即源节点的收信机检测到控制信道空闲;
第二,不会与控制信道已经预留的部分产生冲突,只要不与控制信道预留信息列表里
的预留信息冲突就能保证不与已经预留的部分产生冲突。
假设需要检测的时间段为[TStart,TEnd],如果发送的是视频分组,则如果对CCRL中
的任意一条信息CCRL[i]满足下两式中任意一式即可。
T Start > CCRL [ i ] . Stime + CCRL [ i ] . Ltime T End < CCRL [ i ] . Stime ]]>
(2)数据信道空闲的判断
一个节点选定某个数据信道进行发送时,需要避免与正在传输的其它分组产生冲
突。同样假设节点需要使用的时间段为[TStart,TEnd],则对于数据信道j,如果对于DCUL
链表中所有DCUL[i].Cnumber=j的元素都满足下两式中任意一式即可。
T Start > DCUL [ i ] . Stime + DCUL [ i ] . Ltime T End < DCUL [ i ] . Stime ]]>
(六)具体步骤
考虑无线局域网中有6个可用数据信道,分别编号DCH1~DCH6;另外还有一个
公共控制信道CCH;网络中每个节点产生的数据分组大小为500字节,物理层的参数
采用IEEE802.11b标准,即控制分组发送速率为2Mbps,数据分组发送速率为
11Mbps。
如前文所述,一个视频帧包含的分组数为N,假设为5个分组,即N=5。对应于
技术方案中的描述,各个步骤具体实施如下:
●情况一:源节点发送非视频数据分组
步骤1:源节点在公共控制信道上按照IEEE802.11b协议进行信道竞争。如果竞争
成功转入步骤2,竞争失败则按照IEEE802.11b协议增加竞争窗后重新执行步骤1
进行信道竞争;
步骤2:源节点搜索自己的控制信道资源预留表和数据信道使用链表,判断此时公
共控制信道是否空闲,是否有可用的数据信道,这可分为以下几个步骤(假设当
前时刻为TCurrent):
步骤2.1:源节点按照(二)的方法计算得到RTS/CTS/RES传输耗时TR,并用
(五)的方法判断控制信道在时间段[TCurrent,TCurrent+TR]是否空闲,是则转入步骤
2.2,否则返回步骤1;
步骤2.2:源节点获取将要发送的分组大小,假设为LP,按照(二)的方法计
算得到NAV的值,即TN,计算完毕计入步骤2.3;
步骤2.3:按照(五)的方法判断是否有数据信道在时间段[T,T+TN]内空闲。
其中T=TCurrent+TR-TRES。如果有一个或以上的数据信道空闲则进入步骤3,如
果没有数据信道空闲则返回步骤1;
步骤3:源节点发送包含所有可用的数据信道编号的RTS分组,并按照IEEE802.11b
协议等待目的节点回复CTS分组,该步骤分为以下几步:
步骤3.1:源节点按照(一)描述的格式形成RTS分组,其中NAV为步骤2.1
计算得到的TN,由于发送的是非视频分组,则将“数据类型”域的值设置为“0”,
“分组数”域值为“1”。将步骤2.3中得到的空闲数据信道编号对应与“可用
数据信道”域相应位置的值设置为“1”,其余为“0”,如果数据信道1,3,5
空闲,则“可用数据信道”的值设置为“101010000000000000000000000”。其余
RTS分组域按照标准的IEEE802.11b协议进行设置,设置完成后转入步骤3.2;
步骤3.2:通过控制天线将RTS分组在控制信道上进行传输,并按照
IEEE802.11b协议的规定等待CTS分组,成功收到CTS分组转入步骤4,等待
超时则转入步骤1;
步骤4:源节点收到CTS分组后,在公共控制信道发送RES分组,同时在CTS分
组指定的数据信道上发送数据分组,发送完成后在该数据信道等待目的节点回复
ACK分组。分为以下几个步骤:
步骤4.1:源节点收到CTS分组并等待TSIFS时间后,按照(一)所述的格式生
成RES分组,“数据类型”域的值设置为“0”,“分组数”域的值设置为“1”,
“采用的数据信道编号”域的值设置为所收到CTS分组同名域的值;设置完成
进入步骤4.2;
步骤4.2:源节点将RES通过控制天线发送到控制信道,将数据分组通过数据
天线发送到CTS分组中“采用的数据信道编号”域所指定的数据信道上,并在
该信道上等待ACK分组,完成后进入步骤4.3;
步骤4.3:如在预定时间内收到ACK分组或者在预定时间内没有收到ACK分
组且该数据分组的重发次数已经达IEEE802.11b协议规定的上限,则转入步骤
1发送下一个分组,如果在预定时间内没有收到ACK分组但该数据分组重发
次数没有达到IEEE802.11b协议规定的上限,则转入步骤1重新发送该数据分
组。
●情况二:源节点发送没有预留信道资源的视频数据分组
步骤1:同情况一之步骤1;
步骤2:基本同情况一之步骤2,不同之处为步骤2.2,此时判断控制信道是否空
闲需要同时确定时间段[TCurrent,TCurrent+TR]和时间段[TCurrent+T,TCurrent+T+TR]是同时空
闲;
步骤3:源节点发送RTS分组的过程同情况一之步骤3,不同的是RTS分组中某
些域的值不同,本情况下RTS分组中某些域的值设置方法为:设置“数据类型”
域的值为“1”,设置“分组数”域的值为“5”(将要发送的视频帧包含的分组数N
的值),其余同情况一之步骤3;
步骤4:步骤4.1和步骤4.2同情况一,步骤4.3如下:
步骤4.3:如在预定时间内收到ACK分组,则转入步骤1等待为自己预留控制
信道的时刻到来按照情况三所述进行下一个分组的发送,如果在预定时间内没
有收到ACK分组但该数据分组重发次数没有达到IEEE802.11b协议规定的上
限,则等待为自己预留控制信道的时刻到来转入步骤1按照情况三所述重新发
送该分组。
●情况三:源节点发送已经预留信道资源的视频数据分组
步骤1:在预留的信道资源到来时,直接进入步骤2;
步骤2:同情况一之步骤2;
步骤3:同情况二之步骤3;
步骤4:同情况二之步骤4;
●情况四:目的节点收到给自己的RTS/数据分组
(1)节点在收到给自己的RTS分组后执行以下几个步骤:
步骤1:记录收到RTS分组的时刻为TCurrent。然后源节点按照(五)所述的方法判
断控制信道在TCurrent+TR-TRTS-δ开始的时间长度为TR的时间段内是否空闲,如果不
空闲转入情况一之步骤1,如果空闲转入步骤2;
步骤2:源节点在DCUL链表中搜索满足在TCurrent+TR-TRTS-δ开始的时间长度为TN
的时间段内是否空闲的数据信道,如果没有则返回步骤1;如果有空闲数据信道则
随机选择一条进入步骤3;
步骤3:按照(一)所描述的格式生成CTS分组,设置“数据类型”域值为“1”,
“分组数”值为收到的RTS分组中同名域的值(本例中为5),同时将“采用的数
据信道编号”域值设置为步骤2中选择的数据信道编号。设置完成后转入步骤3;
步骤4:在控制信道发送生成的CTS分组;
(2)目的节点收到给自己的数据分组后,在同一数据信道上回复ACK分组。
●情况五:其它节点收到不是自己的CTS/RTS/RES/ACK/数据分组
(1)其它节点收到不是自己的CTS/RES分组后,节点按照CTS/RES中的资源预
留信息更新自己的预留信息表;
(2)其它节点收到不是自己的RTS/ACK/数据分组后,无需任何操作。
本发明中的接入方法能大幅度降低视频数据分组的平均延迟,同时能提高不同数
据分组之间延迟抖动的稳定性。用OMNeT++4.2仿真软件、INETMANET仿真平台以
及H.264协议的JM程序对本发明提出的多址接入协议进行非常真实的仿真,仿真场
景为1000m×1000m,共100个节点,每个节点的位置为随机配置,仿真参数配置如
表1所示:
表1、仿真参数设置
当视频分组的周期T=30ms时,视频分组的平均延迟和延迟抖动概率分布分别如
图2和图3所示。图2说明采用本发明的方法在网络拥挤时(只有一个数据信道时网
络带宽较窄,导致网络拥挤)仍然能保证视频分组的延迟。图3中本发明的方法延迟
抖动都集中于0附近,相对于DCA-MAC具有很好的延迟抖动性。