名前は似ているが別物のWebSocket
「WebSocket」は名前こそ似ていますが、このページで説明したOSレベルのソケットとは別物で、ブラウザとサーバーが持続的に双方向通信を行うために作られた、独立したアプリケーション層のプロトコルです。WebSocketの接続自体は、内部的には通常のTCPソケットの上に構築されています。
ソケット・ファイアウォール・ポートフォワーディングは同じ考え方の別の側面
ファイアウォールが特定のポートをブロックするというのは、実際にはそのポートで新しいソケットが作られるのを防いでいるということであり、ポートフォワーディングはルーターに届いたソケット接続をネットワーク内の特定の機器に転送する仕組みです。ソケットの概念が腑に落ちると、これらの関連する用語が別々に覚えるべきルールではなく、つながった一つの仕組みだと見えてきます。
よくある質問
ソケット番号は自分で決める必要がありますか?
いいえ。サーバー側のウェルノウンポート(80番や443番など)はプログラムや管理者が指定しますが、クライアントとして使う一時ポートはOSが自動的に割り当てるため、利用者が設定する必要はありません。
サーバーでソケットが足りなくなることはありますか?
はい。非常に短い時間に大量の接続の確立と切断を繰り返すサーバーでは、一時ポートが一時的に不足する「ソケット枯渇」と呼ばれる現象が起こることがあります。この場合、サーバー側の接続の再利用(キープアライブ)設定を調整することで緩和されることがあります。