张新华
(太原大学外语师范学院,山西 太原 030012)
基于Linux AdHoc网络MIPv6方案的实现
张新华
(太原大学外语师范学院,山西 太原 030012)
摘要:给出基于自组织网的Linux系统上MIPv6协议的执行方案和关键技术的改进方法,并设计出执行MIPv6协议的框架,提出了协议执行程序需采用的关键技术.然后,对移动性的切换延时问题进行分析,降低了系统延时.最后,建立实验场景,对移动切换的性能进行研究.通过对比延时数据,验证了改进后的方案是正确且可行的.
关键词:自组织网;MIPv6;双网卡技术;Linux
自组织网是由一组可相互通信的移动节点组成的一种自主系统.节点间的通信不必依赖于固定的基础架构.当2个节点彼此无法直接通信时,数据会经过中间节点搭起的路径进行传输[1].随着互联网的不断发展和移动范围的不断扩大,人类对通信的要求越来越倾向于移动性.将MIP添加到自组织网已经是一种普遍趋势.笔者对通信能从一端到另一端的MIPv6协议展开探讨.其扩展性能带来安全性和移动性,全世界范围内MIPv6逐渐被用来取代IPv4作为下一代网络协议.MIPv6协议为IP路由提供一种机制,每个移动节点有2个地址:静态本地地址和动态转交地址.如此一来,在不对上一应用层进行调整的情况下,就能便于移动节点连接到具有永久本地IP地址的任何链路上进行切换.
标准的MIPv6协议只适合单跳接入,对多跳自组织网不适用[2].鉴于此,笔者将MIPv6协议与自组织网相结合应用在Linux系统上.为了实现多跳移动切换,对切换延时作了比较.同时,提出一种方案来降低延时,具体做法是配置双网卡来降低因扫描数据包丢失情况所导致的延时.通过分析,发现因移动性导致的延时得到有效降低.
切换是移动通信的一个重要部分,是使移动节点从一个接入路由器移动到另一个的同时又维持它的互连性.在切换过程中,切换延时、数据包丢失率及负荷是3个重要的性能指标.切换延时是判断通信质量的关键指标[3],因此,降低切换延时是笔者研究的目标.移动IPv6协议包括移动检测、IP地址配置和位置更新.移动检测和路由收敛是最重要的2个因素.使用链路层自动扫描法来快速扫描接入点可使延时达到最佳.此外,还使用到双网卡技术来减少因单网卡配置所致的数据包丢失问题.
1Linux系统上MIPv6协议的框架
MIPv6的执行环境是Fedora-2.6.16系统,基本流程框架如图1所示.
图1 MIPv6的基本过程框架
基本流程是从主功能开始,然后触发流道、mh_listen、icmp6_listen和sigth这4个线程[4].这些线程被阻塞后要等待一些条件.当条件满足后,调用恰当的例程来进行处理操作,处理完毕,返回到阻塞状态.所有这些线程都是无限循环线程.
mh_listen负责处理MN与本地代理和对应节点的连接,包括连接控制信息以及返回路由的交互信息.
具体信息和处理功能如表1所示.
表1 MH_LISTEN和处理功能
MIPv6网络层切换算法的执行通过mh_listen与icmp6_listen之间的交互来实现.流道线程从tq_list中读取列表,该表按年月日次序进行排列.
(1)链路层切换.
此前的实验中,应用“iwconfig”命令来执行手动切换.然而,当节点移动时,该方法使用起来十分不便.所以,通过“autolink”的自动扫描程序对“iwlist”源代码作了调整.该代码包含用来搜索无线网络的“iwlist interface scan”命令.“autolink”程序可获取到各个子网的质量信息,这些子网通过将“link quality”加入到调研信息里而获取到理想的通信质量.
有一部分iwlist过程会发生变化,主要表现在以下2方面:使用“while”循环程序对子网进行定期扫描;利用socket函数“select”机制来定期唤醒扫描程序.
增加链路质量比较,确定当前子网的“curessid”、最佳接入子网的“bestssid”、当前链路质量的“curqual”以及最佳链路质量的“bestqual”.
当被扫描到的链路质量优于最佳链路质量时,“curqual”和“curessid”的值被替换成“bestqual”和“bestessid”.
(2)网络层切换.
分析执行数据,切换延时主要包括移动检测和路由收敛,要优化切换延时就需要对这些参数进行调整[5].
移动检测:路由器定期发送路由器通告(RA)以告知其他节点有关该子网的信息.移动节点接收来自路由器的通告并通过对比子网前缀来确定该节点是否发生了网络层的移动.协议里的RA消息时段默认为10 s.当移动节点切换到新子网上后,为了接收到发送网络信息的新路由器,将该时段缩短至5 s.
路由收敛:当移动节点接入到新子网时,它无法立即进行通信,因为这个新子网尚未完成收敛.将“hello”消息和“tc”的默认值分别从2 s和5 s调整到1 s和4 s以缩短收敛时间.
2实验场景的构建和应用分析
在测试过程中,采用的系统是Linux内核版本和802.11b链路层协议的Fedora-2.6.16系统,最大传输速率为11 Mbps.拓扑结构呈分层形状.无线网卡是TPLINK TL-WIN322+,传输范围是室内为100 m以内,室外300 m以内.将网卡设为自组模式.
(1)性能测试工具.
Ping6:在IPv6环境下运行“ping6”命令来检测网络的连接性.采用“ping6”收集切换和数据包延时的统计数据.
(2)手动切换多跳网络.
实验在室内进行.建立一个分层的自组织网,配置有3个子网,如图2所示,有1个移动节点、1个本地代理、2个接入路由器、2个次要节点和1个通信节点.当移动节点在3个子网内部进行切换时,它通过一条二跳路径维持与AR的通信.相关信息必须从直接节点转播给路由器.有关配置如表2所示.
图2 多跳网络拓扑结构
表2 节点配置
(3)拓扑结构的测试.
由图2可知,移动节点位于本地代理的一跳范围外,当发生切换时它可以接入到外部网络.借助于次要节点,它可以与接入路由器和对应节点进行通信.
(4)数据测试.
对RA时段和OLSR路由数据包的时段进行调整有助于缩短切换延时.由上述测试实验可知,进行时段调整后,当移动节点从子网1移动到子网2时,切换延时是18 s.当从子网2移动到子网3时,延时是19 s.当返回至子网2时,延时是20 s,当移向本地子网时,延时是19 s.这组延时较之前的要稍短一点.在对时段参数调整之前,平均切换延时约是20 s.调整这些参数并没有明显缩短切换延时.
无线网卡的实际传输范围是室内约100 m,室外约300 m.使用“ip6tables”数据包过滤工具来断开与多跳拓扑结构的直接连接.
测试实验在室外进行.建立带二跳分层自组织网的2个子网,拓扑结构如图3所示,其中包括1个移动节点、1个本地代理、1个接入路由器和2个次要节点.移动节点和各个子网节点无法直接通信,而需要有次要节点的协助.在移动节点切换过程中,本地代理与移动节点之间可以保持通信状态.表3给出了各节点的配置情况.
图3 二跳网络的自动切换
表3 节点配置
由表4和图4的测试数据可知,通过对协议中的默认值进行调整,切换延时得到缩短.执行过程中,控制信息的时段太短,网络负荷会增加,如此一来,不仅没法降低切换延时,而且容易导致网络拥堵.通过对比二跳切换延时的手动切换和自动切换,可知自动切换延时比手动切换的要长,原因在于在自动切换过程中,无线网卡必须定期扫描网络.扫描时,接收到的数据包被丢弃.当扫描时段拉长,数据包丢失率就降低,但切换延时会延长.另一方面,扫描时段缩短,切换延时也跟着缩短但数据包丢失率会提高.这就要求在切换延时与通信质量之间达到平衡.故笔者提出采用双网卡机制来改善这方面的性能.
表4 测试范围
图4 修改参数的测试结果
3采用双网卡机制来改善多跳切换延时
移动节点之间通过相同的网卡来进行通信和扫描,这是影响通信质量的关键所在.因此,可以给移动节点配置2个网卡,一个用于正常通信,一个用于扫描网络质量,然后将结果反馈给网卡.通过这些反馈信息,网卡可以作出判断并进行切换.在未受干预的情况下,将扫描和通信任务分配给2个相对独立的网卡.通过缩短其他网卡的扫描时段,利用实时意识就保证了通信质量并降低切换延时.
图5 加入双网卡机制的测试结果
对已有网卡配置增加新的网卡工作模式(IP地址、工作频率),用新网卡识别程序替换“autolink”配置文件里的扫描网卡识别程序.对“autolink”程序进行编译后就可以运行网卡.
相关配置和参数与前面测试用到的相同.测试结果如图5所示.
显而易见,在添加了双网卡机制后,性能得到显著提高.测试实验说明系统得到的结果是正确且可行的.
4结语
在Linux系统上对MIPv6协议进行了执行研究实验.在不同的网络拓扑结构里验证测试实验的可行性和有效性,提高了影响切换延时的分块性能.通过构建测试环境,得到延时数据.对这些数据进行分析可知,通过调整参数有助于缩短切换延时而使协议达到优化.最后对因单网卡导致的数据丢失问题提出采用网卡机制,改变网卡的工作模式,该机制证明能有效地解决切换延时问题.
参考文献:
[1] ZHANG Yujun.A Mobile Agent Fault-Tolerant Method Based on the Ring Detection & Backup Chain for Mobile IPv6 Networks[C].Beijing:IEEE International Conference,2011:1-5.
[2] LIU Hai.Research of Mobile Handing off Technology Based on Hierarchical Self-Organizing Network[J].UESTC,2006:34-39.
[3] XIE Gaogang.Handover Latency of MIPv6 Implementation in Linux[C].Beijing:Global Telecommunications Conference,2007:1 780-1 785.
[4] FERRE R V.Improving Fast Handovers for Mobile IPv6:Optimal Crossover Discovery Using Geopaging Routing Tables[C].Barcelona:Vehicular Technology Conference,2005:2 994-2 998.
[5] FANG Yading.Research on Seamless Handover for WLAN with MIPv6[C].Beijing:ITS Telecommunications Proceedings,2006:1 049-1 052.
(责任编辑向阳洁)
Implementation of MIPv6 Program Based on Linux AdHoc Network
ZHANG Xinhua
(Taiyuan Foreign Language Normal School,Taiyuan 030012,China)
Abstract:This paper proposes the implementation scheme and the key technology improvement of MIPv6 protocol based on Linux Adhoc network.Through the analysis on the problem of mobile switching delay,the proposal reduces the system delay.Through the establishment of experimental scenes,the performance of the mobile switching is studied.Comparison of the delay data verifies the improved scheme is correct and feasible.
Key words:Adhoc network;MIPv6;Dual NIC technology;Linux
作者简介:张新华(1982—),女,山西太原人,太原大学外语师范学院讲师,主要从事计算机应用技术研究.
基金项目:山西省自然科学基金资助项目(GH-13183)
收稿日期:2014-12-03
中图分类号:TP301.6
文献标志码:A
DOI:10.3969/j.issn.1007-2985.2015.02.008
文章编号:1007-2985(2015)02-0033-05