"); //-->
基于TCP/IP协议栈的无线网络互联系统是一种新兴的无线通信技术,本文介绍了它的基本原理,分析了其特有的无线路由协议,特别从无线网络互联的角度重点讨论了无线路由器的协议栈的开发与相关协议的设计。
随着信息技术尤其是互联网技术的飞速发展,网络设备与系统体现出高效、灵活、可移植性强的特点。嵌入式系统以其特有的技术,为互联网的发展提供了强有力的支持。这种系统具有软件代码小,高度自动化,响应速度快等特点,特别适合于实时和多任务系统。自组织无线互联网络是最近无线通信网领域研究的热点,与利用基站管理移动结点的有中心结构网络不同,这种无线互联网络结点临时组网,网络中没有固定的基站,要依靠结点本身去实现路由功能,每个结点就是一个路由器。在自组织无线互联网络中,移动性是结点通信面临的最大困难,虽然已经有文献提出了移动会增大网络的容量,但是,移动性给结点通信带来的不确定因素也是很明显的。自组织无线互联网络在一些情况紧急,需要快速实现信息交换的场合,特别是在军事上的作用尤为突出。
无线网络组网技术概述
由于自组织无线互联网络的多跳特性,结点具有报文转发功能。这就要求结点实现合适的路由协议。无线互联网络网络中结点是移动的,网络的拓扑结构不断变化,传统的基于互联网的路由协议无法适应拓扑快速变化的需要,所以要设计适用于无线互联网络网络的路由协议。鉴于路由协议的重要性,IETF的MANET工作组目前专注于无线互联网络网络路由协议的研究。
无线互联网络路由协议的目标是快速、准确、高效、可扩展性好。快速指的是查找路由的时间要尽量短,减小引入的额外时延。准确指路由协议要能够适应网络拓扑结构的变化,提供准确的路由信息。高效的含义比较复杂。其一指要能提供最佳路由;其二指维护路由的控制消息应尽量少,以降低路由协议的开销;其三指路由协议应能根据网络的拥塞状况和业务的类型选择路由,避免拥塞并提供QoS保证。可扩展性指路由协议要能够适应网络规模增长的需要。
目前的无线互联网络路由协议按照路由表的维护特点大体可以分为如下两种:路由表驱动型和需求驱动型(源点选路)。
路由表驱动式路由协议又被称为表驱动(table-driven)路由协议,是一种基于表格的路由协议。在这种路由协议中,每个结点维护一或多张表格,这些表格包含到达网络中其它所有结点的路由信息。当检测到网络拓扑结构发生变化时,结点在网络中发送更新消息。收到更新消息的结点更新自己的表格,以维护一致的、及时的、准确的路由信息。不同的路由表驱动式路由协议的区别在于拓扑更新、拓扑消息在网络中传播的方式和需要存储的表的类型。路由表驱动式路由协议不断地检测网络拓扑和链路质量的变化,根据变化更新路由表。所以路由表可以准确地反映网络的结构。源点一旦要发送报文,可以立即得到目的地的路由。
目标排序距离向量(DSDV)路由协议是一种无环路距离向量路由协议,它是传统的Bellman-Ford路由协议的改进。群网关交换路由协议(CGSR)是DSDV的改进版本,它用于单频两级网络。无线路由协议(WRP)也是一种距离向量路由协议,每个结点包含距离表、路由表、链路权值表和消息重传表四张表。全局状态路由(GSR)是一种链路状态路由协议。每个结点存储邻居列表、拓扑表、下一跳表和距离表四张表格。FSR对GSR进行了改进。FSR的更新消息只包含附近结点的信息,显著地减小了更新消息的大小。分层状态协议(HSR)是一种用于分级网络的路由协议。高级的结点保存它所有子结点的位置信息。沿最高级的根结点到最低级的叶结点的路径为结点分配逻辑序列地址。序列地址指示了结点的位置,可以简单地使用序列地址进行寻址。
网络还配备了位置管理服务器来实现物理地址到逻辑序列地址的映射。ZHLS路由协议是一种基于区域的路由协议。网络被分割成不重叠的区域,区域与群不同,它没有首领。并定义了两级拓扑:结点级和区域级。结点级拓扑指一个区域内的结点的物理连接。区域级拓扑指各个区域如何互相连接。网络中存在两种链路状态报文:结点链路状态报文和区域链路状态报文。结点链路状态报文包含结点的邻居信息,只在区域内传播。区域链路状态报文包含区域间的链路状态,在全网中传播。通过分区可以减少路由控制报文的个数。
事件驱动式路由协议,是一种当需要时才查找路由的路由选择方式。结点并不保存及时准确的路由信息。当源结点要向目的结点发送报文时,源结点在网络中发起路由查找过程。找到相应的路由后,才开始发送报文。为了提高效率,结点可以将找到的路由保存在缓存中供后续发送使用。AODV是DSDV的改进型,通过随选路由来降低DSDV中控制报文的数目,从而提高系统效率。为了查找到达目的结点的路由,源结点广播一个路由请求消息。它的邻居收到广播消息后再次广播,直到请求消息到达目的结点或到达知道到目的结点路由的中间结点。目的结点或知道路由的中间结点沿原来的路径向源结点返回路由响应消息。源结点收到响应后,它就可以得知到达目的结点的路由。AODV还包括路由维护部分,实现当路径上的中间结点移动时对缓存中路由的修改和删除。
DSR是一种源点选路路由协议。TORA是一个有效的、可扩展性好的事件驱动式路由协议。它可以找到从源结点到目的结点的多条路由。ABR中路由的选择是以结点间的连接稳定性作为度量依据的。SSR中路由的选择是以结点间的信号强度作为度量依据的。CBRP被用于单频两级网络中。CBRP也使用源点选路,路由查找使用与DSDV类似的请求-回应方式。为了减少报文丢失率,引入了中间结点本地修复机制。
路由表驱动式路由协议不断地检测链路质量,时刻维护准确的网络拓扑和路由信息。优点是发送报文时可以立即得到正确的路由。但路由表驱动式路由协议需要大量的控制报文,开销太大。事件驱动式路由协议中的结点不用持续维护网络的拓扑结构。仅当需要时,才查找相应的路由,这就节省了路由维护的开销。特别是当网络负荷不是很重时,节省的开销更加可观。但查找路由会引入较大的时延,不适用于时延敏感型应用。
无线路由器的设计原理
无线路由器的设计主要包括:
◆高速数字电台MAC子层协议与LLC层功能的实现
◆群内(intra-cluster)拓扑关系的维护
◆群间(inter-cluster)路由协议的实现
◆群内成员(cluster member)组织与群首选举算法
无线路由器采用VxWorks操作系统,IP以上的功能及PPP协议处理由操作系统完成。控制设备通过PPP与路由器互联,在无线子网内部通过自行开发的路由协议实现无线互联网的寻址,并通过类似于CSMA的链路控制协议实现报文传送。协议分层结构如图1所示。
我们只开发无线子网路由协议和链路协议。这种配置的优点是可以充分利用操作系统所提供的成熟技术,加快开发进度,并为将来功能的扩充提供基础。
1. MAC子层与LLC层协议功能的实现
MAC子层功能包括信道忙闲的检测,信道通信质量检测及接收门限的设置;依据电台检测到的空闲频率点上的信噪比(SNR),确定最佳(以SNR值高)的前10个频率点,组成最优频率集,通过频率协商,发送方与接收方在共同商定的频率点上进行通信,频率协商机制提高了系统的效率,增强了可靠性。用于频率协商的数据帧的封装格式如图2所示。
对于无线通信网络MAC层的“隐终端”问题,系统采用带报文长度的发送请求RTS和发送允许CTS方式解决。帧内包括最佳频率表。收方如果空闲就回CTS,帧内包括了协商的频率。发送方收到CTS后发送数据,收文对数据要确认,如果超时就关闭连接,重新开始。(可选项有NAK)。特别需要指出的是,对于长度大于设定门限的报文采用RTS/CTS减少冲突,而对于小的报文则直接发送。经过测试,这种信道访问方式减少了冲突,提高了网络的吞吐量。
在MAC层还要实现数据帧的组装(帧头、帧尾的添加,字符填充,CRC和FEC的计算)和帧定界,去填充,比特差错控制,在接收时要实现帧头帧尾的剥离。除此之外,退避算法的实现,定时器的设置也是必不可少的。
高速数字电台的数据链路控制层(LLC)提供相邻结点之间的数据报文传送服务,有可靠(停止等待)和不可靠两种。停等协议的重发时间应该在某个范围内取随机值,减少发送碰撞的概率。对重传次数应有一定的限制,重传不成功则丢弃该分组。重传不成功时应向上层报告,以便修改路由表。LLC层还可以实现流量和拥塞控制,以及链路质量检测。
2. 群内(intra-cluster)拓扑关系的维护
群内拓扑关系由Intranet层来维护,路由算法有静态路由和分布式自适应动态路由两种,分别适应静止和运动中的需要。无线分组网路由表的维护主要通过定期向群首广播本站的路由信息并采用HELLO信息来确定群内结点之间的连通性。路由算法的数据来源是邻站发送的路由报文和本站下层报告的链路质量,并根据收到路由信息报文,修改本站的路由表。对于从LLC层接收到的数据包,经过LLC层处理后提交给数据包转发层程序,由转发层程序决定接收,丢弃或者是转发数据包;对来自转发层的报文,根据路由表找出所有可能的路由,交LLC层发送。该层不对报文进行分段和组装。
子网路由协议由Intranet层来维护。路由算法有静态路由和分布式自适应动态路由两种,分别适应静止和运动中的需要。路由算法的数据来源是邻站发送的路由报文和本站下层报告的链路质量。对从LLC层收到的报文,提交给转换程序。对来自转换程序的报文,根据路由表找出所有可能的路由,交LLC层发送。该层不对报文进行分段和组装。
每个网络结点(电台)维护本子网的路由表,网关结点还要维护子网间的路由信息,利用OSPF协议完成子网间路由信息的交互。网络拓扑更新采用周期性更新和事件触发更新两种方式,保证每个结点维护完整的路由信息,和网络结点路由表的一致性。除此之外,子网路由协议中还要求网关结点维护整个子网的结点信息,非网关结点定时向网关报告路由信息,由网关结点提取本子网的摘要信息在骨干网上传输。
3. 群间(inter-cluster)路由协议(OSPF V2)的实现
每个网络结点(电台)维护本群的路由表,网关结点还要维护群间的路由信息,利用OSPF协议完成群间路由信息的交互。该协议的特点是对拓扑变化反应迅速,可以在短的时间内根据变化更新路由表,并支持在多条等长的路径之间进行负载平衡,有效地减少路由信息传播数量,实现路由保护功能;OSPF协议还允许外部的路由信息在自治系统的边界路由器中传播,同时要求交互信息都要经过认证机制的认证;在路由表的计算方面,每个结点都以自己为“树根”,计算出到达本自治系统其它结点的最短路径;指定路由器与备份路由器的选举协议有效减少了信息交互的数量,节约了网络带宽;OSPF协议修改了以前的HELLO协议,使HELLO信息能够在网络中高效传播;为适应网络的发展,OSPF协议支持新型的CIDR(无类域间路由)和VLSM(变长子网掩码)机制[3]。
网络拓扑更新采用周期性更新和事件触发更新两种方式,保证每个结点维护完整的路由信息,和网络结点路由表的一致性。除此之外,子网路由协议中还要求网关结点维护整个子网的结点信息,非网关结点定时向网关报告路由信息,由网关结点提取本子网的摘要信息在骨干网上传输。
基于VxWork操作系统设计OSPF软件就必须了解VxWorks操作系统的网络协议栈,并对其进行详细的分析,只有熟悉了TCP/IP协议栈的工作过程才能在它的基础之上开发OSPF路由协议的移植程序。
我们从以下四个方面分析了TCP/IP协议栈:
a. 协议栈工作原理
b. socket套接口程序
c. IP转发程序
d. 路由管理功能
这四个方面是VxWorks网络协议栈工作的基础,也是在移植工作之前需要分析的重要模块,对它们的分析有利于在协议移植过程有效利用它们的功能和模块提供的API函数,也为协议移植甚至是协议栈的改进提供了依据。最后,经过对系统的全面分析,我们所设计的OSPF路由协议与VxWorks。
4. 群内成员的组织与群首选举协议
群内成员的组织主要依靠群首结点来实现。群首结点依靠HELLO信息维护其与群内成员结点的连接关系,当某个群内成员结点与群首失去联系,就会试图与其它群的群首建立连接关系,如果仍然失败,则该结点成为一个新的群,并成为新群的群首。
群首选举协议采用最小群首改变策略LLC,避免频繁地改变群首。只有当两个群首可以直接通信或者有一个结点与所有群首失去联系的时候才能更改群首。“群首”负责收集本群的路由信息,群内的所有成员结点都把路由信息发送给“群首”。群内两个“群首”之间通过骨干网络交换路由信息。
结束语
VxWorks操作系统是目前非常流行的商用实时系统,通过发布Tornado开发工具,方便了开发人员并大大减少了开发周期。在无线电台组网技术中,由于VxWorks的网络功能支持对其它网络和 TCP/IP 网络系统的“透明”访问,包括与BSD套接字兼容的编程接口、远程过程调用(RPC)、简单网络管理协议(SNMP)(可选项)、远程文件访问,以及网络启动协议(BOOTP)和地址解析协议(ARP)代理。无论是松耦合的串行线路、标准的以太网连接,还是紧耦合的利用共享内存的背板总线,所有的VxWorks网络机制都遵循标准的互联网协议。这给我们开发系统创造了方便条件,使开发人员的注意力集中在无线子网路由协议和链路控制协议的开发。
近来,随着个人通信业务的迅速发展,便携式网络终端为嵌入式操作系统开拓了新的发展空间。这种无线通信设备具有体积小,重量轻,软件配置灵活简单等特点。同时易于硬件设备制造商把系统植入硬件,此外,开发环境与硬件无关的特性也为开发人员提供了方便。
参考文献:
[1]Russel Ruppe. NEAR TERM DIGITAL RADIO SYSTEM, Space and Terrestrial Communication Directorate 1997 IEEE.
[2]Douglas E. Comer. 互联网Working with TCP/IP Volume II, Prentice Hall, 1998, 325-377.
[3]杨盘龙,张磊,郑少仁, VxWorks在高速数字电台互联网中应用,单片机与嵌入式系统应用,2001年第8期
[4]赵志峰,郑少仁,Ad Hoc网络体系结构研究,电信科学,2001年第1期
作者:
杨盘隆、郑少仁
交换技术与ATM中心
解放军理工大学通信工程学院
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。