インターネットソケットとは
インターネットソケットは、コンピュータソフトウェアプログラムがインターネット経由でデータを送信するために使用できる接続ポイントを識別するために使用される用語です。 それらは、コンセントのような物理的な構造ではなく、コンピューターソフトウェアの概念です。 このようなソケットを使用すると、必要なデータは、あるコンピューターで実行されているプログラムから別のコンピューターで実行されているプログラムに行き来できます。 多くの場合、これはクライアントとサーバーの間で行われます。 この用語は、コンピュータープログラマーがインターネットを介してデータを送受信できるネットワーク対応アプリケーションを作成するために使用できるアプリケーションプログラミングインターフェイス(API)を指すためにも使用されます。
ソケットは、トランスポート層と呼ばれるインターネットプロトコル(IP)スタックの上位層で機能し、データはアプリケーションからオペレーティングシステムを介してネットワークに渡されます。 コンピューター上のアプリケーションがネットワーク接続からデータを送受信する場合、オペレーティングシステムにインターネットソケットを開くように要求します。 ソケットは、ユーザーデータグラムプロトコル(UDP)や伝送制御プロトコル(TCP)などのプロトコル情報、および両方のコンピューターの送受信アドレスと接続のIPポート番号で構成されます。 また、最初にコンピューターのオペレーティングシステムに追加のソケット情報を処理させずに、オペレーティングシステムをバイパスして生のパケットを送信するインターネットソケットを作成することもできます。
インターネットサーバーで一般的に使用されているように、サーバーソフトウェアが起動し、リスニングソケットを開きます。 サーバーはデータの要求を受信すると、要求元のクライアント用の一意のソケットを作成し、要求されたデータの送信に使用します。 クライアントが終了するとソケットはサーバーによって閉じられるため、これらのタイプの接続はセッションとも呼ばれます。 このようにして、サーバーは他のクライアントとの同時ソケットをいくつでも作成でき、それぞれが独自の一意の識別子を持ち、各クライアントに一意のデータを配信できます。
そのため、インターネットソケットには3つの一般的なタイプがあります。 そのようなタイプの1つがデータグラムソケットです。 これらは、データパケットを送信する前に専用の接続を確立するために追加の通信を必要としない高速ソケット接続です。 このため、これらはしばしばコネクションレスソケットと呼ばれ、トランスポートプロトコルとしてUDPを使用します。 それらは、パケットシーケンスのチェックやエラー修正がないという点で、忘れがたい方法です。
ただし、ストリームソケットと呼ばれる接続指向のソケットは、クライアントとサーバー間の通信リンクを確立するためにいくつかの追加手順を実行します。 これらは、トランスポートにTCP、またはStream Control Transmission Protocol(SCTP)として知られる別のプロトコルを使用します。 このタイプのインターネットソケットはより信頼性が高く、欠落パケットなどのエラーに対処する手段があります。
もう1つのユニークなタイプのインターネットソケットは、主にコンピューターネットワークのルーティングに使用されます。 このタイプのソケットは、IPスタックのトランスポート層をスキップし、代わりに、ネットワークからソケット情報をそのままにしてアプリケーションにパケットを直接渡します。 このような生のソケットは、コンピューターのオペレーティングシステムが最初にパケットを処理できないため、アプリケーションへのパケットのはるかに高速な配信を可能にします。 インターネット制御メッセージプロトコル(ICMP)は、あるコンピューターが別のコンピューターに単に「ping」したい場合に、このような生のソケットを使用します。