Skip to content

在计算机网络的TCP/IP模型中,网络接口层(Network Interface Layer)通常也被称为链路层(Link Layer)或数据链路层(Data Link Layer)。

这一层位于TCP/IP模型的底层,负责定义如何在物理媒体上传输数据帧,以及如何进行数据的错误检测和纠正。

换言之,数据链路层关心的是如何把数据发送到本地网络中去。

Mac地址

MAC地址(Media Access Control address)是一个用于在计算机网络中唯一标识网络接口的物理地址

MAC地址由设备的制造商分配的,保证了全球范围内的唯一性。

MAC地址的前半部分是由设备的制造商分配的,称为组织唯一标识符(OUI),每个制造商都有一个唯一的OUI。

然后,制造商使用其分配的OUI 来生成唯一的MAC地址。通常,制造商会使用一些算法来确保为同一制造商的不同设备生成不同的MAC地址。

可以将Mac地址理解为每个设备的身份证号,理论上身份证是唯一的。

ARP寻址

当设备连接到网络时,它可以使用各种方式(例如,通过DHCP协议)向网络请求IP地址。

在这个过程中,网络中的DHCP服务器(动态主机配置协议服务器)将为设备分配一个唯一的IP地址。

设备通常在连接到网络时才会被分配IP地址,而MAC地址是设备的物理地址,与网络连接无关。

当发送网络消息时,通常使用目标设备的IP地址来指定目标,而不是直接使用MAC地址。这样可以避免在某个机器被替换后,之前的网络连接不会出问题(看起来像是一个适配器。

IP地址用于在网络中唯一标识设备,而MAC地址则是设备的物理地址,用于在本地网络中唯一标识设备。

当一个设备需要与同一子网上的其他设备通信时,它通常知道目标设备的IP地址。

数据最终是通过一台物理机器发送到另外一台物理机器上面,因此需要物理上具体的Mac地址

在这种情况下,设备会使用ARP协议(Address Resolution Protocol)来获取目标设备的MAC地址。

ARP协议通过在本地网络上广播ARP请求,询问哪个设备拥有特定IP地址。目标设备会响应ARP请求,提供它的MAC地址

一旦发送方获得了目标设备的MAC地址,它就可以使用这个地址封装数据包,并通过以太网(Ethernet)等物理层协议发送数据,这个工作一般由交换机实现。

交换机能够直接利用局域网内两个设备的MAC地址进行快速数据帧转发,提高局域网内设备之间的通信效率。

如果目标设备不在同一子网上,通过广播就无法收到它的MAC地址响应,也就无法直接通过交换机传输数据。

在这个时候,ARP请求会发送到本地网关(路由器)的IP地址,数据包也会被封装并通过交换机发送到路由器。路由器的MAC地址通常是提前配置或者通过ARP请求获取的。

正常情况下,一个局域网内都会有至少一个包含路由功能的设备,下面都简称为“路由器”。目前很多网络设备都集成了交换机、路由器等功能,我们只是从功能上将他们进行区别。

关于路由器的工作原理,可以前往网络层查看相关章节。