TCPポートの枯渇状態になるために、どれだけ速くエフェメラルポートを割り当てる必要がありますか?
クライアントのリクエストに使用できる〜4k(古いWindows)、〜16k(新しいWindows)、または〜28k(RH Linux)のポートがあると言われました。では、ポート番号のプールはグローバルですか、それともリモートIPアドレスごとですか?
それらがグローバルである場合、ポートは240(Windows)または60(RH Linux)秒後まで再利用可能にならないので、1秒あたり約16/66/466のレートでポートを割り当てる必要がありますか?
これは正しいです?
あなたの経験では、これは私が実際に心配すべきことですか?
DOSはバラバラに攻撃しますが、アプリケーションが不十分な場合のみです。 TCPポートの枯渇を回避するための基本的な秘訣は、HTTPキープアライブなどの接続プールです。これにはいくつかの有益な効果があります:
Diito EJPおよびSirex。監視することで、自分の立場をよりよく理解できます。また、ソケットがTIME_WAIT状態を維持できる時間を微調整することもできます。私はこれを、何千ものGPRSテレメトリデバイスと通信するシステムで実行する必要がありました。彼らはダイヤルインし、誰の仕事のようにポートを消費します。より積極的なTIME_WAITしきい値は、私たち(の)アプリケーションがより安定していることを意味します。
MS Windowsには、ポートの使用状況を監視するための便利なツールがいくつかあります。例:TCPViewやProcessExplorer(MS SysInternals)。 netstat -a
は、数千の接続がある場合に遅くなる可能性があるため、netstat -an
代わりに(これにより、アドレスでDNS解決が発生しなくなります)。 Linuxは保証できません。