Three way TCP handshake : can we avoid the third packet ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

I discovered today that some TCP stacks were able to initiate TCP
sockets with 2 packets "only".

The third packet (ACK packet) is just delayed and integrated into the
data packet.

< FIRST PACKET : SYN >
11:07:15.551507 host1.11906 > host2.80: S 1522618044:1522618044(0) win
64240 <mss 1452,nop,nop,sackOK> (DF)

< SECOND PACKET : SYN+ACK >
11:07:15.551523 host2.80 > host1.11906: S 751859039:751859039(0) ack
1522618045 win 5840 <mss 1460> (DF)

< THIRD PACKET : ACK + DATA payload >
11:07:16.112451 host1.11906 > host2.80: P 1:92(91) ack 1 win 65340

< ... >
11:07:16.151800 host2.80 > host1.11906: . ack 92 win 5840 (DF)

It seems to be valid (host2 is linux in this tcpdump output), and saves
one packet.

Is it possible to achieve the same thing with linux 2.4/2.6, for connections initiated by us ?

A magical setsockopt() thing like TCP_CORK / TCP_QUICKACK / TCP_NODELAY / ... after the socket() call and before the connect() ?

Thank you
Eric Dumazet


- : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux