TClientSocketを使ったアプリの影響

解決


BCT  2007-08-11 02:52:54  No: 27378

TClientSocketを使ったアプリを"複数(10以上)"起動すると、IE起動から(移動も)サイトが表示されるまでが、かなり遅くなります。

アプリはTClientSocketをOPENして、(TServerSocketに)接続出来なければ5秒間隔で再OPENします。
これを10以上、別々のIPへ向けて起動・OPENします。

1. タスクマネージャ、パフォーマンスモニタで監視しても、メモリ消費量・CPU稼働率・ネットワーク資料率が、特別高くなる様子はない。
2. OPENの行だけコメントにすると、症状が治まる。
3. TClientSocketをOPENするだけの小さなアプリを複数起動しても、症状を感じない(若干遅い気もするが)

こういった経験がありましたでしょうか?
または調査方法などご存知であれば、よろしくお願いいたします。

環境
Delphi 4
XP SP2
Celeron 2.40GHz
512MB RAM


同じかな?  2007-08-14 22:26:39  No: 27379

うちでは、大量のネットワーク接続を確立するアプリを使うと、同じような現象になります。
そういう時は、ADSLモデムを再起動すると直ります。

多分ルーターの問題じゃないでしょうか?


BCT  2007-08-14 23:29:20  No: 27380

同じかな?さん、ありがとうございます。

ルータの設定につきましては、確認出来次第、また書き込みしたいと思います。

その後わかったこと、説明足らずな部分の補足などを書き込みしておきます。
よろしくお願いいたします。

1. テストは(インターネットに接続できる環境にて)ローカルのIPのみで行っている
2. 各クライアントがサーバに接続できると症状が解消する
3. 各クライアントがサーバに接続できないでいると症状が出る
・・・OPEN後相手先を探すのに、大量のパケットを出している??


TOBY  URL  2007-08-15 09:05:04  No: 27381

Windows XP/2003のTCP同時接続数制限とその回避:ITpro
http://itpro.nikkeibp.co.jp/article/Watcher/20060812/245765/

これですかねえ?
WindowsXPで、TCPの同時接続が10以上制限ていう奴らしいです。
P2Pのアプリとか使うとよく引っかかると聞いています。

eEye Digital Security - Research
http://research.eeye.com/html/tools/RT20060808-1.html

上のアドレスで紹介のあるeEyeのBIOTというソフトを使うか、
一応、Microsoftがパッチを出していたと思うのでそれを当てるかですね。

MicrosoftのパッチはURL失念しました。後で探してみます。

BIOTの方は、使ってみると一目瞭然で、パフォーマンスが上がりますね……。


TOBY  URL  2007-08-15 09:20:28  No: 27382

"Windows XP Service Pack 2 セキュリティ強化機能搭載" での機能の変更点 ‐ 第 2 部 : ネットワーク保護技術
http://www.microsoft.com/japan/technet/prodtechnol/winxppro/maintain/sp2netwk.mspx#EIAA

このTCP/IPの接続制限は、SP2で対策が取られたみたいですね。

Networking/Tips - Damedas
http://pukiwiki.damedas.com/index.php?Networking%2FTips

こちらにも対策等まとめられてます。
SP2とVistaからのようですね。

検索したところ、Microsoftのパッチですが、これ?っぽいですが、
ちょっと確証がないです。(私も入れてみたのですが、変わってないような……)

Windows XP Service Pack 2 でループバック アドレスの範囲内の IP アドレスに接続するプログラムが正常に動作しないことがある
http://support.microsoft.com/default.aspx?kbid=884020


BCT  2007-08-16 00:57:18  No: 27383

TOBYさん、ありがとうございます。
おかげさまで状況がかなり見えてきました。

ケース1:各アプリの接続先がローカルIPだった場合
症状    :サイトの表示までかなり時間がかかるが、しばらくすると表示される

Biotを使い、TCP/IP 同時接続制限を40程度に変更すると、症状が解消されました。
イベントビューアで確認しても、4226が出ていましたので、間違いなさそうです。

なお、BitCometのダウンロード速度600kbps固定を解除する方法についての話題の中で、
接続制限の解除について触れられていました。
http://jp.bitcomet.com/patio/patio.cgi?mode=view&no=20
http://jp.bitcomet.com/patio/patio.cgi?mode=view&no=13&l=1-

・・・パッチをダウンロードしてみたものの、インストールしようか迷い中です。

ケース2:各アプリの接続先がグローバルIPだった場合
症状    :サイトは表示されず、タイムアウトする

ルータのセッションリストを確認すると、リストが満杯でした。
リトライするたびに、アプリ数分のセッションが増え続けて、あっという間に
上限値128を超えていました。
ルータの再起動で解消しますので、同じかな?さんの「ADSLモデムを再起動すると
直ります」のケースがこちらにあたると思います。

ケース1では、ローカル内の他の端末への影響はないですが、
ケース2では、ローカル内の他の端末も閲覧不可になります(当たり前ですが)。

今回の解決方法としては・・・
1. OPEN後、接続出来なかった際のリトライ間隔を少しあける
2. 各アプリの起動タイミングを少しずつずらす(一気に起動すると負荷が集中する)
3. 1.2.を対処した上でダメであれば、TCP/IP 同時接続制限を変更する

このような感じで検討と思います。

しかし、TOBYさんレベルで中級となると、私なんぞは中級を名乗れないな・・・


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加