Network protocols¶
Roc uses several network protocols for exchanging data between sender and receiver.
Roc avoids inventing new protocols and relies on existing open standards, to take advantage of their careful design and potential interoperability with other software. Roc implements from scratch most protocols (but not codecs). Sometimes there is just no suitable and reusable open implementation. Often the protocol logic must be tightly integrated into the pipeline and it would be hard to employ a stand-alone implementation.
Although Roc is designed to support arbitrary protocols, and most of the code is generic, so far all supported protocols are RTP-based. RTP by itself is very basic but also very extensible. To employ RTP, one needs to select an RTP profile and, if necessary, some RTP extensions.
As a basis, Roc uses RTP Audio/Video Profile (AVPF) which specifies how to stream audio and video using RTP.
It also employs FEC Framework (FECFRAME), which specifies how to incorporate various FEC schemes into RTP. Using FECFRAME may prevent interoperability with third-party RTP implementations that don’t support it. If you need compatibility with such applications, you can disable FEC.
Roc also employs various RTCP extensions to exchange non-media reports between sender and receiver. Usually this doesn’t break interoperability with implementations that don’t support extensions, however some features may not work with such implementations (e.g. sender-side latency tuning).
Here is the full list of the network protocols implemented by Roc:
RFC |
Name |
Comment |
---|---|---|
RTP: A Transport Protocol for Real-Time Applications |
Basic RTP and RTCP |
|
RTP Profile for Audio and Video Conferences with Minimal Control |
RTP AVPF (Audio/Video Profile) |
|
RTP Control Protocol Extended Reports |
RTCP XR
(supported blocks: DLRR, RRTR)
|
|
Measurement Identity and Information Reporting Using a Source Description (SDES) Item and an RTCP Extended Report (XR) Block |
RTCP XR Measurement Information Block |
|
RTP Control Protocol (RTCP) Extended Report (XR) Block for Delay Metric Reporting |
RTCP XR Delay Metrics Block |
|
Forward Error Correction (FEC) Framework |
FECFRAME |
|
Simple Reed-Solomon Forward Error Correction (FEC) Scheme for FECFRAME |
Reed-Solomon FEC Scheme |
|
Simple Low-Density Parity Check (LDPC) Staircase Forward Error Correction (FEC) Scheme for FECFRAME |
LDPC-Staircase FEC Scheme |