Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add session errors for control and data timeout #619

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions draft-ietf-moq-transport.md
Original file line number Diff line number Diff line change
Expand Up @@ -562,6 +562,10 @@ code, as defined below:
|------|---------------------------|
| 0x10 | GOAWAY Timeout |
|------|---------------------------|
| 0x11 | Control Message Timeout |
|------|---------------------------|
| 0x12 | Data Stream Timeout |
|------|---------------------------|

* No Error: The session is being terminated without an error.

Expand All @@ -583,6 +587,16 @@ code, as defined below:
close the session in response to a GOAWAY ({{message-goaway}}) message.
See session migration ({{session-migration}}).

* Control Message Timeout: The session was closed because the peer took too
long to respond to a control message.

* Data Stream Timeout: The session was closed because the peer took too
long to send data expected on an open Data Stream {{data-streams}}. This
includes fields of a stream header or an object header within a data
stream. If an endpoint times out waiting for a new object header on an
open subgroup stream, it MAY send a STOP_SENDING on that stream, terminate
the subscription, or close the session with an error.

## Migration {#session-migration}

MoqTransport requires a long-lived and stateful session. However, a service
Expand Down Expand Up @@ -2351,6 +2365,12 @@ subscriber MUST cancel a stream, preferably the lowest priority, after
reaching a resource limit.


## Timeouts

Implementations are advised to use timeouts to prevent resource
exhaustion attacks by a peer that does not send expected data withing
ianswett marked this conversation as resolved.
Show resolved Hide resolved
an expected time. Each implementation is expected to set its own limits.

# IANA Considerations {#iana}

TODO: fill out currently missing registries:
Expand Down
Loading