网络协议分析工具Ethereal的使用


大学时计算机网络课的实验报告,当时提不起兴趣,今天看来还挺有用的。可以学习下怎样抓数据包,然后分析程序的通信协议。


一:学习使用网络协议分析工具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

步骤截图:


1(本机网络信息:Mac.txt


2.用“arp”命令清空本机的缓存:
命令行:Start->Run->CMD->arp –d


2arp命令–d参数的帮助说明)

3.运行Ethereal,开始捕获所有属于ARP协议或ICMP协议的,并且源或目的MAC地址是本机的包:


3Capture->Options中关于网卡设置和Capture Filter



4(抓包截图)


4.执行命令:“ping缺省路由器的IP地址:


5(捕获包)



6ping过程)


二:Ethereal观察tracert命令的工作过程:


1.用Ethereal语法内容及参数说明:

命令行操作步骤:Start->Run->CMD->tracert


图1(Tracert命令全部参数的帮助说明)


2.运行Ethereal,设定源和目的MAC地址是本机的包,捕获tracert命令中用到的消息:

Tracert使用ICMP,相应过滤规则为:

ether host 00:09:73:4B:8A:D7 and icmp


图3(Capture->Options中关于网卡设置和Capture Filter)

3.执行“tracert -dwww.dlut.edu.cn” ,捕获包:

执行命令:tracert -dwww.dlut.edu.cn


3 (执行命令 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.三次握手:


过程:一端打开一个SOCKET,另一方连接,服务器端被打开,客户端向服务器端发送一个SYN,建立一次握手,服务器端返回一个SYNACK完成第二次握手,客户端发送一个ACK完成第三次握手。


c. 终止过程:


过程:主动方发送一个FIN,另一方进入CLOSE,WAIT状态,并发送ACK,被动方发送FIN,被动方进入TIME,WAIT状态,发送ACK确认,CLOSE

d.TELNET服务器首先发起连接关闭。

四:用Ethereal观察使用DNS来进行域名解析的过程:


a.过滤规则:UDP PORT 53



b.DNS服务器210.30.96.99发送一个DNS询问请求www.dlut.edu.cnDNS服务器找到了www.dlut.edu.cn所对应的IP地址,然后回发给请求方。



c.MX(Mail Exchanger)记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。Tommx.163.net就是邮件交换服务器的域名。




Ethereal is a GUI network protocol analyzer. It lets you interactively browse packet data from a live network or from a previously saved capture file. See: http://www.ethereal.com for new versions, documentation, ... Ethereal's native capture file format is libpcap format, which is also the format used by tcpdump and various other tools. So Ethereal can read capture files from: -libpcap/WinPcap, tcpdump and various other tools using tcpdump's capture format -snoop and atmsnoop -Shomiti/Finisar Surveyor captures -Novell LANalyzer captures -Microsoft Network Monitor captures -AIX's iptrace captures -Cinco Networks NetXRay captures -Network Associates Windows-based Sniffer captures -Network General/Network Associates DOS-based Sniffer (compressed or uncompressed) captures -AG Group/WildPackets EtherPeek/TokenPeek/AiroPeek/EtherHelp/PacketGrabber captures -RADCOM's WAN/LAN analyzer captures -Network Instruments Observer version 9 captures -Lucent/Ascend router debug output -files from HP-UX's nettl -Toshiba's ISDN routers dump output -the output from i4btrace from the ISDN4BSD project -traces from the EyeSDN USB S0. -the output in IPLog format from the Cisco Secure Intrusion Detection System -pppd logs (pppdump format) -the output from VMS's TCPIPtrace/TCPtrace/UCX$TRACE utilities -the text output from the DBS Etherwatch VMS utility -Visual Networks' Visual UpTime traffic capture -the output from CoSine L2 debug -the output from Accellent's 5Views LAN agents -Endace Measurement Systems' ERF format captures -Linux Bluez Bluetooth stack hcidump -w traces There is no need to tell Ethereal what type of file you are reading; it will determine the file type by itself. Ethereal is also capable of reading any of these file formats if they are compressed using gzip. Ethereal recognizes this directly from the file; the '.gz' extension is not required for this purpose.
Ethereal是一个开放源码的网络分析系统,也是是目前最好的开放源码的网络协议分析器,支持Linux和windows平台。Ethereal起初由Gerald Combs开发,随后由一个松散的Etheral团队组织进行维护开发。它目前所提供的强大的协议分析功能完全可以媲美商业的网络分析系统,自从1998年发布最早的0.2版本至今,大量的志愿者为Ethereal添加新的协议解析器,如今Ethereal已经支持五百多种协议解析。很难想象如此多的人开发的代码可以很好的融入系统中;并且在系统中加入一个新的协议解析器很简单,一个不了解系统的结构的新手也可以根据留出的接口进行自己的协议开发。这都归功于Ehereal良好的设计结构。事实上由于网络上各种协议种类繁多,各种新的协议层出不穷。一个好的协议分析器必需有很好的可扩展性和结构。这样才能适应网络发展的需要不断加入新的协议解析器。 1 Ethereal的捕包平台 网络分析系统首先依赖于一套捕捉网络数据包的函数库。这套函数库工作在在网络分析系统模块的最底层。作用是从网卡取得数据包或者根据过滤规则取出数据包的子集,再转交给上层分析模块。从协议上说,这套函数库将一个数据包从链路层接收,至少将其还原至传输层以上,以供上层分析。 在Linux系统中, 1992年Lawrence Berkeley Lab的Steven McCanne和Van Jacobson提出了包过滤器的一种的实现,BPF(BSD Packet Filter)。Libpcap是一个基于BPF的开放源码的捕包函数库。现有的大部分Linux捕包系统都是基于这套函数库或者是在它基础上做一些针对性的改进。 在window系统中,意大利人Fulvio Risso和Loris Degioanni提出并实现了Winpcap函数库,作者称之为NPF。由于NPF的主要思想就是来源于BPF,它的设计目标就是为windows系统提供一个功能强大的开发式数据包捕获平台,希望在Linux系统中的网络分析工具经过简单编译以后也可以移植到windows中,因此这两种捕包架构是非常相似的。就实现来说提供的函数调用接口也是一致的。 Ethereal网络分析系统也需要一个底层的抓包平台,在Linux中是采用Libpcap函数库抓包,在windows系统中采用winpcap函数库抓包。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值