首页 文章

TCP RST段通过套接字发送到对等端的情况有多少?

提问于
浏览
3

我知道当进程崩溃时,现有的TCP套接字将通过向其他对等体发送RST数据包(段)而被放弃,而其他对等体上的相关套接字fd将接收RST数据包 .

是否有其他情况发送RST数据包?例如,如果一个进程在套接字fd上调用close()但是该套接字上有未读数据,它是否还会将该套接字fd上的RST数据包(段)发送给其他对等体?

1 回答

  • 2

    引用TCP/IP Guide

    一般来说,只要TCP软件发生“意外”的事情,就会产生复位 . 生成重置的一些最常见的特定情况包括:从接收该段的设备当前没有连接的任何设备接收任何TCP段(除了请求新连接的SYN之外) . 收到消息带有无效或不正确的序列号或确认号字段,表示该消息可能属于先前的连接或以其他方式是虚假的 . 在没有进程侦听连接的端口上接收SYN消息 .

    如果您发现奇怪的行为,您可能会成为TCP Reset Attack的受害者

    关于你的最后一个问题,我想当你用未读数据关闭套接字缓冲区的套接字时,不会发出 RST ,因为它不会破坏任何TCP规则(数据包被正确传递,它会详细说明) . 而是发送 FIN .

相关问题