vol23. RTPとは
いまさらだけど、RTPってどういう仕組みで低遅延を実現しているの?とふと疑問におもったので、調べてみた。 結論からいうと、低遅延という観点では、結局下位のレイヤーにUDPを使っているだけ。 Ethernet AVBのような、帯域幅の予約やVLANをつかったパケット優先は使用していない。 RTCP経由でRTTやパケットロス率の情報を受け取り、それを元にメディアの品質を調整したりする規格だ。 以下、まとめ。
概要
RTPの役割
流れ
- クライアントは、実行帯域幅や遅延時間をRTCPによってサーバーに送出
- サーバーはRTCPによって報告された情報に応じて、RTPで送信するデータの品質
を調整する。
RTCPの役割
- 最小限の送達確認や監視をおこなうための制御プロトコル
- パケットロス
- RTT(Round Trip Time) 情報をRTCPで取得する
- 各メディアストリームの通信品質制御
- 複数メディアストリームの同期制御
セッションのメンバシップ管理
5種類のパケット
- 受信レポート
- ストリーム受信者が発行する
- 欠落率、累積欠落パケット数、パケット間隔ジッタ等、最新送信レポートのタ
イムスタンプと経過時間(送信者は、この情報よりRTTを計算できる。)
- 送信レポート
- 送信者の情報
- 受信者がメディアストリームのレートなどを推測することができる
- オーディオ、ビデオの同期する際に利用
- タイムスタンプ、パケットカウント
- 送信者の情報
- ソース記述
- 参加者の識別に利用
- 名前、場所、メールアドレス、電話番号
- 参加者の識別に利用
- メンバシップ管理
- 参加者の離脱の伝達等
- アプリケーション定義
- アプリケーションでの拡張用
- 受信レポート
- 最小限の送達確認や監視をおこなうための制御プロトコル
その他
参考
https://vcbook.vtv.co.jp/pages/viewpage.action?pageId=721018
http://www.ieice-hbkb.org/files/03/03gun_04hen_05.pdf