ethereum / ethereum/utp

More tests in tests/socket, with explicit dropped packets

Open
#73 0 comments 0 reactions 1 assignee Claimed by @carver View on GitHub
Dominant language
Rust
Stars
40
Forks
20
PR merge metrics
No merged PRs in 30d

Description

One of the important effects of running the high-concurrency tests is that (in some environments) they trigger packet loss. Seeing how utp responds in this situation is important.

We might be able to get more consistent results, faster tests, and/or new discoveries, by having more explicit packet-dropping patterns. The basic idea would be to use a socket layer where we control packet-loss according to some repeatable pattern. (ie~ Write a wrapper `UdpLossy` around `UdpSocket` and use `UtpSocket::with_socket(lossy_udp)` instead of `UtpSocket::bind()`.

Some possible options for packet-loss patterns:
- drop every Nth packet, for example, N=3: SEND, SEND, DROP, SEND, SEND, DROP
- flip-flop between drop N & send N, for example N=2: SEND, SEND, DROP, DROP, SEND, SEND, DROP, DROP

Naturally, test a bunch of different N. Also, try various combinations of these on only inbound, only outbound, and both.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.