尾崎さん,始めまして。
私はRTPについて詳しくないので,一般論としての答えしかできませんが...
ソケットレベルのやり取りは, RTPの仕様に従ってメッセージを組み立てて送受信するというだけで, それは,RTPのメッセージフォーマットを調べれば済むことです。 要するに,決まったフォーマットに合わせてメッセージを作るだけ,ということです。 しかし,それでリアルタイム性を実現できるわけではありません。
一般的に言って,TCP/IPのプロトコル処理ソフト自身には, リアルタイム性を保証するような考え方はありません。 仮に,UDP上でRTPメッセージを運ぶものとすると, プロトコル処理ソフトはアプリケーションから UDPメッセージをもらって,単純に送信するだけです。 受信のときは,これとは逆に, 受信したUDPメッセージを単にアプリケーションに渡すだけです。 要するに,UDPメッセージ中身がRTPという仕様で定められた フォーマットに従って作ってあるというだけのことで, RTPというプロトコルの役割も意味も一切関知しません。 リアルタイム性は,アプリケーション側の作り方と パケットを運ぶネットワークの設計によって, 実現可否が決まる,といえるでしょう。
RTPには,確か,タイムスタンプのような情報があって, それでタイミングをとるような仕組みがあったと思いますが, 送信時にタイムスタンプに値をセットするのも, 受信時にタイムスタンプの値と見て,時間に関する何らかの制御を行うのも すべてアプリケーション側の問題となります。
さらに,単にRTPのメッセージを送れば,それがある時間内に相手に届く, というような保証もありません。 つまり,RTPのパケットだからといって, 何の設定もなしに,ルータやスイッチが特別扱いすることはないので, 混雑すれば,パケットは遅れて到着します。 それを防ぐには,RTPのパケットを優先的に配送するといった, ネットワーク側の設計や設定が必要です。
ということで,そういったことを総合的に考えないと, つまり,システム全体で考えないと リアルタイムアプリケーションは作れないはずです。
More information about text formats
システム全体でリアルタイム性の実現手法を考えないといけないでしょう
尾崎さん,始めまして。
私はRTPについて詳しくないので,一般論としての答えしかできませんが...
ソケットレベルのやり取りは,
RTPの仕様に従ってメッセージを組み立てて送受信するというだけで,
それは,RTPのメッセージフォーマットを調べれば済むことです。
要するに,決まったフォーマットに合わせてメッセージを作るだけ,ということです。
しかし,それでリアルタイム性を実現できるわけではありません。
一般的に言って,TCP/IPのプロトコル処理ソフト自身には,
リアルタイム性を保証するような考え方はありません。
仮に,UDP上でRTPメッセージを運ぶものとすると,
プロトコル処理ソフトはアプリケーションから
UDPメッセージをもらって,単純に送信するだけです。
受信のときは,これとは逆に,
受信したUDPメッセージを単にアプリケーションに渡すだけです。
要するに,UDPメッセージ中身がRTPという仕様で定められた
フォーマットに従って作ってあるというだけのことで,
RTPというプロトコルの役割も意味も一切関知しません。
リアルタイム性は,アプリケーション側の作り方と
パケットを運ぶネットワークの設計によって,
実現可否が決まる,といえるでしょう。
RTPには,確か,タイムスタンプのような情報があって,
それでタイミングをとるような仕組みがあったと思いますが,
送信時にタイムスタンプに値をセットするのも,
受信時にタイムスタンプの値と見て,時間に関する何らかの制御を行うのも
すべてアプリケーション側の問題となります。
さらに,単にRTPのメッセージを送れば,それがある時間内に相手に届く,
というような保証もありません。
つまり,RTPのパケットだからといって,
何の設定もなしに,ルータやスイッチが特別扱いすることはないので,
混雑すれば,パケットは遅れて到着します。
それを防ぐには,RTPのパケットを優先的に配送するといった,
ネットワーク側の設計や設定が必要です。
ということで,そういったことを総合的に考えないと,
つまり,システム全体で考えないと
リアルタイムアプリケーションは作れないはずです。