原文:http://blog.csdn.net/hldjf/article/details/7450565


MTU: Maxitum Transmission Unit 最大传输单元

MSS: Maxitum Segment Size 最大分段大小

[分析过程]

先 说说这MTU最大传输单元,这个最大传输单元实际上和链路层协议有着密切的关系,让我们先仔细回忆一下EthernetII帧的结构 DMAC+SMAC+Type+Data+CRC由于以太网传输电气方面的限制,每个以太网帧都有最小的大小64bytes最大不能超过 1518bytes,对于小于或者大于这个限制的以太网帧我们都可以视之为错误的数据帧,一般的以太网转发设备会丢弃这些数据帧。(注:小于 64Bytes的数据帧一般是由于以太网冲突产生的“碎片”或者线路干扰或者坏的以太网接口产生的,对于大于1518Bytes的数据帧我们一般把它叫做 Giant帧,这种一般是由于线路干扰或者坏的以太网口产生)

由于以太网EthernetII最大的数据帧是1518Bytes这样,刨 去以太网帧的帧头(DMAC目的MAC地址48bit=6Bytes+SMAC源MAC地址48bit=6Bytes+Type域 2bytes)14Bytes和帧尾CRC校验部分4Bytes(这个部门有时候大家也把它叫做FCS),那么剩下承载上层协议的地方也就是Data域最 大就只能有1500Bytes这个值我们就把它称之为MTU。这个就是网络层协议非常关心的地方,因为网络层协议比如IP协议会根据这个值来决定是否把上 层传下来的数据进行分片。就好比一个盒子没法装下一大块面包,我们需要把面包切成片,装在多个盒子里面一样的道理。

当两台远程PC互联的时候,它们的数据需要穿过很多的路由器和各种各样的网络媒介才能到达对端,网络中不同媒介的MTU各不相同,就好比一长段的水管,由不同粗细的水管组成(MTU不同 )通过这段水管最大水量就要由中间最细的水管决定。

对 于网络层的上层协议而言(我们以TCP/IP协议族为例)它们对水管粗细不在意它们认为这个是网络层的事情。网络层IP协议会检查每个从上层协议下来的数 据包的大小,并根据本机MTU的大小决定是否作“分片”处理。分片最大的坏处就是降低了传输性能,本来一次可以搞定的事情,分成多次搞定,所以在网络层更 高一层(就是传输层)的实现中往往会对此加以注意!有些高层因为某些原因就会要求我这个面包不能切片,我要完整地面包,所以会在IP数据包包头里面加上一 个标签:DF(DonotFragment)。这样当这个IP数据包在一大段网络(水管里面)传输的时候,如果遇到MTU小于IP数据包的情况,转发设备 就会根据要求丢弃这个数据包。然后返回一个错误信息给发送者。这样往往会造成某些通讯上的问题,不过幸运的是大部分网络链路都是MTU1500或者大于 1500。

对于UDP协议而言,这个协议本身是无连接的协议,对数据包的到达顺序以及是否正确到达不甚关心,所以一般UDP应用对分片没有特殊要求。

对于TCP协议而言就不一样了,这个协议是面向连接的协议,对于TCP协议而言它非常在意数据包的到达顺序以及是否传输中有错误发生。所以有些TCP应用对分片有要求---不能分片(DF)。

马上请出今天第三位猪脚:MSS。
MSS最大传输大小的缩写,是TCP协议里面的一个概念。
MSS 就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时 候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460。通讯双方会根据双方 提供的MSS值得最小值确定为这次连接的最大MSS值。

MTU and MSS相关推荐

  1. pppoe-环境下的mtu和mss

    路由器上在宽带拨号高级设置页面会有设置数据包MTU的页面 数据包MTU(字节):1480 (默认是1480,如非必要,请勿修改) PPPoE/ADSL:1492 ,可以尝试修改为1492 MTU: M ...

  2. 【计算机网络】MTU和MSS

    什么是MTU(Maximum Transmission Unit)? 最大传输单元MTU,是指网络能够传输的最大数据包大小,以字节为单位. MTU是数据链路层的概念,指数据链路层对帧的数据部分长度的限 ...

  3. MTU、IP MTU 和 MSS 参数详解

    1. 概述 本文主要分析网络通信中MTU,IP MTU和MSS的概念以及它们之间的关系.这三个概念对于网络通信来说非常重要,常常很多网页打不开等问题都是这几个参数没配置好导致的. 2. MTU 最大传 ...

  4. 计算机网络:以太网中的MTU与MSS

    以太网(Ethernet)最大的数据帧是1518字节.以太网帧的帧头的14字节和帧尾CRC校验4字节共占了18字节,剩下的承载上层协议的地方也就是Data域最大就只剩1500字节.这个值我们就把它称之 ...

  5. 网络协议中的MTU和MSS

    介绍了MTU和MSS的概念及计算方法,并列举两个MTU相关导致丢包的例子. MTU: Maxitum Transmission Unit 最大传输单元 MSS: Maxitum Segment Siz ...

  6. MTU与MSS的关系

    MTU与MSS的关系 1,MTU:   Maximum Transmission Unit  最大传输单元 首先看一下Ethernet帧的结构示意图: Ethernet帧的结构由6字节目标地址(48  ...

  7. MTU和MSS的区别

    1.MTU: Maximum Transmit Unit,最大传输单元,即物理接口(数据链路层)提供给其上层(通常是IP层)最大一次传输数据的大小:以普遍使用的以太网接口为例,缺省MTU=1500 B ...

  8. 数据包分片和重组 MTU与MSS

    前言 任何一台主机都有必要对IP分片进行相应的处理. 分片往往出现在网络上遇到比较大的报文无法一下子发送出去才会进行处理. 正文 比如说在前一个FDDI链路中的报文大小为4352字节,小于其MTU所以 ...

  9. TCPIP / MTU 和 MSS 的区别和联系

    一.MTU 英文全称:Maximum Transmit Unit,最大传输单元. 定义:数据链路层允许 IP 层最大一次性传输的数据的字节数.一般大小为1500B. 二.MSS 英文全称:Maximu ...

  10. MTU 和 MSS 区别

    MTU: Maximum Transmit Unit,最大传输单元,即物理接口(数据链路层)提供给其上层(通常是IP层)最大一次传输数据的大小:以普遍使用的以太网接口为例,缺省MTU=1500 Byt ...

最新文章

  1. Go 学习笔记(51)— Go 标准库之 strings(字符串比较、字符串前后缀、字符串统计、字符串索引、字符串包含、字符串转换、字符串复制、字符串替换、字符串去除、字符串分割和连接)
  2. main函数参数,在VS中向命令行添加参数的方法
  3. 二叉树的建立和遍历程序代码(Java,C)
  4. 一步一步学linq to sql(四)查询句法
  5. 小程序上让随机的两个点都显示在地图可视区域
  6. 跨链Cosmos(6)ABCI 原理
  7. SQL中like的用法
  8. Python PycURL 网络编程
  9. LNK2019 无法解析的外部符号 __imp_CommandLineToArgvW,该符号在函数 WinMain 中被引用
  10. LeetCode--5.最长回文子串(滑动窗口)
  11. vue更新路由router-view复用组件内容不刷新
  12. RAPIDXML 中文手册,根据官方文档完整翻译!
  13. python图像识别与提取_python图像识别与提取
  14. PIXI.JS一镜到底动画
  15. Pygame实战:下五子棋吗?信不信我让你几步你也赢不了?
  16. 【全开源+免费更新】doodoo.js创建项目教程
  17. 顺序结构不属于python语言控制结构_顺的解释|顺的意思|汉典“顺”字的基本解释...
  18. 付费系列 6 - 离散型障碍和触碰期权 PDE 有限差分
  19. MySQL表查询关键字
  20. hz和分贝怎么转换_分贝转换

热门文章

  1. 软件测试是干什么的 发展前景怎样?
  2. Python报错:ImportError cannot import name ‘imresize‘
  3. PT100温度电阻转换器
  4. Git - GitWeb
  5. 取消IPV4自动配置
  6. 浅谈——工科生如何撰写学术论文
  7. 《大数据》笔记 Bonferroni correction
  8. 2017算法实习生应聘经验总结
  9. 利用Python创建文件
  10. 程序员如何正确饲养乌龟?