[issue10724] socket.close close telnet with RST

Charles-Francois Natali report at bugs.python.org
Fri Dec 17 10:07:17 CET 2010


Charles-Francois Natali <neologix at free.fr> added the comment:

> but sometimes socket.close will send TCP RST to disconnect the telnet and with wrong sequence number

This is called a a "half-duplex" TCP close sequence. Your application is probably closing the socket while there are still data in the receive socket buffer (i.e. unread), so the TCP/IP stack sends a RST to inform the remote end that data has been lost. See RFC 1122 section 4.2.2.13.
Note that in your sample capture, I don't see any invalid sequence/ack number.
Your application should probably not close the connection at this time.

> This kind of RST will be considering as Network RST attack, and this packet will be dropped, the telnet connection will still established and cannot be closed.

There you firewell is broken. Sending a RST in this context is perfectly valid.

As far as I know, this issue is due to your application and firewall settings, and not to Python. Furthermore, Python just calls the underlying close(2) syscall, so even if there were an issue, it's an OS one, nothing Python could do about it.

----------
nosy: +neologix

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue10724>
_______________________________________


More information about the Python-bugs-list mailing list