有效载荷上的TCP校验和?

我以某种方式确信TCP校验和是一个校验和(类似于IP校验和),但是我现在怀疑阅读维基百科的文章 :

校验和字段是头部和文本中所有16位字的补码和的16位补码。

对我来说,这似乎有点疯狂,TCP头文件(而不是页脚)中的TCP校验和依赖于头部之后发送的字节。 这是硬件优化的TCP的障碍。 从本质上讲,这将使得在知道TCP数据包的文本之前就开始发送TCP报头的“切入”架构无效。

为什么TCP校验和依赖于文本而放在头文件中? 这可以减轻“切入”体系结构?

是的,校验和位于TCP头部。 而不是检查维基,你可以去参考这里: RFC 793具体阅读第3节第1段。

当你提到切入时,我认为是指切换。 交换机不改变数据包有效负载中的任何内容,因此不需要重新计算校验和。

我想你可以从scapy开始实时进行数据包处理。