分类:
2009-12-02 21:35:10
1. Mobicom09-Frequency-Aware Rate Adaptation and MAC Protocols
背景及动机介绍:
无线技术朝更宽的频谱发展。举例如1)802.11n用40MHz和超宽频UWB;2)FCC允许使用DTV信道间未使用的频率,即whitespace,大约100MHz-250MHz;3)近期在WiFi上的研究建议废除信道划分的概念,一个节点限制在一个20MHz的信道内,可能导致负载不均衡,允许所有节点按需接入到整个802.11的频谱中。
更宽频谱带来频率分集的机会。
不同的频率经历不同的衰减,对于某一对Tx和Rx不同频率表现出不同的SNR(差异超过20dB,不同SNR可允许不同的速率),TxRx对不同对应的好频率也不同。
那么只有一对时,为每个子信道选择最佳的速率,即调制和编码方式(都是基于OFDM,现状是所有子信道20MHz都采用一样的速率);
多对时,应为不同的TxRx分别分配好的、适合的频率,频带可间断或离散。
目前的速率调整和MAC都忽略这些信息,无法处理把握更宽频谱带来的频率分集机会。
主要贡献:
提出FARA一种有频率意识的速率调整和MAC协议。它利用频率的不同SNR性质来增加吞吐量。
1)通过一般数据传输稳定计算每个频率或子信道的SNR。
2)每个子信道根据自己的SNR独立地选择速率,而不是整个链路,即所有子信道选同一个速率;
3)在MAC层,为不同TxRx对分配工作最适宜的频率;
4)在FPGA上实现FARA,与802.11比较提高3.1倍的吞吐量。
实现细节:
FARA分成4个部分:1)每个频率的SNR估计,干扰与否都可估计;2)频率意识的速率调整;3)频率意识的MAC;4)负载竞争(这一部分有凑分嫌疑)。
1) 如何估计SNR?
OFDM有导频信道,用于收发端同步,发生的是已知位,由BPSK调制。FARA为每个数据子信道估计SNR。用数据信道估计信号强度,用导频信道的已知位估计噪音。
每个数据子信道可测量接收强度Ri,信号强度Si= Ri – Ni。
SNRi=Si/Ni=Ri/Ni -1。
在同一个链路上,所有子信道的噪音是一样的,Ni=N0,因为噪音来自接收方的硬件、量化和计算错误,与频率无关。
计算N0时,为每个导频信道的每个符号计算ni[K],然后求中值。
ni[K] = yi[k]- Hi xi[k] = 第K个符号的接受样本 – 信道* 传输样本。
(疑惑:样本是什么单位?Hi表示信道是什么值,噪音不是与频率无关,那么Hi是什么含义?)
每到一个包,就可以计算新的SNR,用时间权重得到平均SNR值,每个包更新。
a) 干扰还可以估计?干扰了还可计算接收强度;噪音估计只要求导频,因为是已知,而且用BPSK稳定,所以噪音估计还能精确。(有干扰后,收到的接受强度是R=S+I+N,就把干扰信息也包含在内,得到的还是原来信道的SNR吗?)
b) 估计有多精确?信号和噪音的估计横跨了整个包,比之前的只用前导码估计要精确。
c) 速率不影响SNR估计?SNR估计只测量子信道的功率,在任何包上完成独立于传输的调制和编码模式。
2) 频率意识的速率调整
FARA用与802.11一样的调制和编码模式,但FARA为每个子信道选择独立的调制和编码方式。但不需要添加新硬件,把样本缓存,用一样的通道处理就行。(本一起处理调制和编码的,变成分开处理,而且为不加硬件并行变成串行,时间是不是花比较久了?)
将SNR映射到最优速率:SNR性质表,固定不变,一旦形成只需查询。表中标明某种速率或调制编码方式要求的最小SNR。接收方为每个子信道选择该SNR能支持的最高速率。SNR低于最小值的子信道不被使用。这个表独立于位置和时间,有些硬件已经提供,没提供的可以强制方式执行。
Rx为每个子信道计算最优选择,用802.11的同步ack反馈给Tx,在ack中增加一个域。
具体协议流程:
第一次通信:
Tx为所有子信道选最保守的速率发送;
Rx第一次估计SNR和速率,为快速跳到合适的速率上,反馈ACK中直接包含合适速率。
之后的通信:
因为速率改变一般从当前速率到邻近速率,为减少反馈开销,只反馈改变。2bit就足够,上升,下降或不变。
不变时,可进一步用run-length编码压缩,硬件中容易应用。
变长的ack不会影响802.11行为,802.11本来就有同步ack,等待SIFS后才能发送。下一个包开始发送必须等媒介空闲。
包或ack丢失怎么办?Rx在每个ack中包含序列号,存储Tx收到ack后的速率状态;Tx在数据包中包含接收到最后一个ack的序号;Rx收到数据包后,查看ack序号对应的状态,可得到需反馈的累计差异。
因为ack同步,Rx只需要多保存最后被Tx收到的ack序号。然后把原来的ack序号和累计差异包含在新ack中,表示累计差异的基于谁的,以便Tx更新。
3) 频率意识的MAC
FARA允许同时有多个下一跳,给他们分配不重叠的OFDM子信道集,可以不连续。通过选择并发下一跳集和分配信道,以最大化吞吐量。选择分配原则:最小化占有媒介的时间,使传输时间相等。包大小一样,速率分配要相等。包大小不一样,按包大小比率。这是个NP难问题,约简后是双包装问题(bin-packing problem),采用近似解。
具体原则:1)使速率相等;2)使Rx各自使用到最好的频率,该频率对应的SNR较高。
具体流程:
1)选择N个包
一次并发只能传N个包(2-5个),Tx为每个下一跳准备索引队列指向原始队列中的数据包。先选原始队列头的包,然后从队列非空的下一跳中随机选N-1个,对应的索引队列头指向的包,随机确保公平性。
2)给N个下一跳分配频率,随机贪婪法
SubbandAssignment: 子信道个数,为每个子信道分配下一跳
RateCounter: N,每个下一跳的总速率
随机排列N个下一跳,先将所有频率分给第1个。为最小总速率的下一跳选最优的子信道,对某个最小速率下一跳nmin,找最大总速率下一跳nmax,从nmax中找对nmin优对nmax差的子信道,选择deta[i]=ratenmin[i]-ratenmax[i]最大的信道分给nmin,i为分给nmax的子信道。调整上面两个参数。
重复过程直到不能给最小的速率再增加。
通过deta[i],分配较佳的频率给下一跳。
通过重复分配,达到相等速率的目的。
多个下一跳,按顺序回复ack。
WLan中一般节点只有AP一个下一跳,不能从FARA MAC中获得增益。AP和Mesh中的节点可以从FARA的速率调整和MAC中获得好处。
4) 负载意识的竞争
FARA允许使用整个802.11频谱,直接用之前的技术来负载均衡。
技术1:通过队列中活跃节点的个数来模拟竞争。当有N个活跃节点,AP从N个时间竞争槽中随机选,选择最小时间槽的发生。
技术2:测量竞争窗口大小。竞争窗口大小是竞争者个数的函数。IdleSense按媒介空闲时间长度来更新最小竞争窗口。
使用完整的频谱,导致更高的竞争可能。可用RTS-CTS来解决隐藏终端问题。
实验效果:
在FPGA上同时实现FARA和802.11。
1.验证不同频率的SNR差距大。非视距内差15-25dB(),视距差5-10dB。而且在秒时段内保持稳定,这是使用频率分集的要求。否则如是微妙的变化,太快,开销大。
2.验证SNR映射到最佳速率是强健的。给定某SNR可支持的最高速率是独立于位置和时间的,也与频率无关。在所有位置,给所有子信道所有编码方式进行测试,得到某编码方式下SNR和1MHz信道上的速率关系。在不同位置不同时间得到的最大速率包迹基本一致。
3.来自速率调整的增益。分别在20MHz和100MHz带宽的情况下与SampleRate比较,所有的位置上都测试5次,增益分别为1.1-1.5倍和1.4-3.6倍,平均1.25倍和2.1倍。为迁就较差的频率,802.11只能选较低的速率。
4.来自MAC的增益。只有5个板子,1个为Tx,4个Rx。改变4个Rx的位置增加次数,每次10遍。在100MHz的带宽下,FARA一个帧发4个包,少了进入媒介的开销,为只体现频率分集的效果,允许802.11的发生着不同等媒介空闲才发送,节省进入媒介的时间,反正只有1个发生者。与原始的802.11CSMA MAC+SampleRate比较吞吐量,一个为纯FARA,一个为CSMA MAC + FARA Rate adaption,前者3.1倍,后者为2.6倍。增益来自于一对(速率调整)约70%,也来自于多对(MAC)约30%。
5.负载更均衡。2个AP,一个有多个用户,一个只有1个用户。比较不同用户比率下公平性。用jain fairness index表示公平性,1最公平,1/n最不公平。在40MHz带宽下实验,802.11两个AP分别各有20MHz,FARA共享40MHz。FARA保持1,802.11线性下降。