ネットワークインタフェース

ソケットタイプ

ソケットタイプは、ユーザーにもわかる通信プロパティを定義します。インターネットファミリソケットは、TCP/IP トランスポートプロトコルへのアクセスを提供します。インターネットファミリは、IPv6 と IPv4 の両方で通信できるソケットの場合、AF_INET6 という値で識別されます。また、古いアプリケーションとのソース互換、および IPv4 に対する raw (生の) アクセスを目的とした値 AF_INET もサポートされています。

サポートされる 3 つのタイプのソケットを次に示します。

  1. ストリームソケットは、プロセスが TCP を使用して通信を行えるようにします。ストリームソケットは、信頼性の高い、順序付けされた、重複のない双方向データフローをレコード境界なしで提供します。接続が確立されたあと、これらのソケットからのデータの読み取り、およびこれらのソケットに対するデータの書き込みがバイトストリームとして行えます。ソケットタイプは SOCK_STREAM です。

  2. データグラムソケットは、プロセスが UDP を使用して通信を行えるようにします。データグラムソケットは、メッセージの双方向フローをサポートします。データグラムソケット側のプロセスは、送信シーケンスから順序を変えてメッセージを受信でき、重複したメッセージを受信できます。データ内のレコード境界は保持されます。ソケットタイプは SOCK_DGRAM です。

  3. raw ソケットは、ICMP へのアクセスを提供します。このタイプのソケットは、通常、データグラム型ですが、実際の特性はプロトコルが提供するインタフェースに依存します。raw ソケットは、ほとんどのアプリケーションには使用されません。このタイプは、新しい通信プロトコルの開発をサポートしたり、既存プロトコルの難解な機能にアクセスしたりするために提供されています。raw ソケットを使用できるのは、スーパーユーザープロセスだけです。ソケットタイプは SOCK_RAW です。

詳細については、「特定のプロトコルの選択」を参照してください。