On Wed, Sep 13, 2006 at 10:31:43PM +0200, Andre Oppermann wrote:
> Igor Sysoev wrote:
> >Well, suppose protocol similar to SSH or SMTP:
> >
> >1) the client calls connect(), it sends SYN;
> >2) the server receives SYN and sends SYN/ACK with cookie;
> >3) the client receives SYN/ACK and sends ACK;
> >4) the client returns successfully from connect() and calls read();
> >5) the ACK is lost;
> >6) the server does not about this connection, so application can not
> >   accept() it, and it can not send() HELO message.
> >7) the client gets ETIMEDOUT from read().
> >
> >Where in this sequence client may retransmit its ACK ?
> 
> Never.  You're correct.  There is no data that would cause a retransmit
> if the application is waiting for a server prompt first.  I shouldn't
> write wrong explanations when I'm tired, hungry and in between two tasks. ;)
> 
> This problem is the reason why we don't switch entirely to syncookies
> and still keep syncache as is.
> 
Perhaps it would be a good idea to remove net.inet.tcp.syncookies_only
then?  In any case, please don't forget to update the syncache(4) manpage
to reflect your changes, and if you decide not to remove this sysctl,
please add a warning of its potential to break a protocol.


Cheers,
-- 
Ruslan Ermilov
[EMAIL PROTECTED]
FreeBSD committer

Attachment: pgpsBKFhWZqqs.pgp
Description: PGP signature

Reply via email to