コンテンツにスキップ

2-1. ネットワーク基礎

  • ネットワークをレイヤーで分けて考える理由
  • OSI参照モデルと TCP/IP の対応関係
  • IP アドレス、DNS、ポートの役割
  • ブラウザからサーバーまで通信が届く流れ

ネットワークとは、複数のコンピュータがデータをやり取りするための仕組み である。

1台のPCの中だけで処理が完結するなら、CPU・メモリ・ストレージの知識だけでもある程度は進められる。
しかし実際の業務では、ブラウザ、API サーバー、データベース、外部サービスが互いに通信する。

自分のPC
├─ ブラウザでURLを開く
ルーター / 社内ネットワーク
インターネット
Webサーバー / APIサーバー

このとき、送られるデータは大きな塊のまま移動するのではなく、扱いやすい単位に分けられて運ばれる。
この単位を パケット と呼ぶ。

なぜネットワーク知識が必要なのか

Section titled “なぜネットワーク知識が必要なのか”

初心者がつまずきやすいエラーの多くは、実は「コードが悪い」のではなく、通信相手に届いていないことが原因である。

  • URL は正しいか
  • 名前解決(DNS)はできているか
  • 相手のIPに届くか
  • 正しいポートに接続しているか
  • HTTP の返答は何だったか

これらを切り分けるために、ネットワークの土台を知る必要がある。


ネットワークを理解しにくくしている理由の1つは、1回の通信の中に複数の役割が同時に含まれているからである。

たとえば https://example.com を開くときには、少なくとも次のことが起きている。

  • どのアプリのルールで会話するか(HTTP など)
  • どの順番で安全に届けるか(TCP など)
  • どの機械に送るか(IP)
  • 今つながっているネットワーク上でどう流すか(Ethernet / Wi-Fi)

これを整理するために、ネットワークは**層(レイヤー)**に分けて考える。

実務でよく出るのは TCP/IP モデルだが、学習では OSI 参照モデルも合わせて知っておくと整理しやすい。

OSI参照モデルTCP/IP の対応役割
第7〜5層 アプリケーション / プレゼンテーション / セッションアプリケーション層アプリ同士の会話ルールHTTP, DNS, TLS
第4層 トランスポートトランスポート層どの順で、どの相手アプリに届けるかTCP, UDP
第3層 ネットワークインターネット層どの機械に送るかIP, ICMP
第2〜1層 データリンク / 物理ネットワークインタフェース層同じネットワーク内でどう運ぶかEthernet, Wi-Fi
アプリケーション層 HTTP / DNS
トランスポート層 TCP / UDP
インターネット層 IP
ネットワークIF層 Ethernet / Wi-Fi

レイヤーで分けると何がうれしいか

Section titled “レイヤーで分けると何がうれしいか”
  • 役割ごとに切り分けて考えられる
  • どこで問題が起きているか調べやすい
  • 下の層が同じなら、上のルールだけ差し替えられる

たとえば HTTP と DNS はまったく別の用途だが、どちらも IP の上で動いている。
このように、上の層は下の層を土台として再利用する ことで、複雑な通信を組み立てている。


ネットワーク上で通信相手の機械を識別するための番号が IP アドレス である。

  • どの機械に届けるか を示す
  • 人の名前ではなく、ネットワーク上の宛先を表す
  • 同じネットワークでも機械ごとに異なる
送信元PC 宛先サーバー
192.168.1.10 ───→ 93.184.216.34

ここで使っている IP アドレスは、通信の考え方を説明するための例である。

この章で扱う IP アドレスの見え方

Section titled “この章で扱う IP アドレスの見え方”

この章では、192.168.1.10 のように ドット区切りの数字で表す IP アドレス を中心に扱う。
初学者の段階では、まず「宛先の機械は数字で識別される」と理解できれば十分である。

種類使われ方
プライベートIP192.168.1.10, 10.0.0.5家庭や社内ネットワークの中で使う
グローバルIP8.8.8.8, 93.184.216.34インターネット上で到達先として使う

なぜ分けるのかというと、世界中の機械に対して一意な番号をそのまま各PCへ配るのは管理が難しいからである。
そのため、ローカルネットワークの中ではプライベートIPを使い、外へ出るときにルーターが中継する。

IP アドレスがあっても、送信元から宛先まで1本の線でつながっているとは限らない。
途中の ルーター が「次にどこへ送るか」を判断しながら、少しずつ目的地へ近づけていく。

PC
家庭用ルーター
社内/ISP のルーター
インターネット上のルーター群
宛先サーバー

ここで大切なのは、送信側が最初から全経路を知っている必要はない、という点である。
各ルーターが次の送り先を判断することで、最終的に宛先まで届く。


人間は 93.184.216.34 のような数字より、example.com のような名前の方が覚えやすい。
この「名前」と「IP アドレス」を対応付ける仕組みが DNS(Domain Name System) である。

  • ドメイン名から IP アドレスを調べる
  • 人間に読みやすい名前を使えるようにする
  • IP が変わっても、名前を変えずに運用しやすくする
example.com
│ DNSに問い合わせる
93.184.216.34

ここで使っている対応関係も説明用の一例であり、実際に返る IP アドレスは環境や時期によって変わることがある。

実際には、ブラウザが毎回いきなり遠くの DNS サーバーへ聞きに行くわけではない。

ブラウザ
OS / ブラウザのキャッシュ
社内や家庭の DNS リゾルバ
権威DNSサーバー
IPアドレスが返る

同じ名前を何度も問い合わせるたびに毎回遠くまで聞きに行くと、遅くて負荷も高い。
そのため DNS にはキャッシュがあり、しばらくの間は前回の結果を再利用する。

ただしキャッシュは便利な一方で、古い情報が残ると「名前は同じなのに古い宛先へ行く」こともある。
そのため、名前解決のトラブルではキャッシュの影響も疑う。


IP アドレスは「どの機械か」を表すが、1台の機械の中では複数のサービスが同時に動いている。
その中で どのアプリケーションに届けるか を識別する番号が ポート番号 である。

項目役割
IPアドレス宛先の機械を識別する192.168.1.10
ポート番号宛先の機械の中のサービスを識別する80, 443, 3306
93.184.216.34:443
│ └─ どのサービスか
└───────────── どの機械か
ポート代表的な用途
80HTTP
443HTTPS
22SSH
25SMTP
3306MySQL
5432PostgreSQL

もしポートがなければ、1台のサーバーで Web サーバーと DB サーバーを同時に動かしても、どちらに届ければよいか区別できない。
つまりポートは、1台の機械の中の受付番号のような役割を持つ。


6. ブラウザからサーバーまでの全体像

Section titled “6. ブラウザからサーバーまでの全体像”

ここまでの知識を使うと、https://example.com を開くときの流れは次のように整理できる。

1. ブラウザに https://example.com を入力する
2. DNS で example.com の IP アドレスを調べる
3. 宛先 IP の 443 番ポートへ接続する
4. HTTP を TLS で保護した HTTPS のルールでリクエストを送る
5. サーバーがレスポンスを返す

このとき、初心者が混同しやすい点は次の通りである。

  • example.com は名前であり、DNS で IP に変換される
  • 443 は HTTPS の代表的なポート番号である
  • 実際に通信する相手は「名前」ではなく「IP + ポート」である

つまり、URL を開くという一見単純な操作の中でも、名前解決、宛先特定、サービス特定、アプリケーション通信 が連続して起きている。


7. 手元で観察するときのコマンド

Section titled “7. 手元で観察するときのコマンド”

ネットワークは見えないので、コマンドで観察できると理解しやすい。

Terminal window
ping 127.0.0.1
ping localhost
  • 127.0.0.1 は自分自身を表すループバックアドレス
  • localhost は自分自身を表す名前
  • 表示されるアドレスは環境で多少違っても、ここでは「自分自身を指す」と理解できればよい
  • 「相手に届くか」「名前がどこへ解決されるか」を観察できる
Terminal window
nslookup example.com
  • DNS に問い合わせて、名前から IP アドレスを調べる
  • 返る IP が複数ある場合もある
  • 環境によって返り値が少し違っても問題ない

ここで重要なのは、数字を暗記することではなく、何を調べるコマンドなのか を理解することである。


キーワード説明
パケットネットワーク上で運ばれるデータの単位
OSI参照モデル通信を役割ごとに層で分けて考えるためのモデル
TCP/IP実務でよく使われるネットワークの実用的なモデル
IPアドレス宛先の機械を識別する番号
DNSドメイン名を IP アドレスへ変換する仕組み
ルーター次にどこへ送るか判断する機器
ポート番号1台の機械の中のサービスを識別する番号
127.0.0.1自分自身を表すループバックアドレス

演習問題 に取り組んで理解を確認しよう。

理解できたら 2-2. Webの仕組み へ進もう。