写在前面,感谢这篇博客
定义:
ARP协议是Address Resolution protocol 地址解析协议。他主要功能就是根据IP在自己维护的表里找到对应的MAC地址。
原理:
在局域网中,主机之间发送消息,必须要有MAC地址(这个地址被固化在网卡上上,所以基本上不会被改变,当A主机向B主机发送消息,但是A主机就需要找到B主机的MAC地址才能发送。所以,A主机就在自己的ARP表中,根据IP来找,看看是否能找到对应的B主机的MAC地址,拿到之后太能发送帧消息。
问题:
在最开始,ARP表肯定是空的,所以A主机肯定找不到MAC地址,所以A主机会把自己的IP地址和MAC信息,以及需要的B主机的IP都封装到ARP请求中,然后广播这个消息在局域网内,网内的所有主机都可以收到这个消息。当然这些主机收到消息,会根据IP对照,自己是不是A主机要找的对象,自己不是就不理会这条消息。直到B主机发现自己就是那个需要找的主机,他就会根据ARP请求里面的信息,发送一个ARP响应(里面包含自己的IP和MAC地址信息)直接发送给A主机,。A主机拿到B主机发送过来的响应,把IP对应的MAC信息写入到自己的ARP表中
,同时开始组装帧消息,向B主机发送数据。
映射方式
-
静态映射
就是把IP映射为MAC地址,本质上就是在自己的ARP表中查询找MAC地址。但是当局域网发生变动时,IP和MAC的对应关系发生了变化,但是ARP表中的数据却没有改变,所以会出现问题。 -
动态映射【不太明白】
动态映射时,每次只要机器知道另一台机器的逻辑(IP)地址,就可以使用协议找出相对应的物理地址。已经设计出的实现了动态映射协议的有ARP和RARP两种。ARP把逻辑(IP)地址映射为物理地址。RARP把物理地址映射为逻辑(IP)地址。