基于无线多跳网络的混合路由视频传输
扫描二维码
随时随地手机看文章
1 引言:
无线多跳网络是无线自组网、无线网状网、无线传感器网络的总称。基于无线多跳网络上的视频传输已得到了广泛关注和研究,但所依赖的底层路由协议基本上是传统路由协议(如AODV,DSDV 等)。近年来底层的路由协议有了新发展,文献[2]首次提出一种性能更好、被称作机会路由的协议ExOR(Extremely OpportuniSTic Routing)。
传统的无线多跳网络路由协议基本思路没有脱离有线网络,将节点之间人为地规定是否存在链路,并根据某种路由度量准则,选择最好的路由。而机会路由协议认为无线电波的本质是广播的,利用广播性质所带来的增益,通过节点间的协作,获得了高于传统路由的带宽。因此,从直观上, 利用机会路由作为支持视频传输的底层路由协议会取得比传统路由协议更好的性能, 但是机会路由为了获得这种增益而采取的调度机制在传输实时视频时会产生丢失部分I 帧的严重问题, 使得视频传输的稳定性受到严重影响。
针对此问题, 笔者提出一种综合利用传统路由和机会路由进行实时视频传输的跨层设计方法。
2 机会路由简介:
传统的无线多跳网络的路由协议和有线网络中的路由协议十分相似, 即在源节点和目的节点之间寻找1 组点形成1 条最优的路由,然后各节点依次转发数据。路由上各个节点之间被人为地认为有1 条链路存在, 因此并未有效利用无线电波的广播特性。
图1 机会路由原理演示图
如图1,假设源节点到4 个中间节点n1,n2,n3,n4 的链路质量较差, 且都是数据包发送1 次只有25%的概率可以收到, 节点n1,n2,n3,n4 到目的节点的链路质量很好,且都是数据包发送1 次100%的概率可以收到。那么,按照传统的路由机制, 会从4 个中间节点选择1 个最优的作为中继节点,由于4 个中间节点链路状况一样,则会随机选1 个节点作为路由转发节点,比如n2。这样,数据包会沿着源节点、n2、目的节点这条路由进行转发,那么1个数据包通过这条路由平均传送次数期望ETX(ExpectedTransmissiON Count)为1/0.25+1=5。而由于无线电波的广播特性, 源节点向n2 发送数据时,n1,n3,n4 也会收到一部分包。有些数据包n2 没有收到,但n1 可能恰好收到。有些数据包n1,n2 都没有收到,但n3 可能收到了。可以不必确定哪个节点是中继节点, 只要目的节点有数据包没有收到,那么任何1 个中继节点只要有这个包,都可以传给目的节点。假设n1,n2,n3,n4 收到包的概率相互独立, 经过计算1 个数据包的平均传送次数期望为1/(1-(1-0.25)4)+1≈2.5。这里,充分利用无线电波的广播特性可以获得1 倍的增益。随着网络拓扑的不同,ExOR 所获得的增益也不同,文献[2]实验结果表明ExOR 端到端的平均吞吐量是传统路由协议(AODV)的3 倍。
虽然ExOR 带宽利用效率和端到端吞吐量优势明显,但也存在不足之处,尤其在支持实时视频传输时显得更加明显,主要体现在以下3 点:
1) ExOR 路由算法内在地利用了无线通信的随机性,因此其传输调度算法对每个数据包都是公平的,而视频传输的特点就是不同数据包重要性不同, 因此两者存在一定的矛盾。
2) ExOR 成批发送,会造成一定程度的延迟。
3) ExOR 没有链路级的差错重传机制,最后几个数据包所需传输时间较长,在实时视频传输中,会导致部分关键帧数据包的丢失。
3 混合路由视频传输:
对于某些实时视频传输, 例如视频转播, 有如下特点:对实时性要求较高,系统可以允许一定的延时,但希望视频尽量是连续的,抖动较小,同时在保证传输的情况下视频质量尽量高。由于机会路由在端到端吞吐量上与传统路由相比, 有着明显的优势, 因此, 可以期望利用ExOR 进行实时视频传输取得比传统路由更优的性能。
在设计具体方案时,以下几点是必须予以考虑:
1) 由于ExOR 需要将数据包成批发送,因此视频的延迟将直接和数据包数量的多少相关。每批次的数据包越多,延迟越大;数据包越少,延迟越小。
2) ExOR 的性能和每批包的数量相关,文献[3]研究结果表明,每批包的数量越多,ExOR 的平均端到端吞吐量越高,但数量高于20 个后,数量增加对端到端吞吐量提升效果不明显。
3) 视频的参数选择需要考虑到I 帧的数量,如果I帧过多,会影响压缩效率,如果I 帧过少,会影响视频解码质量。
4) 视频播放时,I 帧的丢失是不可容忍的,因此要尽量保证播放时I 帧的数据已收到。
综合以上几点,选择1 个合适的编码参数,若每T s1 个I 帧,则将每T s 的数据作为一个批次发送。若传输延迟为t s,则初始延迟为(T+t) s。此后为保证视频播放的实时性和流畅性,无论每批次在T s 内是否传送完毕,都应停止当前批次的发送,及时启动下一批次的发送。在每批次中,视频帧的打包应遵循IETF 相关标准[4]规定。即每一个数据包的长度应满足不超过MTU (Maximum TransmissionUnit,最大传输单元,一般为1 500 byte)的条件,每个P 帧单独组成1 个数据包,I 帧在每个限制长度内组成1 个包, 不足的部分单独组成1 个包。如果只利用ExOR 传输数据,由于无线多跳网络本身的随机性和不稳定性以及ExOR 最后几个包的传输延迟较大, 并不一定能保证每T s 的数据都能在T s 内传输完毕。这样就会造成某些批次最后几个数据包的丢失。而ExOR 调度机制本身决定了这最后几个数据包是随机的, 如果丢掉的恰好是I 帧的数据包,造成I 帧的丢失,就会导致这T s 的视频无法播放, 从而造成视频观看的不连续性和主观收看质量的下降。因此,不能简单地将ExOR 直接用于视频传输,必须根据视频传输的特殊性做相应地调整。
视频传输与一般数据传输所不同, 其特殊性之一就在于视频传输中数据包的重要性是不同的[5]。关键帧I 帧是重要的,一般要尽量保证I 帧传输的可靠性。因为1 个I 帧将影响并决定其后数个P 帧的解码,1 个I 帧的丢失将导致2 个I 帧之间的视频无法播放或视频质量急剧下降。而P 帧是非关键帧,丢失个别P 帧对视频质量影响不大,一般来说,P 帧只是尽量传输,并不进行差错重传。因此,必须根据数据包重要性的不同进行相应处理。对于I帧,应保证无差错地传输,而对于P 帧,尽力保证一定时间内尽量多的传送。同时,传统路由虽然传输速率不如机会路由, 但是传统路由网络结构清晰, 并且无须成批发送,配合差错重传会使得某些特定数据传输更有保障。所以,对于实时视频传输,可以利用传统路由对I 帧的数据包进行差错重传, 而对P 帧的数据包用机会路由进行尽力传输。这样,就同时利用了2 种路由的优点根据不同数据包的性质选择相应合适的路由协议进行传输, 并且解决了I 帧丢失的问题。
4 实验结果分析:
为了对算法进行验证, 在Windows 平台下利用C/C++语言编写了无线多跳网络仿真程序,实 现了传统路由(AODV)[6]、机会路由(ExOR)、混合路由3 种协议。无线网络参数基于802.11 b,网络拓扑如图2 所示,A 为源节点,E 为目标节点。视频采用MPEG-4 标准,每秒25 帧,其中有1 帧为I 帧,视频码率为220 Kbit/s。为了对3 种方法进行公平的比较,采用以下方法:1)传统路由对I 帧进行差错重传。2)每1 s 的视频作为一个批次发送,为了保证视频的连续性,每1 s 时间到时,无论当前批次的数据包是否传送完毕,都开始下个批次的传送。3)用报文投递率(PDR)来衡量效果,考虑到视频数据的特殊性,规定若I帧没有收到,由于其他P 帧无法解码,则报文投递率为0,即当前1 s 的数据丢失;若I 帧收到,报文投递率为收到帧数/总帧数。
图2 实验仿真网络拓扑图(直线上的数字是链路分组传递率)
实验结果如图3 所示, 传统路由虽然可以保障I 帧的传送,但由于端到端吞吐量较差,因此总的报文投递率较低,影响视频收看质量。机会路由端到端吞吐量高,报文平均投递率高,但由于内在的调度机制使得某些时间I帧丢失,导致视频无法播放,影响了视频播放的连续性。
图3 3 种方式传输视频结果比较
而混合路由的平均报文投递率远高于传统路由, 与机会路由相差不多,但可以有效减少I 帧的丢失,保障了视频播放的连续性。
5 小结:
无线多跳网络中机会路由的端到端吞吐量远高于传统路由,但由于机会路由内在的调度机制,单独利用机会路由传输视频会产生I 帧丢失的问题, 并严重影响视频传输质量。笔者提出了一种将I 帧和P 帧分别利用传统路由和机会路由传输的方法, 获得较高的报文投递率并降低了I 帧的丢失率, 取得了比单独利用传统路由或机会路由更好的性能。