SSU: Single streaming timer, reset after ACK #496

Closed
opened 2025-04-21 15:11:45 -04:00 by idk · 2 comments
Owner

In SSU each message has it's own timer so to speak, whereas there should be a single timer per connection.

The attached patch replaces the nextSendTime variable in OutboundMessageState with a single variable in PeerState. There are few other changes to bring the implementation more in-line with RFCs 6298 and 5681: up to half of the outstanding window can be retransmitted during congestion as opposed to just a single message as it is now.

ssu_single_timer.diff

The attached spreadsheet shows benchmark of the performance of the streaming lib patches and this ssu patch in the testnet with various packet loss probabilities.

ssu_streaming_in_loss.ods

In SSU each message has it's own timer so to speak, whereas there should be a single timer per connection. The attached patch replaces the nextSendTime variable in OutboundMessageState with a single variable in PeerState. There are few other changes to bring the implementation more in-line with RFCs 6298 and 5681: up to half of the outstanding window can be retransmitted during congestion as opposed to just a single message as it is now. [ssu_single_timer.diff](/uploads/50099490057bbe3fb758ab0436ceddaa/ssu_single_timer.diff) The attached spreadsheet shows benchmark of the performance of the streaming lib patches and this ssu patch in the testnet with various packet loss probabilities. [ssu_streaming_in_loss.ods](/uploads/723cbdafbf273bbf18d7697a47207a6e/ssu_streaming_in_loss.ods)
idk closed this issue 2025-04-21 15:11:45 -04:00
Author
Owner

Several SSU changes in 0.9.47-x and 0.9.48-x

Several SSU changes in 0.9.47-x and 0.9.48-x
Author
Owner

The attached patch also includes the fix for #2

The attached patch also includes the fix for #2
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: I2P_Developers/i2p.i2p#496
No description provided.