Traversal Using Relays around NAT (TURN) Extensions for TCP Allocations
draft-ietf-behave-turn-tcp-07
Revision differences
Document history
Date | Rev. | By | Action |
---|---|---|---|
2012-08-22
|
07 | (System) | post-migration administrative database adjustment to the Yes position for Jari Arkko |
2012-08-22
|
07 | (System) | post-migration administrative database adjustment to the No Objection position for Ralph Droms |
2010-09-15
|
07 | (System) | IANA Action state changed to RFC-Ed-Ack from In Progress |
2010-09-15
|
07 | (System) | IANA Action state changed to In Progress from Waiting on Authors |
2010-09-14
|
07 | (System) | IANA Action state changed to Waiting on Authors from In Progress |
2010-09-14
|
07 | (System) | IANA Action state changed to In Progress |
2010-09-14
|
07 | Cindy Morgan | State changed to RFC Ed Queue from Approved-announcement sent by Cindy Morgan |
2010-09-14
|
07 | Amy Vezza | IESG state changed to Approved-announcement sent |
2010-09-14
|
07 | Amy Vezza | IESG has approved the document |
2010-09-14
|
07 | Amy Vezza | Closed "Approve" ballot |
2010-09-13
|
07 | David Harrington | State changed to Approved-announcement to be sent from IESG Evaluation::AD Followup by David Harrington |
2010-09-10
|
07 | Ralph Droms | [Ballot comment] I've cleared my DISCUSS; sorry for the delay... |
2010-09-10
|
07 | Ralph Droms | [Ballot Position Update] Position for Ralph Droms has been changed to No Objection from Discuss by Ralph Droms |
2010-09-08
|
07 | Jari Arkko | [Ballot Position Update] Position for Jari Arkko has been changed to Yes from Discuss by Jari Arkko |
2010-07-08
|
07 | (System) | Sub state has been changed to AD Follow up from New Id Needed |
2010-07-08
|
07 | (System) | New version available: draft-ietf-behave-turn-tcp-07.txt |
2010-07-02
|
07 | (System) | Removed from agenda for telechat - 2010-07-01 |
2010-07-01
|
07 | David Harrington | State Changes to IESG Evaluation::Revised ID Needed from IESG Evaluation by David Harrington |
2010-07-01
|
07 | Ralph Droms | [Ballot comment] The TCP connection used for control is sometimes called "control connection" and sometimes "control channel". It would help readability to use one name … [Ballot comment] 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? |
2010-07-01
|
07 | Ralph Droms | [Ballot discuss] Updated 2010-07-01 after e-mail exchange with authors. From section 3: Once established, it issues a ConnectionBind request to the server. Is … [Ballot discuss] Updated 2010-07-01 after e-mail exchange with authors. From section 3: Once established, it issues a ConnectionBind request to the server. Is this message sent over the control connection or the data connection? In section 5, the term "relayed transport" is used without definition: 4. A TCP relayed transport address Is just an address allocated or is it an address/port pair? The question is important, I think, in this text: 5.3. Receiving a TCP Connection on an Allocated Port When a server receives an incoming TCP connection on a relayed transport, it processes as follows. because, if I'm understanding the specification correctly, the client has a specific allocated address/port pair to which inbound connection requests from peers are made. (added 2010-07-01) The document uses the phrases "IP address and port", "address" and "relayed transport address". I think - although I'm not sure - that the phrases are interchangeable in at least some cases. For clarity,it would be good to define "relayed transport address" early on (as discussed in e-mail) and use that term wherever applicable. |
2010-07-01
|
07 | Adrian Farrel | [Ballot comment] I stubmled a bit over "TCP allocation". I think this is shorthand for "TURN allocation for a TCP session". If I'm right, it … [Ballot comment] 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. |
2010-07-01
|
07 | Adrian Farrel | [Ballot Position Update] New position, No Objection, has been recorded by Adrian Farrel |
2010-07-01
|
07 | Jari Arkko | [Ballot comment] Nits ---- Abstract around NAT (TURN), a relay protocol for NAT traversal, to allow a Expand NAT. 3. Overview of Operation … [Ballot comment] 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. |
2010-07-01
|
07 | Jari Arkko | [Ballot discuss] From a review by Ari Keränen: Section 5.1 says: 1. If the REQUESTED-TRANSPORT attribute is included and specifies a … [Ballot discuss] From a review by Ari Keränen: Section 5.1 says: 1. If the REQUESTED-TRANSPORT attribute is included and specifies a protocol other than UDP or TCP, the server MUST reject the request with a 442 (Unsupported Transport Protocol) error. (If the value is UDP, the server MUST continue with the procedures of [I-D.ietf-behave-turn] instead of this document.) What if the server has an TCP-only policy? It seems that the last sentence forbids such a policy, as it is required that the UDP process continues from this point onwards. In section 5.2: Otherwise, and if the new connection is permitted by local policy, the server MUST initiate an outgoing TCP connection. What to do if the connection is not permitted by local policy? Perhaps send back 403 (Forbidden) error? The draft explains the error treatment for all the other error cases, but not this. The server MUST buffer any data received from the client. Data MUST NOT be lost unless the buffer exceeds a limit defined by local policy, in which case the data connection MUST be closed. The server adjusts its advertised TCP receive window to reflect the amount of empty buffer space. If the connection MUST be close before the receiving buffer is full, the advertised window would never reach zero, right? Wouldn't this break something, like a well-intentioned client sending TCP traffic according to the advertised window sizes? |
2010-07-01
|
07 | Jari Arkko | [Ballot Position Update] New position, Discuss, has been recorded by Jari Arkko |
2010-07-01
|
07 | Dan Romascanu | [Ballot Position Update] New position, No Objection, has been recorded by Dan Romascanu |
2010-06-30
|
07 | Ron Bonica | [Ballot Position Update] New position, No Objection, has been recorded by Ron Bonica |
2010-06-30
|
07 | Stewart Bryant | [Ballot Position Update] New position, No Objection, has been recorded by Stewart Bryant |
2010-06-30
|
07 | Russ Housley | [Ballot Position Update] New position, No Objection, has been recorded by Russ Housley |
2010-06-30
|
07 | Ralph Droms | [Ballot Position Update] Position for Ralph Droms has been changed to Discuss from No Objection by Ralph Droms |
2010-06-30
|
07 | Ralph Droms | [Ballot comment] The TCP connection used for control is sometimes called "control connection" and sometimes "control channel". It would help readability to use one name … [Ballot comment] 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? |
2010-06-30
|
07 | Ralph Droms | [Ballot discuss] What happens in the case of simultaneous client- and peer-initiated connection opens through an allocated port? Of course, one or the other event … [Ballot discuss] What happens in the case of simultaneous client- and peer-initiated connection opens through an allocated port? Of course, one or the other event will be received by the TURN server first (hm, suppose the TURN server implementation is multi-threaded?); I think there should be some words to the effect of "As soon as the TURN server receives a connection request from the client, all inbound requests to the allocated port from other peers are rejected; similarly, as soon as the TURN server receives a connection request from a peer, all other requests from peers to the allocated port are rejected. If the TURN server has received a connection request to the allocated port from a peer, a connection request from the client is rejected and the TURN server responds on the control connection with ." From section 3: Once established, it issues a ConnectionBind request to the server. Is this message sent over the control connection or the data connection? From section 4.1: As with any other request, multiple Connect requests MAY be sent simultaneously. However, Connect requests with the same XOR-PEER- ADDRESS parameter MUST NOT be sent simultaneously. Does this text imply that multiple Connect requests can be sent over a single control connection? I find this a little confusing because my understanding is that each control connection is associated with a single data conncetion. What are the semantics? First connection wins? Are the others explicitly rejected or silently dropped? In section 5, the term "relayed transport" is used without definition: 4. A TCP relayed transport address Is just an address allocated or is it an address/port pair? The question is important, I think, in this text: 5.3. Receiving a TCP Connection on an Allocated Port When a server receives an incoming TCP connection on a relayed transport, it processes as follows. because, if I'm understanding the specification correctly, the client has a specific allocated address/port pair to which inbound connection requests from peers are made. |
2010-06-30
|
07 | Gonzalo Camarillo | [Ballot Position Update] New position, No Objection, has been recorded by Gonzalo Camarillo |
2010-06-30
|
07 | Ralph Droms | [Ballot Position Update] Position for Ralph Droms has been changed to No Objection from Discuss by Ralph Droms |
2010-06-30
|
07 | Ralph Droms | [Ballot Position Update] New position, Discuss, has been recorded by Ralph Droms |
2010-06-30
|
07 | Lars Eggert | [Ballot Position Update] New position, No Objection, has been recorded by Lars Eggert |
2010-06-29
|
07 | Robert Sparks | [Ballot Position Update] New position, No Objection, has been recorded by Robert Sparks |
2010-06-29
|
07 | Sean Turner | [Ballot Position Update] New position, No Objection, has been recorded by Sean Turner |
2010-06-28
|
07 | Peter Saint-Andre | [Ballot Position Update] New position, No Objection, has been recorded by Peter Saint-Andre |
2010-06-27
|
07 | Alexey Melnikov | [Ballot comment] I found the restriction on only having a single outgoing TCP connection to a particular address/port combination to be a bit too restrictive. … [Ballot comment] 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. |
2010-06-27
|
07 | Alexey Melnikov | [Ballot Position Update] New position, No Objection, has been recorded by Alexey Melnikov |
2010-06-25
|
07 | Tim Polk | [Ballot Position Update] New position, No Objection, has been recorded by Tim Polk |
2010-06-22
|
07 | David Harrington | [Ballot Position Update] New position, Yes, has been recorded for David Harrington |
2010-06-22
|
07 | David Harrington | Ballot has been issued by David Harrington |
2010-06-22
|
07 | David Harrington | Created "Approve" ballot |
2010-06-21
|
07 | David Harrington | State Changes to IESG Evaluation from Waiting for AD Go-Ahead by David Harrington |
2010-06-21
|
07 | David Harrington | Placed on agenda for telechat - 2010-07-01 by David Harrington |
2010-04-01
|
07 | Sam Weiler | Request for Last Call review by SECDIR Completed. Reviewer: Patrick Cain. |
2010-03-31
|
07 | David Harrington | [Note]: 'Dan Wing, dwing@cisco.com is the document shepherd.' added by David Harrington |
2010-03-31
|
07 | David Harrington | Responsible AD has been changed to David Harrington from Magnus Westerlund |
2010-03-31
|
07 | (System) | State has been changed to Waiting for AD Go-Ahead from In Last Call by system |
2010-03-29
|
07 | Amanda Baber | IANA questions/comments: QUESTION: section 6.3 requests "New STUN response codes" assignments. No such registry exists. Please confirm that the "STUN Error Codes" registry is the … IANA questions/comments: QUESTION: section 6.3 requests "New STUN response codes" assignments. No such registry exists. Please confirm that the "STUN Error Codes" registry is the intended registry. ACTION 1: make the following assignment in the "STUN Methods" registry at http://www.iana.org/assignments/stun-parameters/stun-parameters.xhtml Value Name Reference ------ ----------------- ------------------- 0x000A Connect [RFC-behave-turn-tcp-06] 0x000B ConnectionBind [RFC-behave-turn-tcp-06] 0x000C ConnectionAttempt [RFC-behave-turn-tcp-06] ACTION 2: make the following assignment in the "STUN Attributes" registry at http://www.iana.org/assignments/stun-parameters/stun-parameters.xhtml Value Name Reference ------ ------------- -------------- 0x002A CONNECTION-ID [RFC-behave-turn-tcp-06] ACTION 3: make the following assignments in the "STUN Error Codes" registry at http://www.iana.org/assignments/stun-parameters/stun-parameters.xhtml Value Name Reference ----- ----------------------------- -------------- 446 Connection Already Exists [RFC-behave-turn-tcp-06] 447 Connection Timeout or Failure [RFC-behave-turn-tcp-06] |
2010-03-15
|
07 | Sam Weiler | Request for Last Call review by SECDIR is assigned to Patrick Cain |
2010-03-15
|
07 | Sam Weiler | Request for Last Call review by SECDIR is assigned to Patrick Cain |
2010-03-09
|
07 | Amy Vezza | Last call sent |
2010-03-09
|
07 | Amy Vezza | State Changes to In Last Call from Last Call Requested by Amy Vezza |
2010-03-09
|
07 | Magnus Westerlund | State Changes to Last Call Requested from AD Evaluation::AD Followup by Magnus Westerlund |
2010-03-09
|
07 | Magnus Westerlund | Last Call was requested by Magnus Westerlund |
2010-03-09
|
07 | (System) | Ballot writeup text was added |
2010-03-09
|
07 | (System) | Last call text was added |
2010-03-09
|
07 | (System) | Ballot approval text was added |
2010-03-08
|
07 | (System) | Sub state has been changed to AD Follow up from New Id Needed |
2010-03-08
|
06 | (System) | New version available: draft-ietf-behave-turn-tcp-06.txt |
2010-01-22
|
07 | Magnus Westerlund | State Changes to AD Evaluation::Revised ID Needed from AD Evaluation by Magnus Westerlund |
2010-01-22
|
07 | Magnus Westerlund | AD comments sent to Behave mailing list. |
2010-01-22
|
07 | Magnus Westerlund | State Changes to AD Evaluation from Publication Requested by Magnus Westerlund |
2010-01-22
|
07 | Magnus Westerlund | [Note]: 'Dan Wing, dwing@cisco.com is the document shepherd.' added by Magnus Westerlund |
2009-12-23
|
07 | Amy Vezza | (1.a) Who is the Document Shepherd for this document? draft-ietf-behave-turn-tcp-05 Dan Wing, dwing@cisco.com Has the … (1.a) Who is the Document Shepherd for this document? draft-ietf-behave-turn-tcp-05 Dan Wing, dwing@cisco.com Has the Document Shepherd personally reviewed this version of the document and, in particular, does he or she believe this version is ready for forwarding to the IESG for publication? Yes. (1.b) Has the document had adequate review both from key WG members and from key non-WG members? Does the Document Shepherd have any concerns about the depth or breadth of the reviews that have been performed? This document has received significant review from the community. (1.c) Does the Document Shepherd have concerns that the document needs more review from a particular or broader perspective, e.g., security, operational complexity, someone familiar with AAA, internationalization, or XML? No concerns. (1.d) Does the Document Shepherd have any specific concerns or issues with this document that the Responsible Area Director and/or the IESG should be aware of? For example, perhaps he or she is uncomfortable with certain parts of the document, or has concerns whether there really is a need for it. In any event, if the WG has discussed those issues and has indicated that it still wishes to advance the document, detail those concerns here. No concerns. Has an IPR disclosure related to this document been filed? If so, please include a reference to the disclosure and summarize the WG discussion and conclusion on this issue. None. (1.e) How solid is the WG consensus behind this document? Very solid. Does it represent the strong concurrence of a few individuals, with others being silent, or does the WG as a whole understand and agree with it? The WG has a good understanding of, and agreement with, this document. (1.f) Has anyone threatened an appeal or otherwise indicated extreme discontent? If so, please summarize the areas of conflict in separate email messages to the Responsible Area Director. (It should be in a separate email because this questionnaire is entered into the ID Tracker.) No such threats or appeals. (1.g) Has the Document Shepherd personally verified that the document satisfies all ID nits? (See http://www.ietf.org/ID-Checklist.html and http://tools.ietf.org/tools/idnits/.) Yes. Boilerplate checks are not enough; this check needs to be thorough. Has the document met all formal review criteria it needs to, such as the MIB Doctor, media type, and URI type reviews? The document does not specify a MIB, media type, or URI, and thus does not need to meet those review criteria. If the document does not already indicate its intended status at the top of the first page, please indicate the intended status here. Intended Status: Standards Track (1.h) Has the document split its references into normative and informative? Yes. Are there normative references to documents that are not ready for advancement or are otherwise in an unclear state? If such normative references exist, what is the strategy for their completion? Are there normative references that are downward references, as described in [RFC3967]? If so, list these downward references to support the Area Director in the Last Call procedure for them [RFC3967]. All normative references are upward references, and all are RFCs. (1.i) Has the Document Shepherd verified that the document's IANA Considerations section exists and is consistent with the body of the document? Yes. If the document specifies protocol extensions, are reservations requested in appropriate IANA registries? Yes. Are the IANA registries clearly identified? Yes. If the document creates a new registry, does it define the proposed initial contents of the registry and an allocation procedure for future registrations? The document does not create a new IANA registry. Does it suggest a reasonable name for the new registry? See [RFC2434]. If the document describes an Expert Review process, has the Document Shepherd conferred with the Responsible Area Director so that the IESG can appoint the needed Expert during IESG Evaluation? (1.j) Has the Document Shepherd verified that sections of the document that are written in a formal language, such as XML code, BNF rules, MIB definitions, etc., validate correctly in an automated checker? The document contains no such formal language. (1.k) The IESG approval announcement includes a Document Announcement Write-Up. Please provide such a Document Announcement Write-Up. Recent examples can be found in the "Action" announcements for approved documents. The approval announcement contains the following sections: Technical Summary Relevant content can frequently be found in the abstract and/or introduction of the document. If not, this may be an indication that there are deficiencies in the abstract or introduction. This specification defines a protocol that allows the host to control the operation of a relay and to exchange packets with its peers using the relay. TURN differs from some other relay control protocols in that it allows a client to communicate with multiple peers using a single relay address. The TURN protocol was designed to be used as part of the ICE (Interactive Connectivity Establishment) approach to NAT traversal, though it can be also used without ICE. Working Group Summary Was there anything in the WG process that is worth noting? For example, was there controversy about particular points or were there decisions where the consensus was particularly rough? No. Document Quality Are there existing implementations of the protocol? Yes. Have a significant number of vendors indicated their plan to implement the specification? Yes. Are there any reviewers that merit special mention as having done a thorough review, e.g., one that resulted in important changes or a conclusion that the document had no substantive issues? They are listed in the document's acknowledgement section If there was a MIB Doctor, Media Type, or other Expert Review, what was its course (briefly)? In the case of a Media Type Review, on what date was the request posted? No such reviews were necessary. Personnel Who is the Document Shepherd for this document? Dan Wing, dwing@cisco.com Who is the Responsible Area Director? Magnus Westerlund, magnus.westerlund@ericsson.com If the document requires IANA experts(s), insert 'The IANA Expert(s) for the registries in this document are .' The document doesn't require IANA experts. The Document Shepherd MUST send the Document Shepherd Write-Up to the Responsible Area Director and iesg-secretary@ietf.org together with the request to publish the document. The Document Shepherd SHOULD also send the entire Document Shepherd Write-Up to the working group mailing list. If the Document Shepherd feels that information which may prove to be sensitive, may lead to possible appeals, or is personal needs to be written up, it SHOULD be sent in direct email to the Responsible Area Director, because the Document Shepherd Write-Up is published openly in the ID Tracker. Question (1.f) of the Write-Up covers any material of this nature and specifies this more confidential handling. |
2009-12-23
|
07 | Amy Vezza | Draft Added by Amy Vezza in state Publication Requested |
2009-12-23
|
07 | Amy Vezza | [Note]: 'Dan Wing, dwing@cisco.com is the document shepherd.' added by Amy Vezza |
2009-10-19
|
05 | (System) | New version available: draft-ietf-behave-turn-tcp-05.txt |
2009-07-09
|
04 | (System) | New version available: draft-ietf-behave-turn-tcp-04.txt |
2009-05-04
|
03 | (System) | New version available: draft-ietf-behave-turn-tcp-03.txt |
2009-03-04
|
02 | (System) | New version available: draft-ietf-behave-turn-tcp-02.txt |
2008-11-04
|
01 | (System) | New version available: draft-ietf-behave-turn-tcp-01.txt |
2007-11-13
|
00 | (System) | New version available: draft-ietf-behave-turn-tcp-00.txt |