数据帧、MTU、MSS、IP分片
1.以太网帧
在以太网链路上的数据包称作以太帧,在802.3标准里,规定了一个以太帧的数据部分(Payload)的最大长度是1500个字节(MTU),再加上14字节链路头和4字节的FCS,所以以太网帧的最大长度为1518。另外,以太网帧的最小长度为64字节。
[1]4字节的FCS是网卡处理的,所以抓到的包看不到这个字段(网卡驱动去掉了),组建包时也不用设置这个字段(由网卡驱动计算填充)。
[2]每个帧的前面有7字节的前导码和1字节的帧起始定界符,这8个字节是帧之外的数据,由接收器电路使用。
[3]链路头+4字节的FCS是帧头,MTU是帧的负载,所以MTU是不包括链路头的。

2.MSS
MSS是TCP报文负载的最大长度。MSS常常使用1460,是因为MTU最大为1500,减去IP头(20字节)和TCP头(20字节)后为1460。
MSS的作用:
[1]如果一端的接收缓冲区比较小(例如10字节),则必须两端协商一个合适的MSS大小。
[2]提高网络带宽的利用率,减少IP分片和重组,因为发送到IP的数据包过大时会进行IP分片和重组,而通过MSS限制数据大小,上送到IP层时数据长度有限制,因此可以减少分片。
而UDP协议没有MSS,所以发送给IP层时,由IP协议完成分片。例如发送数据长度为2000字节,使用TCP协议时(例如MSS是1460),TCP分成两个包上送到IP层,此时IP层不用分片;而使用UDP时,一次上送到IP层,此时IP层需要分片。
3.IP分片
IP层收到数据时,如果数据加上IP头的长度超过MTU,则需要分片。
数据帧、MTU、MSS、IP分片的更多相关文章
- MTU & MSS 详解记录(转)
先学习理解一下帧的封装格式: 需要注意的是,区别两种帧封装格式:802标准帧和以太网帧 1,在802标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不包括C R C检验 ...
- IP分片和TCP分片 MTU和MSS(转)
IP分片和TCP分片 MTU和MSS(转) 访问原文:http://blog.csdn.net/keyouan2008/article/details/5843388 1,MTU(Maximum Tr ...
- MTU 和 MSS 关系、 IP分片、TCP分段
从四层模型:链路层,网络层,传输层,应用层说 一 .以太网V2格式数据帧 : 链路层 Destination Source Type DataAndPad FCS 6 ...
- IP分片详解
IP分片是网络上传输IP报文的一种技术手段.IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组.不同的链路类型规定有不同最大长度的链路层数据帧,称为链路层MTU(最大传输单 ...
- 【转】IP分片和TCP分段
ZC: 由于 TCP中 MSS 的关系,TCP 不会造成 IP分片和TCP分段 ! 1.http://zhidao.baidu.com/link?url=YCnR8B-1EN4-cgauRtwa-iV ...
- tcp/ip分片
from http://blog.csdn.net/cumirror/article/details/5071234 前段时间要做一个关于网络嗅探的程序,里面要重组IP分片,TCP分片. 但做的时候忽 ...
- IP分片浅析
在TCP/IP分层中,数据链路层用MTU(Maximum Transmission Unit,最大传输单元)来限制所能传输的数据包大小,MTU是指一次传送的数据最大长度,不包括数据链路层数据帧的帧头, ...
- IP分片丢失重传 - Sacrifice的日志 - 网易博客
尽管IP分片看起来是是透明的,但有一点让人不想使用它:即使只丢失一片数据也要重传整个数据报.为什么会发生这种情况呢? 因为IP层本身没有超时重传的机制--由更高层来负责超时和重传(TC ...
- 【网络协议】TCP分段与IP分片
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/mmc_maodun/article/details/30109789 我们在学习TCP/IP ...
随机推荐
- HTML标记语言
一.html的文档结构 html含义为超文本标记语言,html文档重要由4个标签来组成就是<html> <head> <title> <body> ...
- [LeetCode&Python] Problem 671. Second Minimum Node In a Binary Tree
Given a non-empty special binary tree consisting of nodes with the non-negative value, where each no ...
- Python学习之路基础篇--11-12Python基础,函数的装饰器
对于装饰器来说,就是在不改变函数的调用的情况下,对函数的前后增加了些许功能,这完全符合函数的 开放封闭 原则.装饰器的本质 其实就是一个闭包函数. 这是一个装饰器的步骤图 ret = func(*ar ...
- org.jsoup.Jsoup找不到jar包问题解决思路
今天在idea中导入项目,出现了这样的问题 通过idea的自带的导包功能,却提示找不到这个东西.于是就去maven仓库搜索这个咚咚 <!-- https://mvnrepository.com/ ...
- docker ,docker与虚拟机的区别
什么是Docker: 1.Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 L ...
- C#实现按键计算器功能2(增强版)
1. 实验目的 ( 1)熟悉C#语言的使用和语法知识 2. 实验要求 (1)设计简单的含交互界面的计算器软件,具有较强的用户体验感. (2)使用C#语言进行编程,创建窗体应用程序. (3)实 ...
- css之line-height及图片文字垂直居中
css虽然没有算法,但还是很神奇的,踩到坑都不知道到底是哪里?看到张鑫旭大佬的博客讲的超级好https://www.zhangxinxu.com 行高line-height用到的频率极高,指一行文字的 ...
- css计算属性 calc()
left: calc((100vw - 400px) / 2); calc 进行简单的运算时,运算符号左右各要有一个空格,不然不起作用.
- vscode 最新中文设置
切换中文 首先看商店里有没有chinese language那个中文插件. 在ctrl + shift +p 搜索configure language,然后配置locale如下即可配置中文.
- HTML5制作网页(2)
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title> ...