Fixed group drift synchronization #2139
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When a group member updates its clock drift value and potentially the TSBPD base time, all other members need to be synchronized to use the same value.
Previously, the minimum drift value and the minimum TSBPD base time among all group member was taken as a reference, which resulted in bad behavior.
Having the improved drift tracer logic (PR #1965) now allows to do a proper synchronization of group members,
Experiment
Network: Win 10 <--> 1Gbps switch <--> CentOS 7.
Network impairments: RTT 40 ms, 1% packet loss.
SRT latency: 120 ms.
Both broadcast group transmission and single path transmission are running in parallel over the same local switch as described below.
Broadcast Group Transmission
Single Path Transmission
Results: Broadcast Receiver v1.4.4-rc.1
Experiment duration: ~4 hours.
Plots (click to expand/collapse)
Broadcast Group State
End-to-end Latency, us (min/max/avg): 2112032 / 2123588 / 2116079.
Jitter: 2051us.
Packets received 11717902
Reordered: 0 (dist 0)
Packets Lost (aka dropped): 13989 (0.12%) ❗
Single Socket State
End-to-end Latency, us (min/max/avg): 2235667 / 2235974 / 2235747
Jitter: 14us.
Packets received: 11844550
Reordered: 0 (dist 0)
Packets Lost (aka dropped): 0.