Linux数据链路层

1.以太网帧格式

以太网帧包含:6字节的目的地址、6字节的源地址、2字节类型、46~1500字节的数据、4字节的CRC校验码。其中2字节的类型是为了标识数据的类型的,一般分三类:IP数据报(0800)、ARP请求/应答(0806)、RARP请求/应答(8035)。如下图。

2.MAC地址

MAC地址用来识别数据链路层中相连的节点,长度为48位,6字节。一般采用16进制数字加冒号的形式来标识,MAC地址在网卡出厂的时候就已经确定了不能修改。MAC地址和IP地址的区别是,在数据传输时每一跳MAC地址都会改变,但是IP地址不会改变。

3.MTU

MTU就是对数据包大小的限制,这个限制是不同数据链路层对应的物理层产生的限制。因此IP数据包太大就需要进行分包。

4.ARP数据报格式

ARP数据报格式包含:2字节硬件类型、2字节协议类型、1字节硬件地址长度、1字节协议地址长度、2字节操作码(op)、6字节发送端以太网地址、4字节发送端IP地址、6字节目的以太网地址、4字节目的IP地址。

整个ARP数据报封装在以太网帧的数据字段中,前面加上以太网帧头(6字节目的MAC、6字节源MAC、2字节类型0x0806)。

硬件类型指链路层网络类型,1为以太网。协议类型指要转换的地址类型,0x0800为IP地址。操作码为1表示ARP请求,为2表示ARP应答。硬件地址长度为6(以太网地址长度),协议地址长度为4(IP地址长度)。

4.1ARP的具体过程

在一个局域网内通信需要知道目的主机的MAC地址,但在网络通信时通过路由表只能查到下一跳主机的IP地址。那么如何得知对方的MAC地址并进行通信呢?

主机启动或网络配置变更后,ARP缓存为空,不一定知道局域网内其他主机的MAC地址。此时可以通过广播ARP请求报文来获取目的主机的MAC地址。

发送方广播发送ARP请求,局域网内的所有 主机都能收到该报文。每台主机分析报文中的目的IP地址:如果与本机IP匹配,则向发送方单播返回ARP应答报文(因为ARP请求报文中已包含发送方的MAC地址);如果不匹配,则直接丢弃报文。

发送方收到ARP应答后,将目的主机的IP地址与MAC地址的映射关系存入ARP缓存表,之后再向目的主机发送数据。

相关推荐
letisgo53 小时前
VMware Workstation + Ubuntu 26.04 LTS 小白运维部署手册
linux·运维·ubuntu
IT探索3 小时前
Linux 查找文件指令总结
linux·算法
许彰午3 小时前
09-媒体访问控制
网络
晚风吹长发3 小时前
Docker使用——Docker容器及相关命令
linux·运维·服务器·docker·容器·架构
sulikey3 小时前
个人Linux操作系统学习笔记11 - 环境变量
linux·笔记·学习
Kina_C3 小时前
NFS与Autofs快速讲解-从原理到实战配置
linux·nfs·autofs
皮卡狮4 小时前
文件系统:磁盘硬件寻址和系统软件寻址
linux
only-qi4 小时前
RAG 工作机制详解:构建高质量知识库的技术全流程
网络·人工智能·rag
是潮汕的灿灿展吖4 小时前
Centos离线部署nfs操作
linux·运维·centos
Kina_C4 小时前
Apache HTTP Server 安装、配置与高级功能详解
linux·http·apache