网络通信协议-ARP协议

目录

一、ARP协议

二、ARP协议通信过程

应用情景一:同一广播域内通信

(1)第一步:ARP协议通信

1.交换机接受消息

2.电脑2接收到广播消息

3.电脑2回复

4.交换机转发回复给电脑1

5.电脑1记录

(2)第二步:二层网络设备通信

应用情景二:跨广播域内通信

三、ARP协议对ICMP协议的影响


一、ARP协议

ARP是TCP/IP模型中的三层(网络层)通信协议

ARP协议即地址解析协议,可以通过IP地址找到MAC地址;

ARP协议的作用:第1次发消息给陌生设备时,借助ARP协议,能通过陌生设备的IP地址,找到陌生设备MAC地址。

二、ARP协议通信过程

应用情景一:同一广播域内通信

电脑1和电脑2从未发过消息,彼此是陌生设备。在电脑1上ping电脑2的ip地址,电脑1怎么就通过ip地址找到电脑2呢?

(1)第一步:ARP协议通信

  电脑1想发送消息给电脑2

消息包含:电脑1mac地址、电脑1ip地址、电脑2ip地址、电脑2临时MAC地址(因为不知道电脑2mac地址,所以全部用F填充,FFFFFFFFFFFFFFFFF)

1.交换机接受消息

泛洪

2.电脑2接收到广播消息

第1步:记录“电脑1mac地址、电脑1ip地址”到ARP表中。ARP表如下,cmd中输入arp -a也能看到

第2步:记录自己mac地址到回复消息里

先核对消息中“电脑2ip地址”是否是自己的ip地址(internet)。如果是,就去查ARP表,找到自己的mac地址(物理),然后记录到回复消息里。

3.电脑2回复

回复消息包含:电脑2mac地址、电脑2ip地址、电脑1ip地址、电脑1mac地址

4.交换机转发回复给电脑1

单播,通过mac地址找到电脑2

5.电脑1记录

记录电脑2mac地址和电脑2ip地址,到本地的arp表里。记录内容如下:

internet地址 物理地址 类型
电脑2ip地址 电脑2mac地址 动态/静态

(2)第二步:二层网络设备通信

第一步只是ICMP检测。那后面电脑1和电脑2再通信,交换机真正转发有正文的消息时,又怎么知道该发给哪个设备呢?

电脑1发消息给设备电脑2:


  1. 电脑1先发消息给交换机    ###消息包含“发件者-电脑1”和“收件者-电脑2”的mac地址
  2. 交换机记录电脑1,关联"电脑1的mac地址"和其连接到交换机的接口1    ###mac地址组成:24位“生产厂家标识码”+24位“设备自定义标识码”。每1位都是十六进制,十六进制数字是0~9、a、b、c、d、e、f
  3. 交换机泛洪,发广播消息    ###因为交换机不知道电脑2是哪个设备,只有这样了
  4. 电脑2收到并回复,其他设备收到不回复

电脑2回复消息给电脑1:


  1. 电脑2先发消息给交换机    ###消息包含“发件者-电脑2”和“收件者-电脑1”的mac地址
  2. 交换机记录电脑2,关联"电脑2的mac地址"和其连接到交换机的接口2   
  3. 交换机查看记录信息,找到电脑1关联的接口1,转发消息给电脑1

交换机现在记录了电脑1、电脑2,下次他们之间通信,直接就找到了,不再用广播

应用情景二:跨广播域内通信

 和应用情景一是一样的原理,只不过中间多了个三层通信设备路由器。路由器转发后,也是再利用交换机泛洪

三、ARP协议对ICMP协议的影响

对使用ICMP协议与一个陌生设备通信时有影响。比如ping www.xxxhub.com,之前我从未访问过这个网站。ping了会通信4次,前面1、2次可能回复“无法连接目标主机”,第2或3次才正常回复。

为啥呢?

因为一开始不知道www.xxxhub.com的mac地址,会先进行ARP协议通信,解析到mac地址;

而前面1、2次ICMP通信时,可能ARP通信还没完成,本机还不知道www.xxxhub.com的mac地址,所以找不到目标主机;

第2或3次ICMP通信时,ARP协议通信已经完成了,就ok了。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>