Prop. 159: More on retransmission
This commit is contained in:
@ -5,9 +5,9 @@ SSU2
|
|||||||
:author: eyedeekay, orignal, zlatinb, zzz
|
:author: eyedeekay, orignal, zlatinb, zzz
|
||||||
:created: 2021-09-12
|
:created: 2021-09-12
|
||||||
:thread: http://zzz.i2p/topics/2612
|
:thread: http://zzz.i2p/topics/2612
|
||||||
:lastupdated: 2022-03-31
|
:lastupdated: 2022-04-01
|
||||||
:status: Open
|
:status: Open
|
||||||
:target: 0.9.55
|
:target: 0.9.56
|
||||||
|
|
||||||
.. contents::
|
.. contents::
|
||||||
|
|
||||||
@ -2901,6 +2901,22 @@ Data Packets are never retransmitted with the same packet number.
|
|||||||
Any retransmission of packet contents (whether or not the contents remain the same)
|
Any retransmission of packet contents (whether or not the contents remain the same)
|
||||||
must use the next unused packet number.
|
must use the next unused packet number.
|
||||||
|
|
||||||
|
Retransmitting an unchanged whole packet as-is, with the same packet number,
|
||||||
|
is not allowed for several reasons. For background see QUIC [RFC-9000]_ section 12.3.
|
||||||
|
|
||||||
|
- It's inefficient to store packets for retransmission
|
||||||
|
- A new packet data looks different to an on-path observer, can't tell it's retransmitted
|
||||||
|
- A new packet gets an updated ack block sent with it, not the old ack block
|
||||||
|
- You only retransmit what's necessary. some fragments could have been already retransmitted once and been acked
|
||||||
|
- You can fit as much as you need into each retransmitted packet if more is pending
|
||||||
|
- Endpoints that track all individual packets for the purposes of
|
||||||
|
detecting duplicates are at risk of accumulating excessive state.
|
||||||
|
The data required for detecting duplicates can be limited by
|
||||||
|
maintaining a minimum packet number below which all packets are
|
||||||
|
immediately dropped.
|
||||||
|
- This scheme is much more flexible
|
||||||
|
|
||||||
|
|
||||||
New packets are used to carry information that is
|
New packets are used to carry information that is
|
||||||
determined to have been lost. In general, information is sent again
|
determined to have been lost. In general, information is sent again
|
||||||
when a packet containing that information is determined to be lost,
|
when a packet containing that information is determined to be lost,
|
||||||
@ -4730,6 +4746,7 @@ Each Noise payload contains zero or more "blocks".
|
|||||||
|
|
||||||
This uses the same block format as defined in the [NTCP2]_ and [ECIES]_ specifications.
|
This uses the same block format as defined in the [NTCP2]_ and [ECIES]_ specifications.
|
||||||
Individual block types are defined differently.
|
Individual block types are defined differently.
|
||||||
|
The equivalent term in QUIC [RFC-9000]_ is "frames".
|
||||||
|
|
||||||
There are concerns that encouraging implementers to share code
|
There are concerns that encouraging implementers to share code
|
||||||
may lead to parsing issues. Implementers should carefully consider
|
may lead to parsing issues. Implementers should carefully consider
|
||||||
@ -5691,6 +5708,7 @@ which are also set to 1.
|
|||||||
After that, if there is room, one or more "ranges" specifying
|
After that, if there is room, one or more "ranges" specifying
|
||||||
the number of consectutive 0 bits and consecutive 1 bits
|
the number of consectutive 0 bits and consecutive 1 bits
|
||||||
lower than that.
|
lower than that.
|
||||||
|
See QUIC [RFC-9000]_ section 13.2.3 for more background.
|
||||||
|
|
||||||
|
|
||||||
.. raw:: html
|
.. raw:: html
|
||||||
|
Reference in New Issue
Block a user