一、ARP协议
1、ARP原理及流程
1.1.ARP请求
任何时候,当主机需要找出这个网络中的另一个主机的物理地址时,它就可以发送一个ARP请求报文,这个报文包好了发送方的MAC地址和IP地址以及接收方的IP地址。因为发送方不知道接收方的物理地址,所以这个查询分组会在网络层中进行广播。(见图1)
1.2.ARP响应
局域网中的每一台主机都会接受并处理这个ARP请求报文,然后进行验证,查看接收方的IP地址是不是自己的地址,只有验证成功的主机才会返回一个ARP响应报文,这个响应报文包含接收方的IP地址和物理地址。这个报文利用收到的ARP请求报文中的请求方物理地址以单播的方式直接发送给ARP请求报文的请求方。(见图2)
1.3举例
PC1(10.1.1.1)和PC2(10.1.1.2)进行通信,PC1和PC2都不知道大家的mac地址只知道对方的IP地址。
使用arp -a命令查看当前主机的arp缓存表是空的
1.4举例
如下图:在pc1 ping pc2
用pc1去ping pc2时,pc1会发一个arp的广播报文,这时候pc1获取到响应的mac地址是路由器接口GE0/0/0的mac地址,而不是pc2的mac地址。当pc1把数据封装完后发送到网关,网关会跟据自身获取到的ip路由和mac地址进行数据的转发,把数据跟据ip和mac地址发送到pc2。
2、免费ARP可以用来探测IP地址是否冲突。
总结:
二、ICMP协议
ICMP协议是一个网络层网络控制报文协议。
一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;但是IP协议并不提供可靠传输。如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。
如目标不可达时,会反回不可达报文到发送端设备。
就像我们使用ping命令去ping百度一样,测试本机到百度网站的联通性,还会把详细的信息显示出来。
tracert 命令也是常用的检查联通信的命令,它可以测试pc从哪个路由路径到达目的地址。它也是基于ICMP协议的