Skip to content
Merged
Changes from all 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
19 changes: 13 additions & 6 deletions spec/ndt7-protocol.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ protocol](https://github.com/ndt-project/ndt). Ndt7 is based on
WebSocket and TLS, and takes advantage of TCP BBR, where this
flavour of TCP is available.

This is version v0.10.0 of the ndt7 specification.
This is version v0.11.0 of the ndt7 specification.

## Design choices

Expand Down Expand Up @@ -55,8 +55,9 @@ clients should be maximally simple, and that all complexity should
implemented on the server side.

Ndt7 should consume few resources. The maximum runtime of a test should
be ten seconds, but the server should be able to determine if the performance
if performance has stabilized in less than ten seconds and end the test early.
be ten seconds since the WebSocket handshake completed. The server should
be able to determine if the performance has stabilized in less than
ten seconds and, if so, end the test early.

## Protocol description

Expand Down Expand Up @@ -122,6 +123,11 @@ Connection: Upgrade\r\n
\r\n
```

The client SHOULD set a reasonable timeout (e.g., 5-10 seconds) to
allow for the TCP connect, TLS handshake, and WebSocket handshake
to complete. The test proper starts _after_ the WebSocket handshake
has successfully completed.

### WebSocket channel usage

Once the WebSocket channel is established, the client and the server
Expand Down Expand Up @@ -157,9 +163,10 @@ MAY change the size of such messages to accommodate for fast clients, as
mentioned above. See the appendix for a possible algorithm to dynamically
change the message size.

The expected duration of a test is _up to_ ten seconds. If a test has
been running for at least thirteen seconds, an implementation MAY close the
underlying TLS connection. This is allowed to keep the overall duration
The expected duration of a test is _up to_ ten seconds. The zero time to
establish duration is the time when the WebSocket handshake completed. If
a test has been running for at least thirdteen seconds, an implementation MAY
close the underlying TLS connection. This is allowed to keep the overall duration
of each test within a thirteen second upper bound. Ideally this SHOULD
be implemented so that immediately after thirteen seconds have elapsed, the
underlying TLS connection is closed. This can be implemented, e.g., in C/C++
Expand Down
Loading