数据链路层:以太网、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 替代
相关推荐
郝学胜-神的一滴1 小时前
Linux C++系统编程:使用mmap创建匿名映射区
linux·服务器·开发语言·c++·程序人生
i***17181 小时前
SpringBoot Maven 项目 pom 中的 plugin 插件用法整理
spring boot·后端·maven
凌览1 小时前
女朋友换头像比翻书快?我3天肝出一个去水印小程序
前端·后端·面试
IT_陈寒1 小时前
3个90%开发者都误解的JavaScript原型陷阱:从proto到class的深度剖析
前端·人工智能·后端
u***42071 小时前
Spring Boot 实战篇(四):实现用户登录与注册功能
java·spring boot·后端
5***V9331 小时前
SQL 注入漏洞原理以及修复方法
网络·数据库·sql
有泽改之_1 小时前
Garmin FIT协议与FIT Activity文件类型
网络·python
k***85841 小时前
删除文件夹,被提示“需要来自 TrustedInstaller 的权限。。。”的解决方案
android·前端·后端
豆浆whisky1 小时前
构建可观测的Go应用:指标、日志与追踪的统一之道|Go语言进阶(21)
linux·运维·后端·golang