转载请注明原地址。
实验名称: 理解子网掩码、网关和ARP协议的作用
(1) 熟悉IRIS的使用
(2) 验证各种协议数据包格式
(3) 学会捕捉并分析各种数据包。
环境: Windows XP
软件:IRIS软件
主机1:192.168.2.110(监听方)
主机2:192.168.2.109(被监听方)
选择菜单 查看à地址簿中添加主机1和主机2 的IP地址。
设置过滤器
在开始捕获数据包之前,先用arp –d清除一下arp缓存表。
点击开始捕获,开启抓包功能。
选择菜单 过滤器à编辑过滤器,设置过滤设置,更改完成后点击确定。
选择菜单 过滤器àftp.flt
从主机1登陆到主机2的ftp(主机2中安装了ftp服务器)
停止抓包,抓包结果图。
以上就是捕捉数据包的过程。接下来是验证数据帧、IP数据报和TCP数据段的报文格式。
我们选择序号4的数据包作为验证,分别查看它在MAC层、IP层和TCP层的数据头部信息。
其中00 24 1D 09 28 6B是监听方主机的MAC地址
00 24 1D AE 10 45是被监听方主机的MAC地址
08 00则是类型字段,表示它上层使用的是IP数据报。
验证IP数据报格式
由以上两图我们可以知道:
版本4表示IPV4,占4位
首部长度为5是由于这个单位是32位,所以这个IP数据报首部长度为20个字节
区分服务00占一个字节,4表示版本,5表示首部长度
总长度00 43占两个字节,标识6C 49占两个字节
标志+片偏移40 00占两个字节
生存时间128跳
向上提供的协议是TCP
首部检验和是840
源地址是192.168.2.109,目的地址是192.168.2.110
源端口00 15 转化为十进制刚好是21,是ftp默认的端口
目的端口是0E 93占两个字节
序号21 7B 54 6C各占4个字节
确认号5A 1D 33 21占4个字节
首部长度为5,片偏移为18,
其中ACK、PSH各占一位
首部检验和是7CC1,占两个字节
在主机1运行arp –d命令,然后在菜单过滤器à编辑过滤器中设置捕获ARP协议,并且设置捕获A机和B机之间的IP地址数据包,接着点击“开始/停止捕捉”,开始抓包。
先运行arp –d命令,再运行ping 192.168.2.109命令
捕捉到的ARP报文
分析
首先,我们在主机1上运行了arp -d的命令后,主机1上的arp缓存表被清空,当我们用ping 192.168.2.109命令时,由于主机1和主机2在同一个网段,且主机1没有主机2的MAC地址,所以,它会以广播形式发送ARP请求报文,在ARP请求报文中包含了源IP地址和目的IP地址,在同一网段的主机2收到报文并发现目标IP地址与自己的地址一样,则它向主机1发回ARP响应报文,并把自己物理地址封装在响应报文上,从而使主机1获得主机2的MAC地址。
在主机2用arp –d命令清除arp缓存表
点击“开始/停止捕捉”,开始抓包
编辑过滤器,设置如下
在主机1上ping主机2的ip地址
停止抓包
下图就是捕捉ping过程中的ICMP报文
分析
从上图可以看出,我们用命令ping 192.168.2.109,回车后ping命令便会向目的主机2发一个ICMP请求ECHO报文,因为主机2正常工作而且响应这个ICMP回送请求报文,所以它就发回ICMP回送回答报文(序号1、2可以看出)。由于主机1一连发出4个ICMP回送请求报文,作为正常工作且可达的主机2也相应做出4个应答,发回4个ICMP回送回答报文,所以在抓包界面中有8个ECHO报文。在抓包界面的第一行(序号1)中的数据报包含3个信息,分别是以太网、IP和ICMP。
以太网头信息,它的内容是00 24 1D AE 10 45 00 24 1D 09 28 6B 08 00
前6个字节00 24 1D AE 10 45是目的主机2的MAC地址
后6个字节00 24 1D 09 28 6B是源主机1的MAC地址
最后两个字节08 00代表包的类型是DOD IP
IP头信息,它的内容是
45 00 00 3C 1D BE 00 00 80 01 96 D7 C0 A8 02 6E C0 A8 02 6D
它表示IP的版本是4,首部长度是5,总长度60字节,标识7614
生存时间128跳,向上提供的协议是ICMP,首部检验和是9607
源地址是192.168.2.110,目的地址是192.168.2.109
ICMP头信息
其中开头的08表示类型,00表示代码,15 5C表示检验和,34 00表示序号,剩下的为数据。
更改过滤器设置
开始捕捉数据包,以下就是捕捉到的结果。
分析:
由上图可知,tracert命令依靠ICMP协议来实现的,数据报从路由器发出之后,每经过一个路由器,便会在该数据报的选项字段中加入该路由器的地址信息,当这条信息到达目的主机的时候,便会生成一条新的ICMP数据报,这个数据报记录了刚才所经过的路由信息,返回给源主机,这样源主机就知道了刚才所经过的路由信息。由上图表明,由于主机1和主机2在同一个网段,所以不用经过路由器,因此当我们用tracert命令去追踪时,只显示主机2的IP地址。
测试例子:将主机2的一个文件通过ftp下载到主机1中
设置过滤器,并且选择过滤器àftp.flt
主机1先运行arp –d命令,然后点击“开始/停止捕捉”
将ftp服务器上的随意一个文件夹下载到主机1中
捕捉结果
分析
其中序号1、2、3为建立连接时的3次握手
第一次握手
ACK 00 00 00 00
SEQ 4D 7E C1 A8
第二次握手
ACK 4D 7E C1 A9
SEQ F1 59 F5 88
第三次握手
ACK F1 59 F5 89
SEQ 4D 7E C1 A9
首先,主机1向主机2发送一个连接请求报文,这时候A初始化一个初始序号SEQ为4D 7E C1 A8,确认信号为0,当主机2收到主机1的请求报文后,因为2同意连接,就向1发送一个确认报文,此时2也初始化一个初始序号SEQ为F1 59 F5 88,并且确认ACK为1发送过来数据报的SEQ+1即4D 7E C1 A9,当1收到2数据包的时候再次向2发送确认信号,此时1又会产生一个初始序号SEQ4D 7E C1 A9,确认ACK为B发送过来的数据包的SEQ+1即F1 59 F5 89,这时,TCP协议就建立起连接。
TCP采用了拥塞控制机制,事实上,TCP开始发送数据时,使用了慢启动。利用网络监视器观察TCP的传输和确认。在每一确认到达之后,慢启动过程中发生了什么?(选做)
在TCP知道往返时间之前,TCP必须准备重发初始段(用于打开一个连接的一个段)。TCP应等多久才重发这一段?TCP应重发多少次才能宣布它不能打开一个连接?为找到结果尝试向一个不存在的地址打开一个连接,并使用网络监视器观察TCP的通信量。(选做)
尝试使用Winpcap自行设计实现一个简单的网络数据包监听与捕捉程序,同时将捕获的数据包进行分析并将结果显示在屏幕上。参考Winpcapde 的有关资料http://winpcap.polito.it(课后选做)。
下载地址http://down.51cto.com/data/991237
使用网络监视器(IRSI)捕捉和分析协议数据包,布布扣,bubuko.com
原文:http://blog.csdn.net/idiotxl_1020/article/details/38335523