Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rendezvous Connection in the Non Blocking Mode #2539

Closed
maxsharabayko opened this issue Nov 15, 2022 · 0 comments · Fixed by #2548
Closed

Rendezvous Connection in the Non Blocking Mode #2539

maxsharabayko opened this issue Nov 15, 2022 · 0 comments · Fixed by #2548
Labels
[core] Area: Changes in SRT library core Type: Bug Indicates an unexpected problem or unintended behavior
Milestone

Comments

@maxsharabayko
Copy link
Collaborator

There appears to be a bug in the rendezvous handshake flow of SRT. Checked with the latest master and SRT v1.4.2. I expect earlier versions are affected as well.
The bug is not critical because a connection still can be established. Just the flow is not totally correct and in a certain case establishing a connection would take longer: ~(2,5×RTT + 250 ms) instead of 1,5×RTT.
On the left is the expected (correct) rendezvous HS flow that happens in the blocking mode of SRT receiving (SRTO_RCVSYN=true).
Connection is established in 1,5×RTT (from the time both peers are up and running).
On the right is the (incorrect) rendezvous HS flow that happens in the non-blocking mode of SRT receiving (SRTO_RCVSYN=false).
Connection is established in (2,5×RTT + 250ms) from the time both peers are up and running.
It is however not a critical issue, because the connection is still established.

image (1)

Reason for WAVEAHAND instead of CONCLUSION REQ

The initial WAVEAHAND does not have a DST SRT Socket ID, the following condition is true:

        if (i->id != dest_id)
        {
            read_st = RST_AGAIN;
            conn_st = CONN_AGAIN;
        }

Setting conn_st = CONN_AGAIN forces another WAVEAHAND instead of CONCLUSION_REQ.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[core] Area: Changes in SRT library core Type: Bug Indicates an unexpected problem or unintended behavior
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant