返信

尾崎さん,始めまして。

私はRTPについて詳しくないので,一般論としての答えしかできませんが...

ソケットレベルのやり取りは,
RTPの仕様に従ってメッセージを組み立てて送受信するというだけで,
それは,RTPのメッセージフォーマットを調べれば済むことです。
要するに,決まったフォーマットに合わせてメッセージを作るだけ,ということです。
しかし,それでリアルタイム性を実現できるわけではありません。

一般的に言って,TCP/IPのプロトコル処理ソフト自身には,
リアルタイム性を保証するような考え方はありません。
仮に,UDP上でRTPメッセージを運ぶものとすると,
プロトコル処理ソフトはアプリケーションから
UDPメッセージをもらって,単純に送信するだけです。
受信のときは,これとは逆に,
受信したUDPメッセージを単にアプリケーションに渡すだけです。
要するに,UDPメッセージ中身がRTPという仕様で定められた
フォーマットに従って作ってあるというだけのことで,
RTPというプロトコルの役割も意味も一切関知しません。
リアルタイム性は,アプリケーション側の作り方と
パケットを運ぶネットワークの設計によって,
実現可否が決まる,といえるでしょう。

RTPには,確か,タイムスタンプのような情報があって,
それでタイミングをとるような仕組みがあったと思いますが,
送信時にタイムスタンプに値をセットするのも,
受信時にタイムスタンプの値と見て,時間に関する何らかの制御を行うのも
すべてアプリケーション側の問題となります。

さらに,単にRTPのメッセージを送れば,それがある時間内に相手に届く,
というような保証もありません。
つまり,RTPのパケットだからといって,
何の設定もなしに,ルータやスイッチが特別扱いすることはないので,
混雑すれば,パケットは遅れて到着します。
それを防ぐには,RTPのパケットを優先的に配送するといった,
ネットワーク側の設計や設定が必要です。

ということで,そういったことを総合的に考えないと,
つまり,システム全体で考えないと
リアルタイムアプリケーションは作れないはずです。

<code>Only

  • 使用できるHTMLタグ: <code>
  • 文字で図を描く場合に<code>と</code>で囲んでください
画像認証
機械的なスパムメッセージ送信を防止するために画像認証を設けています。ご協力ください。
Image CAPTCHA
Enter the characters shown in the image.