Subject: [tcpm] Fwd: [Technical Errata Reported] RFC0793 (4753)

From: "Mirja Kuehlewind (IETF)" <[email-masked]>
Date: Mon, 12 Sep 2016 14:33:53 +0200

FYI.

> Anfang der weitergeleiteten Nachricht:
> 
> Von: RFC Errata System <[email-masked]>
> Betreff: [Technical Errata Reported] RFC0793 (4753)
> Datum: 30. Juli 2016 um 09:26:29 MESZ
> An: [email-masked]
> Kopie: [email-masked], [email-masked]
> 
> The following errata report has been submitted for RFC0793,
> "Transmission Control Protocol".
> 
> --------------------------------------
> You may review the report below and at:
> http://www.rfc-editor.org/errata_search.php?rfc=793&eid=4753
> 
> --------------------------------------
> Type: Technical
> Reported by: Sanjeev Ranot <[email-masked]>
> 
> Section: 1.5
> 
> Original Text
> -------------
> A pair of sockets uniquely identifies each connection.
> That is, a socket may be simultaneously used in multiple
> connections
> 
> Corrected Text
> --------------
> A pair of sockets uniquely identifies each connection. Sockets can be
> classified into client and server sockets. Typically a server socket 
> may be simultaneously used in multiple connections.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Notes
> -----
> TCP is connection oriented therefore when we say "sockets used in multiple connections" it implies that the context is TCP.  Considering their use in TCP,  though a single client socket can be implemented in a way to multiplex it for connection with multiple server sockets and exchange different SYN segments but then its  same what a server process listening for connections on server port does typically. 
> 
> I feel classification of sockets here is vital to facilitate understand implicitly that in what use-case can
> a socket be typically multiplexed while still keeping generality of the statement.
> 
> Instructions:
> -------------
> This erratum is currently posted as "Reported". If necessary, please
> use "Reply All" to discuss whether it should be verified or
> rejected. When a decision is reached, the verifying party (IESG)
> can log in to change the status and edit the report, if necessary. 
> 
> --------------------------------------
> RFC0793 (no draft string recorded)
> --------------------------------------
> Title               : Transmission Control Protocol
> Publication Date    : September 1981
> Author(s)           : J. Postel
> Category            : INTERNET STANDARD
> Source              : Legacy
> Area                : Legacy
> Stream              : IETF
> Verifying Party     : IESG
>

---

From: David Borman <[email-masked]>
Date: Mon, 12 Sep 2016 09:08:48 -0500

I don’t agree with this change.  Sockets are generic; while many applications that use sockets put a client/server model on top of sockets, that is the semantics of the application, not the underlying socket connection.  At the TCP layer the only distinction is that you have passive (LISTEN/ACCEPT) and active (CONNECT) sockets.  For example, FTP can set up the data socket pair in either direction.

Even with the client/server model, a client can use bind() to use the exact same socket (address/port) to connect to multiple machines, so there’s no reason to imply that only the server side can use the same socket for multiple connections.

And then there is the simultaneous open case, where both sockets use CONNECT and there is no distinction between them.

			-David Borman

> On Sep 12, 2016, at 7:33 AM, Mirja Kuehlewind (IETF) <[email-masked]> wrote:
> 
> FYI.
> 
> _______________________________________________
> tcpm mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/tcpm

---

From: Joe Touch <[email-masked]>
Date: Mon, 12 Sep 2016 11:17:36 -0700

Hi, all,

IMO this proposed errata confuses the concept of an OS socket (a
mechanism used to attach network communications to a process) with a TCP
socket (which is an <IP address:port> pair.

A TCP connection is defined by two TCP sockets, one on each end (a
socket pair).

A single TCP socket (the one addr:port pair) can have multiple of either
incoming or outgoing connections or both.

A Unix socket doesn't correspond to a TCP socket pair until after
accept() or connect() returns at best, and may have other semantic
differences.

As a result, this errata should be rejected.

Joe

---

From: Yuchung Cheng <[email-masked]>
Date: Mon, 12 Sep 2016 11:22:54 -0700

i agree w/ Joe and David that this errata is not necessary.

On Mon, Sep 12, 2016 at 11:17 AM, Joe Touch <[email-masked]> wrote:

> >> TCP is connection oriented therefore when we say "sockets used in
> multiple connections" it implies that the context is TCP.  Considering
> their use in TCP,  though a single client socket can be implemented in a
> way to multiplex it for connection with multiple server sockets and
> exchange different SYN segments but then its  same what a server process
> listening for connections on server port does typically.
> >>

---

From: "Mirja Kuehlewind (IETF)" <[email-masked]>
Date: Tue, 13 Sep 2016 01:32:40 +0200

Hi all,

thanks for your feedback. I also thought that the clarification is at least not necessary. I’ll wait a few more days, just to give others a chance to comment, and then reject if nobody shouts in the mean time.

Mirja

> Am 12.09.2016 um 20:22 schrieb Yuchung Cheng <[email-masked]>:
>

---

From: Fernando Gont <[email-masked]>
Date: Tue, 13 Sep 2016 03:49:11 -0300

> thanks for your feedback. I also thought that the clarification is at least not necessary. I’ll wait a few more days, just to give others a chance to comment, and then reject if nobody shouts in th…

+1 to reject this errata.

Thanks,
-- 
Fernando Gont
SI6 Networks
e-mail: [email-masked]
PGP Fingerprint: 6666 31C6 D484 63B2 8FB1 E3C4 AE25 0D55 1D4E 7492

---

From: Sanjeev Ranot <[email-masked]>
Date: Tue, 13 Sep 2016 09:42:02 +0530

Hi Mirja,

wishing you on occasion of Eid al-Adha.

I accept the team's decision and you are green flag from my side.

The main thought when putting forward this errata was to mention
typical practical use of TCP sockets so that the reader/ implementer
may gain technical clarity. The multiplexing feature of a socket is
realized most in client-server relationship of sockets in a TCP
connection when almost always a server socket gets multiplexed.

With significant duration past by since the RFC was introduced I think the
readers/ implementers with legacy of various sources of information
on sockets and their typical use-case may already have this
clarification and hence render this explanation optional.

Thanks for the team's valuable time and inputs.

Thanks & Regards,
Sanjeev Ranot

On 13 September 2016 at 05:02, Mirja Kuehlewind (IETF) <[email-masked]>
wrote:

> Hi all,
>
> thanks for your feedback. I also thought that the clarification is at
> least not necessary. I’ll wait a few more days, just to give others a
> chance to comment, and then reject if nobody shouts in the mean time.
>
> Mirja
>
>
> > >> I feel classification of sockets here is vital to facilitate
> understand implicitly that in what use-case can