数据链路层:以太网、MAC 地址及 ARP 协议详解

数据链路层

以太网

"以太网"不是一种具体的网络,而是一种技术标准; 既包含了数据链路层的内容,也包含了⼀些物理层的内容。例如:规定了网络拓扑结构,访问控制方式,传输速率等

以太网是当前应用最广泛的局域网技术 ; 和以太网并列的还有令牌环网,无线LAN等;

帧格式

以太帧起始部分由前同步码和帧开始定界符组成,后面紧跟着一个以太网报头,以 MAC 地址说明目的地址和源地址。以太帧的中部是该帧负载的包含其他协议报头的数据包,如 IP 协议。

源地址和目的地址,是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的;

地址一般是唯一的,一个网卡一个MAC地址

帧协议类型: 字段有三种值,分别对应IP、ARP、RARP;

帧末尾是CRC校验码

MAC地址

  • MAC地址用来识别数据链路层中相连的节点

  • 长度为48位,及6个字节。一般用16进制数字加上冒号的形式来表示(例如:08:00:27:03:b:19)在网卡出厂时就确定了,不能修改.

  • mac地址通常是唯一的(与网卡绑定)(虚以机中的mac地址不是真实的mac地址,可能会冲突;也有些网卡支持用户配置mac地址).

对比IP地址: IP地址描述的是路途总体的起点和终点;MAC地址描述的是路途上的每⼀个区间的起点和终点;

MTU

MTU相当于发快递时对包裹尺寸的限制。这个限制是不同的数据链路对应的物理层,产生的限制

以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位;

最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU;

如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation);

不同的数据链路层标准的MTU是不同的;

ARP协议

需要强调,ARP(地址解析协议 )不是⼀个单纯的数据链路层的协议,而是**⼀个介于数据链路层和网络层之间的协议**;

准确的说,在 TCP/IP 模式中 ARP 协议属于网络层在 OSI 参考模型中 ARP 协议属于数据链路层

在以太网环境中,数据的传输所依懒的是MAC地址而非IP地址,而将已知IP地址(逻辑地址)转换为MAC地址(物理地址)的工作是由ARP协议来完成的。

ARP协议仅存在于IPv4,IPv6中没有ARP协议 。其原因是因为IPv6采用了邻居发现协议(Neighbor Discovery Protocol,NDP)来处理地址解析和邻居发现,以取代IPv4中的ARP。

ARP协议的作用:

ARP协议通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行,将 IP 地址转换为 MAC 地址,建立了主机IP地址和MAC地址的映射关系

工作原理
  • 广播请求、点对点响应 :在同一条链路,主机 A 想要获取主机 B 的 MAC 地址,通过主机 A 会通过广播 的方式向以太网上的所有主机发送一个 ARP 请求包,这个 ARP 请求包中包含了主机 A 想要知道的主机 B 的 IP 地址的 MAC 地址,只有主机B会响应。

  • 缓存 :每台主机都维护⼀个ARP缓存表 ,可以用arp-a命令查看。缓存表中的表项有过期时间(⼀般为20分),如果20分钟内没有再次使用某个表项,则该表项失效;如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文。

如果在不同链路, 就要使用到 代理 ARP 了,通常 ARP 会被路由器隔离,但是采用代理 ARP (ARP Proxy) 的路由器可以将 ARP 请求转发给临近的网段。

RARP协议

ARP 协议用于将 IP 地址解析为 MAC 地址(IP------》MAC ),而 RARP 协议则是将 MAC 地址解析为 IP 地址(MAC------》IP),二者都是为了实现网络中不同地址格式之间的转换,以确保数据在不同层次的网络设备之间能够正确传输。

然而,由于RARP它只能处理静态映射,缺乏灵活性,现在RARP在现代网络中已经被DHCP、 BOOTP等更为先进的协议所取代 ; 而ARP协议则仍被广泛使用

工作原理

ARP 协议的工作过程是主机通过广播发送 ARP 请求,询问目标 IP 地址对应的 MAC 地址,拥有该 IP 地址的主机收到请求后会发送 ARP 响应,告知自己的 MAC 地址。

而 RARP 协议的工作过程是主机发送 RARP 请求,其中包含自己的 MAC 地址,请求网络中的 RARP 服务器为其分配对应的 IP 地址,RARP 服务器收到请求后,根据 MAC 地址查找对应的 IP 地址,并通过 RARP 响应发送给请求主机。

可以说,RARP 协议是 ARP 协议的逆向过程

特性 ARP (地址解析协议) RARP (反向地址解析协议)
功能 将 IP 地址转换为 MAC 地址 将 MAC 地址转换为 IP 地址
使用场景 网络设备需要知道目标设备的 MAC 地址 网络设备需要通过 MAC 地址获取 IP 地址
工作方式 通过广播请求和回应来获取目标设备的 MAC 地址 通过广播请求和回应来获取设备的 IP 地址
表的存储 ARP 表:IP 地址到 MAC 地址的映射 RARP 表:MAC 地址到 IP 地址的映射
现代替代 ARP 仍在广泛使用 RARP 被 BOOTP 和 DHCP 替代
相关推荐
A_humble_scholar5 分钟前
Linux 网络基础(三)下的 HTTP 核心详解:从请求响应到状态管
linux·网络·http
袅沫6 分钟前
Nginx中部署多个前端项目——区分路径
服务器·前端
Lucis__10 分钟前
如何实现长连接通信机制?Websocket的最佳实践
网络·websocket·网络协议
fei_sun15 分钟前
UVM中的TLM1.0通信
运维·服务器·uvm
笨鸟飞不快18 分钟前
RocketMQ Lite Topic 流程梳理与设计解读
后端·rocketmq
MartinYeung519 分钟前
[论文学习]MCPTox:面向真实世界MCP服务器的工具投毒攻击基准测试
运维·服务器·学习
步行cgn28 分钟前
MyBatis 查询结果字段为 null?一文讲透下划线命名与驼峰映射问题
后端
技术长镜头28 分钟前
别再只会“加索引”:从磁盘页到 B+Tree,彻底理解 MySQL 索引的设计与运行
后端·mysql
生锈的键盘29 分钟前
gRPC 多路复用全链路拆解:从客户端到服务端,中间隔着 ELB 和 Nginx 到底是怎么玩的?
后端
laity1734 分钟前
python发光表白爱心(从零到一实现)
前端·后端