数据链路层
以太网
"以太网"不是一种具体的网络,而是一种技术标准; 既包含了数据链路层的内容,也包含了⼀些物理层的内容。例如:规定了网络拓扑结构,访问控制方式,传输速率等
以太网是当前应用最广泛的局域网技术 ; 和以太网并列的还有令牌环网,无线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 替代 |