Skip to main content

Making TCP More Robust to Long Connectivity Disruptions (TCP-LCD)
draft-ietf-tcpm-tcp-lcd-03

Revision differences

Document history

Date Rev. By Action
2012-08-22
03 (System) post-migration administrative database adjustment to the No Objection position for Sean Turner
2010-09-15
03 Cindy Morgan State changed to RFC Ed Queue from Approved-announcement sent by Cindy Morgan
2010-09-14
03 (System) IANA Action state changed to No IC from In Progress
2010-09-14
03 (System) IANA Action state changed to In Progress
2010-09-14
03 Amy Vezza IESG state changed to Approved-announcement sent
2010-09-14
03 Amy Vezza IESG has approved the document
2010-09-14
03 Amy Vezza Closed "Approve" ballot
2010-09-14
03 Lars Eggert State changed to Approved-announcement to be sent from IESG Evaluation::AD Followup by Lars Eggert
2010-09-14
03 Sean Turner [Ballot Position Update] Position for Sean Turner has been changed to No Objection from Discuss by Sean Turner
2010-09-14
03 (System) Sub state has been changed to AD Follow up from New Id Needed
2010-09-14
03 (System) New version available: draft-ietf-tcpm-tcp-lcd-03.txt
2010-09-02
03 Lars Eggert State changed to IESG Evaluation::Revised ID Needed from IESG Evaluation::AD Followup by Lars Eggert
2010-08-26
03 Cindy Morgan State changed to IESG Evaluation::AD Followup from IESG Evaluation by Cindy Morgan
2010-08-26
03 Stewart Bryant [Ballot Position Update] New position, No Objection, has been recorded by Stewart Bryant
2010-08-26
03 Tim Polk [Ballot Position Update] New position, No Objection, has been recorded by Tim Polk
2010-08-26
03 Sean Turner [Ballot discuss]
This is a placeholder DISCUSS.

There has been no response to the SECDIR review comments from Catherine Meadows (http://www.ietf.org/mail-archive/web/secdir/current/msg01965.html).
2010-08-26
03 Sean Turner [Ballot Position Update] New position, Discuss, has been recorded by Sean Turner
2010-08-26
03 Ron Bonica [Ballot Position Update] New position, No Objection, has been recorded by Ron Bonica
2010-08-26
03 Russ Housley [Ballot comment]
Please consider the editorial comments in the Gen-ART Review from
  Enrico Marocco on 25-Aug-2010.
2010-08-26
03 Russ Housley [Ballot Position Update] New position, No Objection, has been recorded by Russ Housley
2010-08-26
03 Adrian Farrel
[Ballot comment]
Thank you for this work and for proposing it as Experimental.

My first Comment is very close to being a Discuss, and I …
[Ballot comment]
Thank you for this work and for proposing it as Experimental.

My first Comment is very close to being a Discuss, and I hope you
feel able to add some text (perhaps to the Introduction) to give
the reader (and future generations) some guidance.

For experimental documents, I think it is important to give some
parameters of the nature of the experiment.
- What constraints will be placed on the experimental work to prevent
  the experiment spilling out into the Internet (walled garden)?
- What are the risks if the experiment is released?
  (perhaps a forward pointer to section 7)
- How will you judge whether the work is stable and successful?
- Do you have plans / proposals to return and revise the work for
  the Standards Track?

---

Section 2

Tiny nit, sorry

  This document improves TCP's behavior in case of "long connectivity
  disruptions".

Well, the document doesn't do that of itself :-)quot; (type) Header Parameter is used by JWS applications to
  declare the MIME Media Type [IANA.MediaTypes] of this complete JWS.
  This is intended for use by the application when more than one kind
  of object could be present in an application data structure that can
  contain a JWS; the application can use this value to disambiguate
  among the different kinds of objects that might be present.  It will
  typically not be used by applications when the kind of object is
  already known.  This parameter is ignored by JWS implementations; any
  processing of this parameter is performed by the JWS application.
  Use of this Header Parameter is OPTIONAL.

  Per RFC 2045 [RFC2045], all media type values, subtype values, and
  parameter names are case-insensitive.  However, parameter values are
  case-sensitive unless otherwise specified for the specific parameter.

  To keep messages compact in common situations, it is RECOMMENDED that
  producers omit an "application/" prefix of a media type value in a
  "typ" Header Parameter when no other '/' appears in the media type
  value.  A recipient using the media type value MUST treat it as if
  "application/" were prepended to any "typ" value not containing a
  '/'.  For instance, a "typ" value of "example" SHOULD be used to
  represent the "application/example" media type; whereas, the media
  type "application/example;part="1/2"" cannot be shortened to
  "example;part="1/2"".

  The "typ" value "JOSE" can be used by applications to indicate that
  this object is a JWS or JWE using the JWS Compact Serialization or

Jones, et al.            Expires July 3, 2015                [Page 13]
Internet-Draft          JSON Web Signature (JWS)          December 2014

  the JWE Compact Serialization.  The "typ" value "JOSE+JSON" can be
  used by applications to indicate that this object is a JWS or JWE
  using the JWS JSON Serialization or the JWE JSON Serialization.
  Other type values can also be used by applications.

4.1.10.  "cty" (Content Type) Header Parameter

  The "cty" (content type) Header Parameter is used by JWS applications
  to declare the MIME Media Type [IANA.MediaTypes] of the secured
  content (the payload).  This is intended for use by the application
  when more than one kind of object could be present in the JWS
  payload; the application can use this value to disambiguate among the
  different kinds of objects that might be present.  It will typically
  not be used by applications when the kind of object is already known.
  This parameter is ignored by JWS implementations; any processing of
  this parameter is performed by the JWS application.  Use of this
  Header Parameter is OPTIONAL.

  Per RFC 2045 [RFC2045], all media type values, subtype values, and
  parameter names are case-insensitive.  However, parameter values are
  case-sensitive unless otherwise specified for the specific parameter.

  To keep messages compact in common situations, it is RECOMMENDED that
  producers omit an "application/" prefix of a media type value in a
  "cty" Header Parameter when no other '/' appears in the media type
  value.  A recipient using the media type value MUST treat it as if
  "application/" were prepended to any "cty" value not containing a
  '/'.  For instance, a "cty" value of "example" SHOULD be used to
  represent the "application/example" media type; whereas, the media
  type "application/example;part="1/2"" cannot be shortened to
  "example;part="1/2"".

4.1.11.  "crit" (Critical) Header Parameter

  The "crit" (critical) Header Parameter indicates that extensions to
  the initial RFC versions of [[ this specification ]] and [JWA] are
  being used that MUST be understood and processed.  Its value is an
  array listing the Header Parameter names present in the JOSE Header
  that use those extensions.  If any of the listed extension Header
  Parameters are not understood and supported by the recipient, it MUST
  reject the JWS.  Producers MUST NOT include Header Parameter names
  defined by the initial RFC versions of [[ this specification ]] or
  [JWA] for use with JWS, duplicate names, or names that do not occur
  as Header Parameter names within the JOSE Header in the "crit" list.
  Producers MUST NOT use the empty list "[]" as the "crit" value.
  Recipients MAY reject the JWS if the critical list contains any
  Header Parameter names defined by the initial RFC versions of [[ this
  specification ]] or [JWA] for use with JWS, or any other constraints

Jones, et al.            Expires July 3, 2015                [Page 14]
Internet-Draft          JSON Web Signature (JWS)          December 2014

  on its use are violated.  When used, this Header Parameter MUST be
  integrity protected; therefore, it MUST occur only within the JWS
  Protected Header.  Use of this Header Parameter is OPTIONAL.  This
  Header Parameter MUST be understood and processed by implementations.

  An example use, along with a hypothetical "exp" (expiration-time)
  field is:

    {"alg":"ES256",
      "crit":["exp"],
      "exp":1363284000
    }

4.2.  Public Header Parameter Names

  Additional Header Parameter names can be defined by those using JWSs.
  However, in order to prevent collisions, any new Header Parameter
  name should either be registered in the IANA JSON Web Signature and
  Encryption Header Parameters registry defined in Section 9.1 or be a
  Public Name: a value that contains a Collision-Resistant Name.  In
  each case, the definer of the name or value needs to take reasonable
  precautions to make sure they are in control of the part of the
  namespace they use to define the Header Parameter name.

  New Header Parameters should be introduced sparingly, as they can
  result in non-interoperable JWSs.

4.3.  Private Header Parameter Names

  A producer and consumer of a JWS may agree to use Header Parameter
  names that are Private Names: names that are not Registered Header
  Parameter names Section 4.1 or Public Header Parameter names
  Section 4.2.  Unlike Public Header Parameter names, Private Header
  Parameter names are subject to collision and should be used with
  caution.

5.  Producing and Consuming JWSs

5.1.  Message Signature or MAC Computation

  To create a JWS, the following steps are performed.  The order of the
  steps is not significant in cases where there are no dependencies
  between the inputs and outputs of the steps.

  1.  Create the content to be used as the JWS Payload.

Jones, et al.            Expires July 3, 2015                [Page 15]
Internet-Draft          JSON Web Signature (JWS)          December 2014

  2.  Compute the encoded payload value BASE64URL(JWS Payload).

  3.  Create the JSON object(s) containing the desired set of Header
      Parameters, which together comprise the JOSE Header: if the JWS
      Compact Serialization is being used, the JWS Protected Header, or
      if the JWS JSON Serialization is being used, the JWS Protected
      Header and/or the JWS Unprotected Header.

  4.  Compute the encoded header value BASE64URL(UTF8(JWS Protected
      Header)).  If the JWS Protected Header is not present (which can
      only happen when using the JWS JSON Serialization and no
      "protected" member is present), let this value be the empty
      string.

  5.  Compute the JWS Signature in the manner defined for the
      particular algorithm being used over the JWS Signing Input
      ASCII(BASE64URL(UTF8(JWS Protected Header)) || '.' ||
      BASE64URL(JWS Payload)).  The "alg" (algorithm) Header Parameter
      MUST be present in the JOSE Header, with the algorithm value
      accurately representing the algorithm used to construct the JWS
      Signature.

  6.  Compute the encoded signature value BASE64URL(JWS Signature).

  7.  If the JWS JSON Serialization is being used, repeat this process
      (steps 3-6) for each digital signature or MAC operation being
      performed.

  8.  Create the desired serialized output.  The JWS Compact
      Serialization of this result is BASE64URL(UTF8(JWS Protected
      Header)) || '.' || BASE64URL(JWS Payload) || '.' || BASE64URL(JWS
      Signature).  The JWS JSON Serialization is described in
      Section 7.2.

5.2.  Message Signature or MAC Validation

  When validating a JWS, the following steps are performed.  The order
  of the steps is not significant in cases where there are no
  dependencies between the inputs and outputs of the steps.  If any of
  the listed steps fails, then the signature or MAC cannot be
  validated.

  When there are multiple JWS Signature values, it is an application
  decision which of the JWS Signature values must successfully validate
  for the JWS to be accepted.  In some cases, all must successfully
  validate or the JWS will be considered invalid.  In other cases, only
  a specific JWS Signature value needs to be successfully validated.
  However, in all cases, at least one JWS Signature value MUST

Jones, et al.            Expires July 3, 2015                [Page 16]
Internet-Draft          JSON Web Signature (JWS)          December 2014

  successfully validate or the JWS MUST be considered invalid.

  1.  Parse the JWS representation to extract the serialized values
        for the components of the JWS.  When using the JWS Compact
        Serialization, these components are the base64url encoded
        representations of the JWS Protected Header, the JWS Payload,
        and the JWS Signature, and when using the JWS JSON
        Serialization, these components also include the unencoded JWS
        Unprotected Header value.  When using the JWS Compact
        Serialization, the JWS Protected Header, the JWS Payload, and
        the JWS Signature are represented as base64url encoded values in
        that order, with each value being separated from the next by a
        single period ('.') character, resulting in exactly two
        delimiting period characters being used.  The JWS JSON
        Serialization is described in Section 7.2.

  2.  Base64url decode the encoded representation of the JWS Protected
        Header, following the restriction that no line breaks, white
        space, or other additional characters have been used.

  3.  Verify that the resulting octet sequence is a UTF-8 encoded
        representation of a completely valid JSON object conforming to
        RFC 7159 [RFC7159]; let the JWS Protected Header be this JSON
        object.

  4.  If using the JWS Compact Serialization, let the JOSE Header be
        the JWS Protected Header.  Otherwise, when using the JWS JSON
        Serialization, let the JOSE Header be the union of the members
        of the corresponding JWS Protected Header and JWS Unprotected
        Header, all of which must be completely valid JSON objects.
        During this step, verify that the resulting JOSE Header does not
        contain duplicate Header Parameter names.  When using the JWS
        JSON Serialization, this restriction includes that the same
        Header Parameter name also MUST NOT occur in distinct JSON
        object values that together comprise the JOSE Header.

  5.  Verify that the implementation understands and can process all
        fields that it is required to support, whether required by this
        specification, by the algorithm being used, or by the "crit"
        Header Parameter value, and that the values of those parameters
        are also understood and supported.

  6.  Base64url decode the encoded representation of the JWS Payload,
        following the restriction that no line breaks, white space, or
        other additional characters have been used.

  7.  Base64url decode the encoded representation of the JWS
        Signature, following the restriction that no line breaks, white

Jones, et al.            Expires July 3, 2015                [Page 17]
Internet-Draft          JSON Web Signature (JWS)          December 2014

        space, or other additional characters have been used.

  8.  Validate the JWS Signature against the JWS Signing Input
        ASCII(BASE64URL(UTF8(JWS Protected Header)) || '.' ||
        BASE64URL(JWS Payload)) in the manner defined for the algorithm
        being used, which MUST be accurately represented by the value of
        the "alg" (algorithm) Header Parameter, which MUST be present.
        See Section 10.6 for security considerations on algorithm
        validation.  Record whether the validation succeeded or not.

  9.  If the JWS JSON Serialization is being used, repeat this process
        (steps 4-8) for each digital signature or MAC value contained in
        the representation.

  10.  If none of the validations in step 9 succeeded, then the JWS
        MUST be considered invalid.  Otherwise, in the JWS JSON
        Serialization case, return a result to the application
        indicating which of the validations succeeded and failed.  In
        the JWS Compact Serialization case, the result can simply
        indicate whether or not the JWS was successfully validated.

  Finally, note that it is an application decision which algorithms may
  be used in a given context.  Even if a JWS can be successfully
  validated, unless the algorithm(s) used in the JWS are acceptable to
  the application, it SHOULD consider the JWS to be invalid.

5.3.  String Comparison Rules

  Processing a JWS inevitably requires comparing known strings to
  members and values in JSON objects.  For example, in checking what
  the algorithm is, the Unicode string "alg" will be checked against
  the member names in the JOSE Header to see if there is a matching
  Header Parameter name.  The same process is then used to determine if
  the value of the "alg" Header Parameter represents a supported
  algorithm.

  The JSON rules for doing member name comparison are described in
  Section 8.3 of RFC 7159 [RFC7159].  Since the only string comparison
  operations that are performed are equality and inequality, the same
  rules can be used for comparing both member names and member values
  against known strings.

  These comparison rules MUST be used for all JSON string comparisons
  except in cases where the definition of the member explicitly calls
  out that a different comparison rule is to be used for that member
  value.  Only the "typ" and "cty" member values defined in this
  specification do not use these comparison rules.

Jones, et al.            Expires July 3, 2015                [Page 18]
2010-08-26
03 Adrian Farrel [Ballot Position Update] New position, No Objection, has been recorded by Adrian Farrel
2010-08-25
03 Samuel Weiler Request for Last Call review by SECDIR Completed. Reviewer: Catherine Meadows.
2010-08-24
03 Robert Sparks [Ballot Position Update] New position, No Objection, has been recorded by Robert Sparks
2010-08-17
03 Lars Eggert State changed to IESG Evaluation from Waiting for AD Go-Ahead by Lars Eggert
2010-08-13
03 Cindy Morgan Last Call ran from 2010-07-29 through 2010-08-12.  (See http://www.ietf.org/mail-archive/web/ietf-announce/current/msg07734.html)
2010-08-13
03 Cindy Morgan State changed to Waiting for AD Go-Ahead from Last Call Requested by Cindy Morgan
2010-08-13
03 Cindy Morgan Last Call ran from 2010-07-29 through 2010-08-12.  (See http://www.ietf.org/mail-archive/web/ietf-announce/current/msg07734.html)
2010-08-11
03 Michelle Cotton IANA Last Call Comments:

IANA understands that, upon approval of this document, there are no IANA Actions
that need to be completed
2010-08-10
03 Amy Vezza Telechat date was changed to 2010-08-26 from 2010-08-12 by Amy Vezza
2010-08-10
03 Amy Vezza Telechat date has been changed to 2010-08-12 from None by Amy Vezza
2010-07-30
03 Samuel Weiler Request for Last Call review by SECDIR is assigned to Catherine Meadows
2010-07-30
03 Samuel Weiler Request for Last Call review by SECDIR is assigned to Catherine Meadows
2010-07-29
03 Lars Eggert Placed on agenda for telechat - 2010-08-26 by Lars Eggert
2010-07-29
03 Lars Eggert [Ballot Position Update] New position, Yes, has been recorded for Lars Eggert
2010-07-29
03 Lars Eggert Ballot has been issued by Lars Eggert
2010-07-29
03 Lars Eggert Created "Approve" ballot
2010-07-29
03 Lars Eggert Last Call was requested by Lars Eggert
2010-07-29
03 Lars Eggert State changed to Last Call Requested from AD Evaluation::AD Followup by Lars Eggert
2010-07-29
03 (System) Ballot writeup text was added
2010-07-29
03 (System) Last call text was added
2010-07-29
03 (System) Ballot approval text was added
2010-07-29
03 (System) Sub state has been changed to AD Follow up from New Id Needed
2010-07-29
02 (System) New version available: draft-ietf-tcpm-tcp-lcd-02.txt
2010-07-29
03 (System) Last call sent
2010-07-25
03 Lars Eggert State changed to AD Evaluation::Revised ID Needed from Publication Requested by Lars Eggert
2010-07-22
03 Cindy Morgan
  (1.a) Who is the Document Shepherd for this document? Has the
        Document Shepherd personally reviewed this version of the
  …
  (1.a) Who is the Document Shepherd for this document? 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?


Wesley Eddy (Wesley.M.Eddy@nasa.gov) is the document shepherd.  He
has personally reviewed this version and believes it is ready for
forwarding to the IESG for publication.



  (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? 


The document has had review in the TCPM working group, and underwent
several revisions (mainly prior to adoption as a WG document) based
on mailing list discussion and face-to-face presentations at meetings.
No feedback was received during working group last call, but it seems
that all of the original issues raised have been worked to closure
previously.  The shepherd has no concerns about the depth or breadth
of the reviews.  The evolution of the content is well-documented in
Appendix A of the draft.


  (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. 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.


No concerns.



  (1.e) How solid is the WG consensus behind this document? 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? 


There has been a reasonable amount of support & interest behind this in the
past, though the WGLC was quiet.  There have not been objections since it
was adopted as a working group document.



  (1.f) Has anyone threatened an appeal or otherwise indicated extreme
        discontent? If so, please summarise 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.


  (1.g) Has the Document Shepherd personally verified that the
        document satisfies all ID nits? (See the Internet-Drafts Checklist
        and http://tools.ietf.org/tools/idnits/). 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?



There is one outdated reference that would easily be fixed by the RFC Editor,
and the boilerplate is the 9/12/09 version rather than the 12/28/09 version.



  (1.h) Has the document split its references into normative and
        informative? 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].


The references are properly split.



  (1.i) Has the Document Shepherd verified that the document IANA
        consideration section exists and is consistent with the body
        of the document? If the document specifies protocol
        extensions, are reservations requested in appropriate IANA
        registries? Are the IANA registries clearly identified? If
        the document creates a new registry, does it define the
        proposed initial contents of the registry and an allocation
        procedure for future registrations? Does it suggest a
        reasonable name for the new registry? See [RFC5226]. If the
        document describes an Expert Review process has Shepherd
        conferred with the Responsible Area Director so that the IESG
        can appoint the needed Expert during the IESG Evaluation?



The IANA Considerations are present.



  (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?


Not Applicable.



  (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.


From abstract:

  Disruptions in end-to-end path connectivity, which last longer than
  one retransmission timeout, cause suboptimal TCP performance.  The
  reason for this performance degradation is that TCP interprets
  segment loss induced by long connectivity disruptions as a sign of
  congestion, resulting in repeated retransmission timer backoffs.
  This, in turn, leads to a delayed detection of the re-establishment
  of the connection since TCP waits for the next retransmission timeout
  before it attempts a retransmission.

  This document proposes an algorithm to make TCP more robust to long
  connectivity disruptions (TCP-LCD).  It describes how standard ICMP
  messages can be exploited during timeout-based loss recovery to
  disambiguate true congestion loss from non-congestion loss caused by
  connectivity disruptions.  Moreover, a revert strategy of the
  retransmission timer is specified that enables a more prompt
  detection of whether or not the connectivity to a previously
  disconnected peer node has been restored.  TCP-LCD is a TCP sender-
  only modification that effectively improves TCP performance in case
  of connectivity disruptions.




    Working Group Summary
        Was there anything in WG process that is worth noting? For
        example, was there controversy about particular points or
        were there decisions where the consensus was particularly
        rough?

Nothing exceptional occurred during the working group process for this
document.


    Document Quality
        Are there existing implementations of the protocol? Have a
        significant number of vendors indicated their plan to
        implement the specification? 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? 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?

There is an existing implementation in Linux, which was worked on by
the document authors.  This has been in the vanilla kernel since version
2.6.32 (for about a year) and always enabled.  Several Linux distributions
have shipped with this and no negative experiences have been reported that
were isolated to this mechanism.
2010-07-22
03 Cindy Morgan Draft Added by Cindy Morgan in state Publication Requested
2010-07-22
03 Cindy Morgan [Note]: 'Wesley Eddy (Wesley.M.Eddy@nasa.gov) is the document shepherd.' added by Cindy Morgan
2010-03-30
01 (System) New version available: draft-ietf-tcpm-tcp-lcd-01.txt
2009-11-18
00 (System) New version available: draft-ietf-tcpm-tcp-lcd-00.txt