Skip to content

monad-dataplane: share pacing between udp and tcp - #3237

Draft
dshulyak wants to merge 1 commit into
dmitry/parallel-datalane-udp-txfrom
dmitry/tcp-pacing
Draft

monad-dataplane: share pacing between udp and tcp#3237
dshulyak wants to merge 1 commit into
dmitry/parallel-datalane-udp-txfrom
dmitry/tcp-pacing

Conversation

@dshulyak

@dshulyak dshulyak commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

the distributed key generation protocol must send about 1 gib within 30 minutes while consensus traffic shares the same network. its messages can reach 2 mib, so retransmitting complete messages after packet loss would be wasteful. the required average dkg throughput is approximately 4.77 mbps.

dkg traffic uses background tcp through the shared global pacer, while consensus udp traffic receives high priority. tcp consumes otherwise-idle bandwidth and yields during consensus bursts. tcp also retransmits only missing network segments, avoiding full-message retransmission during packet loss.

the test used a 1 gbps pacing limit with ten tcp receivers and a 50 mib udp burst every two seconds. metrics were polled externally every 10 ms. tcp averaged 760 mbps over the run and 969 mbps while udp was idle, with zero drops or errors. this provides substantially more throughput than the dkg protocol requires.

image

@dshulyak
dshulyak force-pushed the dmitry/tcp-pacing branch 2 times, most recently from 1118450 to eac320a Compare September 1, 2026 12:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant