TCP头部格式的了解
tcp头部格式如下图所示:
1.源端口号,16位,发送方的端口号。
2.目标端口号,16位,发送方的目标端口号。
3. 32为序列号,sequence number,保证网络传输数据的顺序性。
4. 32位确认号,acknowledgment number,用来确认确实有收到相关封包,内容表示期望收到下一个报文的序列号,用来解决丢包的问题。
5. 头部大小,4位,偏移量:最大值为0x0F,即15,
单位为32位(bit),单位也就是4个字节,给出头部占32bit的数目。没有任何选项字段的TCP头部长度为20字节;最多可以有60(15*4)字节的TCP头部。
6. Reserved 4位 ,预留字段,都为0
7. TCP标志位
(1)CWR:Congestion window reduced,拥塞窗口减少。拥塞窗口减少标志被发送主机设置,用来表明它接收到了设置ECE标志的TCP包。拥塞窗口是被TCP维护的一个内部变量,用来管理发送窗口大小。
(2)ECN-Echo:显式拥塞提醒回应。当一个IP包的ECN域被路由器设置为11时,接收端而非发送端被通知路径上发生了拥塞。ECN使用TCP头部来告知发送端网络正在经历拥塞,并且告知接收端发送段已经受到了接收端发来的拥塞通告,已经降低了发送速率。
(3)URG:为1时,紧急指针(urgent pointer)有效,配合紧急指针使用
(4)ACK:为1时,确认号有效
(5)PSH: 为1时,接收方应该尽快将这个报文段交给应用层
(6)RST:为1时,释放连接,重连。
(7)SYN:为1时,发起一个连接。
(8)FIN:为1时,关闭一个连接。
8. 16位窗口大小:占16bit。此字段用来进行流量控制,主要用于解决流控拥塞的问题。单位为字节数,这个值是本机期望一次接收的字节数。
9. 16位校验值: 占16bit。对整个TCP报文段,即TCP头部和TCP数据进行校验和计算,并由目标端进行验证。
10. 16位紧急指针:占16bit。它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。
11. 32位Tcp选项:一般包含在三次握手中。
抓包解析:
1.tcp头部标志位:
比如客户端第一次syn连接的时候,也就是第一次握手的时候。Syn标志被置为1
第二次握手的时候,服务端发的报文设置了ACK,SYN标志位
3.关于tcp选项
tcp选项一般出现在三次握手的报文中。
第一次握手
第二次握手
在建立连接的时候,通信双方要互相确认对方的最大报文长度(MSS),以便通信,一般这个SYN长度是MTU减去固定IP首部和TCP首部长度,
对于以太网,一般可以达到1460字节,当然如果对于非本地的IP,这个MSS可能就只有536字节,而且如果中间的传输网络的MSS更小的话,这个
值会更加的小。(在tcp报文中选项看出)
(1)TCP首部选项字段多达40B,记下一些常用的东西:
(2)选项结束字段(EOP,0x00),占1B,一个报文段仅用一次。放在末尾用于填充,用途是说明:首部已经没有更多的消息,应用数据在下一个32位字开始处
(3)无操作字段(NOP, 0x01),占1B,也用于填充,放在选项的开头
(4)MSS(最大报文段长度),格式如下:种类(1B,值为2),长度(1B,值为4),数值(2B)
用于在连接开始时确定MSS的大小,如果没有确定,就用默认的(一般实现是536B)
(5)窗口扩大因子,格式如下:种类(1B,值为3),长度(1B,值为3),数值(1B)
新窗口值 = 首部窗口值 * 2的(扩大因子)次方
当通信双方认为首部的窗口值还不够大的时候,在连接开始时用这个来定义更大的窗口。仅在连接开始时有效。一经定义,通信过程中无法更改。
(6)时间截(应用测试RTT和防止序号绕回),略,以后补充
(7)允许SACK和SACK选项,略,以后补充
TCP头部格式的了解相关推荐
- 4-4:TCP协议之TCP头部格式详解
文章目录 一:TCP头部格式详解 (1)4位首部长度 (2)序列号和确认应答号 A:可靠性问题 B:32位序号和确认号 (3)窗口大小 (4)标志位 (5)紧急指针 A:带外数据(out_of _ba ...
- TCP头部格式和封装
文章目录 12.3 TCP头部和封装 12.3.1 端口号 12.3.2 序列号 12.3.3 头部长度 12.3.4 相关控制位 12.3.5 窗口大小 12.3.6 校验和 12.3.7 选项字段 ...
- TCP头部格式详解,附Wireshark对TCP头部抓包分析
TCP之所以能为数据通讯提供可靠的传输,主要在于TCP数据包头部功能非常多. 那么,我们先来看看TCP头部格式(RFC 793.1323定义了TCP头部): TCP头部格式中的内容解析如下:(文末还有 ...
- 封装与解封装(TCP头部格式)
封装和解封装: 应用层---HTTP --超文本传输协议--- TCP 80 HTTPS --- TCP 443 FTP ---文件传输协议---TCP 20/21 ITFTP ---简单文件传输协议 ...
- tcp 头部格式是怎样的?都有哪些字段?TCP 与 UDP 的区别
传输控制协议(Transmission Control Protocol,TCP)是一种传输层协议.TCP使数据包从源到目的地的传输更加顺畅.它是一种面向连接的端到端协议.每个数据包由TCP包裹在一个 ...
- TCP的头部格式,详细信息都在这
重要的TCP头部格式来啦: 序列号:在建立连接时,由计算机生成的随机数作为初始值,通过SYN包传给接收方主机,每发送一次数据,就会累加一次这个数据字节数的大小,用来解决网络包乱序问题. 确认应答号:用 ...
- Ethernet IP TCP UDP 协议头部格式
The Ethernet header structure is shown in the illustration below: 以太网头部14 bytes Destination Source L ...
- 网络:传输层 TCP报文格式解析
一.TCP报文格式 1.为了提供可靠的数据传输,TCP报文首部字段有较多的字段,TCP报文格式如下图: 图2 TCP报文格式 16位源和目标端口(16位):用于多路复用/多路分解来自或送至上层应用的数 ...
- tcp报文格式_腾讯面试中的TCP/IP协议简述+经典面试题
面试题有福利 TCP/IP协议简述+ TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器, ...
最新文章
- C 虚函数表及多态内部原理详解
- StringTokenizer(字符串分隔解析类型)
- 好看的文章排版样式(转)
- 微信开发——带参数二维码的使用
- 数据结构折半查找例题_查找-第9章-《数据结构题集》习题解析-严蔚敏吴伟民版...
- JavaScript开发者应懂的33个概念js-33-concepts
- 空间相关分析(三) 局部莫兰指数的理解与计算
- 【Java】PAT乙级真题全记录(二)21到40题
- 不需要appuploader破解版,也能上架
- 手机qq的位置服务器,腾讯面试题:腾讯服务器每秒有2w个QQ号同时上线,找出5min内重新登入的qq号并打印出来。...
- 火狐浏览器的一些插件
- win7系统服务优化——服务列表禁止项
- 阿里建直营物流,“三通一达”要被踢出局了?
- RFID入门:Mifare1智能洗澡卡破解分析
- Scrapy报错之:Request object has no attribute dont_filter
- 【CentOS8】网卡重启
- jquery给日期赋值_用js为Jquery datepicker日期控件赋值
- 2021泰安高考成绩排名查询,泰安高中学校排名2021最新排名,泰安高中排名前十
- 亚马逊是如何颠覆商业软件高昂价格这座”柏林墙”的
- page页面跳转到子页面和category页面跳转到子页面有区别:
热门文章
- 什么是shell脚本?
- 解决Win8.1无法关机问题
- vue上传文件get请求,携带参数文件和其他参数
- 蚌埠2021高考成绩查询,2021蚌埠市地区高考成绩排名查询,蚌埠市高考各高中成绩喜报榜单...
- 计算机4级考试信息整理
- 从工地到办公室:一个土木工程师如何学成测试技能?
- 易语言调用API之打印函数
- kali linux解压文件.gz,kali linux 压缩文件解压缩命令(包含7z)
- 幽灵行动断点量子计算机图片,【图片】幽灵行动:断点 火山岛全攻略【幽灵行动断点吧】_百度贴吧...
- NYOJ - 99:单词拼接