ソケット
ソケットは、コンピューターのプログラムがネットワーク経由で通信するのを助けるソフトウェアコンポーネントです。「ソケット」という用語は、ネットワークケーブルを差し込み、そこをすべてのデータが通過する物理的なソケットを連想させます。アプリケーションは、同様の目的でソフトウェアのネットワークソケットを確立します。つまり、アプリケーションがネットワーク接続を通じて送受信するすべてのデータは、そのソケットを通過します。
ソケットは、プログラムがネットワーク接続を確立するための標準的な方法を提供します。ソフトウェア開発者はAPIを使ってオペレーティングシステムが管理するソケットを作成できるため、独自の方法を一から作成する必要がありません。アプリケーションがネットワーク経由でデータを送信する必要がある場合、ディスクにファイルを書き込むかのように、そのデータをソケットに書き込みます。オペレーティングシステムはこれを検出し、データパケットをネットワーク経由で宛先に自動的に転送します。
各ソケットには、IPアドレスとポート番号を組み合わせた固有のソケットアドレスがあります。このアドレスは、ソケットが動作している特定のコンピューターと、そのソケットを作成したアプリケーションの両方を識別します。サーバー上で動作するアプリケーションは、起動時にソケットを作成し、待機状態を維持します。一方、クライアント上のアプリケーションは、必要に応じてソケットを開いたり閉じたりできます。ソケットが開いている間、オペレーティングシステムは受信および送信されるデータパケットを監視し、各パケットのソケットアドレスを確認して、どこに転送すべきかを判断します。
たとえば、WebブラウザーでWebサイトにアクセスすると、Webブラウザーは、IPアドレスとポート番号(HTTP接続では80、HTTPS接続では443)を使って、リモートのWebサーバー上にある別のソケットに接続するソケットを作成します。ブラウザーは、このソケットに特定のWebページを要求するリクエストを送信します。オペレーティングシステムはこれを検出し、Webサーバーに転送します。Webサーバーが要求されたページをコンピューターに送り返すと、オペレーティングシステムはソケットアドレスを確認し、そのページをWebブラウザーに送り返します。
知識をテストする