#このページで確認できること

実装上の制約: メディアストリームの検証環境は本サイトでは提供していません。WebRTC 通話(ビデオ会議)や自前の SIP / VoIP 環境のキャプチャを前提に手順を記載しています。

#役割分担

役割ポイント
RTPメディア(音声・映像)の運搬UDPで使われることが多い。基本RTPは信頼性を保証しないが、RTX・NACK・FEC等を組み合わせる構成もある
RTCP品質フィードバックロス率・ジッタを SR / RR で定期報告。RFC 3550の推奨初期値はセッション帯域の5%だが、プロファイルや設定で変更できる
SRTPRTP / RTCP の暗号化・認証基本RTPヘッダーは平文で、ペイロードを暗号化する。選択したヘッダー拡張を暗号化する方式もある

従来は RTP が偶数ポート、RTCP がその +1 ポートという慣習でしたが、現在の WebRTC では rtcp-mux により同一ポートに多重化するのが標準です。

#RTP ヘッダー

RTP header (12 bytes〜)
V=2 P X CC M PT: 111 (opusのSDPネゴシエーション例) Sequence: 43210 ← 1ずつ増加。並べ替え・RTX確認後の欠番はパケットロス候補 Timestamp: 3948123840 ← サンプリングクロック基準の再生時刻 SSRC: 0x2f9a8c31 ← RTPソース識別子。乱数選択し衝突を検出する [payload: エンコード済みメディア — 通常のSRTP暗号化対象]

#RTCP と SRTP

RTP メディアと RTCP レポートの並走
participants: Caller, Callee
Caller -> Callee: RTP (audio, SSRC=A, seq=100..)
Caller -> Callee: RTP (audio, seq=101, 102, ...)
Callee -> Caller: RTP (audio, SSRC=B)
note: この代表例ではメディアが UDP 上を連続的に流れる
Caller -> Callee: RTCP SR (送信統計 + NTP時刻)
Callee --> Caller: RTCP RR (受信報告: fraction lost, jitter)
note: RR のロス率・ジッタはネットワーク品質を判断する指標の一部

#Wireshark での観測手順

キャプチャと解析
# 通話中の UDP をキャプチャ (ポートは環境により異なる)
$ sudo tcpdump -i en0 -w call.pcap 'udp and not port 53'

# Wireshark での手順:
# 1. UDP パケットを右クリック → Decode As → RTP
# 2. filter: rtp        — ストリーム表示 (SSRC / seq / timestamp)
# 3. filter: rtcp       — SR / RR の中身 (fraction lost, jitter)
# 4. Telephony → RTP → RTP Streams — ロス率・ジッタの統計一覧
よく使うフィルタ
# 特定ストリームだけ表示
rtp.ssrc == 0x2f9a8c31

# シーケンス欠落 (ロス) をマークする
rtp.analysis.lost

# RTCP の受信レポートのみ
rtcp.pt == 201

#観測ポイント

DevToolsWebRTC なら chrome://webrtc-internals で SSRC ごとの packetsLost / jitter / bitrateを確認できる。これらは統計APIの集計値であり、RTCPパケットそのものを表示しているとは限らない。
ProxyUDP上のRTPは従来型HTTPプロキシでは直接運べない。WebRTCではネットワークポリシーに応じてTURN/TCP・TURN/TLS等が選ばれることがあり、直接UDP経路より遅延やHead-of-line blockingの影響を受ける可能性がある。
tcpdump / WiresharkDecode As → RTP が起点。SRTP でもヘッダー解析とロス・ジッタ統計は可能。ペイロードの復号は鍵がないため不可。
TLS inspection通常のTLSインスペクション装置はDTLS-SRTPのエンドポイントではないため、SRTPを復号しない。装置が主に関与するシグナリング経路と、メディア経路を分けて観測する。
QoS 設計ロス率とジッタは体感品質の指標だが、影響はコーデック、FEC、ジッタバッファ、ロスの連続性に依存する。固定の数%を一律な劣化境界にせず、実測品質と併せて評価する。DSCP (EF) マーキングが経路で保持されているかも確認できる。

#関連

WebRTC での鍵交換は DTLS、全体の接続確立は WebRTC を参照。SRTP の暗号の考え方は TLS と対比すると理解しやすいです。