rfc9170.original.xml | rfc9170.xml | |||
---|---|---|---|---|
<?xml version='1.0' encoding='utf-8'?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<!DOCTYPE rfc [ | <!DOCTYPE rfc [ | |||
<!ENTITY nbsp " "> | <!ENTITY nbsp " "> | |||
<!ENTITY zwsp "​"> | <!ENTITY zwsp "​"> | |||
<!ENTITY nbhy "‑"> | <!ENTITY nbhy "‑"> | |||
<!ENTITY wj "⁠"> | <!ENTITY wj "⁠"> | |||
]> | ]> | |||
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | ||||
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.5.6 --> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | |||
<?rfc toc="yes"?> | -iab-use-it-or-lose-it-04" number="9170" obsoletes="" updates="" submissionType= | |||
<?rfc sortrefs="yes"?> | "IAB" category="info" consensus="true" xml:lang="en" tocInclude="true" sortRefs= | |||
<?rfc symrefs="yes"?> | "true" symRefs="true" version="3"> | |||
<?rfc docmapping="yes"?> | ||||
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | ||||
-iab-use-it-or-lose-it-04" category="info" obsoletes="" updates="" submissionTyp | ||||
e="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version= | ||||
"3"> | ||||
<!-- xml2rfc v2v3 conversion 3.10.0 --> | ||||
<front> | <front> | |||
<title abbrev="Use It Or Lose It">Long-term Viability of Protocol Extension | <title abbrev="Use It or Lose It">Long-Term Viability of Protocol Extension | |||
Mechanisms</title> | Mechanisms</title> | |||
<seriesInfo name="Internet-Draft" value="draft-iab-use-it-or-lose-it-04"/> | <seriesInfo name="RFC" value="9170"/> | |||
<author initials="M." surname="Thomson" fullname="Martin Thomson"> | <author initials="M." surname="Thomson" fullname="Martin Thomson"> | |||
<organization>Mozilla</organization> | ||||
<address> | <address> | |||
<email>mt@lowentropy.net</email> | <email>mt@lowentropy.net</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="T." surname="Pauly" fullname="Tommy Pauly"> | <author initials="T." surname="Pauly" fullname="Tommy Pauly"> | |||
<organization>Apple</organization> | ||||
<address> | <address> | |||
<email>tpauly@apple.com</email> | <email>tpauly@apple.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date year="2021" month="October" day="13"/> | <date year="2021" month="December"/> | |||
<keyword>Extensions</keyword> | ||||
<keyword>versions</keyword> | ||||
<keyword>grease</keyword> | ||||
<abstract> | <abstract> | |||
<t>The ability to change protocols depends on exercising the extension and | <t>The ability to change protocols depends on exercising the extension | |||
version | and version-negotiation mechanisms that support change. This document | |||
negotiation mechanisms that support change. This document explores how regular | explores how regular use of new protocol features can ensure that it | |||
use of new protocol features can ensure that it remains possible to deploy | remains possible to deploy changes to a protocol. Examples are given | |||
changes to a protocol. Examples are given where lack of use caused changes to be | where lack of use caused changes to be more difficult or costly.</t> | |||
more difficult or costly.</t> | ||||
</abstract> | </abstract> | |||
<note removeInRFC="true"> | ||||
<name>Discussion Venues</name> | ||||
<t>Discussion of this document takes place on the | ||||
EDM Program mailing list (edm@iab.org), | ||||
which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ed | ||||
m/"/>.</t> | ||||
<t>Source for this draft and an issue tracker can be found at | ||||
<eref target="https://github.com/intarchboard/use-it-or-lose-it"/>.</t> | ||||
</note> | ||||
</front> | </front> | |||
<middle> | <middle> | |||
<section anchor="introduction" numbered="true" toc="default"> | <section anchor="introduction" numbered="true" toc="default"> | |||
<name>Introduction</name> | <name>Introduction</name> | |||
<t>A successful protocol <xref target="SUCCESS" format="default"/> needs t | <t>A successful protocol <xref target="RFC5218" format="default"/> needs | |||
o change in ways that allow it | to change in ways that allow it to continue to fulfill the changing | |||
to continue to fulfill the changing needs of its users. New use cases, | needs of its users. New use cases, conditions, and constraints on the | |||
conditions and constraints on the deployment of a protocol can render a protocol | deployment of a protocol can render a protocol that does not change | |||
that does not change obsolete.</t> | obsolete.</t> | |||
<t>Usage patterns and requirements for a protocol shift over time. In res ponse, | <t>Usage patterns and requirements for a protocol shift over time. In res ponse, | |||
implementations might adjust usage patterns within the constraints of the | implementations might adjust usage patterns within the constraints of the | |||
protocol, the protocol could be extended, or a replacement protocol might be | protocol, the protocol could be extended, or a replacement protocol might be | |||
developed. Experience with Internet-scale protocol deployment shows that each | developed. Experience with Internet-scale protocol deployment shows that each | |||
option comes with different costs. <xref target="TRANSITIONS" format="default"/ > examines the | option comes with different costs. <xref target="RFC8170" format="default"/> ex amines the | |||
problem of protocol evolution more broadly.</t> | problem of protocol evolution more broadly.</t> | |||
<t>An extension point is a mechanism that allows a protocol to be changed or | <t>An extension point is a mechanism that allows a protocol to be changed or | |||
enhanced. This document examines the specific conditions that determine whether | enhanced. This document examines the specific conditions that determine whether | |||
protocol maintainers have the ability to design and deploy new or modified | protocol maintainers have the ability to design and deploy new or modified | |||
protocols via their specified extension points. <xref target="implementations" format="default"/> highlights | protocols via their specified extension points. <xref target="implementations" format="default"/> highlights | |||
some historical examples of difficulties in transitions to new protocol | some historical examples of difficulties in transitions to new protocol | |||
features. <xref target="use-it" format="default"/> argues that ossified protoco ls are more difficult to | features. <xref target="use-it" format="default"/> argues that ossified protoco ls are more difficult to | |||
update and describes how successful protocols make frequent use of new | update and describes how successful protocols make frequent use of new | |||
extensions and code-points. <xref target="other" format="default"/> outlines se veral additional strategies | extensions and code points. <xref target="other" format="default"/> outlines se veral additional strategies | |||
that might aid in ensuring that protocol changes remain possible over time.</t> | that might aid in ensuring that protocol changes remain possible over time.</t> | |||
<t>The experience that informs this document is predominantly at "higher" layers of | <t>The experience that informs this document is predominantly at "higher" layers of | |||
the network stack, in protocols with limited numbers of participants. Though | the network stack, in protocols with limited numbers of participants. Though | |||
similar issues are present in many protocols that operate at scale, the | similar issues are present in many protocols that operate at scale, the | |||
tradeoffs involved with applying some of the suggested techniques can be more | trade-offs involved with applying some of the suggested techniques can be more | |||
complex when there are many participants, such as at the network layer or in | complex when there are many participants, such as at the network layer or in | |||
routing systems.</t> | routing systems.</t> | |||
</section> | </section> | |||
<section anchor="implementations" numbered="true" toc="default"> | <section anchor="implementations" numbered="true" toc="default"> | |||
<name>Imperfect Implementations Limit Protocol Evolution</name> | <name>Imperfect Implementations Limit Protocol Evolution</name> | |||
<t>It can be extremely difficult to deploy a change to a protocol if | <t>It can be extremely difficult to deploy a change to a protocol if | |||
implementations with which the new deployment needs to interoperate do not | implementations with which the new deployment needs to interoperate do | |||
operate predictably. Variation in how new codepoints or extensions are handled | not operate predictably. Variation in how new code points or extensions | |||
can be the result of bugs in implementation or specifications. Unpredictability | are handled can be the result of bugs in implementation or | |||
can manifest as abrupt termination of sessions, errors, crashes, or | specifications. | |||
disappearances of endpoints and timeouts.</t> | ||||
<t>The risk of interoperability problems can in turn make it infeasible to | Unpredictability can manifest as errors, crashes, timeouts, abrupt | |||
deploy certain protocol changes. If deploying a new codepoint or extension | termination of sessions, or disappearances of endpoints. | |||
makes an implementation less reliable than others, even if only in rare cases, | ||||
it is far less likely that implementations will adopt the change.</t> | </t> | |||
<t>Deploying a change to a protocol could require implementations to fix a | <t>The risk of interoperability problems can in turn make it infeasible | |||
substantial proportion of the bugs that the change exposes. This can | to deploy certain protocol changes. If deploying a new code point or | |||
involve a difficult process that includes identifying the cause of | extension makes an implementation less reliable than others, even if | |||
these errors, finding the responsible implementation(s), coordinating a | only in rare cases, it is far less likely that implementations will | |||
bug fix and release plan, contacting users and/or the operator of affected | adopt the change.</t> | |||
services, and waiting for the fix to be deployed.</t> | <t>Deploying a change to a protocol could require implementations to fix | |||
<t>Given the effort involved in fixing problems, the existence of these so | a substantial proportion of the bugs that the change exposes. This can | |||
rts of | involve a difficult process that includes identifying the cause of these | |||
bugs can outright prevent the deployment of some types of protocol changes, | errors, finding the responsible implementation(s), coordinating a bug | |||
especially for protocols involving multiple parties or that are considered | fix and release plan, contacting users and/or the operator of affected | |||
critical infrastructure (e.g., IP, BGP, DNS, or TLS). It could even be | services, and waiting for the fix to be deployed.</t> | |||
necessary to come up with a new protocol design that uses a different method to | <t>Given the effort involved in fixing problems, the existence of these | |||
achieve the same result.</t> | sorts of bugs can outright prevent the deployment of some types of | |||
protocol changes, especially for protocols involving multiple parties or | ||||
that are considered critical infrastructure (e.g., IP, BGP, DNS, or | ||||
TLS). It could even be necessary to come up with a new protocol design | ||||
that uses a different method to achieve the same result.</t> | ||||
<t>This document only addresses cases where extensions are not deliberatel y | <t>This document only addresses cases where extensions are not deliberatel y | |||
blocked. Some deployments or implementations apply policies that explicitly | blocked. Some deployments or implementations apply policies that explicitly | |||
prohibit the use of unknown capabilities. This is especially true of functions | prohibit the use of unknown capabilities. This is especially true of functions | |||
that seek to make security guarantees, like firewalls.</t> | that seek to make security guarantees, like firewalls.</t> | |||
<t>The set of interoperable features in a protocol is often the subset of its | <t>The set of interoperable features in a protocol is often the subset of its | |||
features that have some value to those implementing and deploying the protocol. | features that have some value to those implementing and deploying the protocol. | |||
It is not always the case that future extensibility is in that set.</t> | It is not always the case that future extensibility is in that set.</t> | |||
<section anchor="not-good-enough" numbered="true" toc="default"> | <section anchor="not-good-enough" numbered="true" toc="default"> | |||
<name>Good Protocol Design is Not Itself Sufficient</name> | <name>Good Protocol Design Is Not Itself Sufficient</name> | |||
<t>It is often argued that the careful design of a protocol extension po | <t>It is often argued that the careful design of a protocol extension | |||
int or | point or version-negotiation capability is critical to the freedom | |||
version negotiation capability is critical to the freedom that it ultimately | that it ultimately offers.</t> | |||
offers.</t> | <t>RFC 6709 <xref target="RFC6709" format="default"/> contains a great | |||
<t>RFC 6709 <xref target="EXTENSIBILITY" format="default"/> contains a g | deal of well-considered advice on designing for extensions. It | |||
reat deal of well-considered | includes the following advice:</t> | |||
advice on designing for extension. It includes the following advice:</t> | ||||
<ul empty="true"> | <blockquote> | |||
<li> | <t> | |||
<t>This means that, to be useful, a protocol version-negotiation mec | This means that, to be useful, a protocol version-negotiation mechanism | |||
hanism | ||||
should be simple enough that it can reasonably be assumed that all the | should be simple enough that it can reasonably be assumed that all the | |||
implementers of the first protocol version at least managed to implement the | implementers of the first protocol version at least managed to implement the | |||
version-negotiation mechanism correctly.</t> | version-negotiation mechanism correctly. | |||
</li> | </t> | |||
</ul> | </blockquote> | |||
<t>There are a number of protocols for which this has proven to be insuf | ||||
ficient in | <t>There are a number of protocols for which this has proven to be insufficient | |||
in | ||||
practice. These protocols have imperfect implementations of these mechanisms. | practice. These protocols have imperfect implementations of these mechanisms. | |||
Mechanisms that aren't used are the ones that fail most often. The same | Mechanisms that aren't used are the ones that fail most often. The same | |||
paragraph from RFC 6709 acknowledges the existence of this problem, but does not | paragraph from RFC 6709 acknowledges the existence of this problem but does not | |||
offer any remedy:</t> | offer any remedy:</t> | |||
<ul empty="true"> | ||||
<li> | <blockquote> | |||
<t>The nature of protocol version-negotiation mechanisms is that, by | <t> | |||
definition, | The nature of protocol version-negotiation mechanisms is that, by | |||
they don't get widespread real-world testing until <em>after</em> the base pro | definition, they don't get widespread real-world testing until | |||
tocol | <strong>after</strong> the base protocol has been deployed for a while, and | |||
has been deployed for a while, and its deficiencies have become evident.</t> | its | |||
</li> | deficiencies have become evident. | |||
</ul> | </t> | |||
</blockquote> | ||||
<t>Indeed, basic interoperability is considered critical early in the de ployment of | <t>Indeed, basic interoperability is considered critical early in the de ployment of | |||
a protocol. A desire to deploy can result in early focus on a reduced feature | a protocol. A desire to deploy can result in early focus on a reduced feature | |||
set, which could result in deferring implementation of version negotiation and | set, which could result in deferring implementation of version-negotiation and | |||
extension mechanisms. This leads to these mechanisms being particularly | extension mechanisms. This leads to these mechanisms being particularly | |||
affected by this problem.</t> | affected by this problem.</t> | |||
</section> | </section> | |||
<section anchor="disuse" numbered="true" toc="default"> | <section anchor="disuse" numbered="true" toc="default"> | |||
<name>Disuse Can Hide Problems</name> | <name>Disuse Can Hide Problems</name> | |||
<t>There are many examples of extension points in protocols that have be en either | <t>There are many examples of extension points in protocols that have be en either | |||
completely unused, or their use was so infrequent that they could no longer be | completely unused or their use was so infrequent that they could no longer be | |||
relied upon to function correctly.</t> | relied upon to function correctly.</t> | |||
<t><xref target="examples" format="default"/> includes examples of disus e in a number of widely deployed Internet | <t><xref target="examples" format="default"/> includes examples of disus e in a number of widely deployed Internet | |||
protocols.</t> | protocols.</t> | |||
<t>Even where extension points have multiple valid values, if the set of | <t>Even where extension points have multiple valid values, if the set | |||
permitted | of permitted values does not change over time, there is still a risk | |||
values does not change over time, there is still a risk that new values are not | that new values are not tolerated by existing implementations. If the | |||
tolerated by existing implementations. If the set of values for a particular | set of values for a particular field of a protocol or the order in which | |||
field or the order in which these values appear of a | these | |||
protocol remains fixed over a long period, some implementations might not | values appear remains fixed over a long period, some | |||
correctly handle a new value when it is introduced. For example, | implementations might not correctly handle a new value when it is | |||
implementations of TLS broke when new values of the signature_algorithms | introduced. For example, implementations of TLS broke when new values | |||
extension were introduced.</t> | of the signature_algorithms extension were introduced.</t> | |||
</section> | </section> | |||
<section anchor="middleboxes" numbered="true" toc="default"> | <section anchor="middleboxes" numbered="true" toc="default"> | |||
<name>Multi-Party Interactions and Middleboxes</name> | <name>Multi-party Interactions and Middleboxes</name> | |||
<t>One of the key challenges in deploying new features is ensuring compa tibility | <t>One of the key challenges in deploying new features is ensuring compa tibility | |||
with all actors that could be involved in the protocol. Even the most | with all actors that could be involved in the protocol. Even the most | |||
superficially simple protocols can often involve more actors than is immediately | superficially simple protocols can often involve more actors than is immediately | |||
apparent.</t> | apparent.</t> | |||
<t>The design of extension points needs to consider what actions middleb oxes | <t>The design of extension points needs to consider what actions middleb oxes | |||
might take in response to a protocol change, as well as the effect those actions | might take in response to a protocol change as well as the effect those actions | |||
could have on the operation of the protocol.</t> | could have on the operation of the protocol.</t> | |||
<t>Deployments of protocol extensions also need to consider the impact | <t>Deployments of protocol extensions also need to consider the impact | |||
of the changes on entities beyond protocol participants and middleboxes. | of the changes on entities beyond protocol participants and middleboxes. | |||
Protocol changes can affect the behavior of applications or systems | Protocol changes can affect the behavior of applications or systems | |||
that don't directly interact with the protocol, such as when a protocol | that don't directly interact with the protocol, such as when a protocol | |||
change modifies the formatting of data delivered to an application.</t> | change modifies the formatting of data delivered to an application.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="use-it" numbered="true" toc="default"> | <section anchor="use-it" numbered="true" toc="default"> | |||
<name>Active Use</name> | <name>Active Use</name> | |||
skipping to change at line 175 ¶ | skipping to change at line 180 ¶ | |||
could have on the operation of the protocol.</t> | could have on the operation of the protocol.</t> | |||
<t>Deployments of protocol extensions also need to consider the impact | <t>Deployments of protocol extensions also need to consider the impact | |||
of the changes on entities beyond protocol participants and middleboxes. | of the changes on entities beyond protocol participants and middleboxes. | |||
Protocol changes can affect the behavior of applications or systems | Protocol changes can affect the behavior of applications or systems | |||
that don't directly interact with the protocol, such as when a protocol | that don't directly interact with the protocol, such as when a protocol | |||
change modifies the formatting of data delivered to an application.</t> | change modifies the formatting of data delivered to an application.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="use-it" numbered="true" toc="default"> | <section anchor="use-it" numbered="true" toc="default"> | |||
<name>Active Use</name> | <name>Active Use</name> | |||
<t>The design of a protocol for extensibility and eventual replacement | <t>The design of a protocol for extensibility and eventual replacement | |||
<xref target="EXTENSIBILITY" format="default"/> does not guarantee the ability t | <xref target="RFC6709" format="default"/> does not guarantee the ability | |||
o exercise those options. | to exercise those options. The set of features that enable future | |||
The set of features that enable future evolution need to be interoperable in the | evolution need to be interoperable in the first implementations and | |||
first implementations and deployments of the protocol. Implementation of | deployments of the protocol. Implementation of mechanisms that support | |||
mechanisms that support evolution is necessary to ensure that they remain | evolution is necessary to ensure that they remain available for new | |||
available for new uses, and history has shown this occurs almost exclusively | uses, and history has shown this occurs almost exclusively through | |||
through active mechanism use.</t> | active mechanism use.</t> | |||
<t>Only by using the extension capabilities of a protocol is the availabil | <t>Only by using the extension capabilities of a protocol is the | |||
ity of that | availability of that capability assured. "Using" here includes | |||
capability assured. "Using" here includes specifying, implementing, and | specifying, implementing, and deploying capabilities that rely on the | |||
deploying capabilities that rely on the extension capability. Protocols that | extension capability. Protocols that fail to use a mechanism, or a | |||
fail to use a mechanism, or a protocol that only rarely uses a mechanism, could | protocol that only rarely uses a mechanism, could lead to that mechanism | |||
lead to that mechanism being unreliable.</t> | being unreliable.</t> | |||
<t>Implementations that routinely see new values are more likely to correc | <t>Implementations that routinely see new values are more likely to | |||
tly | correctly handle new values. More frequent changes will improve the | |||
handle new values. More frequent changes will improve the likelihood that | likelihood that incorrect handling or intolerance is discovered and | |||
incorrect handling or intolerance is discovered and rectified. The longer an | rectified. The longer an intolerant implementation is deployed, the | |||
intolerant implementation is deployed, the more difficult it is to correct.</t> | more difficult it is to correct.</t> | |||
<t>Protocols that routinely add new extensions and code points rarely have | <t>Protocols that routinely add new extensions and code points rarely | |||
trouble | have trouble adding additional ones especially when the handling of new | |||
adding additional ones, especially when the handling of new versions or | versions or extensions are well defined. The definition of mechanisms | |||
extensions are well defined. The definition of mechanisms alone is | alone is insufficient; it is the assured implementation and active use | |||
insufficient; it is the assured implementation and active use of those | of those mechanisms that determines their availability.</t> | |||
mechanisms that determines their availability.</t> | <t>What constitutes "active use" can depend greatly on the environment | |||
<t>What constitutes "active use" can depend greatly on the environment in | in which a protocol is deployed. The frequency of changes necessary to | |||
which a | safeguard some mechanisms might be slow enough to attract ossification | |||
protocol is deployed. The frequency of changes necessary to safeguard some | in another protocol deployment, while being excessive in others.</t> | |||
mechanisms might be slow enough to attract ossification in another protocol | ||||
deployment, while being excessive in others.</t> | ||||
<section anchor="need-it" numbered="true" toc="default"> | <section anchor="need-it" numbered="true" toc="default"> | |||
<name>Dependency is Better</name> | <name>Dependency Is Better</name> | |||
<t>The easiest way to guarantee that a protocol mechanism is used is to | <t>The easiest way to guarantee that a protocol mechanism is used is | |||
make the | to make the handling of it critical to an endpoint participating in | |||
handling of it critical to an endpoint participating in that protocol. This | that protocol. This means that implementations must rely on both the | |||
means that implementations must rely on both the existence of extension | existence of extension mechanisms and their continued, repeated | |||
mechanisms and their continued, repeated expansion over time.</t> | expansion over time.</t> | |||
<t>For example, the message format in SMTP relies on header fields for m ost of its | <t>For example, the message format in SMTP relies on header fields for m ost of its | |||
functions, including the most basic delivery functions. A deployment of SMTP | functions, including the most basic delivery functions. A deployment of SMTP | |||
cannot avoid including an implementation of header field handling. In addition | cannot avoid including an implementation of header field handling. In addition | |||
to this, the regularity with which new header fields are defined and used | to this, the regularity with which new header fields are defined and used | |||
ensures that deployments frequently encounter header fields that they do not yet | ensures that deployments frequently encounter header fields that they do not yet | |||
(and may never) understand. An SMTP implementation therefore needs to be able | (and may never) understand. An SMTP implementation therefore needs to be able | |||
to both process header fields that it understands and ignore those that it does | to both process header fields that it understands and ignore those that it does | |||
not.</t> | not.</t> | |||
<t>In this way, implementing the extensibility mechanism is not merely m andated by | <t>In this way, implementing the extensibility mechanism is not merely m andated by | |||
the specification, it is crucial to the functioning of a protocol deployment. | the specification, it is crucial to the functioning of a protocol deployment. | |||
skipping to change at line 227 ¶ | skipping to change at line 237 ¶ | |||
would quickly become apparent.</t> | would quickly become apparent.</t> | |||
<t>Caution is advised to avoid assuming that building a dependency on an extension | <t>Caution is advised to avoid assuming that building a dependency on an extension | |||
mechanism is sufficient to ensure availability of that mechanism in the long | mechanism is sufficient to ensure availability of that mechanism in the long | |||
term. If the set of possible uses is narrowly constrained and deployments do | term. If the set of possible uses is narrowly constrained and deployments do | |||
not change over time, implementations might not see new variations or assume a | not change over time, implementations might not see new variations or assume a | |||
narrower interpretation of what is possible. Those implementations might still | narrower interpretation of what is possible. Those implementations might still | |||
exhibit errors when presented with new variations.</t> | exhibit errors when presented with new variations.</t> | |||
</section> | </section> | |||
<section anchor="version-negotiation" numbered="true" toc="default"> | <section anchor="version-negotiation" numbered="true" toc="default"> | |||
<name>Version Negotiation</name> | <name>Version Negotiation</name> | |||
<t>As noted in <xref target="not-good-enough" format="default"/>, protoc | <t>As noted in <xref target="not-good-enough" format="default"/>, | |||
ols that provide version negotiation | protocols that provide version-negotiation mechanisms might not be | |||
mechanisms might not be able to test that feature until a new version is | able to test that feature until a new version is deployed. One | |||
deployed. One relatively successful design approach has been to use the | relatively successful design approach has been to use the protocol | |||
protocol selection mechanisms built into a lower-layer protocol to select the | selection mechanisms built into a lower-layer protocol to select the | |||
protocol. This could allow a version negotiation mechanism to benefit from | protocol. This could allow a version-negotiation mechanism to benefit | |||
active use of the extension point by other protocols.</t> | from active use of the extension point by other protocols.</t> | |||
<t>For instance, all published versions of IP contain a version number a | <t>For instance, all published versions of IP contain a version number | |||
s the four | as the four high bits of the first header byte. However, version | |||
high bits of the first header byte. However, version selection using this | selection using this field proved to be unsuccessful. Ultimately, | |||
field proved to be unsuccessful. Ultimately, successful deployment of IPv6 | successful deployment of IPv6 over Ethernet <xref target="RFC2464" | |||
over Ethernet <xref target="RFC2464" format="default"/> required a different Eth | format="default"/> required a different EtherType from IPv4. This | |||
erType from IPv4. This | change took advantage of the already diverse usage of EtherType.</t> | |||
change took advantage of the already-diverse usage of EtherType.</t> | <t>Other examples of this style of design include Application-Layer | |||
<t>Other examples of this style of design include Application-Layer Prot | Protocol Negotiation (<xref target="RFC7301" format="default"/>) and | |||
ocol | HTTP content negotiation (<xref section="12" sectionFormat="of" | |||
Negotiation (<xref target="ALPN" format="default"/>) and HTTP content negotiatio | target="I-D.ietf-httpbis-semantics" format="default"/>).</t> | |||
n (<xref section="12" sectionFormat="of" target="HTTP" format="default"/>).</t> | <t>This technique relies on the code point being usable. For instance, | |||
<t>This technique relies on the codepoint being usable. For instance, t | the IP protocol number is known to be unreliable and therefore not | |||
he IP | suitable <xref target="NEW-PROTOCOLS" format="default"/>.</t> | |||
protocol number is known to be unreliable and therefore not suitable | ||||
<xref target="NEW-PROTOCOLS" format="default"/>.</t> | ||||
</section> | </section> | |||
<section anchor="grease" numbered="true" toc="default"> | <section anchor="grease" numbered="true" toc="default"> | |||
<name>Falsifying Active Use</name> | <name>Falsifying Active Use</name> | |||
<t>"Grease" was originally defined for TLS <xref target="GREASE" format= | ||||
"default"/>, but has been | <t>"Grease" was originally defined for TLS <xref target="RFC8701" | |||
adopted by other protocols, such as QUIC <xref target="QUIC" format="default"/>. | format="default"/> but has been adopted by other protocols such as | |||
Grease identifies | QUIC <xref target="RFC9000" format="default"/>. Grease identifies | |||
lack of use as an issue (protocol mechanisms "rusting" shut) and proposes | lack of use as an issue (protocol mechanisms "rusting" shut) and | |||
reserving values for extensions that have no semantic value attached.</t> | proposes reserving values for extensions that have no semantic value | |||
<t>The design in <xref target="GREASE" format="default"/> is aimed at th | attached.</t> | |||
e style of negotiation most used in TLS, | <t>The design in <xref target="RFC8701" format="default"/> is aimed at | |||
where one endpoint offers a set of options and the other chooses the one that it | the style of negotiation most used in TLS, where one endpoint offers a | |||
most prefers from those that it supports. An endpoint that uses grease randomly | set of options and the other chooses the one that it most prefers from | |||
offers options - usually just one - from a set of reserved values. These values | those that it supports. An endpoint that uses grease randomly offers | |||
are guaranteed to never be assigned real meaning, so its peer will never have | options, usually just one, from a set of reserved values. These | |||
cause to genuinely select one of these values.</t> | values are guaranteed to never be assigned real meaning, so its peer | |||
<t>More generally, greasing is used to refer to any attempt to exercise | will never have cause to genuinely select one of these values.</t> | |||
extension | <t>More generally, greasing is used to refer to any attempt to | |||
points without changing endpoint behavior, other than to encourage participants | exercise extension points without changing endpoint behavior other | |||
to tolerate new or varying values of protocol elements.</t> | than to encourage participants to tolerate new or varying values of | |||
<t>The principle that grease operates on is that an implementation that | protocol elements.</t> | |||
is | ||||
regularly exposed to unknown values is less likely to be intolerant of new | <t>The principle that grease operates on is that an implementation | |||
values when they appear. This depends largely on the assumption that the | that is regularly exposed to unknown values is less likely to be | |||
difficulty of implementing the extension mechanism correctly is as easy or | intolerant of new values when they appear. This depends largely on | |||
easier than implementing code to identify and filter out reserved values. | the assumption that the difficulty of implementing the extension | |||
Reserving random or unevenly distributed values for this purpose is thought to | mechanism correctly is as easy or easier than implementing code to | |||
further discourage special treatment.</t> | identify and filter out reserved values. Reserving random or unevenly | |||
<t>Without reserved greasing codepoints, an implementation can use code | distributed values for this purpose is thought to further discourage | |||
points from | special treatment.</t> | |||
spaces used for private or experimental use if such a range exists. In addition | <t>Without reserved greasing code points, an implementation can use | |||
to the risk of triggering participation in an unwanted experiment, this can be | code points from spaces used for private or experimental use if such a | |||
less effective. Incorrect implementations might still be able to identify these | range exists. In addition to the risk of triggering participation in | |||
code points and ignore them.</t> | an unwanted experiment, this can be less effective. Incorrect | |||
<t>In addition to advertising bogus capabilities, an endpoint might also | implementations might still be able to identify these code points and | |||
selectively disable non-critical protocol elements to test the ability of peers | ignore them.</t> | |||
to handle the absence of certain capabilities.</t> | <t>In addition to advertising bogus capabilities, an endpoint might | |||
<t>This style of defensive design is limited because it is only superfic | also selectively disable noncritical protocol elements to test the | |||
ial. As | ability of peers to handle the absence of certain capabilities.</t> | |||
greasing only mimics active use of an extension point, it only exercises a small | <t>This style of defensive design is limited because it is only | |||
part of the mechanisms that support extensibility. More critically, it does not | superficial. As greasing only mimics active use of an extension | |||
easily translate to all forms of extension points. For instance, HMSV | point, it only exercises a small part of the mechanisms that support | |||
negotiation cannot be greased in this fashion. Other techniques might be | extensibility. More critically, it does not easily translate to all | |||
necessary for protocols that don't rely on the particular style of exchange that | forms of extension points. For instance, highest mutually supported | |||
is predominant in TLS.</t> | version (HMSV) negotiation cannot be greased in this fashion. Other | |||
techniques might be necessary for protocols that don't rely on the | ||||
particular style of exchange that is predominant in TLS.</t> | ||||
<t>Grease is deployed with the intent of quickly revealing errors in imp lementing | <t>Grease is deployed with the intent of quickly revealing errors in imp lementing | |||
the mechanisms it safeguards. Though it has been effective at revealing | the mechanisms it safeguards. Though it has been effective at revealing | |||
problems in some cases with TLS, the efficacy of greasing isn't proven more | problems in some cases with TLS, the efficacy of greasing isn't proven more | |||
generally. Where implementations are able to tolerate a non-zero error rate in | generally. Where implementations are able to tolerate a non-zero error rate in | |||
their operation, greasing offers a potential option for safeguarding future | their operation, greasing offers a potential option for safeguarding future | |||
extensibility. However, this relies on there being a sufficient proportion of | extensibility. However, this relies on there being a sufficient proportion of | |||
participants that are willing to invest the effort and tolerate the risk of | participants that are willing to invest the effort and tolerate the risk of | |||
interoperability failures.</t> | interoperability failures.</t> | |||
</section> | </section> | |||
<section anchor="ex-active" numbered="true" toc="default"> | <section anchor="ex-active" numbered="true" toc="default"> | |||
<name>Examples of Active Use</name> | <name>Examples of Active Use</name> | |||
<t>Header fields in email <xref target="SMTP" format="default"/>, HTTP < | <t>Header fields in email <xref target="RFC5321" format="default"/>, | |||
xref target="HTTP" format="default"/> and SIP | HTTP <xref target="I-D.ietf-httpbis-semantics" format="default"/>, and S | |||
<xref target="SIP" format="default"/> all derive from the same basic design, whi | IP <xref | |||
ch amounts to a list | target="RFC3261" format="default"/> all derive from the same basic | |||
name/value pairs. There is no evidence of significant barriers to deploying | design, which amounts to a list of name/value pairs. There is no | |||
header fields with new names and semantics in email and HTTP as clients and | evidence of significant barriers to deploying header fields with new | |||
servers generally ignore headers they do not understand or need. The widespread | names and semantics in email and HTTP as clients and servers generally | |||
deployment of SIP B2BUAs, which generally do not ignore unknown fields, means | ignore headers they do not understand or need. The widespread | |||
that new SIP header fields do not reliably reach peers. This does not | deployment of SIP back-to-back user agents (B2BUAs), which generally | |||
necessarily cause interoperability issues in SIP but rather causes features to | do not ignore unknown fields, means that new SIP header fields do not | |||
remain unavailable until the B2BUA is updated. All three protocols are still | reliably reach peers. This does not necessarily cause | |||
able to deploy new features reliably, but SIP features are deployed more slowly | interoperability issues in SIP but rather causes features to remain | |||
due to the larger number of active participants that need to support new | unavailable until the B2BUA is updated. All three protocols are still | |||
features.</t> | able to deploy new features reliably, but SIP features are deployed | |||
more slowly due to the larger number of active participants that need | ||||
to support new features.</t> | ||||
<t>As another example, the attribute-value pairs (AVPs) in Diameter | <t>As another example, the attribute-value pairs (AVPs) in Diameter | |||
<xref target="DIAMETER" format="default"/> are fundamental to the design of the protocol. Any use of | <xref target="RFC6733" format="default"/> are fundamental to the design of the p rotocol. Any use of | |||
Diameter requires exercising the ability to add new AVPs. This is routinely | Diameter requires exercising the ability to add new AVPs. This is routinely | |||
done without fear that the new feature might not be successfully deployed.</t> | done without fear that the new feature might not be successfully deployed.</t> | |||
<t>These examples show extension points that are heavily used are also b eing | <t>These examples show extension points that are heavily used are also b eing | |||
relatively unaffected by deployment issues preventing addition of new values | relatively unaffected by deployment issues preventing addition of new values | |||
for new use cases.</t> | for new use cases.</t> | |||
<t>These examples show that a good design is not required for success. On the | <t>These examples show that a good design is not required for success. On the | |||
contrary, success is often despite shortcomings in the design. For instance, | contrary, success is often despite shortcomings in the design. For instance, | |||
the shortcomings of HTTP header fields are significant enough that there are | the shortcomings of HTTP header fields are significant enough that there are | |||
ongoing efforts to improve the syntax <xref target="HTTP-HEADERS" format="defaul t"/>.</t> | ongoing efforts to improve the syntax <xref target="RFC8941" format="default"/>. </t> | |||
</section> | </section> | |||
<section anchor="restoring-active-use" numbered="true" toc="default"> | <section anchor="restoring-active-use" numbered="true" toc="default"> | |||
<name>Restoring Active Use</name> | <name>Restoring Active Use</name> | |||
<t>With enough effort, active use can be used to restore capabililities. | <t>With enough effort, active use can be used to restore capabilities.</ | |||
</t> | t> | |||
<t>EDNS <xref target="EDNS" format="default"/> was defined to provide ex | <t>Extension Mechanisms for DNS (<xref target="RFC6891" | |||
tensibility in DNS. Intolerance | format="default"/>) was defined to provide extensibility in DNS. | |||
of the extension in DNS servers resulted in a fallback method being widely | Intolerance of the extension in DNS servers resulted in a fallback | |||
deployed (see <xref section="6.2.2" sectionFormat="of" target="EDNS" format="def | method being widely deployed (see <xref section="6.2.2" | |||
ault"/>). This fallback resulted in EDNS being | sectionFormat="of" target="RFC6891" format="default"/>). This | |||
disabled for affected servers. Over time, greater support for EDNS and | fallback resulted in EDNS being disabled for affected servers. Over | |||
increased reliance on it for different features motivated a flag day | time, greater support for EDNS and increased reliance on it for | |||
<xref target="DNSFLAGDAY" format="default"/> where the workaround was removed.</ | different features motivated a flag day <xref target="DNSFLAGDAY" | |||
t> | format="default"/> where the workaround was removed.</t> | |||
<t>The EDNS example shows that effort can be used to restore capabilitie s. This is | <t>The EDNS example shows that effort can be used to restore capabilitie s. This is | |||
in part because EDNS was actively used with most resolvers and servers. It was | in part because EDNS was actively used with most resolvers and servers. It was | |||
therefore possible to force a change to ensure that extension capabilities would | therefore possible to force a change to ensure that extension capabilities would | |||
always be available. However, this required an enormous coordination effort. A | always be available. However, this required an enormous coordination effort. A | |||
small number of incompatible servers and the names they serve also became | small number of incompatible servers and the names they serve also became | |||
inaccessible to most clients.</t> | inaccessible to most clients.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="other" numbered="true" toc="default"> | <section anchor="other" numbered="true" toc="default"> | |||
<name>Complementary Techniques</name> | <name>Complementary Techniques</name> | |||
<t>The protections to protocol evolution that come from <xref target="use- it" format="default">active use</xref> can | <t>The protections to protocol evolution that come from <xref target="use- it" format="default">active use</xref> can | |||
be improved through the use of other defensive techniques. The techniques listed | be improved through the use of other defensive techniques. The techniques listed | |||
here might not prevent ossification on their own, but can make active use more | here might not prevent ossification on their own, but they can make active use m ore | |||
effective.</t> | effective.</t> | |||
<section anchor="fewer-extension-points" numbered="true" toc="default"> | ||||
<section anchor="fewer-extension-points" numbered="true" toc="default"> | ||||
<name>Fewer Extension Points</name> | <name>Fewer Extension Points</name> | |||
<t>A successful protocol will include many potential types of extension. | <t>A successful protocol will include many potential types of | |||
Designing | extensions. Designing multiple types of extension mechanisms, each | |||
multiple types of extension mechanism, each suited to a specific purpose, might | suited to a specific purpose, might leave some extension points less | |||
leave some extension points less heavily used than others.</t> | heavily used than others.</t> | |||
<t>Disuse of a specialized extension point might render it unusable. In | <t>Disuse of a specialized extension point might render it unusable. | |||
contrast, | In contrast, having a smaller number of extension points with wide | |||
having a smaller number of extension points with wide applicability could | applicability could improve the use of those extension points. Use of | |||
improve the use of those extension points. Use of a shared extension point for | a shared extension point for any purpose can protect rarer or more | |||
any purpose can protect rarer or more specialized uses.</t> | specialized uses.</t> | |||
<t>Both extensions and core protocol elements use the same extension poi | <t>Both extensions and core protocol elements use the same extension | |||
nts in | points in protocols like HTTP <xref target="I-D.ietf-httpbis-semantics" | |||
protocols like HTTP <xref target="HTTP" format="default"/> and DIAMETER <xref ta | format="default"/> and DIAMETER <xref target="RFC6733" | |||
rget="DIAMETER" format="default"/>; see <xref target="ex-active" format="default | format="default"/>; see <xref target="ex-active" | |||
"/>.</t> | format="default"/>.</t> | |||
</section> | </section> | |||
<section anchor="invariants" numbered="true" toc="default"> | <section anchor="invariants" numbered="true" toc="default"> | |||
<name>Invariants</name> | <name>Invariants</name> | |||
<t>Documenting aspects of the protocol that cannot or will not change as extensions | <t>Documenting aspects of the protocol that cannot or will not change as extensions | |||
or new versions are added can be a useful exercise. <xref section="2.2" sectionF ormat="of" target="RFC5704" format="default"/> | or new versions are added can be a useful exercise. <xref section="2.2" sectionF ormat="of" target="RFC5704" format="default"/> | |||
defines invariants as:</t> | defines invariants as:</t> | |||
<ul empty="true"> | <blockquote> | |||
<li> | <t> | |||
<t>Invariants are core properties that are consistent across the net | Invariants are core properties that are consistent across the network and | |||
work and do | do not change over extremely long time-scales. | |||
not change over extremely long time-scales.</t> | </t> | |||
</li> | </blockquote> | |||
</ul> | <t>Understanding what aspects of a protocol are invariant can help guide the | |||
<t>Understanding what aspects of a protocol are invariant can help guide | ||||
the | ||||
process of identifying those parts of the protocol that might change. | process of identifying those parts of the protocol that might change. | |||
<xref target="QUIC-INVARIANTS" format="default"/> and <xref section="9.3" sectio nFormat="of" target="TLS13" format="default"/> are both examples of | <xref target="RFC8999" format="default"/> and <xref section="9.3" sectionFormat= "of" target="RFC8446" format="default"/> are both examples of | |||
documented invariants.</t> | documented invariants.</t> | |||
<t>As a means of protecting extensibility, a declaration of protocol inv | <t>As a means of protecting extensibility, a declaration of protocol | |||
ariants is | invariants is useful only to the extent that protocol participants are | |||
useful only to the extent that protocol participants are willing to allow new | willing to allow new uses for the protocol. A protocol that declares | |||
uses for the protocol. A protocol that declares protocol invariants relies on | protocol invariants relies on implementations understanding and | |||
implementations understanding and respecting those invariants. If active use is | respecting those invariants. If active use is not possible for all | |||
not | non-invariant parts of the protocol, greasing (<xref target="grease" | |||
possible for all non-invariant parts of the protocol, greasing (<xref target="gr | format="default"/>) might be used to improve the chance that | |||
ease" format="default"/>) might be | invariants are respected.</t> | |||
used to improve the chance that invariants are respected.</t> | <t>Protocol invariants need to be clearly and concisely documented. | |||
<t>Protocol invariants need to be clearly and concisely documented. Inc | Including examples of aspects of the protocol that are not invariant, | |||
luding | such as <xref target="RFC8999" section="A" format="default"/>, can be | |||
examples of aspects of the protocol that are not invariant, such as <xref sectio | used to clarify intent.</t> | |||
n="A" sectionFormat="of" target="QUIC-INVARIANTS" format="default"/>, can be use | ||||
d to clarify intent.</t> | ||||
</section> | </section> | |||
<section anchor="limiting-participation" numbered="true" toc="default"> | <section anchor="limiting-participation" numbered="true" toc="default"> | |||
<name>Limiting Participation</name> | <name>Limiting Participation</name> | |||
<t>Reducing the number of entities that can participate in a protocol or | <t>Reducing the number of entities that can participate in a protocol | |||
limiting | or limiting the extent of participation can reduce the number of | |||
the extent of participation can reduce the number of entities that might affect | entities that might affect extensibility. Using TLS or other | |||
extensibility. Using TLS or other cryptographic tools can therefore reduce the | cryptographic tools can therefore reduce the number of entities that | |||
number of entities that can influence whether new features are usable.</t> | can influence whether new features are usable.</t> | |||
<t><xref target="PATH-SIGNALS" format="default"/> also recommends the us | <t><xref target="RFC8558" format="default"/> also recommends the use | |||
e of encryption and integrity | of encryption and integrity protection to limit participation. For | |||
protection to limit participation. For example, encryption is used by the QUIC | example, encryption is used by the QUIC protocol <xref | |||
protocol <xref target="QUIC" format="default"/> to limit the information that is | target="RFC9000" format="default"/> to limit the information that is | |||
available to | available to middleboxes and integrity protection prevents | |||
middleboxes and integrity protection prevents modification.</t> | modification.</t> | |||
</section> | </section> | |||
<section anchor="effective-feedback" numbered="true" toc="default"> | <section anchor="effective-feedback" numbered="true" toc="default"> | |||
<name>Effective Feedback</name> | <name>Effective Feedback</name> | |||
<t>While not a direct means of protecting extensibility mechanisms, feed | <t>While not a direct means of protecting extensibility mechanisms, | |||
back | feedback systems can be important to discovering problems.</t> | |||
systems can be important to discovering problems.</t> | <t>The visibility of errors is critical to the success of techniques lik | |||
<t>Visibility of errors is critical to the success of techniques like gr | e | |||
ease (see | grease (see <xref target="grease" format="default"/>). The grease | |||
<xref target="grease" format="default"/>). The grease design is most effective | design is most effective if a deployment has a means of detecting and | |||
if a deployment has a means of | reporting errors. Ignoring errors could allow problems to become | |||
detecting and reporting errors. Ignoring errors could allow problems to become | entrenched.</t> | |||
entrenched.</t> | <t>Feedback on errors is more important during the development and | |||
<t>Feedback on errors is more important during the development and early | early deployment of a change. It might also be helpful to disable | |||
deployment | automatic error recovery methods during development.</t> | |||
of a change. It might also be helpful to disable automatic error recovery | <t>Automated feedback systems are important for automated systems, or | |||
methods during development.</t> | where error recovery is also automated. For instance, connection | |||
<t>Automated feedback systems are important for automated systems, or wh | failures with HTTP alternative services <xref target="RFC7838" | |||
ere error | format="default"/> are not permitted to affect the outcome of | |||
recovery is also automated. For instance, connection failures with HTTP | transactions. An automated feedback system for capturing failures in | |||
alternative services <xref target="ALT-SVC" format="default"/> are not permitted | alternative services is therefore necessary for failures to be | |||
to affect the | detected.</t> | |||
outcome of transactions. An automated feedback system for capturing failures in | <t>How errors are gathered and reported will depend greatly on the | |||
alternative services is therefore necessary for failures to be detected.</t> | nature of the protocol deployment and the entity that receives the | |||
<t>How errors are gathered and reported will depend greatly on the natur | report. For instance, end users, developers, and network operations | |||
e of the | each have different requirements for how error reports are created, | |||
protocol deployment and the entity that receives the report. For instance, end | managed, and acted upon.</t> | |||
users, developers, and network operations each have different requirements for | <t>Automated delivery of error reports can be critical for rectifying | |||
how error reports are created, managed, and acted upon.</t> | deployment errors as early as possible, as seen in <xref | |||
<t>Automated delivery of error reports can be critical for rectifying de | target="RFC7489" format="default"/> and <xref target="RFC8460" | |||
ployment | format="default"/>.</t> | |||
errors as early as possible, such as seen in <xref target="DMARC" format="defaul | ||||
t"/> and | ||||
<xref target="SMTP-TLS-Reporting" format="default"/>.</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="security-considerations" numbered="true" toc="default"> | <section anchor="security-considerations" numbered="true" toc="default"> | |||
<name>Security Considerations</name> | <name>Security Considerations</name> | |||
<t>Many of the problems identified in this document are not the result of | <t>Many of the problems identified in this document are not the result | |||
deliberate actions by an adversary, but more the result of mistakes, decisions | of deliberate actions by an adversary but more the result of mistakes, | |||
made without sufficient context, or simple neglect. Problems therefore not the | decisions made without sufficient context, or simple neglect, i.e., | |||
result of opposition by an adversary. In response, the recommended measures | problems therefore not the result of opposition by an adversary. In | |||
generally assume that other protocol participants will not take deliberate | response, the recommended measures generally assume that other protocol | |||
action to prevent protocol evolution.</t> | participants will not take deliberate action to prevent protocol | |||
evolution.</t> | ||||
<t>The use of cryptographic techniques to exclude potential participants i s the | <t>The use of cryptographic techniques to exclude potential participants i s the | |||
only strong measure that the document recommends. However, authorized protocol | only strong measure that the document recommends. However, authorized protocol | |||
peers are most often responsible for the identified problems, which can mean | peers are most often responsible for the identified problems, which can mean | |||
that cryptography is insufficient to exclude them.</t> | that cryptography is insufficient to exclude them.</t> | |||
<t>The ability to design, implement, and deploy new protocol mechanisms ca n be | <t>The ability to design, implement, and deploy new protocol mechanisms ca n be | |||
critical to security. In particular, it is important to be able to replace | critical to security. In particular, it is important to be able to replace | |||
cryptographic algorithms over time <xref target="AGILITY" format="default"/>. F | cryptographic algorithms over time <xref target="RFC7696" format="default"/>. F | |||
or example, | or example, | |||
preparing for replacement of weak hash algorithms was made more difficult | preparing for the replacement of weak hash algorithms was made more difficult | |||
through misuse <xref target="HASH" format="default"/>.</t> | through misuse <xref target="HASH" format="default"/>.</t> | |||
</section> | </section> | |||
<section anchor="iana-considerations" numbered="true" toc="default"> | <section anchor="iana-considerations" numbered="true" toc="default"> | |||
<name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
<t>This document makes no request of IANA.</t> | <t>This document has no IANA actions.</t> | |||
</section> | </section> | |||
</middle> | </middle> | |||
<back> | <back> | |||
<displayreference target="I-D.ietf-httpbis-semantics" to="HTTP"/> | ||||
<displayreference target="I-D.ietf-httpbis-messaging" to="HTTP11"/> | ||||
<displayreference target="RFC5218" to="SUCCESS"/> | ||||
<displayreference target="RFC8170" to="TRANSITIONS"/> | ||||
<displayreference target="RFC6709" to="EXTENSIBILITY"/> | ||||
<displayreference target="RFC7301" to="ALPN"/> | ||||
<displayreference target="RFC8701" to="GREASE"/> | ||||
<displayreference target="RFC9000" to="QUIC"/> | ||||
<displayreference target="RFC5321" to="SMTP"/> | ||||
<displayreference target="RFC3261" to="SIP"/> | ||||
<displayreference target="RFC6733" to="DIAMETER"/> | ||||
<displayreference target="RFC8941" to="HTTP-HEADERS"/> | ||||
<displayreference target="RFC6891" to="EDNS"/> | ||||
<displayreference target="RFC8999" to="QUIC-INVARIANTS"/> | ||||
<displayreference target="RFC8558" to="PATH-SIGNALS"/> | ||||
<displayreference target="RFC7838" to="ALT-SVC"/> | ||||
<displayreference target="RFC7489" to="DMARC"/> | ||||
<displayreference target="RFC8460" to="SMTP-TLS-REPORTING"/> | ||||
<displayreference target="RFC7696" to="AGILITY"/> | ||||
<displayreference target="RFC7208" to="SPF"/> | ||||
<displayreference target="RFC3597" to="RRTYPE"/> | ||||
<displayreference target="RFC2113" to="RAv4"/> | ||||
<displayreference target="RFC2711" to="RAv6"/> | ||||
<displayreference target="RFC1157" to="SNMPv1"/> | ||||
<displayreference target="RFC0793" to="TCP"/> | ||||
<displayreference target="RFC8684" to="MPTCP"/> | ||||
<displayreference target="RFC7413" to="TFO"/> | ||||
<displayreference target="RFC5246" to="TLS12"/> | ||||
<displayreference target="RFC8446" to="TLS13"/> | ||||
<displayreference target="RFC6066" to="TLS-EXT"/> | ||||
<references> | <references> | |||
<name>Informative References</name> | <name>Informative References</name> | |||
<reference anchor="HASH" target="https://www.cs.columbia.edu/~smb/papers/n ew-hash.pdf"> | <reference anchor="HASH" target="https://www.cs.columbia.edu/~smb/papers/n ew-hash.pdf"> | |||
<front> | <front> | |||
<title>Deploying a New Hash Algorithm</title> | <title>Deploying a New Hash Algorithm</title> | |||
<author initials="S." surname="Bellovin" fullname="Steven M. Bellovin" > | <author initials="S." surname="Bellovin" fullname="Steven M. Bellovin" > | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author initials="E." surname="Rescorla" fullname="Eric M. Rescorla"> | <author initials="E." surname="Rescorla" fullname="Eric M. Rescorla"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date year="2006"/> | <date year="2006"/> | |||
</front> | </front> | |||
<seriesInfo name="Proceedings of NDSS '06" value=""/> | <refcontent>Proceedings of NDSS</refcontent> | |||
</reference> | </reference> | |||
<reference anchor="SNI" target="https://mailarchive.ietf.org/arch/msg/tls/ 1t79gzNItZd71DwwoaqcQQ_4Yxc"> | <reference anchor="SNI" target="https://mailarchive.ietf.org/arch/msg/tls/ 1t79gzNItZd71DwwoaqcQQ_4Yxc"> | |||
<front> | <front> | |||
<title>Accepting that other SNI name types will never work</title> | <title>[TLS] Accepting that other SNI name types will never work.</tit le> | |||
<author initials="A." surname="Langley" fullname="Adam Langley"> | <author initials="A." surname="Langley" fullname="Adam Langley"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date year="2016" month="March" day="03"/> | <date year="2016" month="March"/> | |||
</front> | </front> | |||
</reference> | </reference> | |||
<reference anchor="INTOLERANCE" target="https://mailarchive.ietf.org/arch/ msg/tls/bOJ2JQc3HjAHFFWCiNTIb0JuMZc"> | <reference anchor="INTOLERANCE" target="https://mailarchive.ietf.org/arch/ msg/tls/bOJ2JQc3HjAHFFWCiNTIb0JuMZc"> | |||
<front> | <front> | |||
<title>Re: [TLS] Thoughts on Version Intolerance</title> | <title>Re: [TLS] Thoughts on Version Intolerance</title> | |||
<author initials="H." surname="Kario" fullname="Hubert Kario"> | <author initials="H." surname="Kario" fullname="Hubert Kario"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date year="2016" month="July" day="20"/> | <date year="2016" month="July"/> | |||
</front> | </front> | |||
</reference> | </reference> | |||
<reference anchor="DNSFLAGDAY" target="https://dnsflagday.net/2019/"> | <reference anchor="DNSFLAGDAY" target="https://dnsflagday.net/2019/"> | |||
<front> | <front> | |||
<title>DNS Flag Day 2019</title> | <title>DNS Flag Day 2019</title> | |||
<author> | <author> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date year="2019" month="May"/> | <date year="2019" month="May"/> | |||
</front> | </front> | |||
</reference> | </reference> | |||
<reference anchor="MPTCP-HOW-HARD" target="https://www.usenix.org/conferen ce/nsdi12/technical-sessions/presentation/raiciu"> | <reference anchor="MPTCP-HOW-HARD" target="https://www.usenix.org/conferen ce/nsdi12/technical-sessions/presentation/raiciu"> | |||
<front> | <front> | |||
<title>How Hard Can It Be? Designing and Implementing a Deployable Mul tipath TCP</title> | <title>How Hard Can It Be? Designing and Implementing a Deployable Mul tipath TCP</title> | |||
<author initials="C." surname="Raiciu" fullname="Costin Raiciu"> | <author initials="C." surname="Raiciu" fullname="Costin Raiciu"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author initials="C." surname="Paasch" fullname="Christoph Paasch"> | <author initials="C." surname="Paasch" fullname="Christoph Paasch"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author initials="S." surname="Barre" fullname="Sebastien Barre"> | <author initials="S." surname="Barre" fullname="Sebastien Barre"> | |||
skipping to change at line 507 ¶ | skipping to change at line 593 ¶ | |||
</author> | </author> | |||
<author initials="O." surname="Bonaventure" fullname="Olivier Bonavent ure"> | <author initials="O." surname="Bonaventure" fullname="Olivier Bonavent ure"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author initials="M." surname="Handley" fullname="Mark Handley"> | <author initials="M." surname="Handley" fullname="Mark Handley"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date year="2012" month="April"/> | <date year="2012" month="April"/> | |||
</front> | </front> | |||
</reference> | </reference> | |||
<reference anchor="HTTP"> | ||||
<front> | ||||
<title>HTTP Semantics</title> | ||||
<author fullname="Roy T. Fielding"> | ||||
<organization>Adobe</organization> | ||||
</author> | ||||
<author fullname="Mark Nottingham"> | ||||
<organization>Fastly</organization> | ||||
</author> | ||||
<author fullname="Julian Reschke"> | ||||
<organization>greenbytes GmbH</organization> | ||||
</author> | ||||
<date day="12" month="September" year="2021"/> | ||||
<abstract> | ||||
<t> The Hypertext Transfer Protocol (HTTP) is a stateless applicat | ||||
ion- | ||||
level protocol for distributed, collaborative, hypertext information | ||||
systems. This document describes the overall architecture of HTTP, | ||||
establishes common terminology, and defines aspects of the protocol | ||||
that are shared by all versions. In this definition are core | ||||
protocol elements, extensibility mechanisms, and the "http" and | ||||
"https" Uniform Resource Identifier (URI) schemes. | ||||
This document updates RFC 3864 and obsoletes RFC 2818, RFC 7231, RFC | <reference anchor='I-D.ietf-httpbis-semantics'> | |||
7232, RFC 7233, RFC 7235, RFC 7538, RFC 7615, RFC 7694, and portions | <front> | |||
of RFC 7230. | <title>HTTP Semantics</title> | |||
<author initials='R' surname='Fielding' fullname='Roy Fielding' role="editor"> | ||||
<organization /> | ||||
</author> | ||||
<author initials='M' surname='Nottingham' fullname='Mark Nottingham' role="edito | ||||
r"> | ||||
<organization /> | ||||
</author> | ||||
<author initials='J' surname='Reschke' fullname='Julian Reschke' role="editor"> | ||||
<organization /> | ||||
</author> | ||||
<date year='2021' month='September' /> | ||||
</t> | </front> | |||
</abstract> | <seriesInfo name='Internet-Draft' value='draft-ietf-httpbis-semantics-19'/> | |||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-semantics-19 | ||||
"/> | ||||
</reference> | ||||
<reference anchor="HTTP11"> | ||||
<front> | ||||
<title>HTTP/1.1</title> | ||||
<author fullname="Roy T. Fielding"> | ||||
<organization>Adobe</organization> | ||||
</author> | ||||
<author fullname="Mark Nottingham"> | ||||
<organization>Fastly</organization> | ||||
</author> | ||||
<author fullname="Julian Reschke"> | ||||
<organization>greenbytes GmbH</organization> | ||||
</author> | ||||
<date day="12" month="September" year="2021"/> | ||||
<abstract> | ||||
<t> The Hypertext Transfer Protocol (HTTP) is a stateless applicat | ||||
ion- | ||||
level protocol for distributed, collaborative, hypertext information | ||||
systems. This document specifies the HTTP/1.1 message syntax, | ||||
message parsing, connection management, and related security | ||||
concerns. | ||||
This document obsoletes portions of RFC 7230. | </reference> | |||
<reference anchor='I-D.ietf-httpbis-messaging'> | ||||
<front> | ||||
<title>HTTP/1.1</title> | ||||
<author initials='R' surname='Fielding' fullname='Roy Fielding' role="editor"/> | ||||
<author initials='M' surname='Nottingham' fullname='Mark Nottingham' role="edito | ||||
r"/> | ||||
<author initials='J' surname='Reschke' fullname='Julian Reschke' role="editor"/> | ||||
<date year='2021' month='September'/> | ||||
</front> | ||||
<seriesInfo name='Internet-Draft' value='draft-ietf-httpbis-messaging-19'/> | ||||
</reference> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5704. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5218. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8170. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6709. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2464. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7301. | ||||
xml"/> | ||||
</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-messaging-19 | ||||
"/> | ||||
</reference> | ||||
<reference anchor="RFC5704"> | ||||
<front> | ||||
<title>Uncoordinated Protocol Development Considered Harmful</title> | ||||
<author fullname="S. Bryant" initials="S." role="editor" surname="Brya | ||||
nt"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="M. Morrow" initials="M." role="editor" surname="Morr | ||||
ow"> | ||||
<organization/> | ||||
</author> | ||||
<author> | ||||
<organization>IAB</organization> | ||||
</author> | ||||
<date month="November" year="2009"/> | ||||
<abstract> | ||||
<t>This document identifies problems that may result from the absenc | ||||
e of formal coordination and joint development on protocols of mutual interest b | ||||
etween standards development organizations (SDOs). Some of these problems may c | ||||
ause significant harm to the Internet. The document suggests that a robust proc | ||||
edure is required prevent this from occurring in the future. The IAB has select | ||||
ed a number of case studies, such as Transport MPLS (T-MPLS), as recent examples | ||||
to describe the hazard to the Internet architecture that results from uncoordin | ||||
ated adaptation of a protocol.</t> | ||||
<t>This experience has resulted in a considerable improvement in the | ||||
relationship between the IETF and the ITU-T. In particular, this was achieved | ||||
via the establishment of the "Joint working team on MPLS-TP". In addition, the | ||||
leadership of the two organizations agreed to improve inter-organizational worki | ||||
ng practices so as to avoid conflict in the future between ITU-T Recommendations | ||||
and IETF RFCs.</t> | ||||
<t>Whilst we use ITU-T - IETF interactions in these case studies, th | ||||
e scope of the document extends to all SDOs that have an overlapping protocol in | ||||
terest with the IETF. This memo provides information for the Internet community | ||||
.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="5704"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC5704"/> | ||||
</reference> | ||||
<reference anchor="SUCCESS"> | ||||
<front> | ||||
<title>What Makes for a Successful Protocol?</title> | ||||
<author fullname="D. Thaler" initials="D." surname="Thaler"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="B. Aboba" initials="B." surname="Aboba"> | ||||
<organization/> | ||||
</author> | ||||
<date month="July" year="2008"/> | ||||
<abstract> | ||||
<t>The Internet community has specified a large number of protocols | ||||
to date, and these protocols have achieved varying degrees of success. Based on | ||||
case studies, this document attempts to ascertain factors that contribute to or | ||||
hinder a protocol's success. It is hoped that these observations can serve as g | ||||
uidance for future protocol work. This memo provides information for the Inter | ||||
net community.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="5218"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC5218"/> | ||||
</reference> | ||||
<reference anchor="TRANSITIONS"> | ||||
<front> | ||||
<title>Planning for Protocol Adoption and Subsequent Transitions</titl | ||||
e> | ||||
<author fullname="D. Thaler" initials="D." role="editor" surname="Thal | ||||
er"> | ||||
<organization/> | ||||
</author> | ||||
<date month="May" year="2017"/> | ||||
<abstract> | ||||
<t>Over the many years since the introduction of the Internet Protoc | ||||
ol, we have seen a number of transitions throughout the protocol stack, such as | ||||
deploying a new protocol, or updating or replacing an existing protocol. Many p | ||||
rotocols and technologies were not designed to enable smooth transition to alter | ||||
natives or to easily deploy extensions; thus, some transitions, such as the intr | ||||
oduction of IPv6, have been difficult. This document attempts to summarize some | ||||
basic principles to enable future transitions, and it also summarizes what make | ||||
s for a good transition plan.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8170"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8170"/> | ||||
</reference> | ||||
<reference anchor="EXTENSIBILITY"> | ||||
<front> | ||||
<title>Design Considerations for Protocol Extensions</title> | ||||
<author fullname="B. Carpenter" initials="B." surname="Carpenter"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="B. Aboba" initials="B." role="editor" surname="Aboba | ||||
"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="S. Cheshire" initials="S." surname="Cheshire"> | ||||
<organization/> | ||||
</author> | ||||
<date month="September" year="2012"/> | ||||
<abstract> | ||||
<t>This document discusses architectural issues related to the exten | ||||
sibility of Internet protocols, with a focus on design considerations. It is in | ||||
tended to assist designers of both base protocols and extensions. Case studies | ||||
are included. A companion document, RFC 4775 (BCP 125), discusses procedures re | ||||
lating to the extensibility of IETF protocols. This document is not an Interne | ||||
t Standards Track specification; it is published for informational purposes.</t | ||||
> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="6709"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC6709"/> | ||||
</reference> | ||||
<reference anchor="RFC2464"> | ||||
<front> | ||||
<title>Transmission of IPv6 Packets over Ethernet Networks</title> | ||||
<author fullname="M. Crawford" initials="M." surname="Crawford"> | ||||
<organization/> | ||||
</author> | ||||
<date month="December" year="1998"/> | ||||
<abstract> | ||||
<t>This document specifies the frame format for transmission of IPv6 | ||||
packets and the method of forming IPv6 link-local addresses and statelessly aut | ||||
oconfigured addresses on Ethernet networks. It also specifies the content of th | ||||
e Source/Target Link-layer Address option used in Router Solicitation, Router Ad | ||||
vertisement, Neighbor Solicitation, Neighbor Advertisement and Redirect messages | ||||
when those messages are transmitted on an Ethernet. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="2464"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC2464"/> | ||||
</reference> | ||||
<reference anchor="ALPN"> | ||||
<front> | ||||
<title>Transport Layer Security (TLS) Application-Layer Protocol Negot | ||||
iation Extension</title> | ||||
<author fullname="S. Friedl" initials="S." surname="Friedl"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="A. Popov" initials="A." surname="Popov"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="A. Langley" initials="A." surname="Langley"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="E. Stephan" initials="E." surname="Stephan"> | ||||
<organization/> | ||||
</author> | ||||
<date month="July" year="2014"/> | ||||
<abstract> | ||||
<t>This document describes a Transport Layer Security (TLS) extensio | ||||
n for application-layer protocol negotiation within the TLS handshake. For insta | ||||
nces in which multiple application protocols are supported on the same TCP or UD | ||||
P port, this extension allows the application layer to negotiate which protocol | ||||
will be used within the TLS connection.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7301"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7301"/> | ||||
</reference> | ||||
<reference anchor="NEW-PROTOCOLS"> | <reference anchor="NEW-PROTOCOLS"> | |||
<front> | <front> | |||
<title>On the usability of transport protocols other than TCP: A home gateway and internet path traversal study</title> | <title>On the usability of transport protocols other than TCP: A home gateway and internet path traversal study</title> | |||
<author fullname="Runa Barik" initials="R." surname="Barik"> | <author fullname="Runa Barik" initials="R." surname="Barik"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Michael Welzl" initials="M." surname="Welzl"> | <author fullname="Michael Welzl" initials="M." surname="Welzl"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Gorry Fairhurst" initials="G." surname="Fairhurst"> | <author fullname="Gorry Fairhurst" initials="G." surname="Fairhurst"> | |||
skipping to change at line 698 ¶ | skipping to change at line 654 ¶ | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Thomas Dreibholz" initials="T." surname="Dreibholz"> | <author fullname="Thomas Dreibholz" initials="T." surname="Dreibholz"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Stein Gjessing" initials="S." surname="Gjessing"> | <author fullname="Stein Gjessing" initials="S." surname="Gjessing"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date month="May" year="2020"/> | <date month="May" year="2020"/> | |||
</front> | </front> | |||
<seriesInfo name="Computer Networks" value="Vol. 173, pp. 107211"/> | <refcontent>Computer Networks, Vol. 173, pp. 107211</refcontent> | |||
<seriesInfo name="DOI" value="10.1016/j.comnet.2020.107211"/> | <seriesInfo name="DOI" value="10.1016/j.comnet.2020.107211"/> | |||
</reference> | </reference> | |||
<reference anchor="GREASE"> | ||||
<front> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8701. | |||
<title>Applying Generate Random Extensions And Sustain Extensibility ( | xml"/> | |||
GREASE) to TLS Extensibility</title> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9000. | |||
<author fullname="D. Benjamin" initials="D." surname="Benjamin"> | xml"/> | |||
<organization/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5321. | |||
</author> | xml"/> | |||
<date month="January" year="2020"/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3261. | |||
<abstract> | xml"/> | |||
<t>This document describes GREASE (Generate Random Extensions And Su | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6733. | |||
stain Extensibility), a mechanism to prevent extensibility failures in the TLS e | xml"/> | |||
cosystem. It reserves a set of TLS protocol values that may be advertised to ens | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8941. | |||
ure peers correctly handle unknown values.</t> | xml"/> | |||
</abstract> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6891. | |||
</front> | xml"/> | |||
<seriesInfo name="RFC" value="8701"/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8999. | |||
<seriesInfo name="DOI" value="10.17487/RFC8701"/> | xml"/> | |||
</reference> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8558. | |||
<reference anchor="QUIC"> | xml"/> | |||
<front> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7838. | |||
<title>QUIC: A UDP-Based Multiplexed and Secure Transport</title> | xml"/> | |||
<author fullname="J. Iyengar" initials="J." role="editor" surname="Iye | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7489. | |||
ngar"> | xml"/> | |||
<organization/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8460. | |||
</author> | xml"/> | |||
<author fullname="M. Thomson" initials="M." role="editor" surname="Tho | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7696. | |||
mson"> | xml"/> | |||
<organization/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7208. | |||
</author> | xml"/> | |||
<date month="May" year="2021"/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3597. | |||
<abstract> | xml"/> | |||
<t>This document defines the core of the QUIC transport protocol. Q | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1112. | |||
UIC provides applications with flow-controlled streams for structured communicat | xml"/> | |||
ion, low-latency connection establishment, and network path migration. QUIC incl | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.0791. | |||
udes security measures that ensure confidentiality, integrity, and availability | xml"/> | |||
in a range of deployment circumstances. Accompanying documents describe the int | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2113. | |||
egration of TLS for key negotiation, loss detection, and an exemplary congestion | xml"/> | |||
control algorithm.</t> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2711. | |||
</abstract> | xml"/> | |||
</front> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1157. | |||
<seriesInfo name="RFC" value="9000"/> | xml"/> | |||
<seriesInfo name="DOI" value="10.17487/RFC9000"/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.0793. | |||
</reference> | xml"/> | |||
<reference anchor="SMTP"> | ||||
<front> | ||||
<title>Simple Mail Transfer Protocol</title> | ||||
<author fullname="J. Klensin" initials="J." surname="Klensin"> | ||||
<organization/> | ||||
</author> | ||||
<date month="October" year="2008"/> | ||||
<abstract> | ||||
<t>This document is a specification of the basic protocol for Intern | ||||
et electronic mail transport. It consolidates, updates, and clarifies several p | ||||
revious documents, making all or parts of most of them obsolete. It covers the | ||||
SMTP extension mechanisms and best practices for the contemporary Internet, but | ||||
does not provide details about particular extensions. Although SMTP was designe | ||||
d as a mail transport and delivery protocol, this specification also contains in | ||||
formation that is important to its use as a "mail submission" protocol for "spli | ||||
t-UA" (User Agent) mail reading systems and mobile environments. [STANDARDS-TRA | ||||
CK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="5321"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC5321"/> | ||||
</reference> | ||||
<reference anchor="SIP"> | ||||
<front> | ||||
<title>SIP: Session Initiation Protocol</title> | ||||
<author fullname="J. Rosenberg" initials="J." surname="Rosenberg"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="G. Camarillo" initials="G." surname="Camarillo"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="A. Johnston" initials="A." surname="Johnston"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="J. Peterson" initials="J." surname="Peterson"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="R. Sparks" initials="R." surname="Sparks"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="M. Handley" initials="M." surname="Handley"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="E. Schooler" initials="E." surname="Schooler"> | ||||
<organization/> | ||||
</author> | ||||
<date month="June" year="2002"/> | ||||
<abstract> | ||||
<t>This document describes Session Initiation Protocol (SIP), an app | ||||
lication-layer control (signaling) protocol for creating, modifying, and termina | ||||
ting sessions with one or more participants. These sessions include Internet te | ||||
lephone calls, multimedia distribution, and multimedia conferences. [STANDARDS- | ||||
TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="3261"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC3261"/> | ||||
</reference> | ||||
<reference anchor="DIAMETER"> | ||||
<front> | ||||
<title>Diameter Base Protocol</title> | ||||
<author fullname="V. Fajardo" initials="V." role="editor" surname="Faj | ||||
ardo"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="J. Arkko" initials="J." surname="Arkko"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="J. Loughney" initials="J." surname="Loughney"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="G. Zorn" initials="G." role="editor" surname="Zorn"> | ||||
<organization/> | ||||
</author> | ||||
<date month="October" year="2012"/> | ||||
<abstract> | ||||
<t>The Diameter base protocol is intended to provide an Authenticati | ||||
on, Authorization, and Accounting (AAA) framework for applications such as netwo | ||||
rk access or IP mobility in both local and roaming situations. This document sp | ||||
ecifies the message format, transport, error reporting, accounting, and security | ||||
services used by all Diameter applications. The Diameter base protocol as defi | ||||
ned in this document obsoletes RFC 3588 and RFC 5719, and it must be supported b | ||||
y all new Diameter implementations. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="6733"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC6733"/> | ||||
</reference> | ||||
<reference anchor="HTTP-HEADERS"> | ||||
<front> | ||||
<title>Structured Field Values for HTTP</title> | ||||
<author fullname="M. Nottingham" initials="M." surname="Nottingham"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="P-H. Kamp" initials="P-H." surname="Kamp"> | ||||
<organization/> | ||||
</author> | ||||
<date month="February" year="2021"/> | ||||
<abstract> | ||||
<t>This document describes a set of data types and associated algori | ||||
thms that are intended to make it easier and safer to define and handle HTTP hea | ||||
der and trailer fields, known as "Structured Fields", "Structured Headers", or " | ||||
Structured Trailers". It is intended for use by specifications of new HTTP field | ||||
s that wish to use a common syntax that is more restrictive than traditional HTT | ||||
P field values.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8941"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8941"/> | ||||
</reference> | ||||
<reference anchor="EDNS"> | ||||
<front> | ||||
<title>Extension Mechanisms for DNS (EDNS(0))</title> | ||||
<author fullname="J. Damas" initials="J." surname="Damas"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="M. Graff" initials="M." surname="Graff"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="P. Vixie" initials="P." surname="Vixie"> | ||||
<organization/> | ||||
</author> | ||||
<date month="April" year="2013"/> | ||||
<abstract> | ||||
<t>The Domain Name System's wire protocol includes a number of fixed | ||||
fields whose range has been or soon will be exhausted and does not allow reques | ||||
tors to advertise their capabilities to responders. This document describes bac | ||||
kward-compatible mechanisms for allowing the protocol to grow.</t> | ||||
<t>This document updates the Extension Mechanisms for DNS (EDNS(0)) | ||||
specification (and obsoletes RFC 2671) based on feedback from deployment experie | ||||
nce in several implementations. It also obsoletes RFC 2673 ("Binary Labels in t | ||||
he Domain Name System") and adds considerations on the use of extended labels in | ||||
the DNS.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="STD" value="75"/> | ||||
<seriesInfo name="RFC" value="6891"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC6891"/> | ||||
</reference> | ||||
<reference anchor="QUIC-INVARIANTS"> | ||||
<front> | ||||
<title>Version-Independent Properties of QUIC</title> | ||||
<author fullname="M. Thomson" initials="M." surname="Thomson"> | ||||
<organization/> | ||||
</author> | ||||
<date month="May" year="2021"/> | ||||
<abstract> | ||||
<t>This document defines the properties of the QUIC transport protoc | ||||
ol that are common to all versions of the protocol.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8999"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8999"/> | ||||
</reference> | ||||
<reference anchor="PATH-SIGNALS"> | ||||
<front> | ||||
<title>Transport Protocol Path Signals</title> | ||||
<author fullname="T. Hardie" initials="T." role="editor" surname="Hard | ||||
ie"> | ||||
<organization/> | ||||
</author> | ||||
<date month="April" year="2019"/> | ||||
<abstract> | ||||
<t>This document discusses the nature of signals seen by on-path ele | ||||
ments examining transport protocols, contrasting implicit and explicit signals. | ||||
For example, TCP's state machine uses a series of well-known messages that are | ||||
exchanged in the clear. Because these are visible to network elements on the pa | ||||
th between the two nodes setting up the transport connection, they are often use | ||||
d as signals by those network elements. In transports that do not exchange thes | ||||
e messages in the clear, on-path network elements lack those signals. Often, the | ||||
removal of those signals is intended by those moving the messages to confidenti | ||||
al channels. Where the endpoints desire that network elements along the path re | ||||
ceive these signals, this document recommends explicit signals be used.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8558"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8558"/> | ||||
</reference> | ||||
<reference anchor="ALT-SVC"> | ||||
<front> | ||||
<title>HTTP Alternative Services</title> | ||||
<author fullname="M. Nottingham" initials="M." surname="Nottingham"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="P. McManus" initials="P." surname="McManus"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="J. Reschke" initials="J." surname="Reschke"> | ||||
<organization/> | ||||
</author> | ||||
<date month="April" year="2016"/> | ||||
<abstract> | ||||
<t>This document specifies "Alternative Services" for HTTP, which al | ||||
low an origin's resources to be authoritatively available at a separate network | ||||
location, possibly accessed with a different protocol configuration.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7838"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7838"/> | ||||
</reference> | ||||
<reference anchor="DMARC"> | ||||
<front> | ||||
<title>Domain-based Message Authentication, Reporting, and Conformance | ||||
(DMARC)</title> | ||||
<author fullname="M. Kucherawy" initials="M." role="editor" surname="K | ||||
ucherawy"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="E. Zwicky" initials="E." role="editor" surname="Zwic | ||||
ky"> | ||||
<organization/> | ||||
</author> | ||||
<date month="March" year="2015"/> | ||||
<abstract> | ||||
<t>Domain-based Message Authentication, Reporting, and Conformance ( | ||||
DMARC) is a scalable mechanism by which a mail-originating organization can expr | ||||
ess domain-level policies and preferences for message validation, disposition, a | ||||
nd reporting, that a mail-receiving organization can use to improve mail handlin | ||||
g.</t> | ||||
<t>Originators of Internet Mail need to be able to associate reliabl | ||||
e and authenticated domain identifiers with messages, communicate policies about | ||||
messages that use those identifiers, and report about mail using those identifi | ||||
ers. These abilities have several benefits: Receivers can provide feedback to D | ||||
omain Owners about the use of their domains; this feedback can provide valuable | ||||
insight about the management of internal operations and the presence of external | ||||
domain name abuse.</t> | ||||
<t>DMARC does not produce or encourage elevated delivery privilege o | ||||
f authenticated email. DMARC is a mechanism for policy distribution that enable | ||||
s increasingly strict handling of messages that fail authentication checks, rang | ||||
ing from no action, through altered delivery, up to message rejection.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7489"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7489"/> | ||||
</reference> | ||||
<reference anchor="SMTP-TLS-Reporting"> | ||||
<front> | ||||
<title>SMTP TLS Reporting</title> | ||||
<author fullname="D. Margolis" initials="D." surname="Margolis"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="A. Brotman" initials="A." surname="Brotman"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="B. Ramakrishnan" initials="B." surname="Ramakrishnan | ||||
"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="J. Jones" initials="J." surname="Jones"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="M. Risher" initials="M." surname="Risher"> | ||||
<organization/> | ||||
</author> | ||||
<date month="September" year="2018"/> | ||||
<abstract> | ||||
<t>A number of protocols exist for establishing encrypted channels b | ||||
etween SMTP Mail Transfer Agents (MTAs), including STARTTLS, DNS- Based Authenti | ||||
cation of Named Entities (DANE) TLSA, and MTA Strict Transport Security (MTA-STS | ||||
). These protocols can fail due to misconfiguration or active attack, leading t | ||||
o undelivered messages or delivery over unencrypted or unauthenticated channels. | ||||
This document describes a reporting mechanism and format by which sending syst | ||||
ems can share statistics and specific information about potential failures with | ||||
recipient domains. Recipient domains can then use this information to both dete | ||||
ct potential attacks and diagnose unintentional misconfigurations.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8460"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8460"/> | ||||
</reference> | ||||
<reference anchor="AGILITY"> | ||||
<front> | ||||
<title>Guidelines for Cryptographic Algorithm Agility and Selecting Ma | ||||
ndatory-to-Implement Algorithms</title> | ||||
<author fullname="R. Housley" initials="R." surname="Housley"> | ||||
<organization/> | ||||
</author> | ||||
<date month="November" year="2015"/> | ||||
<abstract> | ||||
<t>Many IETF protocols use cryptographic algorithms to provide confi | ||||
dentiality, integrity, authentication, or digital signature. Communicating peer | ||||
s must support a common set of cryptographic algorithms for these mechanisms to | ||||
work properly. This memo provides guidelines to ensure that protocols have the | ||||
ability to migrate from one mandatory-to-implement algorithm suite to another ov | ||||
er time.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="BCP" value="201"/> | ||||
<seriesInfo name="RFC" value="7696"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7696"/> | ||||
</reference> | ||||
<reference anchor="SPF"> | ||||
<front> | ||||
<title>Sender Policy Framework (SPF) for Authorizing Use of Domains in | ||||
Email, Version 1</title> | ||||
<author fullname="S. Kitterman" initials="S." surname="Kitterman"> | ||||
<organization/> | ||||
</author> | ||||
<date month="April" year="2014"/> | ||||
<abstract> | ||||
<t>Email on the Internet can be forged in a number of ways. In part | ||||
icular, existing protocols place no restriction on what a sending host can use a | ||||
s the "MAIL FROM" of a message or the domain given on the SMTP HELO/EHLO command | ||||
s. This document describes version 1 of the Sender Policy Framework (SPF) proto | ||||
col, whereby ADministrative Management Domains (ADMDs) can explicitly authorize | ||||
the hosts that are allowed to use their domain names, and a receiving host can c | ||||
heck such authorization.</t> | ||||
<t>This document obsoletes RFC 4408.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7208"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7208"/> | ||||
</reference> | ||||
<reference anchor="RRTYPE"> | ||||
<front> | ||||
<title>Handling of Unknown DNS Resource Record (RR) Types</title> | ||||
<author fullname="A. Gustafsson" initials="A." surname="Gustafsson"> | ||||
<organization/> | ||||
</author> | ||||
<date month="September" year="2003"/> | ||||
<abstract> | ||||
<t>Extending the Domain Name System (DNS) with new Resource Record ( | ||||
RR) types currently requires changes to name server software. This document spe | ||||
cifies the changes necessary to allow future DNS implementations to handle new R | ||||
R types transparently. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="3597"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC3597"/> | ||||
</reference> | ||||
<reference anchor="RFC0988"> | ||||
<front> | ||||
<title>Host extensions for IP multicasting</title> | ||||
<author fullname="S.E. Deering" initials="S.E." surname="Deering"> | ||||
<organization/> | ||||
</author> | ||||
<date month="July" year="1986"/> | ||||
<abstract> | ||||
<t>This memo specifies the extensions required of a host implementat | ||||
ion of the Internet Protocol (IP) to support internetwork multicasting. This | ||||
specification supersedes that given in RFC-966, and constitutes a propose | ||||
d protocol standard for IP multicasting in the ARPA-Internet. The reader is d | ||||
irected to RFC-966 for a discussion of the motivation and rationale behind th | ||||
e multicasting extension specified here.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="988"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC0988"/> | ||||
</reference> | ||||
<reference anchor="RFC0791"> | ||||
<front> | ||||
<title>Internet Protocol</title> | ||||
<author fullname="J. Postel" initials="J." surname="Postel"> | ||||
<organization/> | ||||
</author> | ||||
<date month="September" year="1981"/> | ||||
</front> | ||||
<seriesInfo name="STD" value="5"/> | ||||
<seriesInfo name="RFC" value="791"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC0791"/> | ||||
</reference> | ||||
<reference anchor="RAv4"> | ||||
<front> | ||||
<title>IP Router Alert Option</title> | ||||
<author fullname="D. Katz" initials="D." surname="Katz"> | ||||
<organization/> | ||||
</author> | ||||
<date month="February" year="1997"/> | ||||
<abstract> | ||||
<t>This memo describes a new IP Option type that alerts transit rout | ||||
ers to more closely examine the contents of an IP packet. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="2113"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC2113"/> | ||||
</reference> | ||||
<reference anchor="RAv6"> | ||||
<front> | ||||
<title>IPv6 Router Alert Option</title> | ||||
<author fullname="C. Partridge" initials="C." surname="Partridge"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="A. Jackson" initials="A." surname="Jackson"> | ||||
<organization/> | ||||
</author> | ||||
<date month="October" year="1999"/> | ||||
<abstract> | ||||
<t>This memo describes a new IPv6 Hop-by-Hop Option type that alerts | ||||
transit routers to more closely examine the contents of an IP datagram. [STANDA | ||||
RDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="2711"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC2711"/> | ||||
</reference> | ||||
<reference anchor="SNMPv1"> | ||||
<front> | ||||
<title>Simple Network Management Protocol (SNMP)</title> | ||||
<author fullname="J.D. Case" initials="J.D." surname="Case"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="M. Fedor" initials="M." surname="Fedor"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="M.L. Schoffstall" initials="M.L." surname="Schoffsta | ||||
ll"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="J. Davin" initials="J." surname="Davin"> | ||||
<organization/> | ||||
</author> | ||||
<date month="May" year="1990"/> | ||||
<abstract> | ||||
<t>This RFC is a re-release of RFC 1098, with a changed "Status of t | ||||
his Memo" section plus a few minor typographical corrections. This memo defines | ||||
a simple protocol by which management information for a network element may be | ||||
inspected or altered by logically remote users. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="1157"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC1157"/> | ||||
</reference> | ||||
<reference anchor="TCP"> | ||||
<front> | ||||
<title>Transmission Control Protocol</title> | ||||
<author fullname="J. Postel" initials="J." surname="Postel"> | ||||
<organization/> | ||||
</author> | ||||
<date month="September" year="1981"/> | ||||
</front> | ||||
<seriesInfo name="STD" value="7"/> | ||||
<seriesInfo name="RFC" value="793"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC0793"/> | ||||
</reference> | ||||
<reference anchor="EXT-TCP"> | <reference anchor="EXT-TCP"> | |||
<front> | <front> | |||
<title>Is it still possible to extend TCP?</title> | <title>Is it still possible to extend TCP?</title> | |||
<author fullname="Michio Honda" initials="M." surname="Honda"> | <author fullname="Michio Honda" initials="M." surname="Honda"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Yoshifumi Nishida" initials="Y." surname="Nishida"> | <author fullname="Yoshifumi Nishida" initials="Y." surname="Nishida"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Costin Raiciu" initials="C." surname="Raiciu"> | <author fullname="Costin Raiciu" initials="C." surname="Raiciu"> | |||
skipping to change at line 1093 ¶ | skipping to change at line 701 ¶ | |||
</author> | </author> | |||
<author fullname="Adam Greenhalgh" initials="A." surname="Greenhalgh"> | <author fullname="Adam Greenhalgh" initials="A." surname="Greenhalgh"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Mark Handley" initials="M." surname="Handley"> | <author fullname="Mark Handley" initials="M." surname="Handley"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Hideyuki Tokuda" initials="H." surname="Tokuda"> | <author fullname="Hideyuki Tokuda" initials="H." surname="Tokuda"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date year="2011"/> | <date month="November" year="2011"/> | |||
</front> | ||||
<seriesInfo name="Proceedings of the 2011 ACM SIGCOMM conference on Inte | </front> | |||
rnet measurement conference - IMC" value="'11"/> | <refcontent>IMC '11: Proceedings of the 2011 ACM SIGCOMM conference on I | |||
nternet measurement conference</refcontent> | ||||
<seriesInfo name="DOI" value="10.1145/2068816.2068834"/> | <seriesInfo name="DOI" value="10.1145/2068816.2068834"/> | |||
</reference> | </reference> | |||
<reference anchor="MPTCP"> | ||||
<front> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8684. | |||
<title>TCP Extensions for Multipath Operation with Multiple Addresses< | xml"/> | |||
/title> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7413. | |||
<author fullname="A. Ford" initials="A." surname="Ford"> | xml"/> | |||
<organization/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5246. | |||
</author> | xml"/> | |||
<author fullname="C. Raiciu" initials="C." surname="Raiciu"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8446. | |||
<organization/> | xml"/> | |||
</author> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6066. | |||
<author fullname="M. Handley" initials="M." surname="Handley"> | xml"/> | |||
<organization/> | ||||
</author> | ||||
<author fullname="O. Bonaventure" initials="O." surname="Bonaventure"> | ||||
<organization/> | ||||
</author> | ||||
<date month="January" year="2013"/> | ||||
<abstract> | ||||
<t>TCP/IP communication is currently restricted to a single path per | ||||
connection, yet multiple paths often exist between peers. The simultaneous use | ||||
of these multiple paths for a TCP/IP session would improve resource usage withi | ||||
n the network and, thus, improve user experience through higher throughput and i | ||||
mproved resilience to network failure.</t> | ||||
<t>Multipath TCP provides the ability to simultaneously use multiple | ||||
paths between peers. This document presents a set of extensions to traditional | ||||
TCP to support multipath operation. The protocol offers the same type of servi | ||||
ce to applications as TCP (i.e., reliable bytestream), and it provides the compo | ||||
nents necessary to establish and use multiple TCP flows across potentially disjo | ||||
int paths. This document defines an Experimental Protocol for the Internet com | ||||
munity.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="6824"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC6824"/> | ||||
</reference> | ||||
<reference anchor="TFO"> | ||||
<front> | ||||
<title>TCP Fast Open</title> | ||||
<author fullname="Y. Cheng" initials="Y." surname="Cheng"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="J. Chu" initials="J." surname="Chu"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="S. Radhakrishnan" initials="S." surname="Radhakrishn | ||||
an"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="A. Jain" initials="A." surname="Jain"> | ||||
<organization/> | ||||
</author> | ||||
<date month="December" year="2014"/> | ||||
<abstract> | ||||
<t>This document describes an experimental TCP mechanism called TCP | ||||
Fast Open (TFO). TFO allows data to be carried in the SYN and SYN-ACK packets a | ||||
nd consumed by the receiving end during the initial connection handshake, and sa | ||||
ves up to one full round-trip time (RTT) compared to the standard TCP, which req | ||||
uires a three-way handshake (3WHS) to complete before data can be exchanged. Ho | ||||
wever, TFO deviates from the standard TCP semantics, since the data in the SYN c | ||||
ould be replayed to an application in some rare circumstances. Applications sho | ||||
uld not use TFO unless they can tolerate this issue, as detailed in the Applicab | ||||
ility section.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7413"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7413"/> | ||||
</reference> | ||||
<reference anchor="TLS12"> | ||||
<front> | ||||
<title>The Transport Layer Security (TLS) Protocol Version 1.2</title> | ||||
<author fullname="T. Dierks" initials="T." surname="Dierks"> | ||||
<organization/> | ||||
</author> | ||||
<author fullname="E. Rescorla" initials="E." surname="Rescorla"> | ||||
<organization/> | ||||
</author> | ||||
<date month="August" year="2008"/> | ||||
<abstract> | ||||
<t>This document specifies Version 1.2 of the Transport Layer Securi | ||||
ty (TLS) protocol. The TLS protocol provides communications security over the I | ||||
nternet. The protocol allows client/server applications to communicate in a way | ||||
that is designed to prevent eavesdropping, tampering, or message forgery. [STA | ||||
NDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="5246"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC5246"/> | ||||
</reference> | ||||
<reference anchor="TLS13"> | ||||
<front> | ||||
<title>The Transport Layer Security (TLS) Protocol Version 1.3</title> | ||||
<author fullname="E. Rescorla" initials="E." surname="Rescorla"> | ||||
<organization/> | ||||
</author> | ||||
<date month="August" year="2018"/> | ||||
<abstract> | ||||
<t>This document specifies version 1.3 of the Transport Layer Securi | ||||
ty (TLS) protocol. TLS allows client/server applications to communicate over th | ||||
e Internet in a way that is designed to prevent eavesdropping, tampering, and me | ||||
ssage forgery.</t> | ||||
<t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077 | ||||
, 5246, and 6961. This document also specifies new requirements for TLS 1.2 imp | ||||
lementations.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8446"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8446"/> | ||||
</reference> | ||||
<reference anchor="TLS-EXT"> | ||||
<front> | ||||
<title>Transport Layer Security (TLS) Extensions: Extension Definition | ||||
s</title> | ||||
<author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd | ||||
"> | ||||
<organization/> | ||||
</author> | ||||
<date month="January" year="2011"/> | ||||
<abstract> | ||||
<t>This document provides specifications for existing TLS extensions | ||||
. It is a companion document for RFC 5246, "The Transport Layer Security (TLS) | ||||
Protocol Version 1.2". The extensions specified are server_name, max_fragment_l | ||||
ength, client_certificate_url, trusted_ca_keys, truncated_hmac, and status_reque | ||||
st. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="6066"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC6066"/> | ||||
</reference> | ||||
</references> | </references> | |||
<section anchor="examples" numbered="true" toc="default"> | <section anchor="examples" numbered="true" toc="default"> | |||
<name>Examples</name> | <name>Examples</name> | |||
<t>This appendix contains a brief study of problems in a range of Internet | <t>This appendix contains a brief study of problems in a range of | |||
protocols at different layers of the stack.</t> | Internet protocols at different layers of the stack.</t> | |||
<section anchor="dns" numbered="true" toc="default"> | <section anchor="dns" numbered="true" toc="default"> | |||
<name>DNS</name> | <name>DNS</name> | |||
<t>Ossified DNS code bases and systems resulted in new Resource Record C | ||||
odes | <t>Ossified DNS code bases and systems resulted in new Resource Record | |||
(RRCodes) being unusable. A new codepoint would take years of coordination | Codes (RRCodes) being unusable. A new code point would take years of | |||
between implementations and deployments before it could be relied upon. | coordination between implementations and deployments before it could | |||
Consequently, overloading use of the TXT record was used to avoid effort and | be relied upon. | |||
delays involved, a method used in the Sender Policy Framework <xref target="SPF" | ||||
format="default"/> | Consequently, use of the TXT record was overloaded in order to avoid | |||
and other protocols.</t> | the effort and delays involved in allocating new code points; this | |||
<t>It was not until after the standard mechanism for dealing with new RR | approach was used in the Sender Policy Framework <xref | |||
Codes | target="RFC7208" format="default"/> and other protocols. | |||
<xref target="RRTYPE" format="default"/> was considered widely deployed that new | ||||
RRCodes can be | </t> | |||
safely created and used.</t> | <t>It was not until after the standard mechanism for dealing with new | |||
RRCodes <xref target="RFC3597" format="default"/> was considered | ||||
widely deployed that new RRCodes could be safely created and used.</t> | ||||
</section> | </section> | |||
<section anchor="http" numbered="true" toc="default"> | <section anchor="HTTP" numbered="true" toc="default"> | |||
<name>HTTP</name> | <name>HTTP</name> | |||
<t>HTTP has a number of very effective extension points in addition to t | <t>HTTP has a number of very effective extension points in addition to | |||
he | the aforementioned header fields. It also has some examples of | |||
aforementioned header fields. It also has some examples of extension points | extension points that are so rarely used that it is possible that they | |||
that are so rarely used that it is possible that they are not at all usable.</t> | are not at all usable.</t> | |||
<t>Extension points in HTTP that might be unwise to use include the exte | <t>Extension points in HTTP that might be unwise to use include the | |||
nsion point | extension point on each chunk in the chunked transfer coding (<xref | |||
on each chunk in the chunked transfer coding <xref section="7.1" sectionFormat=" | section="7.1" sectionFormat="of" target="I-D.ietf-httpbis-messaging" for | |||
of" target="HTTP11" format="default"/>, the | mat="default"/>), | |||
ability to use transfer codings other than the chunked coding, and the range | the ability to use transfer codings other than the chunked coding, and | |||
unit in a range request <xref section="14" sectionFormat="of" target="HTTP" form | the range unit in a range request (<xref section="14" | |||
at="default"/>.</t> | sectionFormat="of" target="I-D.ietf-httpbis-semantics" format="default"/ | |||
>).</t> | ||||
</section> | </section> | |||
<section anchor="ip" numbered="true" toc="default"> | <section anchor="ip" numbered="true" toc="default"> | |||
<name>IP</name> | <name>IP</name> | |||
<t>The version field in IP was rendered useless when encapsulated over E | <t>The version field in IP was rendered useless when encapsulated over | |||
thernet, | Ethernet, requiring a new EtherType with IPv6 <xref target="RFC2464" | |||
requring a new ethertype with IPv6 <xref target="RFC2464" format="default"/>, du | format="default"/>, due in part to Layer 2 devices making | |||
e in part to layer 2 devices | version-independent assumptions about the structure of the IPv4 | |||
making version-independent assumptions about the structure of the IPv4 header.</ | header.</t> | |||
t> | <t>Protocol identifiers or code points that are reserved for future use | |||
<t>Protocol identifiers or codepoints that are reserved for future use c | can be especially problematic. Reserving values without attributing | |||
an be | semantics to their use can result in diverse or conflicting semantics | |||
especially problematic. Reserving values without attributing semantics to their | being attributed without any hope of interoperability. | |||
use can result in diverse or conflicting semantics being attributed without any | ||||
hope of interoperability. An example of this is the 224/3 "class E" address | An example of this is the 224/3 address space in IPv4 that <xref | |||
space in IPv4 <xref target="RFC0988" format="default"/>. This space was original | target="RFC0791"/> reserved without assigning any semantics. <xref | |||
ly reserved in <xref target="RFC0791" format="default"/> | target="RFC1112"/> partially reclaimed that reserved address space for | |||
without assigning any semantics and has since been partially reclaimed for use | use in multicast (224/4), but the remaining address space (240/4) has | |||
in multicast (224/4), but otherwise has not been successfully reclaimed for any | not been successfully reclaimed for any purpose. | |||
purpose (240/4) | ||||
<xref target="RFC0988" format="default"/>.</t> | </t> | |||
<t>For protocols that can use negotiation to attribute semantics to valu | ||||
es, it is | <t>For protocols that can use negotiation to attribute semantics to | |||
possible that unused codepoints can be reclaimed for active use, though this | values, it is possible that unused code points can be reclaimed for | |||
requires that the negotiation include all protocol participants. For something | active use, though this requires that the negotiation include all | |||
as fundamental as addressing, negotiation is difficult or even impossible, as | protocol participants. For something as fundamental as addressing, | |||
all nodes on the network path plus potential alternative paths would need to be | negotiation is difficult or even impossible, as all nodes on the | |||
involved.</t> | network path plus potential alternative paths would need to be | |||
<t>IP Router Alerts <xref target="RAv4" format="default"/><xref target=" | involved.</t> | |||
RAv6" format="default"/> use IP options or extension | <t>IP Router Alerts <xref target="RFC2113" format="default"/><xref | |||
headers to indicate that data is intended for consumption by the next hop router | target="RFC2711" format="default"/> use IP options or extension | |||
rather than the addressed destination. In part, the deployment of router alerts | headers to indicate that data is intended for consumption by the next-ho | |||
was unsuccessful due to the realities of processing IP packets at line rates, | p | |||
combined with bad assumptions in the protocol design about these performance | router rather than the addressed destination. In part, the | |||
constraints. However, this was not exclusively down to design problems or bugs | deployment of router alerts was unsuccessful due to the realities of | |||
as the capability was also deliberately blocked at some routers.</t> | processing IP packets at line rates, combined with bad assumptions in | |||
the protocol design about these performance constraints. However, | ||||
this was not exclusively down to design problems or bugs, as the | ||||
capability was also deliberately blocked at some routers.</t> | ||||
</section> | </section> | |||
<section anchor="snmp" numbered="true" toc="default"> | <section anchor="snmp" numbered="true" toc="default"> | |||
<name>SNMP</name> | <name>SNMP</name> | |||
<t>As a counter example, the first version of the Simple Network Managem ent | <t>As a counter example, the first version of the Simple Network Managem ent | |||
Protocol (SNMP) <xref target="SNMPv1" format="default"/> defines that unparseabl e or unauthenticated | Protocol (SNMP) <xref target="RFC1157" format="default"/> states that unparseabl e or unauthenticated | |||
messages are simply discarded without response:</t> | messages are simply discarded without response:</t> | |||
<ul empty="true"> | <blockquote> | |||
<li> | <t>It then verifies the version number of the SNMP message. If | |||
<t>It then verifies the version number of the SNMP message. If there | there is a mismatch, it discards the datagram and performs no | |||
is a | further actions.</t> | |||
mismatch, it discards the datagram and performs no further actions.</t> | </blockquote> | |||
</li> | <t>When SNMP versions 2, 2c, and 3 came along, older agents did exactly | |||
</ul> | what the protocol specifies. Deployment of new versions was likely | |||
<t>When SNMP versions 2, 2c and 3 came along, older agents did exactly w | successful because the handling of newer versions was both clear and | |||
hat the | simple.</t> | |||
protocol specifies. Deployment of new versions was likely successful because | ||||
the handling of newer versions was both clear and simple.</t> | ||||
</section> | </section> | |||
<section anchor="tcp" numbered="true" toc="default"> | <section anchor="tcp" numbered="true" toc="default"> | |||
<name>TCP</name> | <name>TCP</name> | |||
<t>Extension points in TCP <xref target="TCP" format="default"/> have be | <t>Extension points in TCP <xref target="RFC0793" format="default"/> | |||
en rendered difficult to use, | have been rendered difficult to use largely due to middlebox | |||
largely due to middlebox interactions; see | interactions; see <xref target="EXT-TCP" format="default"/>.</t> | |||
<xref target="EXT-TCP" format="default"/>.</t> | ||||
<t>For instance, multipath TCP <xref target="MPTCP" format="default"/> c | <t> | |||
an only be deployed | For instance, multipath TCP (<xref target="RFC8684" format="default"/>) can | |||
opportunistically; see <xref target="MPTCP-HOW-HARD" format="default"/>. As | only be deployed opportunistically; see <xref target="MPTCP-HOW-HARD" | |||
multipath TCP enables progressive enhancement of the protocol, this largely only | format="default"/>. Since MPTCP is a protocol enhancement that doesn’t impair | |||
causes the feature to not be available if the path is intolerant of the | the connection if it is blocked, network path intolerance of the extension | |||
extension.</t> | only results in the multipath functionality becoming unavailable. | |||
<t>In comparison, the deployment of Fast Open <xref target="TFO" format= | ||||
"default"/> critically depends | </t> | |||
on extension capability being widely available. Though very few network paths | <t>In comparison, the deployment of TCP Fast Open (<xref | |||
were intolerant of the extension in absolute terms, TCP Fast Open could not be | target="RFC7413" format="default"/>) critically depends on extension | |||
deployed as a result.</t> | capability being widely available. Though very few network paths were | |||
intolerant of the extension in absolute terms, TCP Fast Open could not | ||||
be deployed as a result.</t> | ||||
</section> | </section> | |||
<section anchor="tls" numbered="true" toc="default"> | <section anchor="tls" numbered="true" toc="default"> | |||
<name>TLS</name> | <name>TLS</name> | |||
<t>Transport Layer Security (TLS) <xref target="TLS12" format="default"/ > provides examples of where a | <t>Transport Layer Security (TLS) <xref target="RFC5246" format="default "/> provides examples of where a | |||
design that is objectively sound fails when incorrectly implemented. TLS | design that is objectively sound fails when incorrectly implemented. TLS | |||
provides examples of failures in protocol version negotiation and extensibility. </t> | provides examples of failures in protocol version negotiation and extensibility. </t> | |||
<t>Version negotiation in TLS 1.2 and earlier uses the "Highest mutually supported | <t>Version negotiation in TLS 1.2 and earlier uses the "Highest mutually supported | |||
version (HMSV)" scheme exactly as it is described in <xref target="EXTENSIBILITY " format="default"/>. | version (HMSV)" scheme exactly as it is described in <xref target="RFC6709" form at="default"/>. | |||
However, clients are unable to advertise a new version without causing a | However, clients are unable to advertise a new version without causing a | |||
non-trivial proportion of sessions to fail due to bugs in server and middlebox | non-trivial proportion of sessions to fail due to bugs in server and middlebox | |||
implementations.</t> | implementations.</t> | |||
<t>Intolerance to new TLS versions is so severe <xref target="INTOLERANC E" format="default"/> that TLS 1.3 | <t>Intolerance to new TLS versions is so severe <xref target="INTOLERANC E" format="default"/> that TLS 1.3 | |||
<xref target="TLS13" format="default"/> abandoned HMSV version negotiation for a | <xref target="RFC8446" format="default"/> abandoned HMSV version negotiation for | |||
new mechanism.</t> | a new mechanism.</t> | |||
<t>The server name indication (SNI) <xref target="TLS-EXT" format="defau | <t>The server name indication (SNI) <xref target="RFC6066" format="defau | |||
lt"/> in TLS is another | lt"/> in TLS is another | |||
excellent example of the failure of a well-designed extensibility point. SNI | excellent example of the failure of a well-designed extensibility point. SNI | |||
uses the same technique for extension that is used successfully in other parts | uses the same technique for extensions that is used successfully in other parts | |||
of the TLS protocol. The original design of SNI anticipated the ability to | of the TLS protocol. The original design of SNI anticipated the ability to | |||
include multiple names of different types.</t> | include multiple names of different types.</t> | |||
<t>SNI was originally defined with just one type of name: a domain name. No other | <t>SNI was originally defined with just one type of name: a domain name. No other | |||
type has ever been standardized, though several have been proposed. Despite an | type has ever been standardized, though several have been proposed. Despite an | |||
otherwise exemplary design, SNI is so inconsistently implemented that any hope | otherwise exemplary design, SNI is so inconsistently implemented that any hope | |||
for using the extension point it defines has been abandoned <xref target="SNI" f ormat="default"/>.</t> | for using the extension point it defines has been abandoned <xref target="SNI" f ormat="default"/>.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section numbered="false"> | ||||
<name>IAB Members at the Time of Approval | ||||
</name> | ||||
<t> | ||||
Internet Architecture Board members at the time this document was | ||||
approved for publication were: | ||||
</t> | ||||
<ul empty="true" spacing="compact" bare="false"> | ||||
<li > | ||||
<t><contact fullname="Jari Arkko"/></t> | ||||
</li> | ||||
<li > | ||||
<t><contact fullname="Deborah Brungard"/></t> | ||||
</li> | ||||
<li> | ||||
<t><contact fullname="Ben Campbell"/></t> | ||||
</li> | ||||
<li > | ||||
<t><contact fullname="Lars Eggert"/></t> | ||||
</li> | ||||
<li> | ||||
<t><contact fullname="Wes Hardaker"/></t> | ||||
</li> | ||||
<li > | ||||
<t><contact fullname="Cullen Jennings"/></t> | ||||
</li> | ||||
<li> | ||||
<t><contact fullname="Mirja Kühlewind"/></t> | ||||
</li> | ||||
<li > | ||||
<t><contact fullname="Zhenbin Li"/></t> | ||||
</li> | ||||
<li> | ||||
<t><contact fullname="Jared Mauch"/></t> | ||||
</li> | ||||
<li > | ||||
<t><contact fullname="Tommy Pauly"/></t> | ||||
</li> | ||||
<li > | ||||
<t><contact fullname="David Schinazi"/></t> | ||||
</li> | ||||
<li> | ||||
<t><contact fullname="Russ White"/></t> | ||||
</li> | ||||
<li > | ||||
<t><contact fullname="Jiankang Yao"/></t> | ||||
</li> | ||||
</ul> | ||||
</section> | ||||
<section numbered="false" anchor="acknowledgments" toc="default"> | <section numbered="false" anchor="acknowledgments" toc="default"> | |||
<name>Acknowledgments</name> | <name>Acknowledgments</name> | |||
<t>Toerless Eckert, Wes Hardaker, Mirja Kuehlewind, Eliot Lear, Mark Notti | <t><contact fullname="Toerless Eckert"/>, <contact fullname="Wes Hardaker" | |||
ngham, and | />, <contact fullname="Mirja Kühlewind"/>, <contact fullname="Eliot Lear"/>, <co | |||
Brian Trammell made significant contributions to this document.</t> | ntact fullname="Mark Nottingham"/>, and | |||
<contact fullname="Brian Trammell"/> made significant contributions to this docu | ||||
ment.</t> | ||||
</section> | </section> | |||
</back> | ||||
<!-- ##markdown-source: | ||||
H4sIAO5JZmEAA519W3PcyJHue/0KhPSw0kZ38yINddnweimJGtErUTRJzazX | ||||
4XBUA9VsWGigDaBJtRk6v+y8nT928svMugDdGm+sYzxDsoG6ZOXly1v1dDo1 | ||||
fdlX7nX26GNT3057166yX0o7L6uy32bNIrtsm77Jmyo7+9a7uiubOvvk8qWt | ||||
y27VPTJ2Pm/d3evsS+ey8z773GYfG/7RFE1e2xWNXLR20U9pzOmmc9Oynzbt | ||||
tGrkx8PnJre9u23a7eusrBeNKdft66xvN11/fHj46vDYmK63dfFXWzU1DbZ1 | ||||
nVmXr7M/06ImWde0fesWHf20XckPNO3KrtdlffsXY+ymXzbta5NlU/p/RjN0 | ||||
r7NPs+xm2ay6pua/ySI/2bYv68EHTXtLf2/+UVaV5T+4lS2r19mq/4+quXd1 | ||||
3zbr7ax2/XD4m1l2aTfVNhn8plmttslfeeTT9bpy6bj9Gg/8h8XfZ3mzMqZu | ||||
2pXtyzv32hgD6oRfs+zD6fWH1/y6P8B3bl01W9p4ZrMLd599sN0yO62ItmW/ | ||||
XD3iZyNB8L+p/ldXfj3L3riqau7KOnwgG7ju3Z2rQbnRA6MRzmbZlevyplWK | ||||
xRHO2jLH+4OPCzr61xmd84lsxLa3rqedLPt+3b0+OLi/v5/lHdGi2qzmpZ25 | ||||
YnPwf7rV/GBt167tDmp3P13SLmfrYiH761xbug6komGIdXPnCqJIB06+eHd9 | ||||
nf3L4ckjQ49eX5wPqXea527dg3r90vZZ0y9di6d4/Vm/XbsuuydWyGoiRZvd | ||||
N+3X/wFJT2fZR1vfVm47osdpYVeDjzwtjk6mh8/on/0UAafYNl8SE8xK1y9m | ||||
xEoH+MPBqrs96Kvu4Kh/8er2Hxfn/X8XL47e3d839u/5H//41+d/+pbzxs8v | ||||
bj5/PLs6vXh7NiTAFf3rzzcfr/8CIdjcLnsiWp39QnSGzJ/XfVO51ta5+x9s | ||||
+8Ms+0/bls1o0x82c9f2yUfppl9Mjw//t5uef/7D8R/+mD/78LfTD+/f//q2 | ||||
vLg5nx/+YfPpv2XT7y6u3388/fnd6Z9GInNxnb2v7G32zm6xjFePhst6NT38 | ||||
abAmv6Si7hb0XmFZARzg0QNM9Ony5u3l9MPnX6cfTq/eDSf70EAm2yJ7a2vo | ||||
yjfu99k7YtbbmmW2LrLzFYn+ijSLCLEItJ1XLvu0qfpybftlRuM/+rG0kIat | ||||
y29MoLypF651dGAHdVeUR8cHPentusxtNe1ch1PtDtatozd60ipNfdDaMi83 | ||||
IxIcQ0fvOXA90rdNB715xa+OP1u2Zdc36yWpPtvly9HH125u6WXSK29s27rR | ||||
p6cVUel90xajv38qiRGa7ENTF3b00XsyWzTau02+dPV4vM9VeVeS4L5paku6 | ||||
rN/szEgm4CsdUF1AJKFhb24uX2fn03fMdFOQeV52RLuVpRPKO33k6GjPQysi | ||||
sL2lY6SHrt6//enF4XPocDOdTjM77/rW5r0xN0uXeVPbNxms6q3L1mpxu6xw | ||||
a1cXLIfum2vzshP95OhXb4zBN3cipKYmQ9qXfJjZKhhpUWjdZr0ma6mTzDKS | ||||
8rKDtdyA4WhA4jVihmxJXNq62w1JnCFuguIkNRsWlS2cBe26LKfzoTXQzzJB | ||||
2dN7JKp1l60bYi+wLW2qYCY2Mm2Hv9gw2IxAhQXPd5mlYW5LGJl7Urwuq2z+ | ||||
FXNjCbmlfxdZMsTcmRWtNivKxaLMSTbIpGY5sWK1nSmVV2VBB2nMY6iutik2 | ||||
OchizClRglR91y02VdzVw8Pvr7+8fXt2ff07HNfx0cvv32nfruiSgyE+v7db | ||||
paclO3hPmzb4vIHIbni/NOwCZgKnxO/hyGQk2k5JWpU203Z0ALDRsj0Sx4mh | ||||
QYoSa+z4TOlXsElZix7GcEJKPi4aKpKRj4IkvSD2jn81vMyiIYrVjT/3rJl3 | ||||
pMd7R2T6QhxK3GZ7An06aev+vilbVkFdRnAjnaRblguaGMavL1fgoHPM2q1p | ||||
oW5iSq+7rOxhVZIJyWzxN0JytM3BVPcESErZ02CbC/zJ+Bkn/EDcZLOpCjp5 | ||||
4f3CFZOMF9gSVWzOU8eHZXZik4KsddWsXUHrPfu2BjwgjcgrAGPQclw/7Ugn | ||||
JjMldO5IHPTAnSUN1qxZuAidOdkGsyDUbM/8h3MlXroh+3p9fnP++YL56eXR | ||||
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 | ||||
mKeNAVynyZEH1QaDRNjM/H8A7ffEMHkAAA== | ||||
</back> | ||||
</rfc> | </rfc> | |||
End of changes. 79 change blocks. | ||||
1513 lines changed or deleted | 616 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |