MTU MSS PDU SDU

首先要说两个概念:

PDU:协议数据单元,计算机网络各层对等实体间交换的单位叫做PDU,不同层的PDU名称不同

名称
应用层 数据
传输层 段 segment
网络层 数据包 package
链路层 帧 frame
物理层 比特 bit

SDU:服务数据单元,它是指PDU的实际载荷(payload)

PDU和SDU有什么关系呢?

PDU和SDU什么关系呢?在每一层都有PDU和SDU,在本层中SDU加上额外协议信息构成本层的PDU,行话是同一层内的SDU是本层PDU的静荷载(payload),不同层之间,上层的PDU是下层的SDU。在上次向下层传输数据的时候,上层使用下层提供的数据接口给下层传递数据,而不同层之间的PDU转换是由下层完成的(这个转换是说对上一层传递过来的PDU进行包装变成本层的PDU也就是变成符合本层协议对数据的格式要求)。如果上层PDU超过下层SDU,那么本层就要把数据 切割成若干适合的片段再给下层(对本层的SDU切割,然后每个切割后的SDU加上本层的协议信息构成一个本层的PDU传递给下层,本层的PDU大小必须不能大于下一层的SDU)。

本层的PDU是由下层的SDU大小决定的,所以一直往下走就到了数据链路层,那么上次传递过来的单个PDU不能超过链路层的SDU,而链路层的PDU叫做帧,在以太网中它的MTU是1500,所以上层传递过来的单个PDU不能超过1500字节,IP首部站20个字节,TCP首部占20个字节,那由此得出TCP层的SDU为1460字节(也叫做MSS,最大消息长度),PDU为1480字节;IP层SDU为1480而PDU为1500.

TCP的MSS不是固定的它受对端影响,在TCP传输中MSS是通信双方协商而来的。下面看一下不同链路的MTU大小

数据链路 MTU bytes 总长度 bytes
IPv4 65535  
IPv6 65575  
以太网 1500 1518
FDDI 4352 4500
IEEE 802.3 1492 1581
PPPoE 1492  

传输层本身是没有长度限制的,IP层是65535字节其实也不算小,只是受到链路层影响才会导致传输层消息要分段以及IP报文要分片。因为以太网默认MTU1500,如果真有一个65535的IP报文的话那么它显然无法封装到单个帧里,所以就需要进行切割。这种切割可以在发送端完成也可以在传送过程中完成(路由器),但是重组肯定是在接收端。所以TCP/IP为了提高效率尽量避免IP分片和重组,所以TCP就根据MSS和MTU限定每个传输层的PDU大小,这样每一个PDU就是一个完整的PDU在传送过程中不会再被切割,接收端的传输层收到这些段之后进行数据重组。所以这也就是为什么在传输层有一个MSS的东西存在了,这个MSS是在双方建立TCP连接时协商出来的。

原文地址:https://www.cnblogs.com/yunxizhujing/p/9572811.html

时间: 2024-11-09 04:44:08

MTU MSS PDU SDU的相关文章

MTU&MSS

MTU是Maximum Transmission Unit的缩写,意为最大传输单元,通俗的理解就是在网络上传送的最大数据包,单位是字节. 以太网对数据帧的长度都有一个限制,其最大值为1500,这个特性被称作MTU,不同类型的网络大多数都有一个上限.如果IP层有一个IP包要传,而且数据的长度比链路层上的MTU值还要大,那么就需要对这个数据包进行分片处理,而且要求被分片的每个数据包都要等于或小于这个MTU值,一般是最后一个数据包小于这个值.例如,一个大小为5000字节的数据包在穿越网络时,如果遇到一

MTU & MSS 详解记录(转)

          先学习理解一下帧的封装格式: 需要注意的是,区别两种帧封装格式:802标准帧和以太网帧 1,在802标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不包括C R C检验码.RFC 1042(IEEE 802) 2,RFC 894(以太网) 所以,以太网帧报头为目的地址6+源地址6+类型2+CRC 4=18bytes 而802帧没有CRC,所以为14bytes.Sniffer采用的是802帧为14bytes 转载文章: MTU: Maxitum Transmission

可靠的UDP连接 & MTU MSS

这个网页里面写了: http://blog.csdn.net/plusboy/article/details/1523308 其可靠性必须由上层应用实现.一般都会采用消息重传来实现其可靠性,采用消息重传的时候有两种方式,一种是发送者发起,另一种是接收者发起. 前一种接收者发的是ACK.发送者收到ACK,就不重传.但是可能ACK内爆. 第二种接收者发的是NACK.发送者收到NACK,就重传.但是可能NACK内爆.另外需要保留发出去的数据,但是一般可以用超时机制,把以前的数据丢弃. 另外,看到云风的

(转)MTU&MSS

MTU是Maximum Transmission Unit的缩写,意为最大传输单元,通俗的理解就是在网络上传送的最大数据包,单位是字节. 以太网对数据帧的长度都有一个限制,其最大值为1500,这个特性被称作MTU,不同类型的网络大多数都有一个上限.如果IP层有一个IP包要传,而且数据的长度比链路层上的MTU值还要大,那么就需要对这个数据包进行分片处理,而且要求被分片的每个数据包都要等于或小于这个MTU值,一般是最后一个数据包小于这个值.例如,一个大小为5000字节的数据包在穿越网络时,如果遇到一

一次由于 MTU 设置不当导致的网络访问超时

转自:http://weibo.com/ttarticle/p/show?id=2309404140904511340923 API 服务正常,但是调用总是超时.api端日志显示,响应速度很快. ??? 现象 Server A 调用本机的接口,能正常返回.调用Server B的接口,总是超时.被调用接口是能正常执行的,而且有执行日志记录.Server C 调用Server B的接口也能正常返回 分析 根据以上,基本可以排除是Server B接口服务的问题导致超时.很有可能 Server A 与

Wireshark网络抓包(三)——网络协议

一.ARP协议 ARP(Address Resolution Protocol)地址解析协议,将IP地址解析成MAC地址. IP地址在OSI模型第三层,MAC地址在OSI第二层,彼此不直接通信: 在通过以太网发生IP数据包时,先封装第三层(32位IP地址)和第二层(48位MAC地址)的报头: 但由于发送数据包时只知道目标IP地址,不知道其Mac地址,且不能跨越第二.三层,所以需要使用地址解析协议. ARP工作流程分请求和响应: 在dos窗口内"ping"某个域名抓取到的包: 二.IP协

Linux 4.10中两个新特性与我的一段故事

今早5点半起来没有开始写文章,而是去西湾红树林连跑带走折腾了将近20公里,回来后就8点多了...洗了个澡之后坐稳当,开始写一段关于我的故事.        在2014年到2015年期间,我在负责研发一款无线安全网关,其实就是一个VPN,接入设备包括手机,xPad,盒子...这些设备的OS除了iOS之外,基本上都是基于Linux的Android.这个网关一般用于各种需要高性能加密通信的场合,在数据传输之前需要比较强的认证,服务端支持4G的加密带宽,支持复杂的接入控制和访问控制,支持复杂的Qos,另

tcp ip参数详解

http://www.cnblogs.com/digdeep/p/4869010.html 1. TCP/IP模型 我们一般知道OSI的网络参考模型是分为7层:“应表会传网数物”——应用层,表示层,会话层,传输层,网络层,数据链路层,物理层.而实际的Linux网络层协议是参照了OSI标准,但是它实现为4层:应用层,传输层,网络层,网络接口层.OSI的多层对应到了实际实现中的一层.我们最为关注的是传输层和网络层.一般而言网络层也就是IP层,负责IP路由寻址等等细节,而传输层TCP/UDP负责数据的

前端要给力之:URL应该有多长?

URL到底应该有多长?我为什么要提这个问题呢?有许多优化指南里都写着:要尽量减小COOKIE.缩短URL,以及尽可能地使用GET请求等等,以便优化WEB页面的请求和装载.但是,这种所谓“尽可能”.“尽量”只是定性的描述,定量的来看,要缩短到多少个字节才算少呢? 就以我们某次首页的改版中,通过http analyzers我看到几个有趣的.js文件的URL,是这样的: [xhtml] view plaincopy https://static.alipay.net/build/js/app/trac