Removal of deprecated implied connect for TCP

Andre Oppermann andre at freebsd.org
Mon Sep 13 10:41:04 UTC 2010


Based on the feedback I withdraw the proposal to remove implied connect
from TCP.  Instead I will look at it closer and fix any loose ends that
may have come from other changes in the TCP code.

Many good points have been raised and I will repeat them here again for
the archives:

  o In FreeBSD most, if not all, protocols support implied connects,
    removing it from TCP would make it an outlier.
  o It is being used by at least one product based on FreeBSD.
  o It can speed up the data sending phase by sending data on the
    ACK after SYN-ACK. [In RFC1644 it already sent data on the
    initial SYN but no one is accepting that anymore.]

It is important to note, though, that implied connect in TCP is
non-standard and no other even remotely popular OS supports it.
Thus any applications making use of it are non-portable.

-- 
Andre

On 11.09.2010 17:38, Randall Stewart wrote:
> All:
>
> One thing to note.. when you can do an implied connection setup, the
> 3-way hand shake has the potential to carry data (don't know if tcp does in FreeBSD)
> on the third leg of the 3-way handshake.
>
> This is one of the reasons SCTP uses this.. since we often will
> carry data an the third and even possibly the 4th leg of the handshake (we
> have one extra leg).
>
> Taking this feature out of TCP will make it so we will be like all other
> o/s's and the socket semantic will prevent you from doing data on the third leg..
>
> ----SYN---->
> <----SYN-ACK---
> ----ACK--->
>
> instead of
>
> ----SYN-->
> <---SYN-ACk--
> ---ACK+DATA-->
>
>
> In the past I have mentioned in classes I teach that TCP is capable of this but the O/S's
> of the world do not allow this later behavior..
>
> Just thoughts and ramblings ;-)
>
> R
>
>
> On Sep 10, 2010, at 2:51 PM, Karim Fodil-Lemelin wrote:
>
>> On 31/08/2010 5:32 PM, Robert Watson wrote:
>>>
>>> On Tue, 31 Aug 2010, Andre Oppermann wrote:
>>>
>>>>> I'm not entirely comfortable with this change, and would like a chance to cogitate on it a bit
>>>>> more. While I'm not aware of any applications depending on the semantic for TCP, I know that we
>>>>> do use it for UNIX domain sockets.
>>>>
>>>> I don't have any plans to remove the implied connect support from the socket layer or other
>>>> protocols, only from TCP.
>>>
>>> Right -- the implicit question is: why should TCP be the only stream protocol in our stack *not*
>>> to support implied connection, when we plan to continue to support it for all other protocols?
>>>
>>>> For deprecating this part of the TCP API there is no documentation to the implied connect in
>>>> tcp(4). In sendto(2) it doesn't differentiate between protocols and simply says: "... sendto()
>>>> and sendmsg() may be used at any time." For MSG_EOF it says that is only supported for
>>>> SOCK_STREAM sockets in the PF_INET protocol family. These sentences have to be corrected.
>>>
>>> In general, deprecating is taken to mean providing significant and explicit advance warning of
>>> removal -- for example, updating the 8.x man page to point out that the feature is deprecated and
>>> it will not appear in future releases of FreeBSD.
>>>
>>> Robert
>>>
>>> _______________________________________________
>>> freebsd-net at freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-net
>>> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
>> Hi,
>>
>> For what its worth, we at Xiphos (now XipLink), are still using sendto and T/TCP and is one of the
>> reasons we've chosen FreeBSD more then 10 years ago!
>>
>> Best regards,
>>
>> Karim.
>> _______________________________________________
>> freebsd-net at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-net
>> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
>>
>
> ------------------------------
> Randall Stewart
> 803-317-4952 (cell)
>
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
>
>



More information about the freebsd-net mailing list