You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IPv4 TCP校验和计算结果与Wireshark捕获值不匹配问题咨询

TCP校验和计算错误原因及修正方案

错误1:未加入TCP伪首部的必填字段

TCP校验和计算需要先构造IPv4伪首部,除了你已经加入的源IP、目的IP外,还需要额外加入两个16位字段:

  • 0x0006:高8位为伪首部保留位(固定为0),低8位为TCP协议号(固定为0x06)
  • 0x0014:本次TCP段的总长度(IP总长度0x0028减去IP首部长度20字节,得到TCP段长度20字节即0x0014)

错误2:错误累加了以太网帧填充字节

你捕获的帧末尾的三组0000是以太网为了满足最小帧长要求添加的填充数据,不属于TCP段的内容,不需要加入校验和计算。

正确计算过程

第一步:累加所有参与校验的16位字段

# 伪首部部分
0xc0a8 + 0x0096 + 0xc0a8 + 0x0072 + 0x0006 + 0x0014 = 0x18272
# TCP首部部分(校验和字段置0)
+ 0xb26e + 0xfdb8 + 0x42c6 + 0x1f88 + 0x68dc + 0x6995 + 0x5010 + 0x01f6 + 0x0000 + 0x0000 = 0x4b95d

第二步:处理溢出位

总和0x4b95d的最高位溢出值为0x4,剩余16位值为0xb95d,将溢出位回加:
0xb95d + 0x4 = 0xb961

第三步:按位取反得到校验和

16位按位取反等价于0xffff - 0xb961 = 0x469e,与Wireshark捕获的校验和完全一致。

内容的提问来源于stack exchange,提问作者Doug R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 02:36:07