Skip to content

Commit e2e99ff

Browse files
authored
Merge pull request #43 from dthaler/typos
Some editorial fixes
2 parents 2c8ef9d + b5c6688 commit e2e99ff

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

draft-edm-protocol-greasing.md

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,11 @@ protocol constraints. For instance, protocols that use 8-bit fields may
143143
find it too costly to dedicate many grease values, while 32-bit or 64-bit
144144
fields are likely to have no such limitations.
145145

146-
It is recommended to use an algorithm to reserving large sets of values.
147-
For example, {{QUIC}} uses and algorithm of `31 * N + 27` to allocate
148-
transport parameters grease values.
146+
It is recommended to use an algorithm to reserve large sets of values.
147+
For example, {{QUIC}} uses an algorithm of `31 * N + 27` to allocate
148+
grease values for transport parameters.
149149

150-
One possible problem with some algorithms is how they will spread out
150+
One possible problem with some algorithms is that they will spread out
151151
values over the space, and impact the ability to use or reserve contiguous
152152
blocks of non-grease values. It is common for protocol extension designers
153153
to want to reserve contiguous blocks of codepoints in order to aid
@@ -165,7 +165,7 @@ the values are reserved in order to prevent them from being allocated
165165
for other uses. The specifics of how to represent the reservations
166166
is up to the documents that define the registries.
167167

168-
Some registries list out the reserved grease values specifically, marked as
168+
Some registries list out the reserved grease values individually, marked as
169169
"Reserved". For example, the TLS registry uses this approach
170170
(https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml).
171171

@@ -183,16 +183,18 @@ to label the reservation with a clear identifier, such as "reserved for greasing
183183
## Use Unpredictable Grease Values
184184

185185
In order to gain the benefits of active use and avoid ossification, grease values
186-
need to be sent in ways that won't become a predictable pattern that implementations
186+
used in actual packets
187+
need to be sent in ways that won't become a predictable pattern that receiver and
188+
middlebox implementations
187189
and deployments ossify around.
188190

189191
Implementations that generate grease values should pick unpredictable entries
190192
from the set of reserved grease values. It is most important that values be
191193
unpredictable across the set of all protocol participants for particular deployments.
192-
This can be achieved in multiple ways: for example, an individual client device
194+
This can be achieved in multiple ways: for example, an individual sender
193195
might pick random values from the grease value space on each interaction;
194-
alternatively, a single client could pick a specific grease value to use, while
195-
other clients pick other values.
196+
alternatively, a single sender could pick a specific grease value to use, while
197+
other senders pick other values.
196198

197199
In order to support picking unpredictable values, the set of reserved values
198200
should be large, when possible. See {{define}} for a discussion of how to allocate
@@ -205,7 +207,7 @@ can be made unpredictable. Implementations can vary their behavior by including
205207
no grease values, one grease value, or multiple grease values for a given protocol
206208
extension point.
207209

208-
How consistently an frequently to use grease values is a choice that implementations
210+
How consistently and frequently to use grease values is a choice that implementations
209211
and deployments need to consider and weigh against several factors.
210212

211213
Deployments of greasing should consider how they expect errors exposed by
@@ -334,7 +336,7 @@ discussion, in order to provide an incentive to implementers or deployers of oss
334336
# Considerations for Increasing Protocol Variability {#variability}
335337

336338
Greasing can maintain protocol extensibility by falsifying active use of its
337-
extension points. However, greasing alone does not ensure positive use of extension mechanisms. A protocol may
339+
extension points (see {{Section 3.3 of VIABILITY}}). However, greasing alone does not ensure positive use of extension mechanisms. A protocol may
338340
define a wide-ranging extension capability that remains unused in the absence of
339341
real use cases. This can lead to ossification that does not expect extensions,
340342
leading to interoperability problems later on.
@@ -344,7 +346,7 @@ extension points positively. To some extent this can be thought of as protocol
344346
fuzzing. This might be difficult to exercise because varying the protocol
345347
elements might change the outcome of interactions, leading to real errors.
346348
However, some protocols allow elements to be be safely changed, as shown in the
347-
following examples.
349+
following example.
348350

349351
## Example: QUIC frames
350352

@@ -359,8 +361,8 @@ reassemble frames, which could arrive in any order, into an ordered reliable
359361
byte stream that is readable by applications.
360362

361363
A form of positive testing is for a sender to unpredictably order the STREAM
362-
frames that it transmits. For example, varying the sequence order of offset
363-
values. This allows to exercise the QUIC reassembly features of the receiver
364+
frames that it transmits. For example, the sender can vary the sequence order of offset
365+
values. This allows exercising the QUIC reassembly features of the receiver
364366
with the expectation that no failure would occur. However, doing this may
365367
introduce delay or stream head-of-line blocking that affects the performance
366368
aspects of a transmission, which may not be acceptable for a given use case. As

0 commit comments

Comments
 (0)