n0-computer / iroh

peer-2-peer that just works
https://iroh.computer
Apache License 2.0
2.61k stars 165 forks source link

feat(iroh-net): allow the underlying UdpSockets to be rebound #2946

Open dignifiedquire opened 1 week ago

dignifiedquire commented 1 week ago

Description

In order to handle supsension and exits on mobile. we need to rebind our UDP sockets when they break.

This PR adds the ability to rebind the socket on errors, and does so automatically on known suspension errors for iOS.

When reviewing this, please specifically look at the duration of lock holding, as this is the most sensitive part in this code.

Some references for these errors

TODOs

Closes #2939

Breaking Changes

There will be some in the netmon::UdpSocket API

Notes & open questions

Change checklist

github-actions[bot] commented 1 week ago

Documentation for this PR has been generated and is available at: https://n0-computer.github.io/iroh/pr/2946/docs/iroh/

Last updated: 2024-11-25T19:22:11Z

github-actions[bot] commented 6 days ago

Netsim report & logs for this PR have been generated and is available at: LOGS This report will remain available for 3 days.

Last updated for commit: ff1f67d

Arqu commented 6 days ago
Current run test case throughput_gbps throughput_transfer
iroh 1_to_1 0.65 1.05
iroh 1_to_3 1.46 2.14
iroh 1_to_5 2.88 4.96
iroh 1_to_10 4.31 5.62
iroh 2_to_2 1.05 1.61
iroh 2_to_4 2.03 3.16
iroh 2_to_6 3.19 4.86
iroh 2_to_10 4.58 6.48
From the last merged PR test case throughput_gbps throughput_transfer
iroh 1_to_1 0.55 0.83
iroh 1_to_3 1.27 1.76
iroh 1_to_5 2.12 2.94
iroh 1_to_10 3.70 4.66
iroh 2_to_2 0.56 0.70
iroh 2_to_4 1.13 1.41
iroh 2_to_6 1.99 2.65
iroh 2_to_10 3.34 4.46