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

相关推荐
Linux-lucky2 小时前
45-Linux学习之旅之防火墙与WEB加固
linux·前端·网络·学习·ubuntu
禁默2 小时前
启元 Q1 二次开发实践:Ubuntu 部署与仿真验证,从 PrimeConsole 到 ROS 2 Humble + RViz
linux·运维·ubuntu
skywalk81633 小时前
把 去也网站 从 Ubuntu 搬到 FreeBSD:一次 Service Jail + nginx 的部署实录
linux·运维·nginx·ubuntu·freebsd
爱莉希雅&&&5 小时前
GitLab 完整学习笔记
linux·运维·服务器
风笙9785 小时前
[文件系统]文件系统挂载与卸载详解
linux
GeW5 小时前
新质生产力路线图解读:数据库性能优化与Linux调优专场
linux·数据库
博客zhu虎康6 小时前
实现局域网P2P通信:内网发送消息
网络·网络协议·p2p
吴声子夜歌6 小时前
Kubernetes权威指南——网络原理(一)
网络·容器·kubernetes
陈希1237 小时前
Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位
linux·服务器·网络
国科安芯8 小时前
从遥控到自治:ASP4644S2B支撑星载电源健康管理与容错配电
网络·单片机·嵌入式硬件·安全·dcdc·低轨卫星·商业航天