ソケットとポート番号

1台で多数の通信が混ざらないのはなぜか。IP アドレスとポート番号の組で通信を見分ける仕組みと、出入口となるソケットの考え方が分かる。

基礎ポート番号ソケットトランスポート層最終更新: 2026-07-20
3つの要点
TL;DR
  1. ポート番号 はマシン内の“どのアプリ宛か”を示す番号。IPアドレス が住所なら、ポートは部屋番号にあたる。
  2. 通信の終端は IP+ポート+プロトコル で一意に決まり、これを束ねた出入口が ソケット。
  3. 0〜1023 は ウェルノウンポート(80=HTTP、443=HTTPS など)で、定番サービスに予約されている。

なぜポート番号が要るのか

1台のマシンには通常、IPアドレスが1つしかありません。しかしその上では、Webサーバー・メール・SSH など複数のアプリが同時に通信しています。届いたデータを「どのアプリに渡すか」を見分ける番号が ポート番号 です。

IPアドレスを建物の住所にたとえるなら、ポート番号は 部屋番号 にあたります。住所だけでは建物までしか届きませんが、部屋番号まで指定して初めて目的の相手に届きます。

  • IPアドレス … どのマシンか(L3:ネットワーク層)
  • ポート番号 … そのマシン内のどのアプリか(L4:トランスポート層)

横にスクロール

2台のクライアントから同じサーバーのTCP443番へ届いた通信を、OSが送信元と宛先のIP・ポートおよびプロトコルの5タプルで別々の接続ソケットへ振り分ける図
宛先IPはホストを、宛先ポートは待ち受け中のサービスを選びます。接続後は送信元も含む5タプルで通信を区別するため、同じ443番へ多数のクライアントが同時接続できます。

通信の終端を一意に決める

ポート番号は 0〜65535 の範囲を取り、TCP と UDP がそれぞれ独立して持ちます。1本の通信(コネクション)は、次の組み合わせで世界に1つだけと特定できます。

  • 送信元 IP + 送信元ポート
  • 宛先 IP + 宛先ポート
  • プロトコル(TCP / UDP)

この5つの値の組を 5タプル と呼びます。同じサーバーの 443 番に多数のブラウザが同時接続できるのは、クライアント側のポートが1本ごとに違うため、5タプル全体としては別物になるからです。

ソケットという考え方

アプリがこの通信の出入口を扱うための抽象が ソケット です。プログラムはソケットを「ファイルのように開いて読み書きする」感覚で通信できます。

  • サーバーは特定ポートで listen(待ち受け)し、接続が来ると accept する
  • クライアントは相手の IP とポートへ connect する
  • 以後は確立したソケットに対して読み書きするだけでよい

つまりソケットは「IP + ポート + プロトコル」を1つにまとめ、面倒な配送の詳細を隠してくれる窓口です。

待ち受けソケットと接続ソケットは別物

サーバーが listen しているソケットは「受付係」で、実際の通信は接続ごとに新しく作られるソケットが担います。受付係は1つでも、確立した会話の本数だけソケットが並行して存在します。

ウェルノウンポートと動的ポート

ポート番号は用途ごとに大きく3つの帯に分かれます。

区分範囲用途
ウェルノウンポート0〜1023定番サービスに予約(HTTP=80、HTTPS=443、SSH=22 など)
登録済みポート1024〜49151ソフトウェアごとに登録される(PostgreSQL=5432 など)
動的・私用ポート49152〜65535クライアントが一時的に使う(エフェメラルポート)

代表的なウェルノウンポートは覚えておくと役立ちます。

  • 80 … HTTP
  • 443 … HTTPS
  • 22 … SSH
  • 53 … DNS
ウェルノウンポートで待ち受けるには権限が要る

多くのOSでは 1023 以下のポートで listen するのに管理者権限が必要です。そのため一般ユーザーで動くアプリは 8080 などの高い番号を使い、前段のロードバランサやリバースプロキシで 80/443 を受けるのが定石です。

つまずきポイント

通信トラブルの多くはポート周りの確認で切り分けられます。

  • ポートが開いていない … サービスが起動していない、別ポートで待ち受けている
  • ファイアウォールで遮断 … サーバーは待ち受けていても、手前で止められている
  • ポート競合 … 同じ IP・同じポートで複数アプリは同時に listen できない

接続できないときは、まず「相手がそのポートで待ち受けているか」を確認します。

# 待ち受け中のポートを一覧(Linux)
ss -tlnp

# 特定ホストのポートに到達できるか確認
nc -vz example.com 443

「IP で建物まで、ポートで部屋まで、ソケットでその会話の窓口へ」と段階で捉えると、通信の終端の考え方がすっきり整理できます。

ネットワークの記事ガイド

ソケットとポート番号を実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

ポート番号

比較で見る軸

難易度: basic / カテゴリ: ネットワーク / タグ数: 3

導入後に効く点

通信の終端は IP+ポート+プロトコル で一意に決まり、これを束ねた出入口が ソケット。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
basic
カテゴリ
ネットワーク
タグ数
3

判断チェックリスト

  • 自社の用途が「ポート番号 / ソケット」に近いか確認する。
  • 強みである「ポート番号 はマシン内の“どのアプリ宛か”を示す番号。IPアドレス が住所なら、ポートは部屋番号にあたる。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

ポート番号ソケットトランスポート層
参考: 公式情報