其实在网络传输中,分为不同的层次,然后不同的层分类了不同的协议,我们来简单看一下协议的分类图:

wKiom1c4eFvwbdc0AACSZKmYUWo516.jpg

今天我来讲解一下APR协议:

  1. 什么是ARP协议:

    对于APR协议,我们首先需要了解网络IP的概念,在网络层中,IP是网络层的唯一标识,但是对于我们寻找到网络局域后进行通信的具体主机是哪一台,也就是确定具体的接收方主机,我们需要确定双方的MAC帧,也就是物理地址,物理地址才能够真正确定双方的具体对象,IP是针对于网络层而言的唯一性。所以为了避免发送端不知道接收端的MAC地址,所以就出现了ARP协议。

    ARP协议就是根据目的主机的IP地址,广播通知,然后收取目的主机所应答的MAC地址。然后在进行数据的传输。

    RARP是MAC地址到IP地址的转换,但是现在已经不怎么使用了。

    ARP协议是使用在数据链路层的。

ARP请求数据格式:

wKioL1c4fMOjBFeIAAEed776tpE149.png

2.ARP的数据报格式:

wKioL1c4fF-zhD1_AAEgb-c529A785.png

假设传送方为

0000: ff ff ff ff ff ff 00 05 5d 61 58 a8 08 06

ARP帧(28字节)

0000: 00 01

0010: 08 00 06 04 00 01 00 05 5d 61 58 a8 c0 a8 00 37

0020: 00 00 00 00 00 00 c0 a8 00 02

填充位(18字节)

0020: 00 77 31 d2 50 10

0030: fd 78 41 d3 00 00 00 00 00 00 00 00

图片:

wKiom1c4gnHgLc0iAAA7Zi8RUPg880.png


应方通过广播后产生相应,应答数据:

以太网首部 (14字节)

0000: 00 05 5d 61 58 a8 00 05 5d a1 b8 40 08 06

ARP帧(28字节)

0000: 00 01

0010: 08 00 06 04 00 02 00 05 5d a1 b8 40 c0 a8 00 02

0020: 00 05 5d 61 58 a8 c0 a8 00 37

填充位 (18字节)

0020: 00 77 31 d2 50 10

0030: fd 78 41 d3 00 00 00 00 00 00 00 00


图片:

wKioL1c4gyORHSJVAABMiViL47I331.png

所以对于应答方来说,传输过去的目的地址,源地址已经进行交换。