TCP报文的最大负载和报文的最小长度
TCP报文的最大负载和报文的最小长度
MTU:最大传输单元,以太网的MTU为1500Bytes
MSS:最大分解大小,为每次TCP数据包每次传输的最大数据的分段大小,由发送端通知接收端,发送大于MTU就会被分片。
MSS默认最小为536B,最小的MTU576B,MSS = MTU - IP头(20B)- TCP头(20B)
TCP最小数据长度为1460Bytes
以太网的最大数据帧是1518Bytes
以太网的帧头148Bytes:MAC目的地址48bit(6B),MAC源地址48bit(6B),Type域2B,一共14B
帧尾校验4Bytes
数据域只剩:1518-14-4 = 1500Bytes
TCP数据包大小 1500 - IP头(20B)- TCP头(20B) = 1460B 这也是最大的MSS
(UDP数据包 1500 - IP头(20B) - UDP头(8B) = 1472B)
TCP最大负载65535-40B
TCP报文段的最大负载为65495字节,因为每个数据段必须适合IP的载荷能力,不能超过65535字节,IP头20B,TCP包头20B,
故最大负载为65535- 20-20=65495B
ack字段大小为84B
前导码 8 + 目的MAC 6 + 源MAC 6 + 类型 2 + IP首部 20 + TCP首部 20 + 用户数据 0 + 填充字符 6 + CRC 4 + 分组间隙 12 = 84B
TCP:64B
以太网帧首部 14B:MAC目的地址48bit(6B),MAC源地址48bit(6B),Type域2B,一共14B
以太网帧尾部 4B
IP 20B
TCP 20B (UDP 8B)
填充 6B (UDP填充 18B)
一共58B,不够64B ,填充6B。
TCP最小长度
是默认的MSS产生536B,还是ACK的长度84B,还是TCP总长(加IP,MAC)的64B
TCP报文的最大负载和报文的最小长度的更多相关文章
- TCP协议承载的DNS报文,DNS报文首部前多出两个字节的DNS报文长度字段,是何意义?
一.TCP报文头部简介 ●源.目标端口号字段:占16比特.TCP协议通过使用"端口"来标识源端和目标端的应用进程.端口号可以使用0到65535之间的任何数字.在收到服务请求时,操作 ...
- 报文格式:xml 、定长报文、变长报文
目前接触到的报文格式有三种:xml .定长报文.变长报文 . 此处只做简单介绍,日后应该会深入学习到三者之间如何解析,再继续更新.——2016.9.23 XML XML 被设计用来传输和存储数据. H ...
- MQTT——取消订阅报文和断开连接报文
笔者已经把连接报文,订阅报文,发布报文都讲解了完了.而接下来就是取消订阅报文和断开连接报文.和其他的报文比较的话,他们显示非常简单.甚至笔者觉得可以不必要拿出来讲.只要看一下MQTT文档就没有什么不清 ...
- 深入Nginx之《HTTP请求报文与HTTP响应报文》
HTTP请求报文 这个很有必要了解,好歹我们得知道Nginx在提供HTTP服务时,客户端都会传些什么.HTTP请求中客户端传送的内容称为HTTP请求报文. 1.请求行包含: 请求方法,请求URL,HT ...
- 自己动手学TCP/IP–http协议(http报文头)
在前面的一篇文章中,简单了介绍了HTTP报文格式,详情参考http://www.firefoxbug.net/?cat=47. 这里大概介绍下基本的,常见的HTTP包头格式. POST /report ...
- TCP 的连接建立:采用三报文握手
- http请求报文格式和响应报文格式
转载 出处 超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议.HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求 ...
- IP 层收发报文简要剖析5--ip报文发送2
udp 发送ip段报文接口ip_append_data ip_append_data 函数主要用来udp 套接字以及raw套接字发送报文的接口.在tcp中发送ack 以及rest段的ip_send_u ...
- IP 层收发报文简要剖析4--ip 报文发送
无论是从本地输出的数据还是转发的数据报文,经过路由后都要输出到网络设备,而输出到网络设备的接口就是dst_output(output)函数 路由的时候,dst_output函数设置为ip_output ...
随机推荐
- ZK Leader选举
1.Zookeeper节点状态LOOKING:寻找Leader状态,处于该状态需要进入选举流程LEADING:领导者状态,处于该状态的节点说明是角色已经是LeaderFOLLOWING:跟随者状态,表 ...
- git 常用命令(含删除文件)
git 常用命令(含删除文件) Git常用操作命令收集: 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远程仓库: ...
- jenkins 通过maven部署Tomcat8报错
问题过程 jenkins执行构建过程中,可以在workspace/项目名/target/目录下产生xxx.jar文件 但是在执行构建后操作时报出如下错误 [INFO] ---------------- ...
- Bob Waters - Twenty Years
We were just children and grown up closeHow we made it this far only god knowsWe bend the rulesSmash ...
- 自定义样式,使用浏览器阅读epub格式的电子书
epub格式的电子式一般用专门的阅读器打开,但是如果可以使用浏览器打开,就可以随意更改css了,获得极致的体验效果. 比如可以自定义字体.行间距.背景色.字体大小.缩进等等... 当然,如果您不需要添 ...
- 51nod 1290 Counting Diff Pairs | 莫队 树状数组
51nod 1290 Counting Diff Pairs | 莫队 树状数组 题面 一个长度为N的正整数数组A,给出一个数K以及Q个查询,每个查询包含2个数l和r,对于每个查询输出从A[i]到A[ ...
- Luogu 3373 又乘又加的线段树
Luogu 3373 又乘又加的线段树 当给一个节点加上一个加法标记时,直接把加法标记 += 新值: 当给一个节点加上一个乘法标记时,把乘法标记和加法标记同时 *= 新值.(注意pushdown函数中 ...
- linux内核分析 第七周 Linux内核如何装载和启动一个可执行程序
一.编译链接的过程和ELF可执行文件格式 vi hello.c gcc -E -o hello.cpp hello.c -m32 //预处理.c文件,预处理包括把include的文件包含进来以及宏替换 ...
- codeforces contest 1111
A. Superhero Transformation 题意: 元音和元音,辅音和辅音字母之间可以互相转换,问两个字符串是否想同: 题解:直接判断即可: #include<bits/stdc++ ...
- Centos最小化安装后还需要安装的软件包收集
自己也是初学,只是记录一下自己使用的时候需要安装的包: 1. yum install -y make wget mlocate net-tools 2. yum install -y gcc open ...