数据链路层

数据链路层解决的是直接相连的主机之间的数据传输。

数据帧格式

数据帧在IP报文的基础上增加了目的MAC,源MAC,类型和CRC校验的内容

类型有三种,因为数据链路层的数据帧根据有效载荷内容分为三种,IP,ARP和RARP。IP的类型值为0800,ARP是0806,RARP是0835。

数据帧传输过程

最大传输单元MTU

以太网帧中的数据长度规定最小46字节,最大1500字节ARP数据包的长度不够46字节,要在后面补填充位;

最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU;

如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片;

MTU对IP协议的影响

如果IP包很大,会将IP报文分成多个包,每个包的标签都是相同的。到达目标主机后,网络层再对小包按照顺序组装成一个大数据包。其中任何一个数据包丢失都会让数据失效,IP没有重传机制,效率很低不建议分包。

MTU对UDP的影响

一旦UDP携带的数据超过1472(1500 - 20(IP首部) - 8(UDP首部)), 那么就会在网络层分成多个IP数据报. 这多个IP数据报有任意一个丢失, 都会引起接收端网络层重组失败. 那么这就意味着, 如果UDP数据报在 网络层被分片, 整个数据被丢失的概率就大大增加了.

MTU对TCP的影响

TCP的一个数据报也不能无限大, 还是受制于MTU.

TCP的单个数据报的最大消息长度, 称为MSS(Max Segment Size);

TCP在建立连接的过程中, 通信双方会进行MSS协商. 最理想的情况下, MSS的值正好是在IP不会被分片处理的最大长度(这个长度仍然是受制于数据链路层的 MTU). 双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值. 然后双方得知对方的MSS值之后, 选择较小的作为最终MSS. MSS的值就是在TCP首部的40字节变长选项中(kind=2);

MSS和MTU的关系;

ARP协议

ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网 络层之间的协议。ARP协议的作用就是建立MAC和IP地址之间的关系。

ARP数据报格式

注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况 是多余的,但如果链路层是其它类型的网络则有可能是必要的。

硬件类型指链路层网络类型,1为以太网;

协议类型指要转换的地址类型,0x0800为IP地址;

硬件地址长度对于以太网地址为6字节;

协议地址长度对于和IP地址为4字节;

op字段为1表示ARP请求,op字段为2表示ARP应答。

工作流程

源主机发出ARP请求,询问目标IP主机的MAC地址是多少, 并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播);

目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中;

每台主机都维护一个ARP缓存表,可以用arp -a命令查看。缓存表中的表项有过期时间(一般为20分钟),如 果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址

相关推荐
andxe15 小时前
安科士 AndXe 技术博客:400G QSFP112 SR4 光模块|AI 算力与超算短距互联最优方案
网络·人工智能·光模块·光通信
shiyi.十一15 小时前
第2章:应用层 — 知识要点与架构
网络·计算机网络·架构
DFT计算杂谈16 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
水境传感 李兆栋16 小时前
GNSS 位移监测站 :毫米级感知,筑牢安全监测防线
网络
中微极客18 小时前
2026主流AI Agent框架技术选型与性能对比
运维·网络·人工智能
猿的天空1 天前
机器人双手迎来全栈训练系统:灵初智能EgoSteer让灵巧手无所不能
网络·人工智能·计算机·ai·程序员·机器人·编程
Xzaveir_7771 天前
OPPO、vivo、荣耀号码认证:多终端拨测矩阵与异常复现
大数据·网络·科技·矩阵·产品经理·ai-native
wuqingshun3141591 天前
从网络角度来看,用户从输入网址到网页显示,期间发生了什么?
网络
牛马工作号1 天前
Zigbee 专业详解:从协议到排障
网络·物联网·安全
牛马工作号1 天前
Wi‑Fi 完全指南:从 802.11 协议到 Wi‑Fi 7、AC+AP 与 Mesh 工程组网
网络·网络协议·智能路由器