切换是移动ipv6的要害技术,它使得移动节点能够在更改接入网络时不需要任何手动配置就可以保持原有通信。切换性能对移动IPv6能否成功具有深刻的影响,它正成为网络协议研究中的热门,相信许多研究者都对此非常感爱好,并且对切换也有许多自己的思考,比如安全性,扩展性,健壮性,性能比较,等等。
那么如何才能够将自己对于移动IPv6的切换方案变为现实,并且对方案的效果进行测试,以便验证其优越的性能,或者是其扩展性与健壮性呢?NS-2作为一个被国内外研究人员广泛使用的网络模拟环境,是很好的选择。下面我们就通过在NS-2环境下进行移动IPv6中基于TCP的性能分析试验,来给大家展示用NS-2进行网络试验整个过程,希望能够起到抛砖引玉的作用。
一 预备工作——程序安装过程
1 下载并安装NS-2软件。
NS-2目前可以在linux下安装,我们以Redhat Linux 9为例来做一个简单介绍。NS-2分为两种安装方法,所有程序包一次装完(all in one)或者自己分别安装每一个程序包(build it from pieces)。推荐使用all in one的安装方法,比较简便。对于Redhat Linux 9.0,只需要在解压缩后运行根目录下的命令install就可以了。当前的版本是2.28。不过下面我们将做的试验所需要的NS-2版本为2.1b7a。
完成了NS-2的安装之后,模拟环境下就已经包括一些最基本的协议和验证代码。基本协议如TCP协议,UDP协议,802.3协议(LAN)和802.11b协议(Wireless LAN),可以通过编辑TCL脚本文件来构造适当的网络环境,从而在这些已有协议的基础上进行模拟试验。对于这些协议合理性和正确性的验证,可以通过命令validate来执行。
2 安装无线扩展协议。
2.1 进入之前的NS-2安装目录,并进入其中的NS目录,执行命令:make clean; rm config.cache; rm Makefile
2.2 把无线扩展协议解压到一个临时文件夹
2.3 复制sdist.cc, sdist.h, wireless-phy.h, cmu-trace.cc, mip.h, mip-reg.cc, Makefile.in, noah目录,到/ns-2.1b7a/目录下
2.4 复制noah.tcl到tcl/mobility目录下,复制ns-default.tcl和ns-lib.tcl到tcl/lib
2.5 运行./configure,完成后再运行make
完成了这一步后,将可以支持移动IPv4的最基本功能,比如移动节点的地址绑定,支持本地代理和外地代理,等等。
3 安装移动IPv6切换改进协议。
3.1 解压下载的切换改进协议到一个临时文件夹
3.2 复制Makefile.in和所有的.h, .cc文件到ns目录。
3.3 复制tcl/lib目录下所有的.tcl文件到/ns-2.1b7a/tcl/lib目录
3.4 运行./configure,完成后再运行make
完成这一步后,将可以进行移动IPv6下快速切换和层次化切换的模拟。需要注重的是,这部分代码只是针对两种改进方案的切换性能进行研究,因此作者并没有在代码中实现移动IPv6的IPSec功能,其他与安全相关的功能也并没有实现。
二 模拟试验的结果与分析
在设置好模拟网络试验环境,也就是编辑好TCL脚本文件之后,通过NS-2运行TCL脚本文件,就可以开始模拟试验了,NS-2可以根据我们的需要输出一系列的称为跟踪信息的文件(trace)。默认情况下,NS-2 all in one方式安装的时候,将会自带一些工具包,比如NAM,XGRAPH。NAM可以将特定的trace文件变为动画显示出来,XGRAPH可以将trace文件用图形的方式显示出来,它们都是分析trace文件的极好的工具。
11 NAM
NAM的全称是Network Animator,它具有友好的用户界面。为了让NS-2在模拟试验的过程中产生NAM能够解析的trace文件,我们可以在TCL脚本文件中加入如下的命令行:
set namfd [open simu.nam w]
$ns_ namtrace-all-wireless $namfd $opt(x) $opt(y)
namtrace-all-wireless就是生成NAM格式的无线环境trace文件。其中namfd为nam格式的trace文件的文件名,在这里是simu.nam;变量opt(x)和opt(y)都是常量,为网络拓扑结构的大小。这样当模拟试验结束后,NS-2就会产生simu.nam,用NAM工具将其打开,就可以看到试验的动画演示,如图1所示。
我们可以通过调整右上角的步进选项(Step)来调整动画的演示速度,通过最上面的五个按钮来停止、启动、加速或者回放整个演示过程,通过左边的按钮来放大或者缩小演示画面。更重要的是,我们还可以通过用鼠标单击图中的数据包,来查看它的TCP序列号,或者跟踪它在不同时刻的状态。
22 XGRAPH
XGRAPH是一个开源的通用2-D绘图工具,能够在多种系统中运行,如Linux, SUN Solaris, Apple Mac, Microsoft Windows等等。它提供的功能类似与Microsoft Office Excel中的图表功能。根据介绍,它能够通过输入数据集或者文件来绘制图形,并且对于输入数据集和文件的数目没有限制,这是其众多强大功能之一。它还能够根据需求将图形输出不同的格式,如PDF,PostScript,MIF。
对于移动IPv6中基于TCP的切换试验来说,最重要的性能指标,如切换延迟(Handover Delay)和TCP拥塞窗口(TCP Congestion Window),都可以通过XGRAPH绘制出的图形直观的反映出来。
比如,我们在分别进行了移动IPv6下无切换和有切换的模拟试验,并提取出两个试验中的通信节点(CN)的拥塞窗口变化数据集后,用XGRAPH来处理这些数据集,就可以得到图2所示的图形。左半边的图形显示出来一条连续的曲线,它是在无切换的情况下测出来的,拥塞窗口随着时间按照TCP协议所规定公式一直增长。右半边的图形显示出来两条断续的曲线,它是在有切换的情况下测出来的,在切换的过程中,由于通信节点不能够收到移动节点(MN)发送回来的ACK信息,它认为发生了网络拥塞情况,于是相应的启动了拥塞控制策略,直接将拥塞窗口大小降到最低,进入慢启动(Slow Start)过程。随着切换过程的完成,通信节点也能够正常的收到移动节点发送回来的ACK信息,因此,拥塞窗口逐渐增大。
同理,在这两个试验中,我们又分别提取通信节点、移动节点的接收端所收到的TCP数据包的序列号。可以看到,正常通信时,两者的TCP序列号是连续增长的;而发生切换时,两者的接收端都出现了断续的情况,这个现象实际上和图2所反映出来的现象是一致的。
利用XGRAPH,我们还可以对TCP序列号的任意一部分进行放大,如图4所示。
综上所述,我们介绍了如何安装NS-2,如何模拟移动IPv6试验,以及如何利用两个非常强大的工具——NAM和XGRAPH来分析试验的结果。希望我的这点简单的介绍能够给读者在网络协议研究方面带来一些爱好。
附录:程序安装地址:
1. NS-2 http://www.isi.edu/nsnam/ns/ns-build.Html
2. Wireless-Extension http://www.icsi.berkeley.edu/~widmer/mnav/ns-extension/
3. FHMIP Extension http://mobqos.ee.unsw.edu.au/~robert/nsinstall.php