高性能 Windows ソケット アプリケーション

Microsoft Windows ネットワーク コンポーネントは、パフォーマンスとスケーラビリティのために開発されています。 これにより、アプリケーションで使用可能なネットワーク帯域幅を最大化できます。 Windows ソケットと Windows TCP/IP プロトコル スタックがチューニングされ、合理化されました。 その結果、適切に記述された Windows アプリケーションでは、次の事実が示すように、優れたスループットとパフォーマンスを実現できます。

  • Windows では、200,000 を超える同時 TCP 接続にサービスを提供できます。
  • SPECWeb96 によって実施されたテストでは、Windows 上のインターネット インフォメーション サーバーは 1 秒あたり 25,000 を超える HTTP 要求を処理しました。
  • Windows は、10 ホップで構成される大陸横断ギガビット ネットワークで 750 Mbps を超える伝送記録を設定します。

これらの成果は、Windows TCP/IP がデータを非常に迅速に処理することを示しています。 ただし、多くのアプリケーションでは、Windows、TCP/IP、および Windows ソケットのパフォーマンス機能を利用していません。これは、知らないうちにパフォーマンスを妨げる手法を実装するためです。

このガイドでは、一般的なプログラミングの間違いとその回避方法を特定する方法について説明します。 次に、Windows ソケット アプリケーションを最適に実行できるようにする手法について説明します。 このガイドは、6 つのセクションで紹介されています。 セクションの順序は意図的です。このガイドを最大限に活用するには、順番に読んでください。 次の表に、各セクションへのリンクと、各トピックの簡単な説明を示します。

トピック 説明
ネットワーク用語 ネットワーク アプリケーションのパフォーマンスを理解するために必要なネットワーク用語とメトリックを定義します。
パフォーマンス ディメンション アプリケーションの認識および実際のネットワーク パフォーマンスに影響を与えるパフォーマンス ディメンションについて説明します。
TCP/IP 特性 不適切に記述されたアプリケーションのパフォーマンスの問題につながる可能性がある TCP/IP プロトコルの特性を定義します。
アプリケーションの動作 パフォーマンスの低いネットワーク アプリケーションの兆候を認識する方法について説明します。
低速アプリケーションの改善 パフォーマンスの低いアプリケーションに貢献し、パフォーマンスを向上させるためにコードを変更するアプリケーション設計の問題のサンプルを提供します。
対話型アプリケーションのベスト プラクティス 最適な対話型ネットワーク アプリケーションを開発するために採用するベスト プラクティスを示します。