Read original / markdown
A Framework for SDP Attributes when Multiplexing
そもそものSDP
各メディアも別々のトランスポートで送ってた
しかしa=group:BUNDLE
ができるようになって事情が変わった
ICEの属性たちが各メディアレベルにあっても混乱する
SDPの属性もたくさんあるし、用途によって使い分ける必要がある
ICE, DTLS, SRTP, RTPなどのスタックを使う昨今
NAT超えのコストもあるし、できれば利用するトランスポートは限定したい
そこでBUNDLEするようになったはいいが、SDPとしては制約も増えた
属性のコンビネーションが問題になってくる
古き良きSDPの制約は、1ポートに多重化すると意味をなさなかったり不整合があったり
いま現在250のSDP属性があって、この先も増えていくだろう
4. SDP Attribute Analysis Framework
SDPの構成は3層
これらを構成する各属性が多重化される場合にどうなるかを、カテゴリに分けて解説する
メディアに関するもの
RTCP/RTCPやネットワークアドレス、QoSなど
メタ情報
グルーピングなど、メディアに関するものの関連付けに関するもの
NORMAL
カテゴリ
多重化されるときも意味合いは変わらない
sendonly
などのdirection
や、a=label
など
CAUTION
カテゴリ
多重化されると意味合いが変わる
DCCPに関するものなど
IDENTICAL
カテゴリ
多重化されていても、すべてのm=
セクションに必要
a=rtcp-mux
など
とはいってもBUNDLEする場合は、ベースとなるm=
にだけ適用するものもある
SUM
カテゴリ
多重化される場合に、合算されるべきもの
b=AS
など
TRANSPORT
カテゴリ
すべてのm=
セクションに記述されていても、BUNDLEのベースとなるものを採用する
a=crypto
など
INHERIT
カテゴリ
RFC5939のSDP Capability Negotiationを使うときに
WebRTCでは使ってない
4.7. Category: IDENTICAL-PER-PT
IDENTICAL-PER-PT
カテゴリ
そのm=
セクションで使われるRTPのペイロードタイプに関するもの
複数回登場する場合でも、ペイロードタイプは同じ数値になる
SPECIAL
カテゴリ
簡単には説明できないので、各仕様を参照してほしいもの
extmap
属性など
TBD
カテゴリ
挙動が決まってないので、多重化されるべきではないもの
5. Analysis of Existing Attributes
既存のRFCで定義されているSDP属性について改めて分類
表記は以下
S: セッションレベル
M: メディアレベル
B: セッションレベルでもメディアレベルでも
SR: ソースレベル
sendrecv
: B, NORMAL
rtpmap
: M, IDENTICAL-PER-PT
fmtp
: M, IDENTICAL-PER-PT
rtcp-fb
: M, IDENTICAL-PER-PT
5.3. RFC5761: Multiplexing RTP and RTCP
5.4. RFC3312: Integration of Resource Management and SIP
5.5. RFC4574: SDP Label Attribute
5.6. RFC5432: QOS Mechanism Selection in SDP
5.7. RFC4568: SDP Security Descriptions
5.8. RFC5762: RTP over DCCP
5.9. RFC6773: DCCP-UDP Encapsulation
5.10. RFC5506: Reduced-Size RTCP in RTP Profile
5.11. RFC6787: Media Resource Control Protocol Version 2
ice-lite
: S, NORMAL
ice-options
: S, NORMAL
ice-mismatch
: S, NORMAL
ice-pwd
: B, TRANSPORT
ice-ufrag
: B, TRANSPORT
candidate
: M, TRANSPORT
remote-candidates
: M, TRANSPORT
5.13. RFC5285: RTP Header Extensions
5.14. RFC3605: RTCP attribute in SDP
5.15. RFC5576: Source-Specific SDP Attributes
ssrc
: M, NORMAL
ssrc-group
: M, NORMAL
5.16. RFC7273: RTP Clock Source Signalling
5.17. RFC6236: Image Attributes in SDP
imageattr
: M, IDENTICAL-PER-PT
5.18. RFC7197: Duplication Delay Attribute in SDP
5.19. RFC7266: RTCP XR Blocks for MOS Metric Reporting
5.20. RFC6285: Rapid Acquisition of Multicast RTP Sessions
5.21. RFC6230: Media Control Channel Framework
5.22. RFC6364: SDP Elements for FEC Framework
5.23. RFC4796: Content Attribute
5.24. RFC3407: SDP Simple Capability Declaration
5.25. RFC6284: Port Mapping between Unicast and Multicast RTP Sessions
5.27. RFC4583: SDP Format for BFCP Streams
5.28. RFC5547: SDP Offer/Answer for File Transfer
5.29. RFC6849: SDP and RTP Media Loopback Extension
5.30. RFC5760: RTCP with Unicast Feedback
5.32. RFC5939: SDP Capability Negotiation
5.33. RFC6871: SDP Media Capabilities Negotiation
5.34. RFC7006: Miscellaneous Capabilities Negotiation SDP
5.35. RFC4567: Key Management Extensions for SDP and RTSP
5.36. RFC4572: Comedia over TLS in SDP
fingerprint
: B, TRANSPORT
5.37. RFC4570: SDP Source Filters
5.38. RFC6128: RTCP Port for Multicast Sessions
5.40. RFC4145: Connection-Oriented Media
5.41. RFC6947: The SDP altc Attribute
5.42. RFC7195: SDP Extension for Circuit Switched Bearers in PSTN
5.43. RFC7272: IDMS Using the RTP Control Protocol (RTCP)
5.44. RFC5159: Open Mobile Alliance (OMA) Broadcast (BCAST) SDP Attributes
5.45. RFC6193: Media Description for IKE in SDP
5.46. RFC2326: Real Time Streaming Protocol
5.47. RFC6064: SDP and RTSP Extensions for 3GPP
5.57. RFC4975: The Message Session Relay Protocol
5.58. Historical Attributes
6. bwtype Attribute Analysis
6.2. RFC3556: SDP Bandwidth Modifiers for RTCP Bandwidth
6.3. RFC3890: Bandwidth Modifier for SDP
7. rtcp-fb Attribute Analysis
a=rtcp-fb
で指定する値について
ここに記載があるもの以外でもWebRTCで使われてるものはある
nack
: M, IDENTICAL-PER-PT
nack pli
: M, IDENTICAL-PER-PT
7.2. RFC5104: Codec Control Messages in AVPF
7.3. RFC6285: Unicast-Based Rapid Acquisition of Multicast RTP Sessions (RAMS)
7.4. RFC6679: ECN for RTP over UDP/IP
7.5. RFC6642: Third-Party Loss Report
7.6. RFC5104: Codec Control Messages in AVPF
ccm fir
: M, IDENTICAL-PER-PT
8. group Attribute Analysis
8.1. RFC5888: SDP Grouping Framework
8.2. RFC3524: Mapping Media Streams to Resource Reservation Flows
8.3. RFC4091: ANAT Semantics
8.4. RFC5956: FEC Grouping Semantics in SDP
8.5. RFC5583: Signaling Media Decoding Dependency in SDP
8.6. RFC7104: Duplication Grouping Semantics in the SDP
9. ssrc-group Attribute Analysis
9.1. RFC5576: Source-Specific SDP Attributes
9.2. RFC7104: Duplication Grouping Semantics in the SDP
10. QoS Mechanism Token Analysis
10.1. RFC5432: QoS Mechanism Selection in SDP
11. k= Attribute Analysis
12. content Attribute Analysis
13.1. RFC5109: RTP Payload Format for Generic FEC
14. Multiplexing Considerations for Encapsulating Attributes
他の属性を要約・カプセル化する属性について
WebRTCでは使ってない
14.1. RFC3407: cpar Attribute Analysis
14.2.1. Recommendation: Procedures for Potential Configuration Pairing
14.2.1.1. Example: Transport Capability Multiplexing
14.2.1.2. Example: Attribute Capability Multiplexing
14.3.1. Recommendation: Dealing with Payload Type Numbers
14.3.1.1. Example: Attribute Capability Under Shared Payload Type
14.3.2. Recommendation: Dealing with Latent Configurations
15.1. New 'Multiplexing Categories' subregistry
NORMAL
やIDENTICAL
など、カテゴリを登録する
15.2. 'Mux Category' column for subregistries
15.2.1. Table: SDP bwtype
15.2.2. Table: att-field (session level)
セッションレベルのatt-field
の部分も、カテゴリを紐付ける
15.2.3. Table: att-field (both session and media level)
セッションレベルとメディアレベルのatt-field
の部分も、カテゴリを紐付ける
15.2.4. Table: att-field (media level only)
メディアレベルのatt-field
の部分も、カテゴリを紐付ける
15.2.5. Table: att-field (source level)
ソースレベルのatt-field
の部分も、カテゴリを紐付ける
15.2.6. Table: content SDP Parameters
15.2.7. Table: Semantics for the 'group' SDP Attribute
15.2.8. Table: 'rtcp-fb' Attribute Values
15.2.9. Table: 'ack' and 'nack' Attribute Values
15.2.10. Table: 'depend' SDP Attribute Values
15.2.11. Table: 'cs-correlation' Attribute Values
15.2.12. Table: Semantics for the 'ssrc-group' SDP Attribute
15.2.13. Table: SDP/RTSP key management protocol identifiers
15.2.14. Table: Codec Control Messages
15.2.15. Table: QoS Mechanism Tokens
15.2.16. Table: SDP Capability Negotiation Option Tags
15.2.17. Table: Timestamp Reference Clock Source Parameters
15.2.18. Table: Media Clock Source Parameters
16. Security Considerations
既存のものに準ずる
CAUTION
カテゴリに属するものは注意