- - PR -
UDP通信について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-05-27 10:33
こんにちは。
現在クライアント(Windows) − サーバー(Linux)のシステムで、UDPを使用して通信を行っていますが、サーバーから送信したパケットが、クライアント側へ到達しない現象を調査していて、わからないことがありましたので質問させて頂きます。 現象は、以下のようにクライアントからパケットを送信後、サーバー側から不定期にデータが送信されるシステムで、ある時点からサーバーから送信されるパケットが、クライアントに到達し無くなってしまいます。しかし、クライアントから送信を開始すると、その後サーバーからのパケットはクライアント側に到達し出します。 このことから、クライアント側のUDPソケットが一定時間送信が無い場合、無効になっているように思えるのですが、この考え方は正しいのでしょうか。 また、無効になっている場合は、無効になるまでの時間をパラメータ等で変更可能なのでしょうか。もし、この時間を変更出来ない場合の対策は、クライアント側で定期的にデータを送信するしか無いのですかね。 クライアント サーバー パケット送信 → ← パケット送信(到達) ← パケット送信(到達) ← パケット送信(未達) ← パケット送信(未達) ← パケット送信(未達) ・ ・ パケット送信 → ← パケット送信(到達) ← パケット送信(到達) | ||||
|
投稿日時: 2005-06-01 07:24
そんな話は聞いたことが無いです。アプリケーションのバグか、経路上の問題と思われます。 ・・・もしかして、クライアントとサーバーはNAPT経由で接続しています?NAPT経由だとクライアントからUDPパケットを送信した後、一定時間しかサーバーからクライアントへのUDPパケットを許可しません。NAPTの設定でタイムアウト値を変えたり、IP Forwardの設定を行う事は回避することは出来ると思いますよ。ソフトウェアで対策するならUPnPに対応するとか、UDPを止めてTCPで接続するようにするか、クライアントからサーバーにUDPパケットを投げるかですね。 _________________ 甕星 <mikahosi@abox9.so-net.ne.jp> http://blogs.msmvp.jp/mikahosi/ | ||||
|
投稿日時: 2005-06-01 12:46
パケットフィルタがそういう動作をすることもあるのでわ。
| ||||
|
投稿日時: 2005-06-07 12:27
甕星さん、ぽんすさん、ありがとうございます。
NAPT経由、パケットフィルタなど調べましたが、該当はしていないようでした。 とりあえず、現状は、クライアントからダミーデータを一定間隔で送信するようにして、対応しました。 |
1