TCP RST数据包详细信息

时间:2011-10-12 05:24:40

标签: tcp

为什么TCP RST数据包不需要确认?是因为RST的发送者每次从另一方收到另一个数据包时都会继续发送RST吗?

在相关说明中,有效RST数据包中的确认号如何为0?

3 个答案:

答案 0 :(得分:6)

  

在相关说明中,如何在RST数据包中确认号码   是0?

因为设置了RST位的段应该终止连接,仅此而已。只有在建立连接并且在segement中设置了ACK位时,确认号才有意义。 RST段的接收者还应该考虑另一端的应用协议客户端突然终止并且没有机会处理发送给它的未确认数据的可能性。

RFC 793,第15页:

Acknowledgment Number:  32 bits

  If the ACK control bit is set this field contains the value of the
  next sequence number the sender of the segment is expecting to
  receive.  Once a connection is established this is always sent.

答案 1 :(得分:4)

TCP RST数据包是远程端,告诉您无法识别发送上一个TCP数据包的连接,可能是连接已关闭,可能端口未打开,以及类似的情况。

我认为,由于连接无效,因此无需回复ACK。并且由于远程对等体不知道连接,因此RST数据包中的ACK为0是有意义的。

看看这个:http://en.wikipedia.org/wiki/TCP_reset_attack

答案 2 :(得分:2)

TCP RST表示连接无效。即远程端没有关联的会话。正如我所知,这个数据包通常在您尝试联系的端口关闭时发送。

TCP FIN - 是连接即将关闭时发送的内容,您需要确认。