Skip to content

Commit c7160d9

Browse files
committed
Merge remote-tracking branch 'origin/master' into goaway
2 parents 56cce38 + 72db13a commit c7160d9

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

draft-ietf-quic-transport.md

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1440,13 +1440,13 @@ period of time. A QUIC connection, once established, can be terminated in one
14401440
of three ways:
14411441

14421442
1. Explicit Shutdown: An endpoint sends a CONNECTION_CLOSE frame to
1443-
initiate a connection termination. An endpoint MAY use application-layer
1444-
mechanisms to gracefully close activity on the connection. On termination of
1445-
the active streams, a CONNECTION_CLOSE may be sent. If an endpoint sends a
1446-
CONNECTION_CLOSE frame while unterminated streams are active (no FIN bit or
1447-
RST_STREAM frames have been sent or received for one or more streams), then
1448-
the peer must assume that the streams were incomplete and were abnormally
1449-
terminated.
1443+
terminate the connection. An endpoint MAY use application-layer mechanisms
1444+
prior to a CONNECTION_CLOSE to indicate that the connection will soon be
1445+
terminated. On termination of the active streams, a CONNECTION_CLOSE may be
1446+
sent. If an endpoint sends a CONNECTION_CLOSE frame while unterminated
1447+
streams are active (no FIN bit or RST_STREAM frames have been sent or
1448+
received for one or more streams), then the peer must assume that the streams
1449+
were incomplete and were abnormally terminated.
14501450

14511451
2. Implicit Shutdown: The default idle timeout is a required parameter in
14521452
connection negotiation. The maximum is 10 minutes. If there is no network
@@ -1465,9 +1465,18 @@ of three ways:
14651465
should send a Public Reset packet in return. (TODO: articulate rules around
14661466
when a public reset should be sent.)
14671467

1468-
TODO: Connections that are terminated are added to a TIME_WAIT list at the
1469-
server, so as to absorb any straggler packets in the network. Discuss TIME_WAIT
1470-
list.
1468+
After receiving either a CONNECTION_CLOSE frame or a Public Reset, an
1469+
endpoint MUST NOT send additional packets on that connection. After
1470+
sending either a CONNECTION_CLOSE frame or a Public Reset packet,
1471+
implementations MUST NOT send any non-closing packets on that
1472+
connection. If additional packets are received after this time and
1473+
before idle_timeout seconds has passed, implementations SHOULD respond
1474+
to them by sending a CONNECTION_CLOSE (which MAY just be a duplicate
1475+
of the previous CONNECTION_CLOSE packet) but MAY also send a Public
1476+
Reset packet. Implementations SHOULD throttle these responses, for
1477+
instance by exponentially backing off the number of packets which are
1478+
received before sending a response. After this time, implementations
1479+
SHOULD respond to unexpected packets with a Public Reset packet.
14711480

14721481
# Frame Types and Formats
14731482

0 commit comments

Comments
 (0)