| To: | netdev@xxxxxxxxxxx |
|---|---|
| Subject: | Re: Three way TCP handshake : can we avoid the third packet ? |
| From: | Eric Dumazet <dada1@xxxxxxxxxxxxx> |
| Date: | Tue, 12 Oct 2004 10:15:56 +0200 |
| Cc: | Henrik Nordstrom <hno@xxxxxxxxxxxxxxx> |
| In-reply-to: | <415136D1.7030600@cosmosbay.com> |
| References: | <41504117.9010108@cosmosbay.com> <Pine.LNX.4.61.0409211838390.31157@filer.marasystems.com> <415136D1.7030600@cosmosbay.com> |
| Sender: | netdev-bounce@xxxxxxxxxxx |
| User-agent: | Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.3) Gecko/20040910 |
Following this discussion on netdev, sorry to bother you again :) Currently, linux cannot easily avoids the third packet (ACK only) of TCP handshake, for connections initiated from linux side. The send(socket, data) is denied (EAGAIN) if the socket is in NODELAY mode and socket not yet connected (connect() done , but not in ESTABLISHED state). So basically, a daemon willing to avoid the third packet must use one thread for each outgoing pending connection, seting the socket in blocking mode and blocking in send()/write() syscall. In my case, I would need about 1000 threads :( Could we just delay (say up to 200ms) the ACK packet the tcp stack sends ? If the application uses send() or write() a short time after the established state is notified, then the ACK could be suppressed. This way, every application could benefit from this.
Eric Dumazet wrote: Henrik Nordstrom wrote: |
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: udp_recvmsg: possible bug causing infinite hang?, Nagendra Singh Tomar |
|---|---|
| Next by Date: | Re: Three way TCP handshake : can we avoid the third packet ?, Eric Dumazet |
| Previous by Thread: | Problems reading from /proc/net/tcp, Chad N. Tindel |
| Next by Thread: | Re: Three way TCP handshake : can we avoid the third packet ?, Eric Dumazet |
| Indexes: | [Date] [Thread] [Top] [All Lists] |