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直接接收日志,这对防火墙和其他此类设备 ...
随机推荐
- ROS探索总结(十七)——构建完整的机器人应用系统
上一篇博客介绍了HRMRP机器人平台的设计,基于该平台,可以完成丰富的机器人应用,以较为典型的机器人导航为例,如何使用HRMRP来完成相应的功能?本篇博客将详细介绍如何将HRMRP应用到 ...
- Dynamics CRM 视图显示列的拷贝—view layout replicator
在视图设置的时候很多人会遇到这样的问题,要设置多张视图,而这多张视图可能除了筛选条件不同外其他的均相同,手动去设置是件重复的令人非常头痛的事情,如果能够拷贝那就相当完美了. 本篇即介绍视图显示列的拷贝 ...
- javascript之键盘事件
键盘事件包含onkeydown.onkeypress和onkeyup这三个事件 事件初始化 function keyDown(){} document.onkeydown = keyDown; ...
- 后端分布式系列:分布式存储-MySQL 数据库事务与复制
好久没有写技术文章了,因为一直在思考 「后端分布式」这个系列到底怎么写才合适.最近基本想清楚了,「后端分布式」包括「分布式存储」和 「分布式计算」两大类.结合实际工作中碰到的问题,以寻找答案的方式来剖 ...
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(七):弹出地鼠
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- INV_TXN_MANAGER_PUB.PROCESS_TRANSACTIONS
For Interface Transactions,INV_TXN_MANAGER_PUB.PROCESS_TRANSACTIONS DOES below things: 1)validate_gr ...
- Unity插件 - MeshEditor(三) 面片破碎&网格破碎
网上的unity破碎插件很多,不过想着可以以自己的方式实现也不失为一种乐趣,虽然整体的表现性上显得有些差,但也并不会影响最终的效果,接下来我大致讲解一下破碎一个物体的流程,因为用到了协程计算碎片的原因 ...
- iOS中 Swift初级入门学习(二)
// Copyright (c) 2015年 韩俊强. All rights reserved. // import Foundation /* // 控制语句 // for - in // 遍历字符 ...
- pig中查询top k,返回每个hour和ad_network_id下最大两个记录(SUBSTRING,order,COUNT_STAR,limit)
pig里面是有TOP函数,不知道为什么用不了.有时间要去看看pig源码了. SET job.name 'top_k'; SET job.priority HIGH; --REGISTER piggyb ...
- 从JDK源码角度看线程的阻塞和唤醒
目前在Java语言层面能实现阻塞唤醒的方式一共有三种:suspend与resume组合.wait与notify组合.park与unpark组合.其中suspend与resume因为存在无法解决的竟态问 ...