Skip to main content

Traversal Using Relays around NAT (TURN) Extensions for TCP Allocations
RFC 6062

Yes

(David Harrington)

No Objection

Lars Eggert
(Dan Romascanu)
(Gonzalo Camarillo)
(Peter Saint-Andre)
(Robert Sparks)
(Ron Bonica)
(Russ Housley)
(Sean Turner)
(Stewart Bryant)
(Tim Polk)

Note: This ballot was opened for revision 07 and is now closed.

Lars Eggert
No Objection
David Harrington Former IESG member
Yes
Yes () Unknown

                            
Jari Arkko Former IESG member
(was Discuss) Yes
Yes (2010-07-01) Unknown
Nits
----

Abstract

    around NAT (TURN), a relay protocol for NAT traversal, to allow a

Expand NAT.


3. Overview of Operation

    client to peer fills up, the TURN server ceases to read off the
    client data connection, which causes TCP backpressure through the OS
    towards the client.

Expand OS.


4.3. Initiating a Connection


    If the result of the Connect request was a Error Response, and the
    response code was 447,

It would be good to add the name of the code as in the other cases.


Sections "Security Considerations" (6.4) and "Acknowledgements" (6.5) 
are subsections of "IANA Considerations". This is probably unintentional.
Adrian Farrel Former IESG member
No Objection
No Objection (2010-07-01) Unknown
I stubmled a bit over "TCP allocation".
I think this is shorthand for "TURN allocation for a TCP session".
If I'm right, it is probably worth dropping this into the Introduction so that it is clear. If I am wrong, there is even more need to add an explanation.
Alexey Melnikov Former IESG member
No Objection
No Objection (2010-06-27) Unknown
I found the restriction on only having a single outgoing TCP connection to a particular address/port combination to be a bit too restrictive. Although I suspect why you've done that. However some discussion of the topic in the document would have been helpful.
Dan Romascanu Former IESG member
No Objection
No Objection () Unknown

                            
Gonzalo Camarillo Former IESG member
No Objection
No Objection () Unknown

                            
Peter Saint-Andre Former IESG member
No Objection
No Objection () Unknown

                            
Ralph Droms Former IESG member
(was Discuss, No Objection, Discuss) No Objection
No Objection (2010-07-01) Unknown
The TCP connection used for control is sometimes called "control
connection" and sometimes "control channel".  It would help
readability to use one name consistently.

For consistency with text in section 4.1 and readability, I suggest
changing this text in section 3:

OLD:

   To obtain a TCP-based allocation, a client must have a TCP or TLS
   connection to its TURN server.  Using that connection, it sends an
   Allocate request.

NEW:

   To obtain a TCP-based allocation, a client first opens a TCP or TLS
   connection to its TURN server.  The client then sends an Allocate
   request over that control connection.

In the following paragraph in section 3, s/address/port/ ??

   If a client wishes to establish a TCP connection to a peer from that
   allocated address, it issues a Connect request to the TURN server
   over the control connection. 

At the end of section 3:

   The TURN server will relay the data between the client and peer data
   connections, utilizing an internal buffer.  However, back pressure is
   used in order to achieve end-to-end flow control.  If the buffer from
   client to peer fills up, the TURN server ceases to read off the
   client data connection, which causes TCP backpressure through the OS
   towards the client.

This text describes an implementation detail, in my opinion.  I can
imagine an implementation that simply copies directly between the two
data connections as data is available on each.  I suppose you could
argue that the implementation uses a small, one segment buffer.  In
any event, adding another buffer to the send and receive buffers in
the TCBs for the two data connections may affect scalability.

From section 4.3 (also in section 4.4):

   Once
   established, the client MUST send a ConnectionBind request.

I assume the ConnectionBind request is sent over the newly established
TCP connection (which will become the data connection).  In my
opinion, the connection to be used should be clarified here.

In section 5.5:

   When a client data connection is closed or times out, the server MUST
   close the corresponding peer data connection.

what does "times out" mean?
Robert Sparks Former IESG member
No Objection
No Objection () Unknown

                            
Ron Bonica Former IESG member
No Objection
No Objection () Unknown

                            
Russ Housley Former IESG member
No Objection
No Objection () Unknown

                            
Sean Turner Former IESG member
No Objection
No Objection () Unknown

                            
Stewart Bryant Former IESG member
No Objection
No Objection () Unknown

                            
Tim Polk Former IESG member
No Objection
No Objection () Unknown