码迷,mamicode.com
首页 > 其他好文 > 详细

ARP协议原理学习

时间:2017-10-11 20:21:50      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:默认网关   自身   输入   返回   请求报文   查找   其他   答案   image   

一、ARP的作用。

  首先在window 的命令行中输入arp -a即可查看本机的arp缓存表。主机要发送数据包时,需要填充目的IP及其IP地址对应的MAC。当我们只有目的IP地址时,如何得到其对应的MAC地址?

  此时ARP的作用就体现出来了。ARP就是通过IP来获取其对应的MAC地址。接下来阐述具体的过程。

二、同网段下ARP工作原理。

技术分享

图 1

  如图1所示,h1与h2是处于同一网段并通过交换机s1连接。在h1上执行ping 10.0.0.3时,具体流程如下:

  1、h1在arp缓存表中h2 IP地址对应的mac,若未查询到进入第2步;

  2、h1将目的mac改为全F(即广播),目的IP为h2,发送除自己以外的s1端口中,询问“谁是10.0.0.3”,进入第3步;

  3、h3收到广播消息后,发现目的IP与自己不匹配,将其丢弃;而h2收到广播消息后,发现查找的是自己,就会发送一个单播帧给h1,

             单播帧中包含h2的mac地址。同时h2也会在自身的arp表中记录h1的mac;

  4、h1收到h2的arp回应后,更新arp表,并发送数据给h2,实现h1与h2的ICMP可达;

三、不同网段下ARP工作原理

技术分享
 图 2

  如图2所示,主机h1与h2连接在路由器r2。h1与h2处于不同网段。在h1上执行ping 11.0.0.4,具体流程如下:

  1、h1查询本机的arp缓存表,发现目的IP与自身不在同一网段,则通过需要通过默认网关来查询h2的mac;

  2、h1需要先arp到网关10.0.0.1的mac地址,网关单播返回给h1,h1将数据包的目的mac改为f0的mac地址,目的IP为h2的IP 11.0.0.4

  3、r2收到数据包之后,r2解包后,发现目的IP不是自己,然后查看路由表,将数据包转发到相应的接口f1;

  4、此时不知道h2的mac地址,所以r2的f1接口中发送arp请求报文,源IP与源mac都是f1,目的IP为h2,目的mac全F,即广播查找h2的mac;

  5、h2返回自身的mac给r2,r2更新路由表,而后r2将h1的包修改为源IP与源mac为h1,目的IP与母的mac为h2,从端口f1发送出去。

  6、h2接收到数据包后,更新arp表,同样返回ICMP应答报文给h1,过程可跟1~5类似。

四、新接入网络的主机是否会自动学习其他主机mac,建立arp缓存表?

  答案:不会,按照以上过程,只有双方有通信时,对方才会将其mac记录在arp缓存表中。

 

ARP协议原理学习

标签:默认网关   自身   输入   返回   请求报文   查找   其他   答案   image   

原文地址:http://www.cnblogs.com/grglym/p/7651160.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!