draft-ietf-webtrans-overview-01.txt | draft-ietf-webtrans-overview-02.txt | |||
---|---|---|---|---|
WEBTRANS V. Vasiliev | WEBTRANS V. Vasiliev | |||
Internet-Draft Google | Internet-Draft Google | |||
Intended status: Standards Track 18 October 2020 | Intended status: Standards Track 28 July 2021 | |||
Expires: 21 April 2021 | Expires: 29 January 2022 | |||
The WebTransport Protocol Framework | The WebTransport Protocol Framework | |||
draft-ietf-webtrans-overview-01 | draft-ietf-webtrans-overview-02 | |||
Abstract | Abstract | |||
The WebTransport Protocol Framework enables clients constrained by | The WebTransport Protocol Framework enables clients constrained by | |||
the Web security model to communicate with a remote server using a | the Web security model to communicate with a remote server using a | |||
secure multiplexed transport. It consists of a set of individual | secure multiplexed transport. It consists of a set of individual | |||
protocols that are safe to expose to untrusted applications, combined | protocols that are safe to expose to untrusted applications, combined | |||
with a model that allows them to be used interchangeably. | with a model that allows them to be used interchangeably. | |||
This document defines the overall requirements on the protocols used | This document defines the overall requirements on the protocols used | |||
skipping to change at page 1, line 49 ¶ | skipping to change at page 1, line 49 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on 21 April 2021. | This Internet-Draft will expire on 29 January 2022. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
and restrictions with respect to this document. Code Components | and restrictions with respect to this document. Code Components | |||
extracted from this document must include Simplified BSD License text | extracted from this document must include Simplified BSD License text | |||
as described in Section 4.e of the Trust Legal Provisions and are | as described in Section 4.e of the Trust Legal Provisions and are | |||
provided without warranty as described in the Simplified BSD License. | provided without warranty as described in the Simplified BSD License. | |||
skipping to change at page 3, line 18 ¶ | skipping to change at page 3, line 18 ¶ | |||
stream between a client and a server could rely on WebSockets | stream between a client and a server could rely on WebSockets | |||
[RFC6455], a message-based protocol compatible with the Web security | [RFC6455], a message-based protocol compatible with the Web security | |||
model. However, since the abstraction it provides is a single | model. However, since the abstraction it provides is a single | |||
ordered stream of messages, it suffers from head-of-line blocking | ordered stream of messages, it suffers from head-of-line blocking | |||
(HOLB), meaning that all messages must be sent and received in order | (HOLB), meaning that all messages must be sent and received in order | |||
even if they are independent and some of them are no longer needed. | even if they are independent and some of them are no longer needed. | |||
This makes it a poor fit for latency-sensitive applications which | This makes it a poor fit for latency-sensitive applications which | |||
rely on partial reliability and stream independence for performance. | rely on partial reliability and stream independence for performance. | |||
One existing option available to Web developers are WebRTC data | One existing option available to Web developers are WebRTC data | |||
channels [I-D.ietf-rtcweb-data-channel], which provide a WebSocket- | channels [RFC8831], which provide a WebSocket-like API for a peer-to- | |||
like API for a peer-to-peer SCTP channel protected by DTLS. In | peer SCTP channel protected by DTLS. In theory, it is possible to | |||
theory, it is possible to use it for the use cases addressed by this | use it for the use cases addressed by this specification. However, | |||
specification. However, in practice, its use in non-browser-to- | in practice, its use in non-browser-to-browser settings has been | |||
browser settings has been quite low due to its dependency on ICE | quite low due to its dependency on ICE (which fits poorly with the | |||
(which fits poorly with the Web model) and userspace SCTP (which has | Web model) and userspace SCTP (which has very few implementations | |||
very few implementations available). | available). | |||
An alternative design would be to layer WebSockets over HTTP/3 | An alternative design would be to layer WebSockets over HTTP/3 | |||
[I-D.ietf-quic-http] in a manner similar to how they are currently | [I-D.ietf-quic-http] in a manner similar to how they are currently | |||
layered over HTTP/2 [RFC8441]. That would avoid head-of-line | layered over HTTP/2 [RFC8441]. That would avoid head-of-line | |||
blocking and provide an ability to cancel a stream by closing the | blocking and provide an ability to cancel a stream by closing the | |||
corresponding WebSocket object. However, this approach has a number | corresponding WebSocket object. However, this approach has a number | |||
of drawbacks, which all stem primarily from the fact that | of drawbacks, which all stem primarily from the fact that | |||
semantically each WebSocket is a completely independent entity: | semantically each WebSocket is a completely independent entity: | |||
* Each new stream would require a WebSocket handshake to agree on | * Each new stream would require a WebSocket handshake to agree on | |||
application protocol used, meaning that it would take at least one | application protocol used, meaning that it would take at least one | |||
RTT to establish each new stream before the client can write to | RTT to establish each new stream before the client can write to | |||
it. | it. | |||
* Only clients can initiate streams. Server-initiated streams and | * Only clients can initiate streams. Server-initiated streams and | |||
other alternative modes of communication (such as the QUIC | other alternative modes of communication (such as the QUIC | |||
DATAGRAM frame [I-D.pauly-quic-datagram]) are not available. | DATAGRAM frame [I-D.ietf-quic-datagram]) are not available. | |||
* While the streams would normally be pooled by the user agent, this | * While the streams would normally be pooled by the user agent, this | |||
is not guaranteed, and the general process of mapping a WebSocket | is not guaranteed, and the general process of mapping a WebSocket | |||
to a server is opaque to the client. This introduces | to a server is opaque to the client. This introduces | |||
unpredictable performance properties into the system, and prevents | unpredictable performance properties into the system, and prevents | |||
optimizations which rely on the streams being on the same | optimizations which rely on the streams being on the same | |||
connection (for instance, it might be possible for the client to | connection (for instance, it might be possible for the client to | |||
request different retransmission priorities for different streams, | request different retransmission priorities for different streams, | |||
but that would be much more complex unless they are all on the | but that would be much more complex unless they are all on the | |||
same connection). | same connection). | |||
skipping to change at page 4, line 24 ¶ | skipping to change at page 4, line 24 ¶ | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
WebTransport is a framework that aims to abstract away the underlying | WebTransport is a framework that aims to abstract away the underlying | |||
transport protocol while still exposing a few key transport-layer | transport protocol while still exposing a few key transport-layer | |||
aspects to application developers. It is structured around the | aspects to application developers. It is structured around the | |||
following concepts: | following concepts: | |||
Transport session: A transport session is a single communication | WebTransport session: A WebTransport session is a single | |||
context established between a client and a server. It may | communication context established between a client and a server. | |||
correspond to a specific transport-layer connection, or it may be | It may correspond to a specific transport-layer connection, or it | |||
a logical entity within an existing multiplexed transport-layer | may be a logical entity within an existing multiplexed transport- | |||
connection. Transport sessions are logically independent from one | layer connection. Transport sessions are logically independent | |||
another even if some sessions can share an underlying transport- | from one another even if some sessions can share an underlying | |||
layer connection. | transport-layer connection. | |||
Transport protocol: A transport protocol (WebTransport protocol in | WebTransport protocol: A WebTransport protocol is a specific | |||
contexts where this might be ambiguous) is an instantiation of | protocol that can be used to establish a WebTransport session. | |||
WebTransport over a given transport-layer protocol. | ||||
Datagram: A datagram is a unit of transmission that is treated | Datagram: A datagram is a unit of transmission that is treated | |||
atomically. | atomically. | |||
Stream: A stream is a sequence of bytes that is reliably delivered | Stream: A stream is a sequence of bytes that is reliably delivered | |||
to the receiving application in the same order as it was | to the receiving application in the same order as it was | |||
transmitted by the sender. Streams can be of arbitrary length, | transmitted by the sender. Streams can be of arbitrary length, | |||
and therefore cannot always be buffered entirely in memory. It is | and therefore cannot always be buffered entirely in memory. | |||
expected for transport protocols and APIs to provide partial | WebTransport protocols and APIs are expected to provide partial | |||
stream data to the application before the stream has been entirely | stream data to the application before the stream has been entirely | |||
received. | received. | |||
Message: A message is a stream that is sufficiently small that it | Message: A message is a stream that is sufficiently small that it | |||
can be fully buffered before being passed to the application. | can be fully buffered before being passed to the application. | |||
WebTransport does not define messages as a primitive, since from | WebTransport does not define messages as a primitive, since from | |||
the transport perspective they can be simulated by fully buffering | the transport perspective they can be simulated by fully buffering | |||
a stream before passing it to the application. However, this | a stream before passing it to the application. However, this | |||
distinction is important to highlight since some of the similar | distinction is important to highlight since some of the similar | |||
protocols and APIs (notably WebSocket [RFC6455]) use messages as a | protocols and APIs (notably WebSocket [RFC6455]) use messages as a | |||
core abstraction. | core abstraction. | |||
Transport property: A transport property is a specific behavior that | Transport property: A transport property is a specific behavior that | |||
may or may not be exhibited by a transport. Some of those are | may or may not be exhibited by a WebTransport protocol. Some of | |||
inherent for all instances of a given transport protocol (TCP- | those are inherent for all instances of a given transport protocol | |||
based transport cannot support unreliable delivery), while others | (TCP-based transport cannot support unreliable delivery), while | |||
can vary even within the same protocol (QUIC connections may or | others can vary even within the same protocol (QUIC connections | |||
may not support connection migration). | may or may not support connection migration). | |||
Server: A WebTransport server is an application that accepts | Server: A WebTransport server is an application that accepts | |||
incoming transport sessions. | incoming WebTransport sessions. | |||
Client: A WebTransport client is an application that initiates the | Client: A WebTransport client is an application that initiates the | |||
transport session and may be running in a constrained security | transport session and may be running in a constrained security | |||
context, for instance, a JavaScript application running inside a | context, for instance, a JavaScript application running inside a | |||
browser. | browser. | |||
User agent: A WebTransport user agent is a software system that has | User agent: A WebTransport user agent is a software system that has | |||
an unrestricted access to the host network stack and can create | an unrestricted access to the host network stack and can create | |||
transports on behalf of the client. | transports on behalf of the client. | |||
2. Common Transport Requirements | 2. Common Transport Requirements | |||
Since clients are not necessarily trusted and have to be constrained | Since clients are not necessarily trusted and have to be constrained | |||
by the Web security model, WebTransport imposes certain requirements | by the Web security model, WebTransport imposes certain requirements | |||
on any specific transport protocol used. | on any specific protocol used. | |||
Any transport protocol used MUST use TLS [RFC8446] or a semantically | Any WebTransport protocol MUST use TLS [RFC8446] or a semantically | |||
equivalent security protocol (for instance, DTLS | equivalent security protocol (for instance, DTLS | |||
[I-D.ietf-tls-dtls13]). The protocols SHOULD use TLS version 1.3 or | [I-D.ietf-tls-dtls13]). The protocols SHOULD use TLS version 1.3 or | |||
later, unless they aim for backwards compatibility with legacy | later, unless they aim for backwards compatibility with legacy | |||
systems. | systems. | |||
Any transport protocol used MUST require the user agent to obtain and | Any WebTransport protocol MUST require the user agent to obtain and | |||
maintain explicit consent from the server to send data. For | maintain explicit consent from the server to send data. For | |||
connection-oriented protocols (such as TCP or QUIC), the connection | connection-oriented protocols (such as TCP or QUIC), the connection | |||
establishment and keep-alive mechanisms suffice. STUN Consent | establishment and keep-alive mechanisms suffice. STUN Consent | |||
Freshness [RFC7675] is another example of the mechanism satisfying | Freshness [RFC7675] is another example of the mechanism satisfying | |||
this requirement. | this requirement. | |||
Any transport protocol used MUST limit the rate at which the client | Any WebTransport protocol MUST limit the rate at which the client | |||
sends data. This SHOULD be accomplished via a feedback-based | sends data. This SHOULD be accomplished via a feedback-based | |||
congestion control mechanism (such as [RFC5681] or | congestion control mechanism (such as [RFC5681] or [RFC9002]). | |||
[I-D.ietf-quic-recovery]). | ||||
Any transport protocol used MUST support simultaneously establishing | Any WebTransport protocol MUST support simultaneously establishing | |||
multiple sessions between the same client and server. | multiple sessions between the same client and server. | |||
Any transport protocol used MUST prevent the clients from | Any WebTransport protocol MUST prevent the clients from establishing | |||
establishing transport sessions to network endpoints that are not | transport sessions to network endpoints that are not WebTransport | |||
WebTransport servers. | servers. | |||
Any transport protocol used MUST provide a way for servers to filter | Any WebTransport protocol MUST provide a way for servers to filter | |||
clients that can access it by checking the initiating origin | clients that can access it by checking the initiating origin | |||
[RFC6454]. | [RFC6454]. | |||
Any transport protocol used MUST provide a way for a server endpoint | Any WebTransport protocol MUST provide a way for a server endpoint | |||
location to be described using a URI [RFC3986]. This enables | location to be described using a URI [RFC3986]. This enables | |||
integration with various Web platform features that represent | integration with various Web platform features that represent | |||
resources as URIs, such as Content Security Policy [CSP]. | resources as URIs, such as Content Security Policy [CSP]. | |||
3. Session Establishment | 3. Session Establishment | |||
WebTransport session establishment is most often asynchronous, | WebTransport session establishment is most often asynchronous, | |||
although in some transports it can succeed instantaneously (for | although in some transports it can succeed instantaneously (for | |||
instance, if a transport is immediately pooled with an existing | instance, if a transport is immediately pooled with an existing | |||
connection). A session MUST NOT be considered established until it | connection). A session MUST NOT be considered established until it | |||
is secure against replay attacks. For instance, in protocols | is secure against replay attacks. For instance, in protocols | |||
creating a new TLS 1.3 session [RFC8446], this would mean that the | creating a new TLS 1.3 session [RFC8446], this would mean that the | |||
user agent MUST NOT treat the session as established until it | user agent MUST NOT treat the session as established until it | |||
received a Finished message from the server. | received a Finished message from the server. | |||
In some cases, the transport protocol might allow transmitting data | In some cases, a WebTransport protocol might allow transmitting data | |||
before the session is established; an example is TLS 0-RTT data. | before the session is established; an example is TLS 0-RTT data. | |||
Since this data can be replayed by attackers, it MUST NOT be used | Since this data can be replayed by attackers, it MUST NOT be used | |||
unless the client has explicitly requested 0-RTT for specific streams | unless the client has explicitly requested 0-RTT for specific streams | |||
or datagrams it knows to be safely replayable. | or datagrams it knows to be safely replayable. | |||
4. Transport Features | 4. Transport Features | |||
The following transport features are defined in this document. This | The following transport features are defined in this document. This | |||
list is not meant to be comprehensive; future documents may define | list is not meant to be comprehensive; future documents may define | |||
new features for both new and already existing transports. | new features for both new and already existing transports. | |||
skipping to change at page 7, line 32 ¶ | skipping to change at page 7, line 32 ¶ | |||
performing path MTU discovery. | performing path MTU discovery. | |||
4.2. Streams | 4.2. Streams | |||
A unidirectional stream is a one-way reliable in-order stream of | A unidirectional stream is a one-way reliable in-order stream of | |||
bytes where the initiator is the only endpoint that can send data. A | bytes where the initiator is the only endpoint that can send data. A | |||
bidirectional stream allows both endpoints to send data and can be | bidirectional stream allows both endpoints to send data and can be | |||
conceptually represented as a pair of unidirectional streams. | conceptually represented as a pair of unidirectional streams. | |||
The streams are in general expected to follow the semantics and the | The streams are in general expected to follow the semantics and the | |||
state machine of QUIC streams ([I-D.ietf-quic-transport], Sections 2 | state machine of QUIC streams ([RFC9000], Sections 2 and 3). TODO: | |||
and 3). TODO: describe the stream state machine explicitly. | describe the stream state machine explicitly. | |||
A WebTransport stream can be reset, indicating that the endpoint is | A WebTransport stream can be reset, indicating that the endpoint is | |||
not interested in either sending or receiving any data related to the | not interested in either sending or receiving any data related to the | |||
stream. In that case, the sender is expected to not retransmit any | stream. In that case, the sender is expected to not retransmit any | |||
data that was already sent on that stream. | data that was already sent on that stream. | |||
Streams SHOULD be sufficiently lightweight that they can be used as | Streams SHOULD be sufficiently lightweight that they can be used as | |||
messages. | messages. | |||
Data sent on a stream is flow controlled by the transport protocol. | Data sent on a stream is flow controlled by the transport protocol. | |||
skipping to change at page 10, line 22 ¶ | skipping to change at page 10, line 22 ¶ | |||
There are no requests to IANA in this document. | There are no requests to IANA in this document. | |||
9. References | 9. References | |||
9.1. Normative References | 9.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://doi.org/10.17487/RFC2119>. | |||
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | |||
Resource Identifier (URI): Generic Syntax", STD 66, | Resource Identifier (URI): Generic Syntax", STD 66, | |||
RFC 3986, DOI 10.17487/RFC3986, January 2005, | RFC 3986, DOI 10.17487/RFC3986, January 2005, | |||
<https://www.rfc-editor.org/info/rfc3986>. | <https://doi.org/10.17487/RFC3986>. | |||
[RFC6454] Barth, A., "The Web Origin Concept", RFC 6454, | [RFC6454] Barth, A., "The Web Origin Concept", RFC 6454, | |||
DOI 10.17487/RFC6454, December 2011, | DOI 10.17487/RFC6454, December 2011, | |||
<https://www.rfc-editor.org/info/rfc6454>. | <https://doi.org/10.17487/RFC6454>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://doi.org/10.17487/RFC8174>. | |||
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | |||
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
<https://www.rfc-editor.org/info/rfc8446>. | <https://doi.org/10.17487/RFC8446>. | |||
9.2. Informative References | 9.2. Informative References | |||
[CSP] W3C, "Content Security Policy Level 3", October 2020, | [CSP] W3C, "Content Security Policy Level 3", July 2021, | |||
<https://www.w3.org/TR/CSP/>. | <https://www.w3.org/TR/CSP/>. | |||
[I-D.ietf-quic-datagram] | ||||
Pauly, T., Kinnear, E., and D. Schinazi, "An Unreliable | ||||
Datagram Extension to QUIC", Work in Progress, Internet- | ||||
Draft, draft-ietf-quic-datagram-03, 12 July 2021, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-quic- | ||||
datagram-03>. | ||||
[I-D.ietf-quic-http] | [I-D.ietf-quic-http] | |||
Bishop, M., "Hypertext Transfer Protocol Version 3 | Bishop, M., "Hypertext Transfer Protocol Version 3 | |||
(HTTP/3)", Work in Progress, Internet-Draft, draft-ietf- | (HTTP/3)", Work in Progress, Internet-Draft, draft-ietf- | |||
quic-http-31, 24 September 2020, <http://www.ietf.org/ | quic-http-34, 2 February 2021, | |||
internet-drafts/draft-ietf-quic-http-31.txt>. | <https://datatracker.ietf.org/doc/html/draft-ietf-quic- | |||
http-34>. | ||||
[I-D.ietf-quic-recovery] | ||||
Iyengar, J. and I. Swett, "QUIC Loss Detection and | ||||
Congestion Control", Work in Progress, Internet-Draft, | ||||
draft-ietf-quic-recovery-31, 24 September 2020, | ||||
<http://www.ietf.org/internet-drafts/draft-ietf-quic- | ||||
recovery-31.txt>. | ||||
[I-D.ietf-quic-transport] | ||||
Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed | ||||
and Secure Transport", Work in Progress, Internet-Draft, | ||||
draft-ietf-quic-transport-31, 24 September 2020, | ||||
<http://www.ietf.org/internet-drafts/draft-ietf-quic- | ||||
transport-31.txt>. | ||||
[I-D.ietf-rtcweb-data-channel] | ||||
Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data | ||||
Channels", Work in Progress, Internet-Draft, draft-ietf- | ||||
rtcweb-data-channel-13, 4 January 2015, | ||||
<http://www.ietf.org/internet-drafts/draft-ietf-rtcweb- | ||||
data-channel-13.txt>. | ||||
[I-D.ietf-tls-dtls13] | [I-D.ietf-tls-dtls13] | |||
Rescorla, E., Tschofenig, H., and N. Modadugu, "The | Rescorla, E., Tschofenig, H., and N. Modadugu, "The | |||
Datagram Transport Layer Security (DTLS) Protocol Version | Datagram Transport Layer Security (DTLS) Protocol Version | |||
1.3", Work in Progress, Internet-Draft, draft-ietf-tls- | 1.3", Work in Progress, Internet-Draft, draft-ietf-tls- | |||
dtls13-38, 29 May 2020, <http://www.ietf.org/internet- | dtls13-43, 30 April 2021, | |||
drafts/draft-ietf-tls-dtls13-38.txt>. | <https://datatracker.ietf.org/doc/html/draft-ietf-tls- | |||
dtls13-43>. | ||||
[I-D.pauly-quic-datagram] | ||||
Pauly, T., Kinnear, E., and D. Schinazi, "An Unreliable | ||||
Datagram Extension to QUIC", Work in Progress, Internet- | ||||
Draft, draft-pauly-quic-datagram-05, 4 November 2019, | ||||
<http://www.ietf.org/internet-drafts/draft-pauly-quic- | ||||
datagram-05.txt>. | ||||
[RFC0896] Nagle, J., "Congestion Control in IP/TCP Internetworks", | [RFC0896] Nagle, J., "Congestion Control in IP/TCP Internetworks", | |||
RFC 896, DOI 10.17487/RFC0896, January 1984, | RFC 896, DOI 10.17487/RFC0896, January 1984, | |||
<https://www.rfc-editor.org/info/rfc896>. | <https://doi.org/10.17487/RFC0896>. | |||
[RFC5681] Allman, M., Paxson, V., and E. Blanton, "TCP Congestion | [RFC5681] Allman, M., Paxson, V., and E. Blanton, "TCP Congestion | |||
Control", RFC 5681, DOI 10.17487/RFC5681, September 2009, | Control", RFC 5681, DOI 10.17487/RFC5681, September 2009, | |||
<https://www.rfc-editor.org/info/rfc5681>. | <https://doi.org/10.17487/RFC5681>. | |||
[RFC6455] Fette, I. and A. Melnikov, "The WebSocket Protocol", | [RFC6455] Fette, I. and A. Melnikov, "The WebSocket Protocol", | |||
RFC 6455, DOI 10.17487/RFC6455, December 2011, | RFC 6455, DOI 10.17487/RFC6455, December 2011, | |||
<https://www.rfc-editor.org/info/rfc6455>. | <https://doi.org/10.17487/RFC6455>. | |||
[RFC7675] Perumal, M., Wing, D., Ravindranath, R., Reddy, T., and M. | [RFC7675] Perumal, M., Wing, D., Ravindranath, R., Reddy, T., and M. | |||
Thomson, "Session Traversal Utilities for NAT (STUN) Usage | Thomson, "Session Traversal Utilities for NAT (STUN) Usage | |||
for Consent Freshness", RFC 7675, DOI 10.17487/RFC7675, | for Consent Freshness", RFC 7675, DOI 10.17487/RFC7675, | |||
October 2015, <https://www.rfc-editor.org/info/rfc7675>. | October 2015, <https://doi.org/10.17487/RFC7675>. | |||
[RFC8441] McManus, P., "Bootstrapping WebSockets with HTTP/2", | [RFC8441] McManus, P., "Bootstrapping WebSockets with HTTP/2", | |||
RFC 8441, DOI 10.17487/RFC8441, September 2018, | RFC 8441, DOI 10.17487/RFC8441, September 2018, | |||
<https://www.rfc-editor.org/info/rfc8441>. | <https://doi.org/10.17487/RFC8441>. | |||
[RFC8831] Jesup, R., Loreto, S., and M. Tüxen, "WebRTC Data | ||||
Channels", RFC 8831, DOI 10.17487/RFC8831, January 2021, | ||||
<https://doi.org/10.17487/RFC8831>. | ||||
[RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based | ||||
Multiplexed and Secure Transport", RFC 9000, | ||||
DOI 10.17487/RFC9000, May 2021, | ||||
<https://doi.org/10.17487/RFC9000>. | ||||
[RFC9002] Iyengar, J., Ed. and I. Swett, Ed., "QUIC Loss Detection | ||||
and Congestion Control", RFC 9002, DOI 10.17487/RFC9002, | ||||
May 2021, <https://doi.org/10.17487/RFC9002>. | ||||
Author's Address | Author's Address | |||
Victor Vasiliev | Victor Vasiliev | |||
Email: vasilvv@google.com | Email: vasilvv@google.com | |||
End of changes. 36 change blocks. | ||||
89 lines changed or deleted | 81 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/ |