本文へスキップ
BecomeCoder

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

TCP/IP ― データが届くまで(階層モデル)

ローカル実施

導入

「データが相手に届く」までには、実は複数の役割がバケツリレーのように連携しています。これを整理したのが TCP/IP の階層モデル です。全部を暗記する必要はありませんが、「どの層で何をしているか」の地図があると、トラブル調査(ping は届く? curl は返る?)の切り分けが上達します。

説明

通信は、役割ごとに 4つの層 に分かれています。上(アプリに近い)から下(ケーブルに近い)へ、こう積み重なっています。

flowchart TD
    L4["アプリケーション層<br/>HTTP / SSH / DNS<br/>『何を』やりとりするか"]
    L3["トランスポート層<br/>TCP / UDP・ポート番号<br/>『どの窓口へ・確実に or 速く』"]
    L2["インターネット層<br/>IP・IPアドレス<br/>『どの住所へ届けるか』"]
    L1["ネットワーク層<br/>Ethernet / Wi-Fi<br/>『実際のケーブル・電波』"]
    L4 --> L3 --> L2 --> L1

手紙にたとえると分かりやすいです。

  • アプリケーション … 手紙の本文(用件そのもの)。HTTP なら「このページをください」。
  • トランスポート層封筒と宛先の部屋番号(ポート)。TCP なら「ちゃんと届いたか確認しながら送る」。
  • インターネット層住所(IPアドレス を頼りに、中継地点をたどって運ぶ。
  • ネットワーク層 … 実際の道路・配達手段(LANケーブルや Wi-Fi)。

送るときは上から下へ順番に「封筒に入れて」いき、受け取る側は下から上へ「開けて」いきます。

flowchart LR
    subgraph 送信側
      S4["本文(HTTP)"] --> S3["封筒(TCP/ポート)"] --> S2["住所(IP)"] --> S1["発送"]
    end
    S1 -->|ネットワーク| R1
    subgraph 受信側
      R1["受取"] --> R2["住所を確認(IP)"] --> R3["封筒を開ける(TCP)"] --> R4["本文を読む(HTTP)"]
    end

この地図があると、トラブル調査の順番が見えてきます。

  • ping が返らない → インターネット層(IP) より下で切れている(住所に届いていない)
  • ping は返るが curl が返らない → IP は届くが、アプリ層(HTTP)やポートの問題
  • つまり「下の層から順に確かめる」のが切り分けのコツ

実務では「4層モデル」または、より細かい「7層の OSI 参照モデル」という言葉も出てきます。細部より、「通信は役割ごとの層が積み重なってできている」「下の層(届く)→上の層(中身)へと順に切り分ける」という考え方をつかんでおけば十分です。次のレッスンから、各層を確かめるコマンド(ippingdigcurlss)を実際に打っていきます。

この章のまとめ

  • 通信は役割ごとに 4つの層(アプリ/トランスポート/インターネット/ネットワーク)に分かれる
  • 各層は「本文・封筒とポート・住所・配達手段」と手紙にたとえられる
  • トラブルは 下の層(届くか)から順に切り分けると原因を絞りやすい
  • 次から、各層を確かめるコマンドを手で打って確認する