所谓无线网络,既包括允许用户建立远距离无线连接的全球语音和数据网络,也包括为近距离无线连接进行优化的红外线技术及射频技术,与有线网络的用途十分类似,最大的不同在于传输媒介的不同,利用无线电技术取代网线,可以和有线网络互为备份。
随着无线网络技术的快速发展和广泛应用,无线移动用户已经不能仅仅满足于简单的数据通信。视频通信,特别是有严格时延、错误率限制的实时多播业务需求正在迅猛增加。大量的实时多播应用充斥于无线网络中,包括:数字视频广播、视频会议、游戏、VoIP、IPTV等。
然而,IEEE802.11对多播数据的MAC层传输不提供纠错,多播数据无法得到可靠性保证。如何在高丢包率的无线网络中完成快速、准确的多播数据传输,这是无线网络下的多播纠错协议所要解决的首要问题。
现有的无线多播纠错协议大多是基于应用层,虽然在可靠性上都较好地达成了期望,但是由于应用层处于物理层、数据链路层、网络层等层次之上,在系统中位置较高,基于应用层的协议往往延时较大,有时候不能满足严格的应用程序延时限制。目前对无线MAC层多播纠错协议的研究主要有BMW(Broadcast Medium Window),BMMM (Batch Mode Multicast MAC)和BLBP(Beacon-driven Leader Based Protocol)等几种方法。BMMM传输一个数据帧要发送大量的控制帧而增加了传输时间。BLBP在可靠性上存在问题。BMW虽然可以确保进行可靠的多播,但是数据帧的纠错时间较长。因此本文在BMW的基础上,提出了BMW的改进协议MMW(Multicast Medium Window),既保持了BMW的可靠性,又克服了BMW延时较大的特点。
1 BMW协议
BMW协议提出了一种可靠的MAC层多播机制,其主要思想是轮流对各个邻居节点进行单播来达到多播的效果。
BMW要求每个节点保存3个列表:成员列表、发送列表和接收列表。成员列表用来记录所有邻居节点的MAC地址;发送列表用来保存已经发送但还没有被所有邻居节点确认收到的多播数据帧,列表大小应不小于邻居节点数量;接收列表用来记录已经收到多播数据帧的序列号。
BMW在RTS帧中新加入LS和RS两个域,分别用来标记发送列表数据帧中的最小序列号和当前序列号。CTS新加入SC域用来标记需要的数据帧序列号。扩展的RTS、CTS报文结构如图1所示。
当一个节点需要发送一个多播帧时,首先将该帧保存到发送列表中,然后在成功执行CSMA/CA后发送RTS。RTS帧包含当前发送列表中数据帧的最小序列号和当前序列号,并选择邻居列表中第一个邻居节点的MAC地址作为目的地址。该邻居成功接收到RTS后,根据最小序列号、当前序列号和接收列表检查是否有丢失数据帧。如果有则将丢失帧的序列号写入CTS并回复,否则回复带有当前序列号的CTS。发送节点收到CTS,从发送列表中找到对应的数据帧进行发送,目的节点成功收到该数据帧后回复ACK,并把数据帧的序列号记录到接收列表中。其他邻居在接收到该数据帧后也将对序列号记录到自己的接收列表中。如果发送节点发送的数据不是当前数据帧,则重复上述与该邻居节点对话过程直到发送当前数据帧并收到ACK确认。如能成功发送当前数据帧且该邻居节点已经确认收到发送列表中的所有帧,则删除发送列表中已被所有邻居确认的数据帧;然后发送节点将选择邻居列表中的下一个邻居重复上述方法发送下一个多播帧。如果没有新的多播帧需要发送,则选择邻居列表中下一个邻居使用上述方法发送当前的多播帧。当发送列表中没有数据帧时停止BMW循环过程,直到有新的多播帧需要发送时,重启BMW。
可以看出,BMW发送多播数据时,轮流对邻居节点进行单播,并在单播的时候对该邻居节点之前丢失的数据帧进行重传。每个多播帧都能确保被所有节点接收,但是每个节点只有被选择作为目的节点时才能对之前丢失的数据帧就行重传。当接收节点数目较多时,加大了数据传输的延时。
2 BMW的改进协议MMW
英文全称:Multi Media World,中文全称:多媒体世界。多媒体世界其实从字面上可以基本明白它的意思,就是由多种媒体组成,包容了报刊、画册、广播、电影等,并具有自身特有的功能——交互性,只要是能用来传播信息,任何媒体资源都可以把它加入系统中,所以多媒体是汇集了文字、图形、动画、视频、声音、特殊效果的系统。它的重要性不亚于早期的造纸及印刷术,是现代传媒的一场革命,改变了我们学习和理解问题的方式和传播信息的方式。
多媒体设备应从两个层面来谈:一是对普通用户,即多媒体产品的使用者——就象报刊的读者、电视的观众一样,只需要一台多媒体PC电脑,就可感受多媒体的无穷魅力。另一层面则是针对多媒体的设计人员,作为多媒体产品的制作者,除了要有性能较好的多媒体电脑外,还需配置一些输入设备,象扫瞄仪、收录机、麦克风、MIDI、录像机、视频压缩卡等,这样就能处理各种多媒体资料,另外在制作完成后还需要刻录机这类的输出设备。当然,制作多媒体并不是非得将每种设备都配齐,特别是对初学多媒体制作的朋友,有一台性能不错的多媒体PC电脑就行了。
MMW是在BMW的基础上进行改进的,既保持了多播数据可靠传输的特点,又可以使丢失的报文即时得到重传,减小了报文传输的延时。
2.1 改进成员列表
由于BMW对广播数据和多播数据不做区分,将所有各个多播组的多播数据和广播数据共同计算序列号,轮流对各个邻居节点进行单播并进行纠错。实际上把一个多播数据发送给非多播接收节点的邻居节点并进行纠错是没有必要的,而且增加了纠错时间。
MMW中规定每个节点为每一个多播组分别保存成员列表、发送列表和接收列表:成员列表用来记录该多播组所有多播接收节点的MAC地址,该列表在创建多播路由时获得;发送列表用来保存已经发送但还没有被所有多播接收节点确认收到的多播数据帧,列表大小应不小于多播接收节点的数量;接收列表用来记录已经收到多播数据帧的序列号。由于MMW对不同的多播组分开计算序列号,所以需要对RTS帧继续进行改进,具体报文结构如图2所示,加入MA域来记录多播MAC地址。该RTS帧用来表明将要发送的数据属于哪个多播组的以及源节点的该多播组发送列表中的最小序列号和当前序列号。广播被看作一个特殊的多播组,成员列表为邻居列表,RTS中的MA域填入广播MAC地址。
通过对成员列表的改进,每个多播报文只需要对各自多播组的接收节点进行纠错,而不需要对所有邻居节点纠错,减少了纠错延时。