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

Introduce association.Listener #74

Open
enobufs opened this issue Oct 1, 2019 · 1 comment
Open

Introduce association.Listener #74

enobufs opened this issue Oct 1, 2019 · 1 comment
Labels

Comments

@enobufs
Copy link
Member

enobufs commented Oct 1, 2019

Summary

I found it is difficult to use pion/sctp alone because sctp.Association.Client and sctp.Association.Server take a "connected" UDP. These are equivalent to a child (server) socket and a client socket of TCP. What's missing in pion/sctp s "listening socket".
In the context of WebRTC, we use Client-Client simultaneous open, which is not practical in the cases of non-WebRTC (no-ICE, etc). Client-Server is possible, but it would be difficult to establish connection if there's a NAT in between.

Motivation

Introduce the usability of pion/sctp standalone in TCP style.

Describe alternatives you've considered

I have written a tool that enables TCP like listening socket capability. However, it cannot take advantage of "cookie-echo" (resembles to TCP-Syn-cookie) SCTP offers, which is a measure against DDoS attack (like spoofed SYN-flood in TCP) because internal chunk parsers are not exposed via its API.

We can use go-rudp as a reference.

@enobufs
Copy link
Member Author

enobufs commented Oct 23, 2019

Notes:

backkem added a commit to pion/.goassets that referenced this issue Jun 20, 2020
Breaking out the UDP wrapper to make it re-
usable in pion/sctp.

Relates to pion/sctp#74
backkem added a commit that referenced this issue Jun 20, 2020
These are helpers to easily run SCTP over UDP. Example adapted.
I added the Association postfix to keep space for a potential
Dial/Listen implementation that directly gives you a Stream.

Relates to #74
backkem added a commit to pion/dtls that referenced this issue Jun 20, 2020
Breaking out the UDP wrapper to make it re-
usable in pion/sctp.

Relates to pion/sctp#74
backkem added a commit to pion/.goassets that referenced this issue Jun 21, 2020
Breaking out the UDP wrapper to make it re-
usable in pion/sctp.

Relates to pion/sctp#74
backkem added a commit to pion/dtls that referenced this issue Jun 21, 2020
Breaking out the UDP wrapper to make it re-
usable in pion/sctp.

Relates to pion/sctp#74
backkem added a commit to pion/dtls that referenced this issue Jun 21, 2020
Breaking out the UDP wrapper to make it re-
usable in pion/sctp.

Relates to pion/sctp#74
backkem added a commit that referenced this issue Jun 21, 2020
These are helpers to easily run SCTP over UDP. Example adapted.
I added the Association postfix to keep space for a potential
Dial/Listen implementation that directly gives you a Stream.

Relates to #74
backkem added a commit to pion/dtls that referenced this issue Jun 21, 2020
Breaking out the UDP wrapper to make it re-
usable in pion/sctp.

Relates to pion/sctp#74
backkem added a commit that referenced this issue Jun 21, 2020
Dial & Listen with sane but over-writable defaults.

Relates to #74
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants