SCTP - versatica/mediasoup GitHub Wiki
Specifications
Stream Control Transmission Protocol (SCTP) Parameters: https://www.iana.org/assignments/sctp-parameters/sctp-parameters.xhtml
- RFC 9260: Stream Control Transmission Protocol (SCTP)
- Chunks, Parameters and Error Causes
- Logic
- RFC 9653: Zero Checksum for SCTP
- Parameter Type 32769 (0x8001): Zero Checksum Acceptable Parameter
- Logic.
- RFC 8261: DTLS Encapsulation of SCTP Packets
- Logic
- RFC 8832: WebRTC Data Channel Establishment Protocol
- PPID WebRTC DCE: 50.
- Logic.
- RFC 8831: WebRTC Data Channels
- PPID WebRTC String: 51.
- PPID WebRTC Binary Partial (deprecated): 52.
- PPID WebRTC Binary: 53.
- PPID WebRTC String Partial (deprecated): 54.
- PPID WebRTC String Empty: 56.
- PPID WebRTC Binary Empty: 57.
- Logic.
- RFC 8261: DTLS Encapsulation of SCTP Packets
- Logic.
- RFC 8260: Stream Schedulers and User Message Interleaving for SCTP
- Chunk Type 64 (0x40): Payload Data supporting Interleaving (I-DATA)
- Chunk Type 194 (0xC2): I-FORWARD-TSN
- Logic
- RFC 6525: SCTP Stream Reconfiguration
- Chunk Type 130 (0x82): Re-configuration Chunk (RE-CONFIG)
- Parameter Type 13 (0x0D): Outgoing SSN Reset Request Parameter
- Parameter Type 14 (0x0E): Incoming SSN Reset Request Parameter
- Parameter Type 15 (0x0F): SSN/TSN Reset Request Parameter
- Parameter Type 16 (0x10): Re-configuration Response Parameter
- Parameter Type 17 (0x11): Add Outgoing Streams Request Parameter
- Parameter Type 18 (0x12): Add Incoming Streams Request Parameter
- Logic
- RFC 5061: SCTP Dynamic Address Reconfiguration
- Chunk Type 193 (0xC1): Address Configuration Change Chunk (ASCONF)
- Chunk Type 128 (0x80): Address Configuration Acknowledgment (ASCONF-ACK)
- Parameter Type 32776 (0x8008): Supported Extensions
- Parameter Type 49153 (0xC001): Add IP Address
- Parameter Type 49154 (0xC002): Delete IP Address
- Parameter Type 49155 (0xC003): Error Cause Indication
- Parameter Type 49156 (0xC004): Set Primary Address
- Parameter Type 49157 (0xC005): Success Indication
- Parameter Type 49158 (0xC006): Adaptation Layer Indication
- Error Cause 160 (0x00A0): Request to Delete Last Remaining IP Address
- Error Cause 161 (0x00A1): Operation Refused Due to Resource Shortage
- Error Cause 162 (0x00A2): Request to Delete Source IP Address
- Error Cause 163 (0x00A3): Association Aborted Due to Illegal ASCONF-ACK
- Error Cause 164 (0x00A4): Request Refused - No Authorization
- Logic
- RFC 4895: Authenticated Chunks for SCTP
- Chunk Type 15 (0x000F): Authentication Chunk
- Parameter Type 32770 (0x8002): Random
- Parameter Type 32771 (0x8003): Chunk List
- Parameter Type 32772 (0x8004): Requested HMAC Algorithm Parameter
- Error Cause 261 (0x0105): Unsupported HMAC Identifier
- Logic
- RFC 4820: Padding Chunk and Parameter for SCTP
- Chunk Type 132 (0x84): Padding Chunk (PAD)
- Parameter Type 32773 (0x8005): Padding
- RFC 3758: SCTP Partial Reliability Extension
- Chunk Type 192 (0xC0): Forward Cumulative TSN
- Parameter Type 49152 (0xC000): Forward TSN Supported
- Logic
- RFC 3873: SCTP Management Information Base (MIB)
Resources
- "Stream Control Transmission Protocol (SCTP)": https://tnlandforms.us/ornlwww/netperf/sctp.html
- SCTP state machine: https://tnlandforms.us/ornlwww/netperf/SCTPstate.png
- Google
dcSCTP
library: https://webrtc.googlesource.com/src//+/master/net/dcsctp/packet- Notice that I-DATA (RFC 8260) is implemented but it's disabled.
- SCTP implementation in TypeScript: https://github.com/shinyoshiaki/werift-webrtc/blob/develop/packages/sctp/src/sctp.ts