目录

一、ARP协议

二、ARP协议通信过程

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

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

1.交换机接受消息

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

3.电脑2回复

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

5.电脑1记录

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

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

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


一、ARP协议

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

网络通信协议-ARP协议-LMLPHP

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)

网络通信协议-ARP协议-LMLPHP

1.交换机接受消息

泛洪

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

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

网络通信协议-ARP协议-LMLPHP

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

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

3.电脑2回复

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

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

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

5.电脑1记录

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

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

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

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

网络通信协议-ARP协议-LMLPHP

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

三、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了。

05-28 08:22