refraction-networking / conjure

Conjure Refraction Networking station code
https://refraction.network
Apache License 2.0
66 stars 19 forks source link

Client control of prefix transport flush policy #219

Closed jmwample closed 10 months ago

jmwample commented 10 months ago

This PR gives the client an option to override the flush policy of the prefix that is being sent.

Currently there are only two positions where potential flushes will be inserted, after the prefix and/or after the obfuscated tag.

[prefix_bytes] |    | [obfuscated_tag] |    | [client bytes ..... -> ]
                 ^                        ^
            maybe flush              maybe flush

Currently the default policy for the existing (partial packet) prefixes is no added flushes. However, for different prefixes in the future (e.g a complete TLS ClientHello packet) it would make sense to flush after the prefix.