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头部格式的了解相关推荐

  1. 4-4:TCP协议之TCP头部格式详解

    文章目录 一:TCP头部格式详解 (1)4位首部长度 (2)序列号和确认应答号 A:可靠性问题 B:32位序号和确认号 (3)窗口大小 (4)标志位 (5)紧急指针 A:带外数据(out_of _ba ...

  2. 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 选项字段 ...

  3. TCP头部格式详解,附Wireshark对TCP头部抓包分析

    TCP之所以能为数据通讯提供可靠的传输,主要在于TCP数据包头部功能非常多. 那么,我们先来看看TCP头部格式(RFC 793.1323定义了TCP头部): TCP头部格式中的内容解析如下:(文末还有 ...

  4. 封装与解封装(TCP头部格式)

    封装和解封装: 应用层---HTTP --超文本传输协议--- TCP 80 HTTPS --- TCP 443 FTP ---文件传输协议---TCP 20/21 ITFTP ---简单文件传输协议 ...

  5. tcp 头部格式是怎样的?都有哪些字段?TCP 与 UDP 的区别

    传输控制协议(Transmission Control Protocol,TCP)是一种传输层协议.TCP使数据包从源到目的地的传输更加顺畅.它是一种面向连接的端到端协议.每个数据包由TCP包裹在一个 ...

  6. TCP的头部格式,详细信息都在这

    重要的TCP头部格式来啦: 序列号:在建立连接时,由计算机生成的随机数作为初始值,通过SYN包传给接收方主机,每发送一次数据,就会累加一次这个数据字节数的大小,用来解决网络包乱序问题. 确认应答号:用 ...

  7. Ethernet IP TCP UDP 协议头部格式

    The Ethernet header structure is shown in the illustration below: 以太网头部14 bytes Destination Source L ...

  8. 网络:传输层 TCP报文格式解析

    一.TCP报文格式 1.为了提供可靠的数据传输,TCP报文首部字段有较多的字段,TCP报文格式如下图: 图2 TCP报文格式 16位源和目标端口(16位):用于多路复用/多路分解来自或送至上层应用的数 ...

  9. tcp报文格式_腾讯面试中的TCP/IP协议简述+经典面试题

    面试题有福利 TCP/IP协议简述+ TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器, ...

最新文章

  1. C 虚函数表及多态内部原理详解
  2. StringTokenizer(字符串分隔解析类型)
  3. 好看的文章排版样式(转)
  4. 微信开发——带参数二维码的使用
  5. 数据结构折半查找例题_查找-第9章-《数据结构题集》习题解析-严蔚敏吴伟民版...
  6. JavaScript开发者应懂的33个概念js-33-concepts
  7. 空间相关分析(三) 局部莫兰指数的理解与计算
  8. 【Java】PAT乙级真题全记录(二)21到40题
  9. 不需要appuploader破解版,也能上架
  10. 手机qq的位置服务器,腾讯面试题:腾讯服务器每秒有2w个QQ号同时上线,找出5min内重新登入的qq号并打印出来。...
  11. 火狐浏览器的一些插件
  12. win7系统服务优化——服务列表禁止项
  13. 阿里建直营物流,“三通一达”要被踢出局了?
  14. RFID入门:Mifare1智能洗澡卡破解分析
  15. Scrapy报错之:Request object has no attribute dont_filter
  16. 【CentOS8】网卡重启
  17. jquery给日期赋值_用js为Jquery datepicker日期控件赋值
  18. 2021泰安高考成绩排名查询,泰安高中学校排名2021最新排名,泰安高中排名前十
  19. 亚马逊是如何颠覆商业软件高昂价格这座”柏林墙”的
  20. page页面跳转到子页面和category页面跳转到子页面有区别:

热门文章

  1. 什么是shell脚本?
  2. 解决Win8.1无法关机问题
  3. vue上传文件get请求,携带参数文件和其他参数
  4. 蚌埠2021高考成绩查询,2021蚌埠市地区高考成绩排名查询,蚌埠市高考各高中成绩喜报榜单...
  5. 计算机4级考试信息整理
  6. 从工地到办公室:一个土木工程师如何学成测试技能?
  7. 易语言调用API之打印函数
  8. kali linux解压文件.gz,kali linux 压缩文件解压缩命令(包含7z)
  9. 幽灵行动断点量子计算机图片,【图片】幽灵行动:断点 火山岛全攻略【幽灵行动断点吧】_百度贴吧...
  10. NYOJ - 99:单词拼接