After playing around with this a bit, I found that a single SYN → SYN-ACK → RST sequence would raise the SocketAsyncEventArgs.Completed event and cause the SocketAsyncEventArgs.SocketError property SocketAsyncEventArgs.SocketError become SocketError.ConnectionReset . This seems to be the expected behavior, but it is definitely good and should be better documented.
Any port that scans your server and performs a semi-open scan of the SYN type generates similar traffic and causes the same problem. To prevent denial of service vulnerabilities in the software, you need to work with this special condition.
Michael J. Gray
source share