本文へスキップ
BecomeCoder

ネットワークコース · 第1章 ネットワークの基礎 · レッスン2

ポートとプロトコル ― 1台で複数のサービスを出し分ける

ローカル実施

導入

住所(IP)が分かっても、まだ足りません。1台のサーバーは、Web も・メールも・データベースも、同時に提供できます。届いたデータを「どのサービス宛てか」で仕分ける番号が ポート、やりとりの作法を決めた約束事が プロトコル です。

説明

ポートは、1台のサーバーに開いた「複数の窓口」です。IP アドレスが建物の住所なら、ポート番号部屋番号にあたります。

flowchart LR
    C["クライアント"] -->|"93.184.216.34 : 80"| P80["ポート80<br/>Webサーバー"]
    C -->|"93.184.216.34 : 22"| P22["ポート22<br/>SSH"]
    C -->|"93.184.216.34 : 5432"| P5432["ポート5432<br/>データベース"]
    subgraph SV["1台のサーバー(住所は1つ)"]
      P80
      P22
      P5432
    end

同じIPアドレスでも、ポート番号で行き先のサービスが変わるのがポイントです。よく使うポート番号(ウェルノウンポート)は世界共通で決まっています。

ポートサービス何のため
22SSHサーバーに安全に入る(第1章)
80HTTPふつうの Web ページ
443HTTPS暗号化された Web ページ
53DNS名前からIPを引く(次のレッスン群)
5432PostgreSQLデータベース
3306MySQLデータベース

プロトコルは、通信の「話し方・作法の取り決め」です。Web を見るなら HTTP/HTTPS、サーバーに入るなら SSH、名前を引くなら DNS——というように、目的ごとに決まった作法があります。人間でいえば「電話は『もしもし』から」「手紙は宛名と本文」といったマナーの共通ルールです。

さらにその土台には、データの運び方を決める2つのプロトコルがあります。

  • TCP … 確実に届けることを重視。相手と「送るよ/受け取ったよ」と確認しながら運ぶ(Web・メール・SSH など、ほとんど)。
  • UDP … 速さを重視。確認せず送りっぱなし(動画・音声・DNS など、多少欠けても速さが大事なもの)。
flowchart TD
    A["届いたデータ"] --> Q{"どのポート宛て?"}
    Q -->|":80"| W["Webサーバーが処理<br/>(HTTPの作法で)"]
    Q -->|":22"| S["SSHが処理<br/>(SSHの作法で)"]
    Q -->|":5432"| D["DBが処理<br/>(DBの作法で)"]

「IP(住所)+ポート(部屋番号)+プロトコル(作法)」の3点セットで、通信の宛先と方法がすべて決まります。あとで学ぶ ss(開いているポートを見る)や curl(HTTP で話す)、ファイアウォール(第8章:ポートの開け閉め)は、すべてこの3点セットの話です。

この章のまとめ

  • ポートは1台のサーバーの「部屋番号」。IP が同じでもポートでサービスを出し分ける
  • よく使う番号は世界共通(22=SSH, 80=HTTP, 443=HTTPS, 53=DNS)
  • プロトコルは通信の作法。土台には確実な TCP と高速な UDP がある
  • 宛先は「IP+ポート+プロトコル」で決まる