网络协议分析工具Ethereal的使用
2011-11-28 21:21 java线程例子 阅读(403) 评论(0) 编辑 收藏 举报
大学时计算机网络课的实验报告,当时提不起兴趣,今天看来还挺有用的。可以学习下怎样抓数据包,然后分析程序的通信协议。
一:学习使用网络协议分析工具Ethereal的方法,并用它来分析一些协议。
实验步骤:
1. 用“ipconfig”命令获得本机的MAC地址和缺省路由器的IP地址;(注:缺省路由器即 ”Default Gateway”)
命令行:Start->Run->CMD->ipconfig /all >C:\Mac.txt(在命令行中把ipconfig命令保存在文本文档里面备用)
结果:本机Mac地址:00.09.73.4B.8A.D7 缺省路由器IP:192.168.8.254
步骤截图:
![](http://hi.csdn.net/attachment/201111/28/0_1322485459p0F8.gif)
图1(本机网络信息:Mac.txt)
2. 用“arp”命令清空本机的缓存:
命令行:Start->Run->CMD->arp –d
图2(arp命令 –d参数的帮助说明)
3. 运行Ethereal,开始捕获所有属于ARP协议或ICMP协议的,并且源或目的MAC地址是本机的包:
图3(Capture->Options中关于网卡设置和Capture
Filter)
图4(抓包截图)
4. 执行命令:“ping” 缺省路由器的IP地址:
图5(捕获包)
图6(ping 过程)
二:用Ethereal观察tracert命令的工作过程:
1.用Ethereal语法内容及参数说明:
命令行操作步骤:Start->Run->CMD->tracert
![](http://hi.csdn.net/attachment/201111/28/0_1322485888mPNw.gif)
图1(Tracert命令 全部参数的帮助说明)
2.运行Ethereal, 设定源和目的MAC地址是本机的包,捕获tracert命令中用到的消息:
Tracert使用ICMP,相应过滤规则为:
ether host 00:09:73:4B:8A:D7 and icmp
![](http://hi.csdn.net/attachment/201111/28/0_13224859362kGv.gif)
图3(Capture->Options中关于网卡设置和Capture Filter)
3.执行“tracert -d www.dlut.edu.cn” ,捕获包:
执行命令:tracert -d www.dlut.edu.cn:
图4(抓包截图)
图5(捕获包)
4.Tracert工作原理:
Tracert使用ICMP消息,具体地讲,tracert发出的是Echo Request消息,触发返回的是Time Exceeded消息和Echo Reply消息。
Tracert利用icmp数据报和IP数据报头部中的TTL值。
TTL(Time To Live)是一个IP数据报的生存时间,当每个IP数据报经过路由器的时候都会把TTL值减去1或者减去在路由器中停留的时间,但是大多数数据报在路由器中停留的时间都小于1秒种,因此实际上就是在TTL值减去了1。这样,TTL值就相当于一个路由器的计数器。当路由器接收到一个TTL为0或者1的IP数据报的时候,路由器就不再转发这个数据了,而直接丢弃,并且发送一个ICMP“超时”信息给源主机。Tracert程序的关键就是这个回显的ICMP报文的IP报头的信源地址就是这个路由器的IP地址。如果到达了目的主机,并没有任何反应,所以,Tracert还同时发送一个UDP信息给目的主机,并且选择一个很大的值作为UDP的端口,使主机的任何一个应用程序都不使用这个端口。当达到目的主机的时候,UDP模块就产生一个“端口不可到达”的错误,这样就能判断是否是到达目的地了。
决定走的路向目的地发送icmp的回声请求消息中具有不同生存时间(ttl )值送往目的地。每个路由器沿着须减量有关的ttl在一个ip包,由至少1才转发。当的ttl就一包到达0时,路由器可望返回一个icmp的时间超过讯息给源计算机。 tracert确定路径派遣首回声请求消息具有的ttl的1和递增有关的ttl由1对以后每次传输,直到目标响应或最大数目的啤酒花是达成共识。最大数目的啤酒花是30默认,并可以指定使用- h参数。道路是取决于研究icmp的时间超过讯息经由中间路由器和回声答复讯息经由目的地。不过,有些路由器不返回时间超过讯息给包过期的ttl价值观和可能是无形的,以该tracert命令。在这种情况下,一排星号( * )显示为合。
三:用Ethereal观察TCP连接的建立过程和终止过程:
a. 过滤规则:tcp port 23
b. 三次握手:
![](http://hi.csdn.net/attachment/201111/28/0_1322486293KPpR.gif)
过程:一端打开一个SOCKET,另一方连接,服务器端被打开,客户端向服务器端发送一个SYN ,建立一次握手,服务器端返回一个SYN,ACK完成第二次握手,客户端发送一个ACK完成第三次握手。
过程:主动方发送一个FIN,另一方进入CLOSE,WAIT状态,并发送ACK,被动方发送FIN,被动方进入TIME,WAIT状态,发送ACK确认,CLOSE
d. TELNET服务器首先发起连接关闭。
四:用Ethereal观察使用DNS来进行域名解析的过程:
a. 过滤规则:UDP PORT 53
![](http://hi.csdn.net/attachment/201111/28/0_1322486436vV4l.gif)
b. 向DNS服务器210.30.96.99发送一个DNS询问请求www.dlut.edu.cn,DNS服务器找到了www.dlut.edu.cn所对应的IP地址,然后回发给请求方。
c. MX(Mail Exchanger)记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据 收信人的地址后缀来定位邮件服务器。Tommx.163.net就是邮件交换服务器的域名。