MAC地址、IP地址以及ARP协议

MAC地址是以太网的MAC子层所使用的地址; 数据链路层

IP地址是TCP/IP体系结构网际层所使用的地址; 网际层

ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址; 网际层

尽管IP地址和ARP协议属于TCP/IP体系结构的网际层(而不属于数据链路层),但是它们与MAC地址存在一定的关系,并且我们日常的网络应用都离不开MAC地址、IP地址以及ARP协议。因此,我们将这三者放在一起讨论。

MAC地址

使用点对点信道的数据链路层不需要使用地址

使用广播信道的数据链路层必须使用地址来区分各主机

当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址;

在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(Media Access Control),因此这类地址被称为MAC地址;

一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识

IEEE 802局域网的MAC地址格式

IEEE 802局域网的MAC地址发送顺序

单播MAC地址举例

在帧首部的目的地址字段填入C的MAC地址,源地址字段填入自己的MAC地址,再加上帧首部的其他字段,数据载荷以及帧尾部,就构成了该单播帧。

广播MAC地址举例

在帧首部的目的地址字段填入广播地址,源地址字段填入自己的MAC地址,再加上帧首部的其他字段,数据载荷以及帧尾部,就构成了该单播帧。

判断一个地址首部是不是多播地址

随机MAC地址

棱镜门事件,斯诺登爆料,美国国家安全局有一套系统,通过监视电子设备的MAC地址,来跟踪城市中每个人的行动。

随后,苹果,window10,安卓6.0,内核版本3.18的linux开始提供随机MAC地址的功能。目前大部分移动设备都采取了随机MAC地址的功能。

IP地址

IP地址是因特网(Internet)上的主机和路由器所使用的地址,用于标识两部分信息:

很显然,之前介绍的MAC地址不具备区分不同网络的功能。

从网络体系结构看IP地址与MAC地址

数据包转发过程中IP地址与MAC地址的变化情况

数据包转发过程中源IP地址和目的IP地址保持不变;

数据包转发过程中源MAC地址和目的MAC地址逐个链路(或逐个网络)改变.

由ARP协议解决

ARP协议

B知道C的IP地址 B不知道C的MAC地址 B的数据链路层封装MAC帧时,无法填写目的MAC地址!

每一个主机都有ARP高速缓存表

类型:

第一行即对应主机A的地址。但是没有C的相关地址信息,使用需要发送ARP请求报文。

主机C

1.将B的IP地址与MAC地址记录到自己的ARP高速缓存表中; 2给B发送ARP响应,以告知自己的MAC地址。

ARP不能跨网络使用,对于本例,只能逐链路使用。