无线Ad Hoc网络跨层QoS保证的方法与应用探析
扫描二维码
随时随地手机看文章
摘要:介绍了无线Ad Hoc网络跨层设计的背景,指出了传统因特网的QoS方法无法完全照搬到Ad Hoc网络上,而跨层设计是能够有效解决Ad Hoc网络服务质量问题的有效方法。同时,对跨层设计的基本原理进行了探讨,进而提出了一种跨层设计的方法。另外,对跨层信令的交互、内部消息的格式、外部消息的格式做出了规定,并用实例说明了这种跨层设计方法的具体实施过程。
关键词:无线自组网;服务质量;跨层设计;信令交互
0 引言
无线Ad Hoc网络,又称移动自组织网络,是不依赖于任何固定基础设施的移动节点的动态联合体。它具有无需基础设施支持、高度动态、移动通信等优点,因而得到了广泛的应用(如军事应用、紧急救助、灾难援助、医疗应用、电子商务等)。随着无线网络技术的迅速发展,人们需要移动Ad Hoc网络支持多种多媒体应用,例如VoIP、视频会议、实时协作等。
在上述应用中,通常都要求语音图像等应用信息能实时准确传送,文件下载等应用则要求有较好的带宽和较低的丢失率。因此,人们迫切需要移动Ad Hoc网络具备良好的Qos机制。但是,由于移动Ad Hoc网络所具有的节点对等性、动态性和能量有限性等特点,互联网QoS控制机制在移动Ad Hoc网络上往往无法使用,而且在移动Ad Hoc网络上要提供Qos控制支持则更为困难。
1 跨层设计的背景
目前,对无线Ad Hoc网络的研究主要的仍然是采用传统的Internet分层协议体系结构,在该体系的指导下,在网络的不同层展开了大量的研究。但是,这些研究基本上都忽略了网络设计的整体需求和各层功能之间的相关性。协议栈的每一层都是独立设计和工作的,只在层与层之间有静态的、与网络各层的限制和应用无关的接口。分层结构极大程度地简化了网络设计,并导致了因特网中健壮的、可升级的协议,然而这种严格的分层设计方法缺乏灵活性,不能很好地适应无线AdHoc网络的特点。在实际的网络通信过程中,层与层之间的信息难以共享,也增加了大量难以控制的链路开销、信息冗余以及对等层间的通信开销。对于有线网络来说,为了应对这些开销以及网络其它层的动态变化,设计大都是通过过度的冗余设计网络每一层来处理的。然而,无线Ad Hoc网络的能量和带宽等资源严重受限,因为对等层通信要消耗大量的带宽和能量资源,所以,分层结构的这种设计方式进一步加剧了无线Ad Hoc网络带宽资源和能量资源的限制,使得网络性能恶化。
无线Ad Hoc网络的能量效率、QoS支持、安全和可扩展性问题都涉及网络协议栈的各个层次,需要多个协议层共同配合得以优化。在实际的网络优化过程中,各个层次的独立优化不一定会带来整个系统的性能优化,尤其是当能量受到限制、或是应用程序带宽需要很大、或者延迟受到严格的限制的时候。为了达到这些要求,需要具有自适应性和协议栈多层优化的跨层协议设计,因而就出现了无线Ad Hoc,同时在网络中出现了支持跨层交互和实施性能优化的跨层设计方法。近年来,在无线Ad Hoc网络中,应用跨层设计的思想受到了越来越多的关注。
2 跨层设计原理
跨层设计思想是相对于OSI模型而言的,目前并没有明确的定义。其总体目标是通过提高协议间在本地端的交互,来降低远程通信,节省带宽以达到优化网络性能的目的,但同时也必须考虑跨层所需付出的代价,包括设计、生产和维护。严格的分层能保证各层间可控制的交互,开发和维护任何一层与其他层都是相对独立的。在跨层设计的时候,应当保持模块结构的优点,尽量和已有的成熟标准兼容,少或不修改传统层次中的核心功能;不仅需要考虑静态跨层优化设计,还要考虑动态优化跨层自适应。
在无线Ad Hoc网络设计中,将整个分层协议栈整体进行跨层设计过于复杂,也难以实现,科学有效的做法是根据无线Ad Hoc网络需要,应用QoS的约束条件,策略地选择若干层次进行跨层设计。
跨层设计意味着移动通信系统协议栈内的每个层都能够与其他层进行信息交互,从而使得各层都能够利用其它层的信息来控制自身的工作过程。一个层既能与上层交互信息,也能与下层交互信息。处于不同设备的不同层之间也能够进行信息交互。进行信息交互的层包括应用层、传输层、网络层、链路层及物理层。就目前的研究情况而言,跨层设计机制主要包括两类:一类是由上层到下层的机制;另一类是由下层到上层的机制。
由上层到下层的机制将信息由上层传递到下层。例如应用层可将其相关信息(传输时延或分组丢失率)传递到链路层,使得链路层能够调整其纠错机制。或者应用层的优先级信息被传递到传输控制协议(TCP)层,从而使其接收窗口能够得到调整,以获得相应的优先级。
由下层到上层的机制将信息由下层传递到上层。例如TCP层的分组丢失率被传递到应用层,使得应用层能够调整其发送速率。或者物理层将信道衰落信息传递到链路层,从而使链路层能够根据信道条件调整数据的发送方式。
在分层设计方式中,很多时候,多个层往往可能需要做重复的计算和无谓的交互来得到一些其他层次很容易得到的信息,以至于浪费较长的时间。跨层设计与优化的优势在于通过使用层间交互,不同的层次可以及时共享本地信息,以减少处理和通信开销,优化系统整体性能。与传统的分层结构相比,跨层协议栈的层间交互要复杂些,各层需要了解其他层的行为并需要更多的专用接口,因而会降低通用性。但是,跨层设计方法的好处是:各层协议和功能模块的协同有助于消除冗余功能;采用消息驱动的控制方法,任意层之间可以交互信息;针对特定的场合进行集成设计和优化可以较好地匹配应用需求和网络条件。考虑到无线信道有限的带宽资源、信道的时变特性以及节点自身的局限性,跨层设计方法的优势所带来的好处远远大于层间交互带来的协议设计复杂的缺点。
图1所示是Internet协议和Ad Hoc跨层等两种网络体系结构的设计原则图。其中固定Internet的网络拓扑是准静态的,相邻路由器之间的链路带宽充足,网络的瓶颈是路由器的处理能力和存储容量。因此,Internet的网络协议往往通过使用较多链路带宽来减少路由器的处理和存储资源的耗费,即强调相邻路由器对等实体之间的水平通信,以尽量减少路由器内协议栈各层间的垂直通信(如图1(a)所示)。Ad Hoc网络中的链路带宽和主机能量非常稀少,并且能量主要消耗在发送和接收分组上,而主机处理能力和存储空间相对较高。为了节省带宽和能量,在Ad Hoc网络中应该尽量减少节点间水平方向的通信。跨层设计方法正是这种设计原则的一种具体体现,它通过增加协议栈各层之间的垂直交互来减少协议层对等实体之间的水平通信(如图1(b)所示),协议栈中各层协议在逻辑上是耦合的,因而减少了不必要的水平通信所造成的资源浪费。
3 跨层设计方法的特点
通过对传统的分层体系结构的研究,可以确定现有层间通信方法的一些主要缺点。
首先,通过协议栈的信号传播方法效率不高(例如ICMP方式)。一层一层传播的方法只是仅仅遵循了数据传输的模式。因此,中间层必须被涉及到,即使消息源层和目的层才是事实上的目标。这将导致不必要的处理和传播时延。传统的层间通信必须相邻,逐层传播的方法仅仅遵循数据传输的模式。因此,会导致不必要的处理和传播时延。
其次,信号的信息格式,即对上行和下行的动态信号来说不够灵活,也对各个节点内外的不同信号来说不够优化,而且,所需要的信号格式应该是更丰富的信今方式,而不是简单的跨层暗示(Cross-layer hints)和通知(notifications)。
因此,本文给出了一种跨层设计的方法,希望使其成为一种高效率、灵活和包容性好的机制。它具有如下特性:
3.1 不相邻层间的直接信令传输
跨层设计方法的基本思想是打破层排序的制约,但保留层结构(layering structure)。举例来说,激活应用层和网络层之间的直接通信,而不需通过中间层(传输层)。虽然这种方法对原有的分层协议栈来说并不是不能使用,但它仅仅作为异常情况出现,而不是设计为一般处理应有的功能。又如GSM中,第三层实体RRM(Radio Resource Management)直接访问物理层。网络层和应用层之间的一个专门的API被定义在一个软件模拟器GloMoSim中。同样的法则也可应用在基于软件的真实世界的应用中。显然,这一机制也应用在相邻层间的信号传播中。这一特性的概念如图2所示。下面是对协议栈传播时延的简单分析:
对于消息一层一层传播的方法,两层间的上行(或反过来)传播时延,其第一层(源层,不一定是物理层)和第n层(目的层,本情况中1<n≤5)可以用公式表达为:
与逐层传递相比,不相邻层间的直接信令传输的传播时延只有前者的1/(n-1)。层数越多,它就越有意义。只有当n=2(相邻层间传播信号)时,两者才没有区别。
3.2 消息格式
对内部消息传播,没有必要使用标准协议,它通常都很繁琐和低效,特别是对网络中差错控制的传播。内部信号传输使用ICMP消息,除了大IP报文头(对IPv4来说20字节),一个普通的ICMP报文头本身是8字节,所需的校验字段为2字节,占了25%。因此,缩减额外的报文头和将字段最小化可以将内部消息格式简单化。虽然报文头压缩技术正在发展,但这仍然是另一个领域的问题。从本质上来说,交互消息只需要目的地址、事件类型、事件内容等三个字段。其中,目的地址包括目的层和目的协议或应用程序;事件类型用于标志一个参数;事件内容主要是参数值。
如果为目的地址和事件类型各分配一个字节并假设事件内容字段占2字节,整个消息大小为4字节。类似的,检查一个IPv4封装的、有8字节报文头和2字节内容的ICMP消息,整个消息大小为30字节,是“轻量”消息的7.5倍。引入一个可选字段Next Event,消息也可以用累计的方式传播。
对于外部消息,ICMP可以用于一般消息,而TCP/IP报文头则可用于较短的通告。
3.3 消息控制协议
消息控制协议的目的是期望可以用一种优化和组织得当的方法来保证密集的消息,同时通过不同的层,从而达到高效率并避免冲突。可以以ICMP中的消息产生和读取的机制为基础。一般,每当层中有参数发生重大变化,这个层将产生一个带有layer-specific参数的消息。在协议里,函数调用用来设置和取得参数,系统调用则用来读取消息。特别的,层间实际互操作依赖于任务并且在协议中有详细描述。
本文所提出的跨层设计方法是一种框架,能使用在不同的应用场景。真正的优化不仅要求跨层设计,还要求有跨层适应性。传统网络具有一定的适应能力,例如许多通信系统使用信号处理方法来适应信道环境的变化,通过调整路由表来适应业务负载的变化。然而,这样的调整是隔绝在特定层中的。跨层适应性将允许所有网络功能在不同功能之间传送信息并适应,以便满足QoS需求变化、网络负载变化和信道条件变化的要求。不难理解,跨层设计要求网络各层的静态优化,而适应性则要求跨层动态优化。
4 设计过程
在某个特定管理任务的应用领域利用跨层设计方法时,要遵循一个特定的设计程序。本文用一个例子来说明在使用跨层设计方法时所经过的程序,这个例子使用一个自适应的多层无线Qos的协议栈,图3所示是跨层QoS自适应协议栈模型。该模型的基本思想是在实时和非实时应用和其下的层之间,通过交互和响应可控制的QoS参数来实现自适应应用和协议。
首先要确定每一层对此任务特定的贡献。现存的层特定机制或协议使得这些贡献之间是相互独立的,可以从中选择合适的,如有必要,也可增加一些服务,并将其引入协议栈。例如将IntServ或Diffserv引入网络层,用作基于IP的QoS管理。为了控制误比特率,可以引入前向纠错FEC和可选择的ARQ到链路层中。传输层中的TCP/RTP可以处理延迟抖动以及和错误相关的参数(如包丢失率)等等。
第二是设计出各层中需要跨层的信息。一个跨层的信息可以是其他层有兴趣的一个参数,也可以是需要向其感兴趣的层显示的结果、行为、功能、动作。前者是可选的环境度量,比如无线系统中经常会用到的信噪比和接收信号强度等。现以IP级的数据交换为例来说明这个问题:在整个交换过程中,传输层需要调整自己的行为,比如,TCP可以被通知时间上的挂起,从而避免重发。又比如,通过链路层到传输层的联合差错控制来控制误码率。类似的,链路层和网络层也可以在帧和包的级别上分别控制限制延迟的传输,因此,联合延迟控制也是可能的。传输层负责报告与差错有关的参数和应用层的延迟抖动,网络层报告延迟的限制,所有参数都编码成固定的消息格式。
第三,是用所有交互的信息确定层之间如何交互来完成任务。在这个为适应QoS改编的例子中,一个应用需要用所有相关层的可控制参数和相应的值(或值域)来描述其QoS的要求。一般的,一个实时服务可以忍受较高的包丢失率或误码率,但是,要保证延迟和抖动足够小。而非实时的业务通常有着相反的需求。各层可以报告应用参数的任何重大变化,它们将随着变化相应地做出改变。而且,最下层发出的测量报告,加上其他参数,将对上下文有关的应用有好处。一个应用甚至可以为了成本、能量和节约资源等目的,而与相关的层就某个参数进行协商,直至最小或需求得到满足。在接收到一个这样的请求时,相关层将相应地改变它的行为(如停止一个可选的控制机制)。这个行为调整可以看做是协议调整,因此,在这种情况下,应用和相关层之间的调整是互惠的。
特别需要说明的是,对于一个复杂的任务,可能需要一个该任务特有的协调模块来用一种联合的方式完全调用各层的服务,或者为了使用方便,需要用集合方式管理相关的信息。在这种情况下,可以在应用层中设置一个模块来收集接收到的参数,之后,感兴趣的应用就可以访问这个模块取得想要的参数,这样,重复传送信号就可以避免了。使用上面的方法甚至可以得到一个基于IP的支持移动的协议栈,从而用一种综合的方式处理QoS、无线电资源、能量等管理问题。
5 结语
现有QoS各层的控制策略相互独立,局部优化性和多层重复相似控制策略的冗余性限制了无线自组织网络的性能。随着无线Ad Hoc网络技术的发展,跨层设计越来越受到人们的重视。跨层设计是无线Ad Hoc网络的重要研究课题,通过跨层设计能较好地克服无线Ad Hoc网络无中心控制节点、网络拓扑快速变化、节点资源和网络带宽受限等问题所带来的影响,同时能够更好地满足无线环境内更高数据速率的要求,使实现端到端的QoS成为可能。