【实验二】使用Wireshark工具对无线和
有线网络性能做比较
2-1 实验目的
1.熟练掌握Wireshark,ttcp工具的基本使用方法
2.用Wireshark中的过滤器观察一个重流量网络
3.用Wireshark完成TCP和UDP比较
4.用Wireshark完成TCP流和UDP流的竞争
2-2 工具简介
1.Wireshark简介
Wireshark(原名Ethereal)是自由而且功能强大的网络调试和数据包协议分析软件。Wireshark基本类似于tcpdump,但 Wireshark还具有设计完美的GUI 和众多分类信息及过滤选项。用户通过 Wireshark将网卡设置成混杂模式,可以查看到网络中发送的所有通信流量。目前,Wireshark在分析无线局域网时主要
要注意的是“捕捉”网卡上传输数据时的设置。
Wireshark应用于故障修复、分析、软件和协议开发以及教育领域。它具有用户对协议分析软件所期望的所有标准特征,并具有其它同类产品所不具备的有关特征。Wireshark是一种开放源代码的自由软件,允许用户向其中添加改进方案。Wireshark适用于当前所有较为流行的计算机系统,包括 Unix、Linux 和Windows。Wireshark的详细介绍及使用方法请查阅《Wireshark User's Guide》。
2.TTCP简介
TTCP是一个用于测试TCP吞吐量的命令行工具,它的全名是 Test TCP。它需要在分别在发送端和接收端以不同的参数运行。您可以同时启动并侦听 TCP 连接。您还可以将 Ttcp 工具用于 UDP 通信量。使用 TTCP,您可以将计算机配置为侦听特定 TCP 或 UDP 端口模式,而不必在计算机上安装应用程序或服务。这允许您在服务就绪之前测试特定通信量的网络连接。TTCP在windows下的移植版称为TTCPW。TTCPW使用方法如下:
在windows中运行cmd,用cd进入到ttcpw所在的目录,发送端和接收端分别执行以下命令:
发送端:ttcpw -t -s <;接收者IP>
接收端:ttcpw –r –s
ttcpw的详细介绍及使用方法请查阅ttcpw.zip中自带的文档。
2-3 实验内容
1.观察重流量网络,掌握三种过滤器的使用
在Wireshark中,过滤器分为三类,捕获过滤器,显示过滤器和颜过滤器。注意捕获过滤器和显示过滤器语法不相同。我们在这个实验里要完成的内容如下:
初识Wireshark,使用捕获过滤器。
1)体验Wireshark:在联网的情况下使用Wireshark设置捕获TCP或UDP包,
可以通过浏览网页或互传文件的方式产生流量。观察Wireshark中包的信息并记录下来说明其含义;学会使用如何查具体位置的TCP包,学会根据历史记录查前几次查看的包。学会用statistics中的Summary和Conversations观察并记录接收包的详细信息。
2)观察TCP的三次握手过程:在联网的情况下,进行两个主机间的对话(使用
ttcpw),使用捕获过滤器捕获两台主机间的对话(即通过设置来过滤噪音)。
结合上面实验内容中讲的TCP的三次握手情况观察Wireshark中捕获的包,到具体三次握手发的包,记录下来并详细说明。
3)浏览网站过程记录:在上多个网站的情况下对主机和其中一个网站的通讯进
行捕获。记录结果。
使用显示过滤器(display filter)显示重流量的包获得有用信息
1)获取重流量包数据。
2)查询所有TCP包,UDP包,ARP包并记录三种包各占所有包的比例。思考APR病毒或网络执行官等软件是如何造成他人不能上网的,并提出自己的对策。
3)查询其中一个ip地址的所有的包,查询两个有“或关系”的IP地址的所有的包,记录结果。
4)过滤出具有特定MAC地址的数据包,记录结果。
使用颜过滤(coloring rules)显示重流量的包获得有用信息
1)更改默认的颜显示,用自定义的颜标识所有TCP包,UDP包,ARP 包并记录结果。
2)查询其中一个ip地址的所有的包,查询两个有或关系的IP地址的所有的包,对符合条件的条目标以特殊的颜,记录结果。
3)过滤出具有特定MAC地址的数据包标以特殊的颜,记录结果。
2.TCP和UDP比较实验介绍
1)用ttcp发送同样是流量长度是1000,数量是100的tcp和udp,记录各自
的发送时间并比较时间长短。
2)TCP和UDP接收端不存在的情况:关闭接收端,并由发送端重新发送上面的
数据,观察并记录结果,用TCP,UDP的发送原理来说出现象。
3)在发送同等字节数的情况下,禁用无线路由,改用有线路由重做上面两个实
验,观察并记录接收情况。
3.TCP流和UDP流的竞争
1)TCP流间的竞争,如前面实验类似,用ttcp在两个窗口上分别建立一个长度
是1000,数量是1000的TCP数据流,通过不同的端口(一个用默认的5001,一个用5002端口)传送到接收端。记录TCP1,TCP2的独占时间和他两的共享时间,用TCP Stream Graph来观察并解释结果。
2)UDP流间的竞争,同样用ttcp在在两个窗口上分别建立一个长度是1000,
进程间通信实验数量是1000的的UDP数据流,通过不同的端口(一个用默认的5001,一个用5002端口)传送到接收端,用命令udp.srcport==port来分离udp流。
记录UDP1,UDP2的独占时间和他两的共享时间
3)TCP和UDP流间的竞争,用ttcp在两个窗口上分别建立一个长度是1000,
数量是1000的TCP数据流和一个长度是1000,数量是1000的TCP数据流,通过不同的端口(一个用默认的5001,一个用5002端口)传送到接收端。
记录TCP,UDP的独占时间和他两的共享时。用TCP Stream Graph来观察并解释结果。
2-4实验详细介绍
1.观察重流量网络实验介绍
在一个重流量网络中,网络协议分析器每秒可以捕获成百上千的分组,这将会造成分析器和用户的信息过载。
对于网络中出现的每个分组,分析器必须尽可能少地将内容复制到内存中,根据用户所选用地捕获选项,分组可能会被写入一个文件中,或是在GUI中显示出来。它可能执行各种转换,如在众所周知端口号的固定编码表中查端口号,或是在GUI中显示发布网络查询把再跟踪记录中到的IP地址翻译成易读地机器名字。为了更新捕获摘要屏幕上地分组总数,Wireshark将会对分组地内容进行一个初步地描述。
随着数据传输率的提高,分析器在下一个分组到达前完成这些任务会非常困难。如果下一个分组到达时分析器很忙,它可能不会将分组复制到内存中,分组可能会“丢失”。即使它们在网络中出现,丢失地分组也不会在跟踪记录中被记录。这些丢失地分组会使跟踪记录地分析变得困难。
根据计算机的速度和网络数据传输率,有必要采取措施尽量减少分组丢失。一个合理的方法是禁用实时显示和转换,以后分析跟踪记录时再执行这些功能。
对于长期运行的跟踪记录要限制捕获数据的数量。如果你期望捕获大量的数据,首先要做的是指定将数据直接存入一个文件或多个文件中,以避免使用大量的内存进行捕获。你也可以限制每个分组被捕获的部分,你可以大大减小跟踪记录的大小。Wireshark也允许你通过指定捕获过滤器来减小跟踪记录的大
小。捕获过滤器地语言来源于一个名为tcpdump的程序,这是一个基于命令行的网络协议分析器。
就算用这些措施来限制被捕获的数据,分组仍然有可能在高负载网络中丢失。即使它能赶上数据传输率,Wireshark也不可能在一个特别大的捕获任务中做的很好。在重流量网络中,一个好的经验法则是从短的(一分钟或是更少)数据捕获开始。如果捕获进行地很顺利,但是没有显示出你感兴趣得网络活动,就逐步尝试一些更长的跟踪记录。
较大的跟踪记录会给分析器带来问题,并且它们也会为用户的检查带来困难。要管理大量的数据,在数以千计的被捕获分组中寻感兴趣的分组就像是在没有工具的情况下大海捞针。Wireshark允许用户指定显示过滤器,用它显示与用户指定表达式匹配的分组,以此来限制分组的显示,显示过滤器和捕获过滤器大体上相似,但显示过滤器仅改变跟踪记录被显示的方式而不是从显示中除去不匹配的分组。
2.TCP和UDP比较实验介绍
TCP和UDP是网络中使用的两个主要传输层协议。TCP是通过网络将应用程序的字节序列转换成可靠的有序字节流。它可以提供流控制或者说响应网络拥塞信号来限制发送速率的能力。它是基本的点对点的协议,这就意味着每个TCP 连接有且仅有两个端点。TCP连接是全双工方式的,这就意味着每个端点可以同时是接收端和发送端。TCP使用端口号清楚地标识连接任一端地应用程序端点。它也使用校验和来传输过程中地错误。与具有如此多特征的TCP比起来,UDP 是一个非常简单的协议。它仅仅在网络层协
议(IP)之上提供很小的附加功能层。UDP首部(见下图2-1所示)指明它所提供的功能。端口号用于多路复用,用以标识每个到达数据报的正确接收进程。它也像TCP首部一样包含有一个检验和来检测分组可能发生损坏。它还给出整个UDP数据报的长度。
图2-1
UDP首部长度被固定为8个字节。它不提供可靠的有序报文传输。它可能在网络传输中丢失或重排序并且它不提供检测和纠正功能,数据不会重传。它不提供点对点的的连接,这意味着它速度快。它还能通过广播或者组博地址向多个接收方发送数据,而TCP做不到。
3.TCP流和UDP流的竞争
TCP可以通过拥塞避免和慢启动共同来控制网络,并且可以改变拥塞窗口和其他一些参数来适应这种变化。TCP的这些方面允许它在整体上平衡网络需求,同时也允许每个数据流能公平的获得部分网络带宽。而UDP没有对应用程序的发送速率作任何的限制。它很容易造成网络拥塞崩溃。使用UDP来发送大量数据的应用程序都实现了自己的拥塞控制算法。这样的应用程序被称为TCP友好的应用程序。在本次实验中,我们主要是观察非TCP友好的应用程序对其他数据流的影响。
2-5附加题
1.熟悉手机软件开发环境,编写Hello world程序
现在常见的智能手机操作系统有Symbian S60,Windows Mobile,Android,iPhone,Palm OS(WebOS),都有与之相对应的开发环境SDK。另非智能手机上一般只能用J2ME方式开发,对应开发环境为WTK。各个平台的环境一般都自带了手机模拟器,现要求开发一个最简单的Hello world程序,在模拟器或真实的手机上运行,并截图记录之。
2.使用Wireshark分析QQ通信协议
腾讯QQ使用了一套不开放的协议用于客户端与服务器的通信。现在需要你
通过使用Wireshark抓取QQ收发的数据包,分析数据包的格式,破译各字节的含义。例如QQ登录时会向服务器发送数据请求包,其中包含QQ版本号,请求命令,QQ号等。
通过Wireshark截获在同一网段中他人的QQ通信数据包,出密码和聊天消息字段,思考是否有破解的可能。
QQ对非windows操作系统的支持并不是很好,比如只为Linux开发了一个功能半残的LinuxQQ。在官方LinuxQQ推出之前,有几个开源的通讯软件如Eva,LumaQQ可以较好地支持QQ通讯。抓包分析出QQ通讯协议并尝试开发自己的QQ客户端。
2-6课后思考题
1.写一个显示过滤器规则,分离所有的带4字节数据的特殊UDP数据包。2.一味的基于数据传输的开销来比较TCP和UDP公平吗?为什么?
3.请给出你所了解的TCP提供的特性。分析为什么有些应用还是使用UDP,请举例并说出原因。
4.在TCP流中仅有的未设置ACK标志的报文段是什么?为什么?
5.思考联网安全性问题,我们现在已知道处于以太网同一网段中的任一台机器可以获得该网段中的传输的所有数据包,在这种情况下如何保证不泄漏上网时的个人隐私?请发表一下你的看法。
2-7实验报告要求:
实验报告交电子版,发到qy.nwpu@gmail,邮作主题格式“移动计算实验报告(实验二)班级-学号-姓名”,实验报告需要记录实验的过程、结果和相应的分析,并回答课后思考题。对实验内容中明确说明要记录的必须在实验报告中有详细的记录和截图。实验占总成绩的20%,附加题占的比例较小,但如果做的好可以直接给满分。严禁直接复制网上已有文字或图片,一经发现,实验成绩作减半处理。