Skip to content
文章目录

概述

链路是从一个结点到相邻结点的一段物理线路,数据链路则是在链路的基础上增加了一些必要的硬件(如网络适配器)和软件(如协议的实现) 网络中的主机、路由器等都必须实现数据链路层计算机网络.png局域网中的主机、交换机等都必须实现数据链路层计算机网络.png从层次上来看数据的流动

计算机网络.png仅从数据链路层观察帧的流动计算机网络.png 主机H1 到主机H2 所经过的网络可以是多种不同类型的 注意:不同的链路层可能采用不同的数据链路层协议

MAC地址和ARP协议

认识 MAC 地址

MAC 地址的全称是 Media Access Control Address ,译为媒体访问控制地址,它是⽹络上以太⽹或⽹络适配器的唯⼀标识符。MAC 地址能够区分不同的⽹络接⼝,并⽤于多种⽹络技术,尤其是⼤多数 IEEE 802 ⽹络。

MAC 地址也称为物理地址,硬件地址和⽼化地址。

MAC 地址主要⽤于识别数据链路中互联的节点,如下图所示 计算机网络.png MAC 地址⻓ 48 bit,在使⽤ ⽹卡(NIC) 的情况下,MAC 地址⼀般都会烧⼊ ROM 中。因此,任何⼀个⽹卡的MAC 地址都是唯⼀的。MAC 地址的结构如下 计算机网络.png MAC 地址中的 3 - 24 位表示⼚商识别码,每个 NIC ⼚商都有特定唯⼀的识别数字。25 - 48 位是⼚商内部为识别每个⽹卡⽽⽤。因此,可以保证全世界不会有相同 MAC 地址的⽹卡。

MAC 地址也有例外情况,即 MAC 地址也会有重复的时候,但是问题不⼤,只要两个 MAC 地址是属于不同的数据链路层就不会出现问题。

ARP 是什么

ARP 协议的全称是 Address Resolution Protocol(地址解析协议) ,它是⼀个通过⽤于实现从 IP 地址到MAC 地址的映射,即询问⽬标 IP 对应的 MAC 地址 的⼀种协议。ARP 协议在 IPv4 中极其重要。

注意:ARP 只⽤于 IPv4 协议中,IPv6 协议使⽤的是 Neighbor Discovery Protocol,译为邻居发现协议,它 被纳⼊ ICMPv6 中。

简⽽⾔之,ARP 就是⼀种解决地址问题的协议,它以 IP 地址为线索,定位下⼀个应该接收数据分包的主机 MAC地址。如果⽬标主机不在同⼀个链路上,那么会查找下⼀跳路由器的 MAC 地址。

ARP 的⼯作机制

下⾯我们探讨⼀下 ARP 的⼯作机制是怎样的。假设 A 和 B 位于同⼀链路,不需要经过路由器的转换,主机 A 向主机 B 发送⼀个 IP 分组,主机 A 的地址是 192.168.1.2 ,主机 B 的地址是 192.168.1.3,它们都不知道对⽅的MAC 地址是啥,主机 C 和 主机 D 是同⼀链路的其他主机。 计算机网络.png 主机 A 想要获取主机 B 的 MAC 地址,通过主机 A 会通过 ⼴播 的⽅式向以太⽹上的所有主机发送⼀个 ARP 请求包 ,这个 ARP 请求包中包含了主机 A 想要知道的主机 B 的 IP 地址的 MAC 地址。 计算机网络.png 主机 A 发送的 ARP 请求包会被同⼀链路上的所有主机/路由器接收并进⾏解析。每个主机/路由器都会检查 ARP请求包中的信息,如果 ARP 请求包中的 ⽬标 IP 地址 和⾃⼰的相同,就会将⾃⼰主机的 MAC 地址写⼊响应包返回主机 A 计算机网络.png 由此,可以通过 ARP 从 IP 地址获取 MAC 地址,实现同⼀链路内的通信。