我正在编程一个网关,其中一个功能是在交换足够的数据包时销毁连接。我想知道如何正确地形成RST数据包发送给客户端和服务器来终止连接。将RST数据包正确地发送到TCP客户端和服务器作为网关
为了测试这个,我使用ftp连接/会话。现在,我看到当我发送RST数据包时,客户端无休止地回复SYN数据包,而服务器只是用ACK数据包继续数据流。请注意,在我决定销毁连接后,我会阻止两端之间的流量。
我在想我的处理我的SEQ和ACK号码的方式可能有问题。在发送RST数据包时,我无法找到解释如何处理SEQ和ACK数字的资源。现在,我将SEQ设置为一个新的随机数(使用rand())并将ACK设置为0(因为我没有使用ACK标志)。我使用目标端口将目标地址和源端口的源地址反转,并看到我正确计算校验和。
我好像客户端和服务器都不接受终止。
我不知道为什么这被认为是“不具有建设性”。这是一个关于事实问题。 – EJP 2013-02-12 21:01:53