首页/网络/协议速查/TCP 标志位(9 个)
TCP 与 UDP54 条

TCP 标志位(9 个)

标志位控制连接语义:SYN/FIN 建连关连,RST 复位,PSH 提示尽快上交数据,ACK 确认,ECE/CWR 用于拥塞通知。

协议速查网络更新于 2026-10-13

标志位是什么

标志位是连接报文头里的一组控制比特,决定这个报文的语义:建连与关连、复位、确认、催促上层尽快读取数据,以及用于拥塞通知的两个标志。抓包工具把常用标志缩写成一个或两个字母,看懂这些缩写是读包的入门功夫。它们不是可有可无的装饰——同一个报文是否置位确认,含义完全不同;出现复位往往意味着连接被异常终止。

基本信息

数量规范定义了九个标志位
常见同步、确认、结束、复位、催促
少见紧急指针、拥塞通知相关、随机数隐藏保护
读取方式抓包工具用字母缩写组合表示
关键理解标志位组合决定报文语义,不要孤立看单个标志

九个标志位

标志含义何时出现
同步同步序号、请求建连握手第一步与第二步
确认确认号字段有效除首个建连请求外几乎都有
结束发送方没有更多数据关闭阶段
复位复位连接异常终止或被拒绝
催促尽快把数据交给应用发送方缓冲清空时常置位
紧急紧急指针有效历史遗留,实际少见
拥塞回显显式拥塞通知的回显启用了该机制的链路
窗口缩减拥塞窗口已减小启用了该机制的发送方
随机数隐藏早期随机数防护极少数实现使用

按标志抓包

按标志抓包
tcpdump -nn 'tcp[tcpflags] & tcp-rst != 0' -c 10   # 只抓带复位的报文
tcpdump -nn 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0' -c 20   # 抓建连与关连的报文
# 排查建连异常时优先看是否有复位,复位说明对端明确拒绝,而不是链路丢包

典型使用场景

  • 定位连接被重置:看复位报文由哪一方发出,判断是拒绝还是异常终止
  • 分析建连问题:观察建连请求是否被回应,区分丢包与拒绝
  • 排查关闭异常:看结束标志与确认的交互顺序是否完整
  • 确认数据是否被催促下发:理解应用读取延迟是否与置位有关
  • 验证中间设备是否干预:异常的复位往往来自链路中的设备

排查要点

  • 抓包工具里只有确认的报文显示为方括号加点,容易与普通数据包混淆
  • 复位报文要确认来源方向,来自中间设备与来自对端含义完全不同
  • 置位催促不代表错误,它只是发送方建议尽快交付,不要当成异常
抓包工具用字母缩写表示标志组合,例如数据包里的点号只代表确认,带同步的组合表示建连与确认同时置位。把这些缩写误读成错误,会让排障方向完全跑偏。
复位报文的出现位置比它本身更有信息量:由服务端发出通常意味着端口无监听或连接状态不匹配,由中间设备发出则说明链路中的策略设备主动干预。

易错点

  • 把置位催促当成错误信号,误判为传输异常
  • 看到复位就认为是网络问题,忽略了它可能来自链路中的策略设备
  • 只抓单向流量分析标志位,缺少另一侧的确认报文,结论不可靠
  • 把数据包里的缩写符号读错,得到与事实相反的状态判断

数据来源与参考

  • RFC 9293 §3.1
  • RFC 3168(ECN 标志)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌