注意:
ns-allinone-2.34必须为未更改过的官方(标准)版本,否则patch不一定成功;
⑶在Cygwin窗口中用“cd”命令进入到ns-allinone-2.34/ns-2.34目录下,执行命令:
./install命令,大约编译十几分钟(具体时间依据机器性能)即可完成。
2仿真运行
本实验的仿真拓扑如图15.1所示,总共有8个节点,主要观察两条UDP流的传输,分别为节点0到节点3、节点4到节点7,仿真起止时间分别为:
1.0~10.0s和1.0~10.0s。
具体仿真设置见实验源代码,节点2设置为Blackhole,节点6设置为Greyhole。
Blackhole和Greyhole攻击仿真的具体过程如下:
⑴在“home/<用户名>/”目录下新建一个目录用于放置运行的仿真脚本,并将不同类型脚本用子目录分开,紧接着将仿真脚本BLACKHOLE-GREYHOLE.tcl拷到该目录下。
如图15.2所示。
这里新建一个WNT目录,然后在该目录中放置了各实验仿真代码的子目录。
本实验是新增实例4,将新建文件夹命名为experiment15;
⑵在Cygwin中利用cd命令转到该新建的目录,紧接着输入:
nsBLACKHOLE-GREYHOLE.tcl,回车即可运行,此时无动画显示
⑶如果想要显示NAM仿真动画,则需要启动XWin,然后按
(2)中所述的过程进行仿真即可,如图15.5所示。
XWin的启动方式为:
在Cygwin中输入startxwin.bat,回车即可,结果如下:
实验十六:
802.11WLAN数据包捕获和分析
实验步骤
1Windows下无线测量工具
有线网络需要通过有线网卡来进行连接,相应的,无线网络也需要无线网卡来进行连接。
在WindowsXP下,可以在设备管理器的网络适配器中看到名字中带有Wireless的设备,这就是实验中用到的无线网卡。
双击右下角的无线网络图标,可以打开无线网络连接的程序,在这里列出了所有可以搜索到的无线网络,找到所有连接的网络即可进行连接
1.1Wireshark的获取和安装
Wireshark支持WindowsXP及以上的所有操作系统,包括32位和64位。
Wireshark的最新版本为1.84,可以从官方站点获取安装包。
下面介绍下Wireshark的安装过程:
双击下载的安装文件,点击Next,然后IAgree。
在这里可以选择安装的组件,一般保持默认即可。
点击Next,选择是否创建链接和关联文件,。
点击Next,选择安装位置,点击Next,选择是否安装WinPcap。
由于WinPcap是Wireshark捕获包的基础,因此如果电脑中没有安装WinPcap一定要选择安装WinPcap。
点击Install,开始安装,中间会弹出WinPcap的安装界面,WinPcap的安装很简单,按照提示操作即可。
等待安装完成,最后勾选RunWireshark,点击finish打开Wireshark。
1.2Wireshark用户界面
打开Wireshark,可以看到Wireshark提供了非常完善的图形可视化界面。
和大多数图形界面程序一样,Wireshark主窗口由如下部分组成:
主菜单:
包含各种设置和功能。
主工具栏:
提供常用功能。
过滤工具栏(Filtertoolbar):
自定义过滤方法过滤所有数据包
捕获包(Capture):
提供常用捕获包的操作。
帮助(CaptureHelp):
提供软件的使用帮助。
文件/在线():
提供一些有用的链接操作。
状态栏:
显示当前程序状态以及数据包的更多详情。
在开始捕获数据包之后,程序会进入捕获界面。
此时软件主要由3个面板组成:
PacketList):
显示打开文件的每个包的摘要,包括源地址和目标地址、协议类型、数据包长度、数据包的简要信息。
点击面板中的其中一个条目(即一个数据包),包的其他情况将会显示在另外两个面板中。
包细节(PacketList):
显示在Packetlist面板中所选择包的所有信息,信息都分层显示。
包字节(Packetbytes):
显示在Packetlist面板选择的包的数据,以及在Packetdetails面板中选中的字段。
1.3Wireshark捕获过程
在Capture面板中,Wireshark给出了所有的网络端口名称,从中选择本次实验的目标网络端口——无线网卡,。
本实验使用的是基于Realtek芯片的无线网卡,选择后点击Start开始捕获。
这里有几点需要注意:
针对XP系统,直接捕获可能会出现如图16.9显示的错误信息导致不能获取数据包,该问题是由于XP的无线网卡驱动不支持混杂模式(promiscuousmode)。
可以在CaptureOptions中关闭混杂模式。
对WindowsNT6.X内核的系统(即XP以上),程序需要以管理员身份运行,否则会导致Winpcap无法运行。
同样针对WindowsNT6.X内核的系统(即XP以上),微软在驱动中做了一些修改,导致无线网卡接口会显示为Microsoft。
由于系统中本身还存在一个Microsoft的虚拟网卡,如果不确定哪个是无线网卡接口可以在连接到网络后点击InterfaceList查看接口信息,在packet或者packet/s中有数据的即为所需的接口
被成功捕获了,接下来打开浏览器,输入URL:
,等待页面显示完成,然后停止捕获。
实验十七:
WLAN测量程序
1开发平台的配置
本文将就VS2008和VC6的开发环境配置做详细介绍,其他VS平台的配置可参考VS2008。
将下载得到的WinPcap开发包解压到指定目录[20],这里我解压到D:
\WpdPack,可以看到里面包含了:
Lib,Include,文档和示例程序
●VS2008:
选择工具->选项->项目和解决方案->VC++目录,在显示以下内容的目录中选择包含文件,然后添加WinPcap开发包中的Include目录。
●VC6:
选择工具->选项->目录,在目录中选择“Includefiles”,添加Include目录,如图17.3。
添加库文件:
●VS2008:
在上一个步骤的基础上,选择“库文件”,然后添加WinPcap开发包中的Lib目录。
●VC6:
在上一个步骤的基础上,选择“Libraryfiles”,然后添加WinPcap开发包中的
添加预处理定义(项目创建后设置):
●VS2008:
项目->项目属性->配置属性->C/C++->预处理器,在预处理定义中添加WPCAP和HAVE_REMOTE,
●VC6:
工程->设置->C/C++,在分类中选择预处理器,在预处理器定义中加入WPCAP和HAVE_REMOTE,
●VS2008:
VS2008:
项目->项目属性->配置属性->入wpcap.lib,
●VC6:
工程->设置->连接,在对象/库模块中加入wpcap.lib,
在使用WinPcapAPI的源文件中添加#include“pcap.h”。
为了验证配置是否成功,可以运行WinPcap开发包中的示例程序,例如Examples-pcap文件夹中的UDPdump。
2程序界面设计
首先新建MFC工程。
点击文件->新建->项目,在VisualC++中选择MFC->MFC应用程序,输入项目名称,点击确定,进入MFC应用程序向导对话框。
这里选择基于对话框,其他保持默认,点击完成即可。
首先添加程序界面中包含的各个控件。
下拉框:
采用“ComboBox”,设置“外观-Type”栏为“DropList”。
包捕获列表:
采用“ListControl”,添加一个适当大小的列表框控件,设置“外观-View”项为“Report”,“外观-singleselection”为“true”。
包细节:
采用“TreeControl”,设置“FullRowSelect”、“HasButtons”、“InfoTip”、“LinesAtRoot”均为“True”。
包字节:
采用“EditControl”,设置“Multiline”、“Readonly”、“AutoVscroll”、“HorizonScroll”、“VerticalScroll”均为“True”。
其他控件设置比较简单,这里不再详述。
3协议头部结构定义
新建头文件,文件名为Protocol_Define.h,编写各协议头部结构,例如MAC帧的头部为:
typedefstructethhdr
{
u_chardest[6];//6个字节目标地址u_charsrc[6];//6个字节源地址
u_shorttype;//2个字节类型
};
其他各协议的定义可参考示例中的Protocol_Define.h文件。
4数据包处理
数据包协议的处理采用自底向上的处理方式
例如MAC层的分析代码如下,其余各层详见Protocol_Analyzer.cpp文件:
intanalyze_frame(constu_char*pkt,structdatapkt*data,structpktcount*npacket)
{
inti;
structethhdr*ethh=(structethhdr*)pkt;
data->ethh=(structethhdr*)malloc(sizeof(structethhdr));
if(NULL==data->ethh)
return-1;
for(i=0;i<6;i++){
data->ethh->dest[i]=ethh->dest[i];
data->ethh->src[i]=ethh->src[i];
}
npacket->n_sum++;
/*由于网络字节顺序原因,需要对*/
data->ethh->type=ntohs(ethh->type);
//处理ARP还是IP包?
switch(data->ethh->type)
{
case0x0806:
returnanalyze_arp((u_char*)pkt+14,data,npacket);//mac头大小为
break;
case0x0800:
returnanalyze_ip((u_char*)pkt+14,data,npacket);
break;
case0x86dd:
returnanalyze_ip6((u_char*)pkt+14,data,npacket);
return-1;
break;
default:
npacket->n_other++;
return-1;
break;
}
return1;
5主程序
程序的编写具体可参考802.11PADlg.cpp,值得注意的是,其中的两个响应列表操作的事件——包选中操作(OnLvnItemchangedList1)和包着色器(OnNMCustomdrawList1),需要在对应的列表控件中添加事件才可正常执行,添加方法为右击列表控件,选择添加事件处理程序,即可添加所需事件。
本实验在VS2008上编译执行之后,参考执行结果:
五、实习体会及收获
随着信息技术与信息产业飞速发展,人们对网络通信的要求也不断提高,无线电技术能实现远距离的通信,即使在室内或相距咫尺的地方, 无线电也可发挥巨大作用。
于是无线网络技术随之应运而生, 它克服了传统网络技术的不足, 真正体现了5W的要求。
由于网络一般分为局域网和广域网(即因特网)两种,但本文将着重对局域网部分进行阐述。
无线网络技术主要包括IEEE802. 11、Hiper2.LAN2 、HomeRF、蓝牙等。
它使人们彻底摆脱了线缆的束缚,在整个区域内实现随时随地的无线连接。
虽然目前大多数的网络都仍旧是有线的架构,但是近年来无线网络的应用却日渐增加。
在学术界、医疗界、制造业、仓储业等,无线网络扮演着越来越重要的角色。
特别是当无线网络技术与Internet相结合时,其迸发出的能力是所有人都无法估计的。
其实,我们也不能完全认为自己从来没有接触过无线网络。
从概念上理解,红外线传输也可以认为是一种无线网络技术,只不过红外线只能进行数据传输,而不能组网罢了。
此外,射频无线鼠标、WAP手机上网等都具有无线网络的特征。
无线网络技术的发展最终需要在应用层面上得到用户的充分认可。
时至今日,无线传输标准可谓百家争鸣,除了最容易想到的无线局域网,用户也将能在不同的领域应用这些新技术,包括硬件设备与应用软件两方面。
目前,有三种方式可供选择。
红外线无线传输利用红外线波段的电磁波来传送数据,通讯距离较短,传输速率最快可达16Mbps。
目前广泛使用的电视机或VCD机等家电遥控器几乎都采用红外线传输技术,只不过此时是窄带红外技术。
蓝牙有着全球开放的自由频段2.4GHz,有效传输速度为721kb/s,数据传输速度1Mbps,2.0版本的蓝牙技术甚至达到3Mbps。
WiFi即“无线相容性认证”,目前已出现多个标准。
802.11b标准在理想情况下的传输速率为11Mbps,802.11g标准的理论传输速率也达到54Mbps。
但在实际使用环境中,它们的传输速率也只有理论速度的一半左右。
然而即便如此,用于音频传输也已经绰绰有余,此时可以很好地摆脱对线缆的依赖。
但是,有些发烧音响爱好者怀疑无线传输是否能够保证音质。
其实,无线传输的表现毫不逊色。
现在市场上几款名家无线家庭影院产品,无论是红外线无线、蓝牙无线传输,还是WiFi无线技术方式,都有着很高的无线技术含量,并且都运用了自家的独门技术,无线传输的表现能力相当出色,能够确保连续和及时地传输数字影音讯号,不会出现讯号延迟停顿现象,音质清晰完美。
在WiFi上取得巨大成功的Intel显然已经看到了这一契机,因此也成为Wireless USB技术的主要倡导者。
Wireless USB(无线USB)接口技术是定位于目前USB2.0的无线版。
Wireless USB接口技术在4米内的数据传输率能够达到480Mbps,而在10米距离上能够实现110Mbps的数据传输率。
从峰值数据传输率来说,与现的USB 2.0相同,比IEEE 1394的400Mbps数据传输率来得高。
Wireless USB最大的特色是“无线”,这是目前的USB 2.0和IEEE 1394设备无法比拟的。
此外,Wireless USB技术比起现在的有线USB技术另外的特点是强化了对于流媒体数据传输的性能,因而可以更快地进入此前属于蓝牙领地的无线PC、数码相机、PDA、打印机、键盘和鼠标产品领域。
无线网络的出现,极大方便了日常办公。
以往,企业员工频繁穿梭于各个会议室,经常苦于没有足够的网络接口,无线网络的出现,企业员工可以在企业的每个角落登录网络。
由于无线网络是借助空气作为传输介质的的一种组网模式,具有一定的开放性,无线网络也有一定的安全隐患:
信息重放、WEP破解、网络窃听、MAC地址欺骗、拒绝服。
如今,有了无线网络,一切的烦恼都迎刃而解了。
任何无线网络覆盖的区域,你只要凭借自己的上网帐户即可随时随地自由地遨游在互联网的世界里。
在宿舍、在教室、在图书馆、在食堂,甚至在汽车里、在操场上,你都可以粘在网络上。
所谓空中教室、空中图书馆、空中聊天室,在无线网络的世界里就是现实!
无线网络的发展是伴随着计算机技术的进步走到今天的。
近年来,网络技术取得了巨大的进步。
一方面,速率大大提高,可达千兆级。
但“接入点的固定和有限”随着“移动办公”日益强烈的需求,有线接入难以为继。
同时,众多局域网的互联,使得布线遇到重重困难。
无线局域网在这种情况下应运而生,它所提供的“多点接入”、“点对点中继”(即所谓的mesh技术)为用户提供了一种替代有线的高速解决方案。
可以说无线网络的世纪已经到来了。
正是有鉴于此,国内外众多厂家多瞄准了这一巨大商机。
Aruba、Ruckus、Mortolola、 3com、Cisco、华三等知名公司一个个趋之若鹜,甚至连Microsoft最近也宣布收购一家小公司Sendit,作为无线移动访问Internet技术的研发中心,诺基亚等也跃跃欲试在其国内推广基于WAP的无线接入,一场无线网络大战已经展开。
最后,在此回想下上了一个学期的无线网络课程,学到了很多的东西,课堂上很多东西深深的印在我的心里。
我相信在以后的社会生活中会有很多地方用到自己所学的东西。
六、实习讨论与分析
实验十三:
移动AdHoc中FSR协议仿真
移动AdHoc环境中的鱼眼路由协议仿真可以从两个方面来分析实验结果,即仿真动画(FSR.nam)和仿真数据(FSR.tr)。
在NS2中演示仿真动画的工具采用了NAM,它将网络仿真过程中拓扑结构、数据包传输情况及队列丢包等以动画的形式展现。
相关的仿真动画详见电子资源。
仿真结束后,可通过产生的数据来对仿真过程中的延迟、丢包、吞吐量等问题进行分析。
接下来,将通过NAM对仿真过程进行简单的分析和说明。
图13.8所示为节点1和节点8扩散路由更新消息的过程,采用的策略为2.1节中阐述的方法。
图13.9所示为节点0传输数据到节点7,该数据流为节点0到节点9的UDP连接。
图13.10所示为节点4传输数据到节点5,该数据流为节点4到节点11的UDP连接。
图13.11所示为节点0和节点4分别向节点3和节点6传输数据,此时两条数据流同时传输。
图13.8FSR协议信息更新过程
图13.9仿真持续39s时节点0向节点7传输数据(UDP)
图13.10仿真持续53s时节点4向节点5传输数据(UDP)
图13.11仿真持续74.5s时节点0和节点4分别向节点3和节点6传输数据(UDP)
上述NAM演示的过程反映了在FSR协议下,数据传输是有效的,符合网络传输的要求。
如要更加深入的分析FSR协议的性能,可对仿真产生的trace文件进行分析。
有关更多的FSR路由协议分析见:
=10.1.1.43.6730,仿真过程中需要注意以下两个问题:
(1)FSR路由协议具有怎样的特点?
(2)FSR路由协议存在哪些不足?
如何解决?
实验十四:
移动网中AOMDV协议仿真
AdHoc按需多路径距离向量路由协议(AOMDV)的仿真可以从两个方面来分析实现结果,即仿真动画(AOMDV.nam)和仿真数据(AOMDV.tr)。
在NS