- - PR -
1msの分解能を得る方法について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-29 02:58
出来ないと思いますが。。。 どういう見立てからそういう理論が導かれたのでしょう? | ||||||||
|
投稿日時: 2005-12-29 14:03
なちゃさん、渋木宏明さん、書き込みありがとうございます。 私は、いまワイヤレス環境でUDPソケットを使っています。ここで言いますのを忘れておりました。申し訳ありません。 UDPの場合、おかまいなしに下位レベルにデータを出すので、送信キューがあふれたり 受信キューがあふれたりすることによって、パケットロスが頻繁に発生してしまうらしいです。 そこで送信間隔を入れることによって、パケットロスを改善できないかと考えたからです。 また、話は戻ってしまうのですが、プログラミングの世界(開発現場など)で待機時間を得たい場合は、どのような方法をとっているのでしょうか? [ メッセージ編集済み 編集者: ばーど 編集日時 2005-12-29 14:30 ] | ||||||||
|
投稿日時: 2005-12-29 15:39
入門の検索語
リアルタイム処理機能 http://www.atmarkit.co.jp/fembedded/rtos01/rtos01a.html ー--------------- ミサイルの誘導には Windowsは使わないでしょう、結果の表示には使えるが [ メッセージ編集済み 編集者: MMX 編集日時 2005-12-29 15:45 ] | ||||||||
|
投稿日時: 2005-12-29 16:58
出来る場合もあるし、出来ない場合もあります。 出来るか出来ないかは、通信に課せられた要件や条件によってり決まります。 データ欠損があってはならないのか、それともある程度の欠損は許容されるのか。 通信量に対して受信側の処理性能にどこまで余裕があるのか。。。などなどです。 基本的に、データ欠損が許されないのであれば送達確認が必須で、往々にして回復手順も必要です。
もちろんタイマやカウンタを使いますが、1ms の精度のタイマが必要になるというのは珍しい話だと思います。 | ||||||||
|
投稿日時: 2005-12-29 21:08
実験としては面白いかもしれないね。
でもCPU負荷が高いから別の害を生み出しそう。 そのときのネットワークの状況や、相手、自分のパソコンの性能や そのときのたまたまの負荷で変化するから役に立たないな。 いい方法が現れるのを期待してますよ。 多少のパケットロスが発生するのは通信である限り当たり前のことなので あきらめるとして、 受信側から数秒間隔でパケットロス発生率を送信側に伝達して速度調節するとか。 てかRTCPがそうしているらしいが、RTCPはよく判らん。 | ||||||||
|
投稿日時: 2005-12-29 22:22
すでに正解が出ていますよ。UDPではなくTCPを使えば解決します。 TCPにはパケット再送等の数十年分の研究の成果が備わっています。 それをご自分で再実装したいというのならば止めませんが。 ストリーミング系でUDPを使う場合は、サーバーは適度にウェイトを 入れつつ送信して、クライアント側で多少バッファを持たせていれば 送受信タイミングに極端な精度は要求されなくなります。 IP電話等のリアルタイムな場合はバッファできる時間が短いので そのあたりのタイミングがかなりシビアになるはずですけど。 | ||||||||
|
投稿日時: 2005-12-29 23:30
幻想です。お構いなしに下位レイヤーにデータを渡すようなことはありません。送信キューが溢れた場合には、Send関数は通常エラーを返します。送信キューが溢れるのが問題なら、エラーが発生した時点で再送すれば良いはずです。 受信キューが溢れることは確かにあるでしょう。ですが、溢れる原因は受信側の処理能力を超える量のデータを送信して居ることにあります。根本的な解決のためには受信側PCのスペックを改善するか、そもそも設計を見直す必要があるでしょう。
その改善手法は進められるものではありません。受信側のスペックや通信経路の状態は予測不可能です。固定で入れたDelayなど、別の環境ではまったく意味を成さないかもしれません。 UDPを使うのであればパケットロスが発生することを前提に、パケットを失っても問題の無いプロトコルを設計するのが普通です。 もしくはパケットをロストしても、リカバリーできるように設計します。もし後者なら再発明などせずに、既存の仕組みであるTCPを使うのが最善策でしょう。 | ||||||||
|
投稿日時: 2005-12-30 00:10
「遅延によって届ける」なら、「1msec 以上空けばよい」とも、言えるのでは? |