Subject: Re: [v6ops] "ipv6 on windows 7" - Google Search

From: Vivek Bhanu <[email-masked]>
Date: Sat, 9 Oct 2010 03:13:24 +0000

Hi Fernando:

> Note: I do recall checking, years ago, that Windows systems used to
> respond with RST when e.g. the queue of incoming connections was full
> (e.g., the server was under s SYN-flood attack). As a result, RSTs had
> the semantics of "soft errors", rather than "hard errors", and hence
> Windows was being coherent with their own implementation. -- Although
> IMO their behavior was coherent but wrong: RSTs are ment to signal hard
> errors... so they shouldn't have been sending RSTs when under a
> SYN-flood attack, and would be aborting connections upon receipt of an RST.

The Windows implementation generates a RST to inform the sender that the
receiver side has deliberately rejected its request. The RST is hard from the 
point of view that the connection in question isn't allowed to transfer data
and is in the CLOSED state.

The sender is free to negotiate a second time subsequently. A Windows 
sender retransmits its SYN to work around the queue limits when it receives
a RST in response to the original SYN and gives up after all retransmissions
(3) are exhausted. So if the receiver is overwhelmed for any reason, the
sender still ends up with a hard error after 3 RTTs elapse. 

So when the application observes that its connection request failed, it is 
free to negotiate once again using a different address. The winsock API, 
WSAConnectByName helps applications in this regard.

Thanks
Vivek