当前位置: 首页 > news >正文

数据链路层 MTU 对 IP 协议的影响

在介绍主要内容之前,我们先来了解一下数据链路层中的"以太网" 。

“以太网”不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容。

下面我们再来了解一下以太网数据帧:

上述的1500表示一个以太网数据帧,载荷最大长度是1500。对于不同的数据链路层协议,对应不同的硬件物理设备,此时传输数据上限就有所不同。

我们通常将数据链路层数据帧最大载荷长度,称为 MTU(PS:不同的数据链路层协议MTU不尽相同)。如果承载的数据长度超过 MTU,就会在网络层使用 IP协议 进行分包(分片),使每个分出来的结果都在MTU之内。这个 分包/组包 是IP协议的一个工作,体现在协议的报文格式中:

  1. 16位标识符表示:一个大的IP数据报被拆成多个小的报之后,这些小报文的标识相同。
  2. 3位标志位表示:1位不使用;1位标识是否分包;1位表示结束标记,标识当前分包是否为最后一个。
  3. 13位片偏移表示:每个小数据报的先后顺序,用来组包。

例如以UDP分包为例,以下展示了分包的过程(FDDI以太网属于不同的数据链路层协议):

这里仍需要注意的是:

  1. 虽然IP能拆包,但仍然不能改变UDP最大长度是 64k 的事实,因为拆出的数据报中只有一份UDP首部。
  2. 这多个IP数据报有任意一个丢失,都会引起接收端网络层重组失败。那么这就意味着,如果UDP数据报在网络层被分片,整个数据被丢失的概率就大大增加了。因此,一般情况下,使用 UDP 协议传输数据时,要确保数据报的大小适合网络的 MTU(最大传输单元),以避免数据报被分片。
http://www.lryc.cn/news/180902.html

相关文章:

  • 一文拿捏基于redis的分布式锁、lua、分布式性能提升
  • 机器学习必修课 - 如何处理缺失数据
  • 阿里云服务器方升架构、自研硬件、AliFlash技术创新
  • 知识工程---neo4j 5.12.0+GDS2.4.6安装
  • BUUCTF reverse wp 81 - 85
  • 数据结构-哈希表
  • 深度学习在图像识别领域还有哪些应用?
  • 前端项目练习(练习-005-webpack-03)
  • 『力扣每日一题10』:字符串中的单词数
  • 初级篇—第三章多表查询
  • <Xcode> Xcode IOS无开发者账号打包和分发
  • vertx的学习总结2
  • 网络安全内网渗透之DNS隧道实验--dnscat2直连模式
  • 探索ClickHouse——连接Kafka和Clickhouse
  • 基于监督学习的多模态MRI脑肿瘤分割,使用来自超体素的纹理特征(Matlab代码实现)
  • 【RocketMQ】(八)Rebalance负载均衡
  • 线性筛和埃氏筛
  • 【Java 进阶篇】JDBC ResultSet 类详解
  • Centos7常用服务脚本(.service)
  • MySQL 视图View的SQL语法和更新(视图篇 二)
  • 38 翻转二叉树
  • 数据结构-快速排序-C语言实现
  • 玩客云Armbian_23.08.0-trunk_Onecloud_bookworm_edge_6.4.14.burn配置
  • Nginx查找耗时的接口
  • C++ Primer 一 变量和基本类型
  • 实体行业数字化转型怎么做?线上线下相结合的新零售体系怎么做?
  • JAVA面经整理(5)
  • 【牛客网-面试必刷TOP101】二分查找题目
  • 【QT】自定义组件ui类添加到主ui界面方法
  • FFmpeg 多图片合成视频带字幕和音乐+特效(淡入淡出,圆圈黑色淡出)