基于 IPv6的TCP Checksum 校验计算手算

本文主要介绍基于IPv6的TCP 中2个bytes的checksum 计算方法。读者可根据此计算方法编写自动计算脚本。

根据RFC9293 规定,TCP的Header格式如下,其中Checksum 占2 个bytes.

TCP 的Checksum 计算内容包含伪头部(Pseduo-Header) 和TCP Header 两部分。其中TCP Header 格式如上图所示, IPv6伪头部共320bits,格式参考RFC8002, 如下图所示

              IPv6 Pseduo-Hearder Format

计算方法:

  Step1: 将伪头部和TCP 头部数据组成16bits 数组累加,注意checksum 设为0000

  Step2: 累加的结果如果超过2个bytes,则低位2个bytes 与高位的byte 相加,按照此规则反复相加直到结果是2个bytes。

 Step3: Step2 的结果按位取反,结果就是Checksum 的值。

举例:

以DoIp 指令 10 03 为例, 可通过Vector 或者wireshark的查看数据流.

IPv6 伪头部数据:

       Source Address: FD 24 7C BB 02 82 00 06 00 00 00 00 00 00 00 10

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值