我试图生成一系列的数据包来模拟TCP 3-way握手过程,我的第一步是捕获真正的连接数据包,并且尝试从同一台机器重新发送相同的数据包,但它一开始并不工作。当我们使用tcpdump捕获我们发送的数据包时,TCP的校验和是如何计算的
最后我发现我使用tcpdump捕获的数据包并不完全是我的计算机发出的,TCP的校验和字段发生了变化,它让我想到即使TCP校验和不正确也可以建立TCP连接。
所以我的问题是如何计算校验和字段?它是由tcpdump还是硬件修改的?为什么它改变了?这是tcpdump的错误吗?或者是因为计算被省略了。
以下是我从主机和虚拟机器上截取的屏幕截图,可以看到除了TCP校验和之外,在不同机器上捕获的相同数据包都是相同的。
和小窗口是我的虚拟机,我用命令“SSH 10.82.25.138”从主机到产生这些数据包