Skip to content

Latest commit

 

History

History
124 lines (82 loc) · 3.51 KB

rfc4145.md

File metadata and controls

124 lines (82 loc) · 3.51 KB

Read original / markdown


TCP-Based Media Transport in the SDP

1. Introduction

  • SDP自体はただのテキストファイル
  • どんなメディアを送受信したいかはプロトコルを記述することで決まる
    • RTP/AVPUDPなど
  • この仕様ではTCPを追加する
  • TCPのセッション確立のために、setupconnectionという属性を追加する

2. Terminology

  • いつもの

3. Protocol Identifier

  • m=行のprotoの値にTCPを追加する

4. Setup Attribute

  • a=setup属性
  • 指定できる値は4つ
    • active: 接続をはじめる側
    • passive: 接続を待ち受ける側
    • actpass: その両方
    • holdconn: 接続を期待していない

4.1. The Setup Attribute in the Offer/Answer Model

  • a=setupは、オファー・アンサーの過程でネゴシエーションされる
  • オファー側の値によって、アンサー側の値は決まる
  • オファー側 - アンサー側
    • active - passive OR holdconn
    • passive - active OR holdconn
    • actpass - active OR passive OR holdconn
    • holdconn - holdconn
  • デフォルトは、オファー側がactiveでアンサー側がpassive

5. The Connection Attribute

  • a=connection属性
    • 値はnewexisting
  • 既に確立したセッションの途中で新しいTCP接続にしたいこともあるはず
  • デフォルトはどちらもnew
  • WebRTCでは使ってない

5.1. Offerer Behaviour

  • オファー側の観点
  • 初期のオファーはnewになる
  • その後、既存のTCPトランスポートを使いまわしたい場合はexistingを指定
  • オファー側 - アンサー側
    • new - new
    • existing - existing OR new

5.2. Answerer Behaviour

  • アンサー側の観点
  • 先述の組み合わせの通り

6. Connection Management

  • TCPのコネクションをどう扱うか

6.1. Connection Establishment

  • メディアの送信に関わらず、速やかにTCPコネクションを開始する
    • つまりメディアをいつでも送信できるように

6.2. Connection Reestablishment

  • TCPコネクションが閉じられたら、a=connection:newで再ネゴシエーション

6.3. Connection Termination

  • 接続終了は様々な要因で起こる
  • 起きたらTCPコネクションも終了する

7. Examples

  • a=setupの使用例

7.1. Passive/Active

  • オファー側 - アンサー側
  • 基本のpassive - active

7.2. Actpass/Passive

  • actpass - passive
  • ネゴシエーションしたら、オファー側から接続を開始する

7.3. Existing Connection Reuse

  • a=connection:existingの例

7.4. Existing Connection Refusal

  • a=connection:existingの例
  • ただしnewでアンサーする

8. Other Connection-Oriented Transport Protocols

  • ここで定義した内容は、TCP以外のコネクション確立にも使われるかも
    • 将来的に
  • TCPを含むプロトコルの場合は、TCP/XXXのようにする
  • Half-closeの概念がないトランスポートもあるかも
    • TCPと違って
    • その場合は、またひと手間が必要になるかも

9. Security Considerations

  • SDPそのものへのセキュリティ事項と同じ

10. IANA Considerations

  • セッションレベルかメディアレベルに2つの属性を追加する
    • a=setup
    • a=connection
  • メディアレベルのプロトコルにTCPを追加