2013-02-12 32 views
3

我正在编程一个网关,其中一个功能是在交换足够的数据包时销毁连接。我想知道如何正确地形成RST数据包发送给客户端和服务器来终止连接。将RST数据包正确地发送到TCP客户端和服务器作为网关

为了测试这个,我使用ftp连接/会话。现在,我看到当我发送RST数据包时,客户端无休止地回复SYN数据包,而服务器只是用ACK数据包继续数据流。请注意,在我决定销毁连接后,我会阻止两端之间的流量。

我在想我的处理我的SEQ和ACK号码的方式可能有问题。在发送RST数据包时,我无法找到解释如何处理SEQ和ACK数字的资源。现在,我将SEQ设置为一个新的随机数(使用rand())并将ACK设置为0(因为我没有使用ACK标志)。我使用目标端口将目标地址和源端口的源地址反转,并看到我正确计算校验和。

我好像客户端和服务器都不接受终止。

+0

我不知道为什么这被认为是“不具有建设性”。这是一个关于事实问题。 – EJP 2013-02-12 21:01:53

回答

2

我不知道你正在使用什么“资源”,但是这似乎完全覆盖在RFC 793第3.4节中的“重置生成”下。RST的序列号为零,ACK字段设置为传入的ACK字段加上在那里描述的长度等等几次。

+0

谢谢,我是一个网络新手,一直在搜索谷歌搜索的知识点,但现在我知道去RFC为我的网络需求! – 2013-02-13 14:23:40

+0

但是,我认为重复的SYN发送只是ftp应用程序层,它试图重新建立连接,因为我在文件传输中断了它。 – 2013-02-13 15:14:17

相关问题