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

Create an application for simultaneous transfer over one link (link multiplexer) #92

Closed
ethouris opened this issue Sep 11, 2017 · 1 comment

Comments

@ethouris
Copy link
Collaborator

There's a need for an application that would do multiple simultaneous transfers, but it would be seen from the firewall/route perspective as using exactly one link.

The recognition of which transfer is which when making a connection can be done by using the streamid feature.

@ethouris
Copy link
Collaborator Author

ethouris commented Sep 11, 2017

The siplex application has been created for this need. In order to make it seen as "one link connection" from the firewall perspective it's needed that the Caller party use the same outgoing port for UDP packets. From the SRT point of view these are still multiple connections using multiple sockets, just each socket at the Caller side uses the same outgoing port. The socket ID is contained in the SRT header anyway, so the packet directed to particular socket will be always correctly dispatched, no matter at which UDP port it has been received.

This utilizes a feature that existed in UDT before - if you don't preset an outgoing port before calling srt_connect(), it will be autoselected (as usual), but you can enforce outgoing port by calling srt_bind() first.

The streamid feature can be also treated by an application as as kind of "port number extension" - as per service definition, you can serve multiple streams on one port, where particular stream is selected using the stream ID, and you can also request them all to be transmitted simultaneously.

This application is available in dev branch now.

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

1 participant