
首先我们需要知道,网络上传输的东西是什么?
在使用TCP/IP协议传输时,网络上的数据,是以二进制数据包的形式传输的,核心的三个部分,如下:
这个数据包,其中有这么几个字段很重要:
这些都是和地址相关的, 就像寄送快递,这就是里边的 收件人电话,收件人地址,有了这个地址信息,对方才能收到这个包。
在网络中,每一台计算机,每一个通讯设备,都有自己的地址,包含 IP 地址和 MAC 地址。
注意: MAC地址 又称为 硬件地址 、 物理地址 (因为这种地址用在MAC帧中)。
为什么需要那么多地址呢?
一个ip地址,还要一个mac地址。
原因是,网络协议是分层的。 不同的地址,给不同的层使用。
请参见TCP/IP协议与七层ISO模型的对应关系,大致如下图所示:

图:TCP/IP协议与七层ISO模型的对应关系
网络中的三张表ARP表, MAC表, 路由表
先看第一个 ARP表。 提起ARP表必然先想起ARP(address resolution protocol)协议,地址解析协议。
为什么需要 ARP 协议?
在链路层中,同一局域网中的一台主机要和另一台主机进行通信,需要通过 MAC 地址进行定位,然后才能进行数据包的发送。
而在网络层中,计算机之间是通过 IP 地址定位目标主机,对应的数据报文只包含目标主机的 IP 地址,而没有 MAC 地址。
因此,在发送之前,需要做个翻译的工作:根据 IP 地址获取 MAC 地址。