0

RTP/RTCP トラフィックを分析するためのパケット キャプチャ プログラムに取り組んでいます。トラフィックは、VoLTE などのモバイル ネットワークにあります。RTP/RTCP で使用される実際のアドレスとポート番号を取得するには、最初に SIP/SDP パケットを検索する必要があることを理解しています。問題は、どの情報を調べるかです。例えば:

  • SIP パケット内の送信元/宛先およびその他の情報。SIPプロキシを利用しているので、SIPパケットのアドレスやSIPヘッダーの「Via」「To」「From」などの情報はRTPアドレスとは関係ありませんよね?(追伸、これらのフィールドの本当の目的は何ですか?)
  • SDP の o= 行と c= 行の違いは何ですか? RTP はそれらのいずれかを使用しますか?
  • RTCP ポートを決定するには、呼び出し元と呼び出し先の SDP でサポートされている一般的なコーデックとペイロード タイプを見つける必要があります。メディア タイプに対して複数のコーデックをサポートしている場合、両端で異なるコーデックを使用することは可能ですか?
  • STUN、TURN、または ICE が関係している場合、他に何を調べる必要がありますか?

非常に多くのプロトコルがあり、必要な特定の情報を取得するためにすべてを把握するのは困難です。ありがとう。

4

1 に答える 1

3

SIP パケット内の送信元/宛先およびその他の情報。SIPプロキシを使っているので、SIPパケットのアドレスやSIPヘッダの「Via」「To」「From」などの情報はRTPアドレスとは関係ありませんよね?(追伸、これらのフィールドの本当の目的は何ですか?)

これらの情報は、RTP/RTCP 情報とは関係ありません。これらは、SIP セッション関連情報に関連付けられた SIP プロキシと 2 つのパーティに関する情報にすぎません。

SDP の o= 行と c= 行の違いは何ですか? RTP はそれらのいずれかを使用しますか?

O行も知っておく必要のないもので、発信元のクライアント情報または識別子に関するものです。C= 行は、セッションのデフォルト アドレスを保持します。RTP や RTCP などの複数のメディアがある場合、これはセッション レベル属性またはメディア レベル属性になります。SDP のセッション レベル属性の場合、m= 行の前に表示されます。セッションが非 ICE セッションの場合、このアドレスがメディアに使用されます。

RTCP ポートを決定するには、呼び出し元と呼び出し先の SDP でサポートされている一般的なコーデックとペイロード タイプを見つける必要があります。メディア タイプに対して複数のコーデックをサポートしている場合、両端で異なるコーデックを使用することは可能ですか?

メディア名、トランスポート タイプ、およびそのメディアのデフォルト ポートを保持する m= 行にコーデック関連の情報があります。非 ICE メディアの場合、このポートは対応するメディアに使用されます。m= はコーデック関連の情報も保持します。これらはスペースで区切られた値です。選択したコーデックが他のコーデックと相互運用可能でない限り、別のコーデックを使用することはできません。

STUN、TURN、または ICE が関係している場合、他に何を調べる必要がありますか?

これらの情報は a= 行として見つかります。すべての a= 行は m= 行の後に表示され、SDP の最後の別の m= 行が対応するメディア属性であるとします。たとえば、候補の場合、a=candidate 行のようなものが ICE として表示されます。候補には、a=ice-pwd、a=ice-ufrag なども表示される場合があります。RTP および RTCP コンポーネントを含むオーディオ m= 行がある場合、RTCP のデフォルトであるポート値を含む a=rtcp 行も表示される場合があります。その場合、ポートはその m= 行に表示され、RTP デフォルト ポートです。SDP の詳細については、SDP RFCを確認してください。また、ICE 関連の属性の詳細については、ICE RFCを確認できます。

于 2015-12-12T16:52:37.077 に答える