ソケットのタイプは、アプリケーションに見える通信属性を定義します。プロセスは、同じタイプのソケット間だけで通信します。ソケットには次のタイプがあります。
ストリームソケットは、レコード境界のない双方向の逐次で信頼でき重複しないデータフローを提供します。ストリームは、電話の会話とほとんど同じように働きます。ソケットタイプは SOCK_STREAM であり、インターネットドメインでは伝送制御プロトコル (TCP) を使用します。
データグラムソケットは、双方向のメッセージフローをサポートします。データグラムソケットは、メッセージが送られた順序とは異なる順番でメッセージを受け取ることができます。データの中のレコード境界は保たれます。データグラムソケットは、郵便でやりとりする手紙の受け渡しとほとんど同じように働きます。ソケットタイプは SOCK_DGRAM であり、インターネットドメインではユーザデータグラムプロトコル (UDP) を使用します。
逐次パケットソケットは、固定した最大長のデータグラムに双方向で逐次的な信頼できる接続を提供します。ソケットタイプは、SOCK_SEQPACKET です。このタイプのプロトコルは、プロトコルファミリとしては実装されていません。
ローソケットは、基礎となる通信プロトコルへのアクセスを提供します。このソケットは、通常はデータグラムが中心ですが、その正確な特性はプロトコルが提供するインタフェースによって異なります。