- - PR -
パケットロスについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-12-03 13:11
こんにちは。
自分は、アドホック通信(ワイヤレス環境)にてUDPソケットを用いて約3MByteのファイルを1024Byteずつ送信側から受信側へ送信しています。 そんなに、大きなファイルをUDPでなんて・・・とおっしゃられるかもしれませんが、まだまだ初心者なんでご了承ください。 そこで、質問させていただきます。 1024Byteのパケットを3041個送信しています。しかし、何かおかしいと思い、キャプチャリングソフトの「ethereal」を用いて、キャプチャしたところ、プログラム上では3041個送信しているはずなのに、キャプチャしてみると2800個程度しかキャプチャできませんでした。 こういうことってあるのでしょうか?経験された方はいらっしゃいますでしょうか? よろしくお願いします。 |
|
投稿日時: 2005-12-03 13:59
UDPの仕組みがわかっていますか?
UDPはコネクションレスなプロトコルだからあって当然ですよ。 送信側は相手の都合など考えずにただ送ればいいですが、受け側がビジーだったりコリジョンを起したりビット誤りなどが発生すれば、ロストします。 再送要求などもプロトコル上取り決めもありません。 再送やフロー制御、誤り訂正などはアプリケーションでの対応が必要になります。 キャプチャしているPCでさえもすべてのパケットを拾えていない可能性もありますし... UDPでのパケットロストはごく当たり前のことです。 |
|
投稿日時: 2005-12-03 14:47
送受信のPCに性能差があるとして、送信方向を逆にすると、数値はどうなりますか?
|
|
投稿日時: 2005-12-04 08:39
もう一度言おうか・・・
・NonBlockingモードにしてません? ・sendtoの戻り値は確認しています? ・sendtoがエラーになっていても気にせず送信してたりしません? 1/3もパケットロストする環境なら、TCPだってまともに動きませんよ。 |
1