MTU

2019-02-28  本文已影响0人  不爱钱的张师傅

MTU 概念

MTU( Maximum Transmission Unit),最大传输单元。用来设置 一个数据包的大小 。相当于一个最高阀值,不能超过它。
比如我们要通过 ftp 传输一段视频 viedo.avi 。
put viedo.avi ,此时,这个数据,从网络模型至上而下历经了
应用层的ftp 到 传输层的 TCP ,此时看到 MTU 为 1500 (不一定是这个数字),于是将数据按照每个包 1500 bytes 分包,以便后续发送出去。

MTU 系统有默认值

MTU 平时我们并不需要设置。数据太大,系统会自动帮你按照默认值分包发送,不需要手动设置。但你可以查询这个值。

查询 windows 本机使用 MTU

命令:ping -f -l 1473  192.168.0.1

正在 Ping 192.168.0.1 具有 1473 字节的数据:
需要拆分数据包但是设置 DF。
需要拆分数据包但是设置 DF。

命令:ping -f -l 1472  192.168.0.1

正在 Ping 192.168.0.1 具有 1472 字节的数据:
来自 192.168.0.1 的回复: 字节=1472 时间=6ms TTL=64
来自 192.168.0.1 的回复: 字节=1472 时间=10ms TTL=64

ping 的参数

-f 在数据包中设置“不分段”标记(仅适用于 IPv4)。 //意思就是按照 -l 给的数值分包。
-l 发送缓冲区大小。//设置一个数据包要多大

系统本身 MTU 默认值是 1472 .
第一次命令的意思是每个包 1473 大小,不分包!你看着办吧。系统回复:一个包我最多放 1472 ,放不下 1473 个字节,干不了!
第二次则将 MTU 值设置为 1472 ,还是不分包,但是系统可以接受这个数值,觉得 ok 了。
说明系统能发送的最大数据包是 1472 (其实最后发送前,还要加上一些身份信息 28 byte,实际上应为 1500 )。

上一篇 下一篇

猜你喜欢

热点阅读