This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
SYN problem with new TCP/IP stack
- From: Grant Edwards <grante at visi dot com>
- To: ecos-discuss at sources dot redhat dot com
- Date: Sat, 4 Feb 2006 04:12:00 +0000 (UTC)
- Subject: [ECOS] SYN problem with new TCP/IP stack
After switching from the "old" TCP/IP stack to the "new" one,
we've run into a problem which is causing customers to
complain.
Here's the scenario:
1) Host opens TCP connection to eCos application.
2) Somebody pushes the reset button on the host.
3) The host reboots and attempts to open a TCP connection to
the eCos application _using_the_same_source_port_ (and the
same destination port).[1]
4a) When the _old_ stack received a SYN for an already-open
connection, it sent an ACK with the sequence number from
the old connection. The host saw this and sent a RST
(which drops the connection), then attempted to re-open the
connection (which succeeded). All was good.
4b) When the _new_ stack receives a SYN for an already-open
connection, it just ignores it. So, after a timeout of a
minute or so, the host sends it again. Again it's ignored.
This goes on for 10-15 minutes at which point the eCos
stack times out the connection and closes it. Only then
can the host open a new connection.
Is this difference in behavior there for a reason? Does the
RFC (or any other "spec") address the proper response when one
receives a SYN for an already-open connection?. I presume the
behavior in the new TCP/IP stack wasn't put there just to break
our systems. :)
[1] IMO, it's sort of stupid to always start with the same
source port, if you ask me -- you're just begging for
problems like this. But nobody ever accused Microsoft of
being smart. At least not when it comes to technical
stuff.
Off to read RFCs...
--
Grant Edwards grante Yow! Does someone from
at PEORIA have a SHORTER
visi.com ATTENTION span than me?
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss