ARP抓包实战小结-TCP/IP协议学习

2011-12-26 21:36:47缓存

图1网络

 

 

一,环境说明代理

硬件连线。PC与2440开发板直接用网线链接。blog

PC的ip地址:192.168.0.107。2440开发板的ip地址:192.168.0.106ip

二,操做路由

在开发板的uboot中用输入命令。Ping 192.168.0.107开发

三,抓包及说明:见图1原理

四,疑问点解答路由器

因为ARP请求或回答的数据帧长都是42字节(28字节的ARP数据,14字节的以太网帧头),所以每一帧都必须加入填充字符以达到以太网的最小长度要求:60字节。硬件

以太网设备驱动程序要把这一短帧填充空白字符以达到最小传输长度(60)。

为何能看到回应是42字节而请求是60字节。由于回应这层数据还没经过太网设备驱动程序,若是是2台PC通信的话,再另一台上看,必定是60字节的哦!

五,ARP的工做原理以下:

一、首先,每台主机都会在本身的ARP高速缓冲区 (ARP Cache)中创建一个 ARP列表,以表示IP地址和MAC地址的对应关系。

二、当源主机须要将一个数据包发送到目的主机时,会首先检查本身 ARP列表中是否存在该IP地址对应的MAC地址,若是有﹐就直接使用此MAC地址;若是没有,主机就先将目标主机的IP地址与本身的子网掩码进行"与"操做,以断定目标主机与本身是否位于同一网段内。假如目标主机与本身在同一网段内,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址;若是目的主机在一个远程网络上,那么就经过路由器等路由设备转发此ARP请求到远程网络中广播。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。

三、源主机和目的主机在一个网络内的状况下:网络中全部的主机收到这个ARP请求后,会检查数据包中的目的IP和本身的IP地址是否一致。若是不相同 就不回应,可是该主机仍然会检查本身的ARP高速缓存,若是此请求的源IP地址已经在高速缓存中,那么就用ARP请求帧中的发送端硬件地址对高速缓存中相 应的内容进行更新;若是相同,该主机首先将发送端的MAC地址和IP地址添加到本身的ARP列表中,若是ARP表中已经存在该IP的信息,则将其覆盖,然 后给源主机发送一个 ARP响应数据包,告诉它须要查找的MAC地址;

如 果源主机和目的主机不在一个网络内, ARP请求将由路由器转发至其它网络。若是能找到目的主机,就将此路由器的MAC地址看成目的主机的网络地址发给源主机,之后源主机和目的主机之间的信息 交换都要通过此路由器,这个路由器就被称做ARP代理;若是没有找到目的主机,在ARP高速缓存中会产生一条不完整的表项记录下来。

四、源主机收到这个ARP响应数据包后,将获得的目的主机的IP地址和MAC地址添加到本身的ARP列表中,并利用此信息开始数据的传输。

相关文章
相关标签/搜索