サーバ、クライアント間でインターネットを介しての通信について
サーバ、クライアント間でインターネットを介しての通信について
3~4分間スリープさせた後、サーバからクライアントにメッセージを送信した場合、クライアントがそのメッセージを受信しないという現象が起きます。
その現象が起きた後も、サーバ、クライアントそれぞれのアプリは、通信エラーなどは発生せず、コネクションは張られたままになります。
上記原因を調べるためには、どんなことを行えばよろしいでしょうか?
(サーバ、クライアントの各アプリにはread,writeおよびacceptなど
すべてにエラー処理が施されています。)
以下、ルータ サーバ クライアントの各環境を記載いたします。
ルータ環境:
CG-WLBARGPX Ver1.30
ファイアウォール (低い)
IPマスカレード・テーブル保持時間(10分)
ポート 49152を開放 (上記アプリで使用)
サーバ環境:
% uname -a
Linux 2.6.32-22-server #36-Ubuntu SMP Thu Jun 3 20:38:33 UTC 2010 x86_64 GNU/Linux
% iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
クライアント環境:
% uname -a
Linux 2.6.32-22-generic #36-Ubuntu SMP Thu Jun 3 19:31:57 UTC 2010 x86_64 GNU/Linux
※ もっと必要な情報がありましたら、それも公開できる範囲で公開いたします。
補足
ご回答ありがとうございます。 確かに、外部ネットワークに公開するようなサーバーがなければ「IPマスカレード」でもいいのですかね・・・。 しかし、ポートが動的に変化することから、サーバーアプリケーションが使えないという問題は起きないのですか? 初めてのことばかりで、初心者質問であることをお許しください。