On 2013-02-16 02:15, John Wilson wrote:
From: Johnny Billquist <bqt at softjar.se>
But is there any sane reason
why Linux would SYN-ACK twice, and the second one more than a second
after the first.
Completely stupid theory: last time I did any testing with Linux, it seemed
that it would *always* lose the very first packet sent to a given local
IP address, because it would send an ARP request instead and then forget
why it asked (i.e. drop the outgoing frame since it depended, IMHO wrongly,
on the higher-level protocol to time out and resend). Maybe they fixed
that bug twice? I.e. did a workaround to send the SYN+ACK twice, and then
later did the *real* bug fix to maintain a queue of packets waiting for an
ARP reply, so now you get two? Seems silly but this would be the result.
Ha! Thanks for reminding me about that one. Many Unix systems have a variant of that bug.
Many will only keep one packet around when they need to do an ARP request, so if you for
example do a ping with a large packet size (that gets fragmented), the first packet always
fail if there isn't an entry in the arp cache. (Only one fragment makes it across.)
(Of course my TCP/IP for RSX tries do to better than that... :-) )
But yeah, you could be right on that one. Ugly as hell if you are right, but I cannot rule
it out. But it would be nice if someone had something more substantial than guesses as
well. Anyone?
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic
trip
email: bqt at softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" -
B. Idol