Fix timestamp_difference_microseconds, it is always sending 1000000 microseconds even on long transfers
- Dominant language
- Rust
- Stars
- 40
- Forks
- 20
- PR merge metrics
- No merged PRs in 30d
Description
```c
log: 0x5558be365860 127.0.0.1:9077 057733 Got ST_DATA. seq_nr:17517 ack_nr:17766 state:CONNECTED timestamp:4289278524 reply_micro:1000000
log: 0x5558be365860 127.0.0.1:9077 057733 acks:0 acked_bytes:0 seq_nr:17767 cur_window:0 cur_window_packets:0 relative_seqnr:0 max_window:1382 min_rtt:2783138807 rtt:0
log: 0x5558be365860 127.0.0.1:9077 057733 fast_resend_seq_nr:17767
log: 0x5558be365860 127.0.0.1:9077 057733 acks:0 acked_bytes:0 seq_nr:17767 cur_window:0 cur_window_packets:0
log: 0x5558be365860 127.0.0.1:9077 057733 Got Data len:960 (rb:0)
```
``timestamp_difference_microseconds`` or ``reply_micro:1000000`` is always 1 second when sending ``ethereum/utp`` to ``bittorrent/libutp``
```c
log: 0x55e16d23f860 127.0.0.1:9077 051863 Got ST_DATA. seq_nr:20615 ack_nr:17766 state:CONNECTED timestamp:1513208380 reply_micro:4221
log: 0x55e16d23f860 127.0.0.1:9077 051863 acks:0 acked_bytes:0 seq_nr:17767 cur_window:0 cur_window_packets:0 relative_seqnr:0 max_window:1382 min_rtt:2783138807 rtt:0
log: 0x55e16d23f860 127.0.0.1:9077 051863 fast_resend_seq_nr:17767
log: 0x55e16d23f860 127.0.0.1:9077 051863 acks:0 acked_bytes:0 seq_nr:17767 cur_window:0 cur_window_packets:0
log: 0x55e16d23f860 127.0.0.1:9077 051863 Got Data len:449 (rb:0)
```
This ^ is ``fluffy-utp`` to ``bittorrent/libutp`` which is sending accurate ``timestamp_difference_microseconds``
We noted before this happened on small transfers, this issue is to confirm that the issue affects every data packet send by ``ethereum/uTP`` which this would cause our congestion protocol to not work properly?
To my knowledge it doesn't matter if the numbers are werid as long as they display the relative different on the local system. Which we currently not doing
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by locating timestamp_difference_microseconds and the packet path that emits reply_micro. Compare its values with the local relative timestamp behavior shown in the libutp logs. Done means ethereum/uTP reports the actual timestamp difference instead of 1000000 microseconds on every packet, including long transfers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100