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

Handshake Extension Message. What it is about? #97

Open
nikandfor opened this issue Jun 26, 2021 · 5 comments
Open

Handshake Extension Message. What it is about? #97

nikandfor opened this issue Jun 26, 2021 · 5 comments

Comments

@nikandfor
Copy link

I'm implementing the protocol and now I'm making handshake part.
I've received Handshake Extension Message from canonical implementation, responded with my 0.0.1 version and got rejected because of too low version.

My questions are:

  • Is it more a protocol or library version?
  • If it's a library version than why it disconnects according to it?
  • How it is intended to communicate between different implementations with different version "lifecycle"?
  • What should I reply to be able to communicate?

And one more little note about extension messages.
Constant SRT_CMD_CONGESTION has only one occurrence in the document. And it's not clear what it means from there.
I've found some more info here but I believe it should have it's own paragraph in the RFC. As well as SRT_CMD_FILTER.

@nikandfor
Copy link
Author

It's also didn't said which bit endianness is used in the packets encoding.

@nikandfor
Copy link
Author

What timestamp is used in Listener handshake packets?

Until Listener received conclusion packet connection is not established and it's better not to allocate any resources. So the Listener doesn't have connection establishment time that can be used as epoch time to timestamps.

Client can use time when connection was initiated as epoch, but Listener can't.

@nikandfor
Copy link
Author

nikandfor commented Jun 27, 2021

Are message numbers started from 1?

@nikandfor
Copy link
Author

Shutdown message doesn't contain information about last sequence number sent.
On the receivers side it's difficult to determine if we read all the data before closing the socket.

@maxsharabayko
Copy link
Collaborator

Hi @nikandfor

Is it more a protocol or library version?

It is both. Initially, it is the library version. However, the library also defines certain known behavior and some known features like bidirectional transmission, so it is also a protocol version.
The best would be to think about libsrt as a library defining the protocol.

How it is intended to communicate between different implementations with different version "lifecycle"?

It didn't intend initially, as SRT was an internal project of Haivision. Now it should be just treated as the protocol version.

Constant SRT_CMD_CONGESTION has only one occurrence in the document....

To do #56

What timestamp is used in Listener handshake packets?

The time on the HS Induction response from the listener is ignored and can be zero.

Are message numbers started from 1?

Yes.

Shutdown message doesn't contain information about last sequence number sent.
On the receivers side it's difficult to determine if we read all the data before closing the socket.

Can be something to extend in v1.5.0 🤔
If the sender sends SHUTDOWN, then it is likely that no further data packet will follow, so the receiver just needs to deliver what it has received so far.

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

No branches or pull requests

2 participants