Skip to content

Commit

Permalink
Use a count rather than a length
Browse files Browse the repository at this point in the history
  • Loading branch information
martinthomson committed Oct 17, 2017
1 parent 2318887 commit c3bdb5e
Showing 1 changed file with 14 additions and 12 deletions.
26 changes: 14 additions & 12 deletions draft-ietf-quic-transport.md
Expand Up @@ -2151,24 +2151,19 @@ An ACK frame is shown below.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ACK Frame Length (i) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Largest Acknowledged (i) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ACK Delay (i) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ACK Block Count (i) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ACK Blocks (*) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~~~
{: #ack-format title="ACK Frame Format"}

The fields in the ACK frame are as follows:

ACK Frame Length:

: The length of the remainder of the ACK frame in octets. The length is
measured from the start of the encoded Largest Acknowledged field.

Largest Acknowledged:

: A variable-length integer representing the largest packet number the peer is
Expand All @@ -2187,6 +2182,10 @@ ACK Delay:
larger range of values with a shorter encoding at the cost of lower
resolution.

ACK Block Count:

: The number of Additional ACK Block (and Gap) fields after the First ACK Block.

ACK Blocks:

: Contains one or more blocks of packet numbers which have been successfully
Expand All @@ -2197,11 +2196,14 @@ ACK Blocks:

The ACK Block Section consists of alternating ACK Blocks and Gaps. A First Ack
Block is followed by a variable number of alternating Gap and Additional ACK
Blocks. The sequence ends with a Gap that is set to 0.

ACK Blocks and Gaps use a relative integer encoding for efficiency. As long as
contiguous ranges of packets are small, the variable-length integer encoding
ensures that each range can be expressed in a small number of octets.
Blocks. The number of Additional ACK Blocks and Gaps is determined by the ACK
Block Count field.

ACK Blocks and Gaps use a relative integer encoding for efficiency. Though each
encoded value is positive, the values are subtracted, so that ACK Blocks
describe progressively lower-numbered packets. As long as contiguous ranges of
packets are small, the variable-length integer encoding ensures that each range
can be expressed in a small number of octets.

~~~
0 1 2 3
Expand Down

0 comments on commit c3bdb5e

Please sign in to comment.