网络通信-最大传输单元-MTU,网络安全零基础入门到精通实战教程!

embedded/2025/2/22 23:54:18/
文章目录
        • MTU 引用
        • MTU 介绍
          • 定义
          • MTU 与 VLAN Tag
          • VLAN Tag 处理方式
        • IP分片
        • 可靠传输
        • MTU 之 PMTUD
          • PMTUD介绍
          • IP头的DF分片位
            • DF = 0 可以分片
            • DF = 1 不可以分片
        • 注意事项
MTU 引用

以太网最初对报文长度没有限制,网络层最大可以接收65535个字节,但是以太网对于长报文无法可靠地传输,而且丢失后重传也会占用大量的网络资源,而将报文限制在一定的长度,以太网可以将报文大概率传输到目的地,于是就有了MTU


MTU 介绍
定义

Maximum Transmission Unit,即最大传输单元,以太网的数据链路层对网络层数据包的长度会有一个限制,其最大值默认是1500字节,链路层的这个特性称为MTU,由硬件网卡设置,是 数据链路层对网络硬性限制
MTU表示网络层必须将发给网卡API的包 <= 1500byte,否则调用失败, 这个1500字节数据长度是针对网络层的,不包含链路层的头部和尾部

MTU 与 VLAN Tag

如果有的以太网网卡配置了VLAN Tag ,通过此网卡的数据帧会携带VLAN Tag,VLAN Tag要算在链路层的Payload里, MTU = 1500里包含802.1Q的头部VLAN Tag (如下图)

图1

当网卡配置VLAN Tag时, VLAN Tag + Data <= MTU ,有时VLAN Tag不只有一个,可能是双标签,那这个VLAN Tag就是8个字节。这时候的MTU如果还是1500,链路层的Payload就不可能是1500了

VLAN Tag 处理方式

可以把添加802.1Q的接口设置MTU=1504或1508(网卡设置,硬件操作)


IP分片

既然链路层的Payload有MTU限制,就意味着 网络层下发到链路层的数据不能超过MTU,如果超过了MTU,就需要网络层分片 ,切成<=MTU的IP数据包

网络层如果发现链路层的MTU小于IP包的大小网络层可以调用函数获取链路层信息),也并不会立刻开始分片,还需要看IP包的是否允许分片位DF(Don’t Fragment)(在下方内容PMTUD处详述,如果允许分片,就会 分成多个ID一样的IP包


可靠传输

对于UDP包,如果MTU = 1500,那么udp Payload最大值是多少,才可以不用分片?

MTU(1500) = IPHeader(20) + UDPHeader(8) + Payload
Payload = 1500 -20 - 8 = 1472

如果UDP包的Data <= 1472个字节,UDP包(UDPHeader+Data)在网络不用分片,直接封装上IPHeader发往链路层,如果UDP包的Data > 1472,那么UDP包(UDPHeader + Data)需要在网络层分片 ,如何分片?

网络并不会在每个分片里复制一次UDP头,它是把完整的UDP包切开,加上IP头发送出去,除了第一个分片有UDP头,后面的分片都不包含UDP头

目的主机的网络接收到多个UDP分片包后,网络层必须重组才能交给上层,为什么?

因为多个分片包只有第一个是有UDP头的,它可以根据UDP头里的端口号通知相应的应用取走,但是后面的分片包由于没有UDP头,传输层无法把分片包交给正确的应用程序。所以UDP分片包必须在 网络层重组成一个完整的UDP包,交给传输层处理IP分片会分成多个ID一样的IP包,根据ID重组)。

  • 不可靠传输

UDP如果某些分片包没有被目的主机的网络层接收到,UDP包重组失败,接收方会丢弃整个数据包,这是UDP不可靠传输的一个表现。
对于UDP来说,一般选择576个字节通信

  • 可靠传输

TCP包重组失败,该包会被重传,保证可靠传输


MTU 之 PMTUD
PMTUD介绍

PMTUD:Path MTU Discovery

收发双方在TCP协议通信时,根据取较小MSS的原则理论上避免了发送方在网络层分片,接收方在网卡由于超过MTU而无法接收的情况
但是,以太网通信不是只有两台主机,它们通信的途中还有路由器和交换机,路由器和交换机都有自己的MTU,主机的网络层可以分片,路由器的网络层也可以分片
就像木桶理论一样,木桶能装多少水取决于最短的那块, 网络通信的路径上决定IP包大小的,取决于源主机、目的主机、路由器中MTU最小的那个这就是PMTUD

路由器和交换机都有自己的MTU,如果数据帧超过了它们的MTU,在从出口发出去时,需要进行分片网络层能否分片IP包,需要根据IP头的DF分片位决定

IP头的DF分片位

DF = 0,表示可以分片
DF = 1,表示不可以分片

DF = 0 可以分片

下图设定 ,设定左右两台主机在TCP握手阶段,确定了MSS = 1480 - 20 - 20 = 1440,设定发送的IP包就是1440 + 20 + 20 = 1480,如果是直连,这样的IP包在发出去的时候不会分片,而接收端也可以接收到。

但是当IP包到达路由器时,需要从另一个接口发出,而接口MTU为1450,必须分片才能发送,这时候 路由器就会检查IP包的DF位,以确定这个IP包是否支持分片

发现DF位是0,表示可以分片,就把这个IP包分成两份,1450和30,由于第一份1450是有IP头的,可以直接下发到链路层发出,而第二份30是没有IP头的,需要加上IP头20个字节,形成一份新的IP包,最终大小是50个字节,同样下发到链路层发出

图2

DF = 1 不可以分片

如下图,与上面DF = 0的情况不同的是,路由器发现IP包需要分片,然后查看IP包的DF位,发现值为1,显示不能分片,此时路由器只能丢弃此IP包,同时给源主机回复一个ICMP目的不可达的消息,Type = 3,code = 4

图3

  • 上图中code = 4的含义

图4

同时,在ICMP消息里还会携带路由器的MTU的大小,告知源主机这个路由器的MTU是多少,这样源主机就可以继续调整自己的MSS值如果有多个路由器,多个路由器都会这样操作,最终确定一个这条路径上的最小MTU,这就是PMTUD

另外,ICMP目的不可达消息,还会把丢弃的IP包的各层报头也放在里面(如下图)

图5

注意事项

路由器的MTU只针对网络通信数据出口,接收数据不受限制
PMTUD只有TCP支持,UDP并不支持


网络安全>网络安全学习资源分享:

给大家分享一份全套的网络安全>网络安全学习资料,给那些想学习 网络安全>网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全>网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全>网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取

👉1.成长路线图&学习规划👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费

对于从来没有接触过网络安全>网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

在这里插入图片描述
在这里插入图片描述

👉2.网安入门到进阶视频教程👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。(全套教程扫描领取哈)

在这里插入图片描述
在这里插入图片描述

👉3.SRC&黑客文档👈

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:
在这里插入图片描述
黑客资料由于是敏感资源,这里不能直接展示哦! (全套教程扫描领取哈)

👉4.护网行动资料👈

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
在这里插入图片描述

👉5.黑客必读书单👈

在这里插入图片描述

👉6.网络安全>网络安全岗面试题合集👈

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
在这里插入图片描述

所有资料共282G,朋友们如果有需要全套《网络安全>网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~

本文转自 https://blog.csdn.net/qq_42576109/article/details/127915967?ops_request_misc=%257B%2522request%255Fid%2522%253A%252248b924b356f68c822112663fb0b43b88%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=48b924b356f68c822112663fb0b43b88&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-2-127915967-null-null.142v101pc_search_result_base3&utm_term=%E4%BC%A0%E8%BE%93%E5%8D%95%E5%85%83&spm=1018.2226.3001.4187,如有侵权,请联系删除。


http://www.ppmy.cn/embedded/164474.html

相关文章

最新本地部署 DeepSeekR1 蒸馏\满血量化版 + WebOpenUI 完整教程(Ubuntu\Linux系统\Ollama)

测试机为6133CPU(40Cores)256G D44*4090D 24G 一种方法是部署蒸馏版Distill模型。一种是部署Huggingface上unsloth的量化版模型 Ollama及模型安装 1.下载并安装ollama curl -fsSL https://ollama.com/install.sh | sh如果下载不动可以试试挂梯子或者再试几次 挂代理代码&…

rust笔记3-属性

在 Rust 中&#xff0c;**属性&#xff08;Attribute&#xff09;**是一种特殊的注释语法&#xff0c;用于为代码提供额外的元数据或指示编译器执行某些操作。属性可以应用于模块、函数、结构体、枚举、字段、方法等代码元素&#xff0c;以改变它们的行为或提供额外的信息。 属…

android 快速定位当前页面

1.adb 命令 查看当前栈顶的Activity &#xff1a;adb shell dumpsys activity | grep "mFocusedActivity" (3)查看当前栈顶的Activity的Fragment &#xff1a;adb shell dumpsys activity your.package.name 或者&#xff1a; adb shell dumpsys activity top 查看…

(网络安全)渗透测试

1、渗透测试种类 2、网络安全渗透测试分类 1&#xff09;网络安全渗透测试&#xff0c; 根据事先对测试目标系统信息的了解程度&#xff0c;可以分为 a.黑盒测试&#xff1a; 只知道要测试的目标系统&#xff0c;但系统内部的任何信息&#xff0c;都不清楚。这种测试最真实&am…

网络运维学习笔记 013网工初级(HCIA-Datacom与CCNA-EI)DHCP动态主机配置协议(此处只讲华为)

文章目录 DHCP&#xff08;Dynamic Host Configuration Protocol&#xff0c;动态主机配置协议&#xff09;网关配置DHCP服务器配置如果没有DHCP服务器&#xff0c;只在网关上做DHCP服务器&#xff1a; DHCP&#xff08;Dynamic Host Configuration Protocol&#xff0c;动态主…

MySQL 选择数据库

MySQL 选择数据库 在MySQL数据库管理系统中,选择合适的数据库是确保数据管理和应用开发高效进行的关键步骤。本文将详细介绍如何在MySQL中选择数据库,包括数据库的选择标准、创建过程以及一些实用的操作技巧。 选择数据库的标准 选择一个合适的数据库需要考虑以下几个因素…

22.4.3.1 IPGlobalProperties类

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 IPGlobalProperties类提供有关本地计算机的网络接口和网络连接的配置和统计信息。此类提供的信息与 IP Helper API 函数提供的信息相…

人工智能大模型定制:借深度学习情绪密码,开启心理健康新 “视窗”

在当今社会&#xff0c;生活节奏日益加快&#xff0c;人们面临的压力与日俱增&#xff0c;对心理健康支持服务的需求也呈爆发式增长。在这样的大背景下&#xff0c;数字化服务&#xff0c;尤其是匿名短信平台&#xff0c;凭借其便捷性、隐私性等优势&#xff0c;成为许多人寻求…