转移插座的TCP校验和计算

时间:2012-11-02 22:36:36

标签: c tcp ip freebsd checksum

我有一个转移插座。我正在尝试更改数据包上的端口,因为我看到它们。当我这样做时 - 我是否需要重新计算TCP校验和和IP校验和?

我正在尝试这样做,但我在tcpdump中看到重置数据包。我不知道这是因为我正在计算tcp校验和错误,或者是否正在进行其他事情。

我使用了这个网站的cksum方法:

http://www.enderunix.org/docs/en/rawipspoof/

我认为使用转移插座,如果我改变一件事,它应该是相当简单的,但似乎不是。有没有TCP校验和计算器,我可以用它来验证我得到了正确的值?

2 个答案:

答案 0 :(得分:0)

您需要重新计算校验和。以下是对计算的说明:TCP/IP Checksum calculation

答案 1 :(得分:0)

参见RFC 1631的第3.3节,了解NAT / PAT必须进行的校验和调整。您不必遍历整个数据包,只需根据修改的字节调整校验和。