0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ネットワーク入門2: ネットワークとは 〜データはどうやって相手に届くのか〜

0
Posted at

はじめに

前回の記事「ネットワーク入門: 入門中の入門」から、気づけば2年以上が経っていました。

前回は「ネットワークとは何か」を、糸電話のたとえを使いながら総論として整理しました。「複数のコンピュータやデバイスが互いにデータをやり取りするシステム」という定義までは掴めた、という前提で今回は話を進めます。

今回のテーマは、「じゃあ実際、そのデータってどうやって相手に届いているの?」 です。

対象読者

  • 前回の記事を読んだ方、もしくは「ネットワークって聞くけど中身は説明できない」という方
  • TCP/IPやパケットという単語は聞いたことがあるが、仕組みまでは説明できない方
  • 前提知識はほぼ不要です

データは「小包」で運ばれる

いきなりですが、みなさんが友人に手紙で長編小説を送るとしたら、原稿用紙の束をそのまま封筒に突っ込んで送るでしょうか?

おそらく、ページごとに分けて、何冊かの小包に分けて送るはずです。

1つの小包が届かなくても、その1冊だけ送り直せばいい。
全部を一度に失うリスクを避けられます。

ネットワークの世界でも、これと同じことが起きています。

私たちが送る「データ」は、そのまま丸ごと1個の塊としてネットワークを流れるわけではありません。「パケット」と呼ばれる小さな単位に分割されて送られます。

  • 1つの大きなデータを、細かく分割する
  • 分割した1つ1つに「宛先」や「順番」などの情報(ヘッダ)を付ける
  • バラバラに送り出し、相手側で正しい順番に組み立て直す

なぜこんな面倒なことをするのか。
理由は主に3つです。

  1. 一部が壊れても、その部分だけ送り直せばいい → 全部やり直しにならない
  2. 複数の通信で回線を分け合える → 1人が回線を独占しない
  3. 途中の経路を柔軟に選べる → 1つの道が混んでいたら別の道を使える

「動いているから、ヨシ!」で済ませてしまいがちな私たちエンジニアですが、この仕組みのおかげで、多少の通信エラーがあってもインターネットはビクともせずに動き続けています。

地味ですが、よくできた設計だと思いませんか?

「階層」で考えるとスッキリする

パケットに分けて送る、という話をしましたが、実際の通信では「宛先を書く係」「実際に電線や電波に乗せる係」など、役割ごとに仕事が分かれています

この役割分担の考え方を「階層」と呼びます。

代表的なのが TCP/IP 4階層モデルです。

いきなり全部を覚えようとすると挫折するので、まずは「4つの係がいる」くらいの温度感で捉えてください。

階層 役割(ざっくり) 身近な例
アプリケーション層 「何を」やり取りするか決める HTTP(Webページの表示)、メール
トランスポート層 データを届ける・分割する責任を持つ TCP、UDP
インターネット層 「どこに」届けるかの住所を管理する IP
ネットワークインターフェース層 実際に電線・電波に乗せる Wi-Fi、イーサネット(IEEE 802)

悪い例: 4つの階層を一度に、しかも用語の定義から丸暗記しようとする
良い例: 「郵便物を送るときの役割分担」に例えて、まず全体の地図を掴む

郵便に例えると、こんな感じです。

  • アプリケーション層 = 「手紙の中身を書く人」(何を伝えたいか)
  • トランスポート層 = 「郵便局の窓口の人」(正しく届いたか、抜け漏れがないか管理する)
  • インターネット層 = 「配達ルートを決める仕分け係」(どの郵便局を経由するか)
  • ネットワークインターフェース層 = 「実際にトラックやバイクで運ぶ配達員」

上から下に「手紙を書く→窓口に出す→仕分けされる→配達される」という流れで、データも同じように上の階層から下の階層へと運ばれていきます。

届いた側では逆に、下から上へと積み上げられて、最終的に「アプリケーション層」で中身が読める形に戻ります。

「住所」と「窓口番号」の正体

階層の話で「インターネット層が住所を管理する」と書きましたが、この住所にあたるのが IPアドレスです。

  • IPアドレス(例: 192.0.2.1)= 建物の住所
  • ポート番号(例: 80, 443)= その建物の中の窓口番号

「同じ建物(サーバー)の中でも、Webページを見るための窓口(80番・443番)と、メールを受け取るための窓口(25番など)は別」というイメージを持つと理解しやすいです。1つのサーバーが複数の役割を同時にこなせるのは、この「窓口番号」で通信を仕分けているからです。

ちなみに前回、糸電話のたとえで「線がなくても無線でネットワークは成立する」という話をしました。Wi-Fiの場合も、この「住所」と「窓口番号」の考え方自体は変わりません。運ぶ手段(電線か電波か)が違うだけで、「どこに」「何を」届けるかの仕組みは共通している、というのが今回の大事なポイントです。

まとめ

今回は、前回の「ネットワークとは何か」という総論から一歩進んで、「データがどうやって相手に届くのか」 を見てきました。

  • データは「パケット」という小包に分割されて送られる
  • 送受信の役割は「階層」で分担されている(TCP/IP 4階層)
  • 「どこに」届けるかはIPアドレス、「どの窓口に」届けるかはポート番号が担当している

正直、今回の内容だけでも「へえ、そうだったんだ」くらいの感覚を持ってもらえれば十分です。

次はこの「階層」の中でも、私たちが一番よく目にするアプリケーション層(HTTP・DNSなど) にフォーカスして、「ブラウザにURLを打ち込んでからページが表示されるまで」を追いかけられたらと思います。

それでは、またお会いしましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?