目的
作用是IP地址和MAC地址关联。只要有TCP/IP协议的机器中会有一张ARP表,在windows系统中 运行-----cmd------arp –a,就可以看到当前所连接的设备的ip地址和对应的MAC地址。
所谓地址解析(address resolution)就是主机在发送前将目标IP地址转换成目标MAC地址的过程。
要将讲到ARP,就需要先将MAC搞清楚是什么东西。
MAC俗称MAC地址,也叫硬件地址,由厂商直接烧录在网卡芯片里。运行在OSI模型的数据连接层(二层)。它由48比特长(6字节),前0-23位是厂家编号,后24-47是唯一编号。Windows中,运行-----cmd-----ipconfig –all 。
MAC地址数据从一个节点传递到相同链路的另一个节点上,而ip地址可以从一个网络传递到另一个网络上。
原理
主机A | Ip:1.1.1.1 | MAC:11-11-11-11-11-11 |
主机B | IP: 1.1.1.2 | MAC:22-22-22-22-22-22 |
当A要和B发送数据时,主机A先会查看B的ip地址,如果有,那就不用说,直接就可以知道B的MAC地址(因为IP地址和MAC地址一一对应)。但如果没呢?
A会发送一个广播”我是1.1.1.1 mac:11-11-11-11-11-11,请问1.1.1.2的mac地址是什么”,然后,只有1.1.1.2的主机会回复给A,回复给A的同时B也记录下了A的MAC地址(动态绑定)。这样A与B就都知道双方的MAC地址,然后双方在下次通信时就不需要广播直接从ARP表中查询就可以了。长时间不使用ARP表中的某条条目时,就会被删除。提高了利用率。
***
虽然MAC地址是被烧录在芯片中,也是全球唯一的地址。但依旧是可以通过软件来修改其MAC地址。所以就会有一个问题---------ARP欺骗。
第一种是网关欺骗,截获网关的数据。通知路由器一些列错误的内外MAC地址,路由器也就只能将数据发放错误的MAC地址。
第二种是伪造网关,建立假网关,欺骗PC向假网关发送数据。
对于2种类型的解决办法就是使用静态绑定。
一、在路由器中把所有PC的IP-MAC输入到一个静态表中,这叫路由器IP-MAC绑定。
二、PC上设置网关的静态ARP信息,这叫PC机IP-MAC绑定
在windows下静态绑定 arp –s 1.1.1.1 11-11-11-11-11-11。
总结
对于ARP协议,并不是很难理解。只要知道他是IP地址和MAC地址一一对应,是网络的通信方式。还有就是PARP是对ARP的逆向。知道MAC求IP地址。可能要问,为什么要有ARP协议呢?这需要一些OSI七层的知识。网络中实际传输的是“帧”,传输中必须知道目的的MAC地址,而MAC是二层服务,IP 是三层服务,每层之间不直接打交道。需要通过接口。
学网络不久,请老鸟们多多指点~~
转载于:https://blog.51cto.com/peri0203/546455