ARP协议原理
说明:ARP协议针对的是以太网络而言,且是针对IPV4,对于IPV6不适用。
作用:ARP(Address Resolution Protocol)即地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址
在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。
而在TCP/IP协议中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。
于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
解析流程说明1
解析说明:
第一步: 在局域网里利用广播信息, 找寻目标主机(通过MAC地址寻找)
第二步: 目标主机接收到广播信息, 且生成arp表记录(动态的,在一定时间段之后会清除),并进行回复响应
第三步: 源主机接收到回复信息, 生成arp表记录(动态的,在一定时间段之后会清除), 从而避免下一次访问时再次产生广播,在一定程度上减少局域网产生的广播包数量
第四步: 其余非目标主机也会受到响应广播通讯记录, 生成源主机arp表记录信息,但是不回复源主机
补充说明:如果不是同一局域网里的两条设备,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。
所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的MAC地址。
于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为委托ARP或ARP代理(ARP Proxy)
解析流程说明2
ARP路由表操作方法
1 点击开始 运行 输入 cmd (打开dos命令提示符)
2 输入 arp -a (显示arp缓存)
3 输入 arp -d (清除arp缓存)
4 输入 arp -s 网关 DNS (绑定你的正确的arp网关和dns,比如我的计算机绑定是 arp -s 10.3.183.1 00-0f-e2-4b-34-4e)
5 输入 arp -s 目标IP地址 目标MAC地址
在命令行中输入arp /?可以得到ARP命令的详细说明。
ARP常用命令选项:
·arp -a或arp -g
用于查看高速缓存中的所有项目。-a和-g参数的结果是一样的,多年来-g一直是UNIX平台上用来显示ARP高速缓存中所有项目的选项,而Windows用的是arp -a(-a可被视为all,即全部的意思),但它也可以接受比较传统的-g选项。
·arp -a IP
如果我们有多个网卡,那么使用arp -a加上接口的IP地址,就可以只显示与该接口相关的ARP缓存项目。
·arp -d IP
使用本命令能够人工删除一个静态项目。
例如我们在命令提示符下,我们使用过 Ping 命令测试并验证从这台计算机到 IP 地址为 10.0.0.99 的主机的连通性,然后再键入 Arp -a,则 ARP 缓存显示以下项:
Interface:10.0.0.1 on interface --- 0x1
Internet Address Physical Address Type
10.0.0.99 00-e0-98-00-7c-dc dynamic
在此例中,缓存项指出位于 10.0.0.99 的远程主机解析成 00-e0-98-00-7c-dc 的媒体访问控制地址,它是在远程计算机的网卡硬件中分配的。媒体访问控制地址是计算机用于与网络上远程 TCP/IP 主机物理通讯的地址。
至此我们可以用ipconfig和ping命令来查看自己的网络配置并判断是否正确、可以用netstat查看别人与我们所建立的连接并找出ICQ使用者所隐藏的IP信息、可以用arp查看网卡的MAC地址。
·arp -s IP 物理地址
我们可以向ARP高速缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持有效状态,或者在出现错误时,人工配置的物理地址将自动更新该项目。
上述是一个完整的绑定正确arp网关和dns的方法,当你的计算机被arp病毒侵害的时候可以手工改过来,但是比较麻烦。也可以使用360安全卫士里面的arp防火墙或金山arp防火墙来绑定正确arp网关和dns,效果比较好。
ARP路由条目生存周期
静态条目一直保留在ARP缓存中,意思是永久生效。但不同的操作系统中,静态条目的保存方式是不同的。例如,在Windows XP系统中,重新启动计算机后该条目失效。而在Windows 7中,即使重新启动计算机后,该静态条目仍然保存。