ARP原理
1、什么是ARP协议
2、ARP协议的工作原理
2.1 同网段通信
附表 :
ip地址 mac地址
192.168.1.1 00-aa-00-62-c6-09
192.168.1.2 00-aa-00-62-c5-03
192.168.1.3 03-aa-01-75-c3-06
…… ……
我们以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.1.1的MAC地址是什么?”网络上其他主机接收到这个ARP询问后并不响应,只有IP地址为192.168.1.1的主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。
2.2 跨网段通信
1、首先PC1观察目的IP:192.168.2.1与本机IP:192.168.1.1是否在同一个网段;
2、发现不在,因此看本机是否设置了网关,如果没有设置网关,PC1直接将ICMP包丢弃,显示目的不可达;发现设置了网关192.168.1.254,于是执行步骤3;
3、因为不知道网关的MAC地址,因此发送一个ARP包,获取网关MAC地址:源IP为PC1IP:192.168.1.1,目的IP为网关IP:192.168.1.254,源MAC为:XXXXXXX,
目的MAC为广播MAC:ff-ff-ff-ff-ff-ff;
4、网关回应ARP包:源IP、目的IP、源MAC、目的MAC;
5、PC1得到网关MAC,接着发送ICMP包:源MAC、目的MAC(网关)、源IP、目的IP(192.168.2.1);
6、路由器收到ICMP包,拆包,插IP-端口对照表,发现IP为192.168.2.0网段的数据,通过E2(路由端口)口发出,于是转发包给端口E2;
7、路由器获取目标PC2的MAC,发送一个ARP包:源ip(192.168.2.254),目的IP(2.1),源MAC(路由MAC),目的MAC(ff-ff-ff-ff-ff-ff)
8、PC2应答,路由获得目标MAC
9、路由发送ICMP:源ip(1.1)、源MAC、目的IP(2.1)、目的MAC
10、PC2回应ICMP:源IP(2.1)、源MAC、目的IP(1.1)、目的MAC
11、路由器转发ICMP:源IP(2.1)、源MAC、目的IP(1.1)、目的MAC
12、PC1收到回应,完成一次PING命令
3、如何查看ARP缓存表
在命令提示符下,输入“arp -a”就可以查看ARP缓存表中的内容了;用“arp -d”命令可以删除ARP表中某一行的内容;用“arp -s”可以手动在ARP表中指定IP地址
与MAC地址的对应。