MTU 最大传输单位
MTU 最大传输单位
通过上面 MAC 封装的定义,现在我们知道标准以太网络frame所能传送的数据量最大可以到达 1500 bytes , 这个数值就被我们称为 MTU (Maximum Transmission Unit, 最大传输单位)。 你得要注意的是,每种网络接口的 MTU 都不相同,因此有的时候在某些网络文章上面你会看到 1492 bytes 的 MTU 等等。不过,在以太网络上,标准的定义就是 1500 bytes。
IP 封包最大可以到 65535 bytes,比 MTU 还要大呢!既然礼物 (IP) 都比盒子 (MAC) 大,那怎么可能放的进去啊?所以, IP 封包是可以进行拆解的,然后才能放到 MAC 当中啊!等到数据都传到目的地, 再由目的地的主机将他组装回来就是了。所以啰,如果 MTU 能够大一些的话,那么 IP 封包的拆解情况就会降低, 封包与封包传送之间的等待时间 (96 bit time) 也会减少,就能够增加网络带宽的使用!
为了这个目的,所以 Gigabit 的以太网络媒体才有支持 Jumbo frame 的嘛!这个 Jumbo frame 一般都定义到 9000bytes。 那你会说,既然如此,我们的 MTU 能不能改成 9000bytes 呢?这样一来不就能够减少数据封包的拆解,以增加网络使用率吗? 是这样没错,而且,你也确实可以在 Linux 系统上更改 MTU 的!但是,如果考虑到整个网络,那么我们不建议你修改这个数值。 为什么呢?
我们的封包总是需要在 Internet 上面跑吧?你无法确认所有的网络媒体都是支持那么大的 MTU 对吧! 如果你的 9000 bytes 封包通过一个不支持 Jumbo frame 的网络媒体时,好一点的是该网络媒体 (例如 switch/router 等) 会主动的帮你重组而进行传送,差一点的可能就直接回报这个封包无效而丢弃了~这个时候可就糗大了~ 所以, MTU 设定为 9000 这种事情,大概仅能在内部网络的环境中作~举例来说,很多的内部丛集系统 (cluster) 就将他们的内部网络环境
MTU 设定为 9000,但是对外的适配卡可还是原本的标准 1500 喔! ^_^
也就是说,不论你的网络媒体支持 MTU 到多大,你必须要考虑到你的封包需要传到目的地时, 所需要经过的所有网络媒体,然后再来决定你的 MTU 设定才行。就因为这样,我们才不建议你修改标准以太网络的 MTU !
MTU 最大传输单位的更多相关文章
- (转载) 小议TCP的MSS(最大分段)以及MTU(最大传输单元)
[背景知识] MTU: Maximum Transmission Unit 最大传输单元 MSS: Maximum Segment Size 最大分段大小PPPoE: PPP Over Ethern ...
- 网卡最大传输单位MTU和巨型帧(Jumbo frame)设置
1. 背景:在1998年,Alteon Networks 公司提出把Data Link Layer最大能传输的数据从1500 bytes 增加到9000 bytes,这个提议虽然没有得到IEEE 80 ...
- NB-IOT使用LWM2M移动onenet对接之MTU最大传输单元设置
1. 最近遇到的一个项目NB-IOT使用LWM2M移动onenet对接,要求设置传输的MTU,因此首先需要搞懂MTU是什么? 以太网的MTU值是1500 bytes,假设发送者的协议高层向IP层发送了 ...
- Linux C语言 取得MTU (最大传输单元)
参照这篇博客: http://www.geekpage.jp/programming/linux-network/book/04/4-21.php * 查看主机当前网卡,哪块在使用. ifconfig ...
- linux基本命令学习02
=============================================================================a.txtc:\abc\a.txt windo ...
- [转]python3之模块psutil系统性能信息
转自:https://www.cnblogs.com/zhangxinqi/p/9106265.html 阅读目录 1.psutil模块安装 2.获取CPU信息 3.内存信息 4.磁盘信息 5.网络信 ...
- 《Python自动化运维之路》 系统基础信息模块(一)
系统性能收集模块Psutil 目录: 系统性能信息模块psutil 系统性能信息模块psutil psutil能够轻松实现获取系统运行的进程和系统利用率包括(CPU,内存,磁盘 和网络)等.主要用于系 ...
- python3之模块psutil系统性能信息
psutil是个跨平台库,能够轻松实现获取系统运行的进程和系统利用率,包括CPU.内存.磁盘.网络等信息. 它主要应用于信息监控,分析和限制系统资源及进程的管理.它实现了同等命令命令行工具提供的功能, ...
- wazhu之agent功能详解
一.日志数据收集 日志数据收集是从服务器或设备生成的记录中收集的实时过程.此组件可以通过文本文件或Windows事件日志接收日志.它还可以通过远程syslog直接接收日志,这对防火墙和其他此类设备 ...
随机推荐
- 使用Contacts Contract Content Provider操作通讯录最佳实践
Android向所有被赋予READ_CONTACTS权限的应用程序提供了联系人信息数据库的完全访问权限.Contacts Contract使用3层数据模型去存储数据,下面介绍Contacts Cont ...
- 【Unity Shader实战】卡通风格的Shader(二)
写在前面 本系列其他文章: 卡通风格的Shader(一) 好久没写博客了,一定是因为课程作业比较多,一定不是因为我懒,恩恩. 三个月以前,在一篇讲卡通风格的Shader的最后,我们说到在Surface ...
- UNIX网络编程——send与recv函数详解
#include <sys/socket.h> ssize_t recv(int sockfd, void *buff, size_t nbytes, int flags); ssize_ ...
- JqGrid 显示表格
JqGrid 是前台的表格显示库,使用起来相当方便. 这里分享下本人使用过程中遇到的问题及解决方案 ** 一.rowNum属性 ** 1.如果不设置,默认显示数是20,也就是说超过20以后的数据.不再 ...
- 后端分布式系列:分布式存储-HDFS 异常处理与恢复
在前面的文章 <HDFS DataNode 设计实现解析>中我们对文件操作进行了描述,但并未展开讲述其中涉及的异常错误处理与恢复机制.本文将深入探讨 HDFS 文件操作涉及的错误处理与恢复 ...
- Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(四)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 现在打开MainScene.m文件,首先设置实例变量: @imp ...
- 【一天一道LeetCode】#121. Best Time to Buy and Sell Stock
# 一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Say ...
- Linux的sort命令
Linux的sort命令 Linux的sort命令就是一种对文件排序的工具,sort命令的功能十分强大,是Shell脚本编程时常使用的文件排序工具. sort命令将输入文件看做由多条记录组成的数据流 ...
- java设计模式---职责链模式
职责链的本质:分离职责,动态组合 样例: /** * 定义职责对象的接口 * */ public abstract class Handler { protected Handler successo ...
- iOS中GET 和 POST 数据请求
iOS中GET 和 POST 网络数据请求 同步请求和异步请求的差别: 1.同步请求,有主线程完成网路请求任务,在数据没有请求之前,用户的所有的交互事件应用都无法处理,会造成一种卡顿现象,影响用户体验 ...