- PR -

UDP通信について

1
投稿者投稿内容
MrKen
会議室デビュー日: 2003/08/28
投稿数: 13
お住まい・勤務地: 埼玉県・東京都
投稿日時: 2005-05-27 10:33
こんにちは。
 現在クライアント(Windows) − サーバー(Linux)のシステムで、UDPを使用して通信を行っていますが、サーバーから送信したパケットが、クライアント側へ到達しない現象を調査していて、わからないことがありましたので質問させて頂きます。

 現象は、以下のようにクライアントからパケットを送信後、サーバー側から不定期にデータが送信されるシステムで、ある時点からサーバーから送信されるパケットが、クライアントに到達し無くなってしまいます。しかし、クライアントから送信を開始すると、その後サーバーからのパケットはクライアント側に到達し出します。

 このことから、クライアント側のUDPソケットが一定時間送信が無い場合、無効になっているように思えるのですが、この考え方は正しいのでしょうか。
 また、無効になっている場合は、無効になるまでの時間をパラメータ等で変更可能なのでしょうか。もし、この時間を変更出来ない場合の対策は、クライアント側で定期的にデータを送信するしか無いのですかね。

クライアント         サーバー
      パケット送信 →
      ← パケット送信(到達)
      ← パケット送信(到達)
      ← パケット送信(未達)
      ← パケット送信(未達)
      ← パケット送信(未達)
           ・
           ・

      パケット送信 →
      ← パケット送信(到達)
      ← パケット送信(到達)


甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-06-01 07:24
引用:

MrKenさんの書き込み (2005-05-27 10:33) より:
 このことから、クライアント側のUDPソケットが一定時間送信が無い場合、無効になっているように思えるのですが、この考え方は正しいのでしょうか。


そんな話は聞いたことが無いです。アプリケーションのバグか、経路上の問題と思われます。

・・・もしかして、クライアントとサーバーはNAPT経由で接続しています?NAPT経由だとクライアントからUDPパケットを送信した後、一定時間しかサーバーからクライアントへのUDPパケットを許可しません。NAPTの設定でタイムアウト値を変えたり、IP Forwardの設定を行う事は回避することは出来ると思いますよ。ソフトウェアで対策するならUPnPに対応するとか、UDPを止めてTCPで接続するようにするか、クライアントからサーバーにUDPパケットを投げるかですね。
_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2005-06-01 12:46
パケットフィルタがそういう動作をすることもあるのでわ。
MrKen
会議室デビュー日: 2003/08/28
投稿数: 13
お住まい・勤務地: 埼玉県・東京都
投稿日時: 2005-06-07 12:27
甕星さん、ぽんすさん、ありがとうございます。
NAPT経由、パケットフィルタなど調べましたが、該当はしていないようでした。
とりあえず、現状は、クライアントからダミーデータを一定間隔で送信するようにして、対応しました。
1

スキルアップ/キャリアアップ(JOB@IT)