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缓存表,之后再向目的主机发送数据。

相关推荐
楚枫默寒2 小时前
Linux 编辑文件后自动添加修改日期
linux·运维·bash
折翅鵬3 小时前
Android史诗级网络优化实践总结
android·网络
2601_961194025 小时前
27考研刘晓艳单词pdf
linux·sql·ubuntu·华为·pdf·.net
2023自学中6 小时前
imx6ull 开发板 推流ov5640数据,虚拟机用 ffplay 拉流播放
linux·音视频·嵌入式·开发板
网安小白的进阶之路6 小时前
B模块 安全通信网络 第二门课IPv6与WLAN 01
网络·安全
shandianchengzi7 小时前
【记录】Ghidra|Ubuntu 26.04 下 Ghidra 界面缩放完整指南
linux·ubuntu·逆向·ghidra
Soari7 小时前
Ubuntu 根分区文件系统损坏,系统启动时自动检查失败
linux·运维·ubuntu
学习3人组7 小时前
Cisco ASA防火墙 NAT实验:源NAT+目的NAT(Trust/Untrust双区域,无DMZ)
网络·网络安全
杨云龙UP7 小时前
Oracle Health Check巡检脚本使用SOP V2.0:从HTML原始报告→生成Word专业巡检报告→交付客户_2026-06-03
linux·运维·数据库·sql·oracle·报告·巡检
广州灵眸科技有限公司7 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) Linux虚拟机准备
linux·运维·服务器