2-1. ネットワーク基礎
このセクションで学ぶこと
Section titled “このセクションで学ぶこと”- ネットワークをレイヤーで分けて考える理由
- OSI参照モデルと TCP/IP の対応関係
- IP アドレス、DNS、ポートの役割
- ブラウザからサーバーまで通信が届く流れ
1. ネットワークとは何か
Section titled “1. ネットワークとは何か”ネットワークとは、複数のコンピュータがデータをやり取りするための仕組み である。
1台のPCの中だけで処理が完結するなら、CPU・メモリ・ストレージの知識だけでもある程度は進められる。
しかし実際の業務では、ブラウザ、API サーバー、データベース、外部サービスが互いに通信する。
自分のPC │ ├─ ブラウザでURLを開く │ ▼ルーター / 社内ネットワーク │ ▼インターネット │ ▼Webサーバー / APIサーバーこのとき、送られるデータは大きな塊のまま移動するのではなく、扱いやすい単位に分けられて運ばれる。
この単位を パケット と呼ぶ。
なぜネットワーク知識が必要なのか
Section titled “なぜネットワーク知識が必要なのか”初心者がつまずきやすいエラーの多くは、実は「コードが悪い」のではなく、通信相手に届いていないことが原因である。
- URL は正しいか
- 名前解決(DNS)はできているか
- 相手のIPに届くか
- 正しいポートに接続しているか
- HTTP の返答は何だったか
これらを切り分けるために、ネットワークの土台を知る必要がある。
2. レイヤーで考える理由
Section titled “2. レイヤーで考える理由”ネットワークを理解しにくくしている理由の1つは、1回の通信の中に複数の役割が同時に含まれているからである。
たとえば https://example.com を開くときには、少なくとも次のことが起きている。
- どのアプリのルールで会話するか(HTTP など)
- どの順番で安全に届けるか(TCP など)
- どの機械に送るか(IP)
- 今つながっているネットワーク上でどう流すか(Ethernet / Wi-Fi)
これを整理するために、ネットワークは**層(レイヤー)**に分けて考える。
OSI参照モデルと TCP/IP
Section titled “OSI参照モデルと TCP/IP”実務でよく出るのは 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 の上で動いている。
このように、上の層は下の層を土台として再利用する ことで、複雑な通信を組み立てている。
3. IPアドレスとルーティング
Section titled “3. IPアドレスとルーティング”ネットワーク上で通信相手の機械を識別するための番号が IP アドレス である。
IPアドレスの役割
Section titled “IPアドレスの役割”- どの機械に届けるか を示す
- 人の名前ではなく、ネットワーク上の宛先を表す
- 同じネットワークでも機械ごとに異なる
送信元PC 宛先サーバー192.168.1.10 ───→ 93.184.216.34ここで使っている IP アドレスは、通信の考え方を説明するための例である。
この章で扱う IP アドレスの見え方
Section titled “この章で扱う IP アドレスの見え方”この章では、192.168.1.10 のように ドット区切りの数字で表す IP アドレス を中心に扱う。
初学者の段階では、まず「宛先の機械は数字で識別される」と理解できれば十分である。
プライベートIPとグローバルIP
Section titled “プライベートIPとグローバルIP”| 種類 | 例 | 使われ方 |
|---|---|---|
| プライベートIP | 192.168.1.10, 10.0.0.5 | 家庭や社内ネットワークの中で使う |
| グローバルIP | 8.8.8.8, 93.184.216.34 | インターネット上で到達先として使う |
なぜ分けるのかというと、世界中の機械に対して一意な番号をそのまま各PCへ配るのは管理が難しいからである。
そのため、ローカルネットワークの中ではプライベートIPを使い、外へ出るときにルーターが中継する。
ルーティング
Section titled “ルーティング”IP アドレスがあっても、送信元から宛先まで1本の線でつながっているとは限らない。
途中の ルーター が「次にどこへ送るか」を判断しながら、少しずつ目的地へ近づけていく。
PC ↓家庭用ルーター ↓社内/ISP のルーター ↓インターネット上のルーター群 ↓宛先サーバーここで大切なのは、送信側が最初から全経路を知っている必要はない、という点である。
各ルーターが次の送り先を判断することで、最終的に宛先まで届く。
4. DNS とは何か
Section titled “4. DNS とは何か”人間は 93.184.216.34 のような数字より、example.com のような名前の方が覚えやすい。
この「名前」と「IP アドレス」を対応付ける仕組みが DNS(Domain Name System) である。
DNS の役割
Section titled “DNS の役割”- ドメイン名から IP アドレスを調べる
- 人間に読みやすい名前を使えるようにする
- IP が変わっても、名前を変えずに運用しやすくする
example.com │ DNSに問い合わせる ▼93.184.216.34ここで使っている対応関係も説明用の一例であり、実際に返る IP アドレスは環境や時期によって変わることがある。
DNS の問い合わせの流れ
Section titled “DNS の問い合わせの流れ”実際には、ブラウザが毎回いきなり遠くの DNS サーバーへ聞きに行くわけではない。
ブラウザ ↓OS / ブラウザのキャッシュ ↓社内や家庭の DNS リゾルバ ↓権威DNSサーバー ↓IPアドレスが返るキャッシュがある理由
Section titled “キャッシュがある理由”同じ名前を何度も問い合わせるたびに毎回遠くまで聞きに行くと、遅くて負荷も高い。
そのため DNS にはキャッシュがあり、しばらくの間は前回の結果を再利用する。
ただしキャッシュは便利な一方で、古い情報が残ると「名前は同じなのに古い宛先へ行く」こともある。
そのため、名前解決のトラブルではキャッシュの影響も疑う。
5. ポートとは何か
Section titled “5. ポートとは何か”IP アドレスは「どの機械か」を表すが、1台の機械の中では複数のサービスが同時に動いている。
その中で どのアプリケーションに届けるか を識別する番号が ポート番号 である。
IP とポートの違い
Section titled “IP とポートの違い”| 項目 | 役割 | 例 |
|---|---|---|
| IPアドレス | 宛先の機械を識別する | 192.168.1.10 |
| ポート番号 | 宛先の機械の中のサービスを識別する | 80, 443, 3306 |
93.184.216.34:443│ └─ どのサービスか└───────────── どの機械かよく見るポート番号
Section titled “よく見るポート番号”| ポート | 代表的な用途 |
|---|---|
80 | HTTP |
443 | HTTPS |
22 | SSH |
25 | SMTP |
3306 | MySQL |
5432 | PostgreSQL |
なぜポートが必要なのか
Section titled “なぜポートが必要なのか”もしポートがなければ、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. 手元で観察するときのコマンド”ネットワークは見えないので、コマンドで観察できると理解しやすい。
ping 127.0.0.1ping localhost127.0.0.1は自分自身を表すループバックアドレスlocalhostは自分自身を表す名前- 表示されるアドレスは環境で多少違っても、ここでは「自分自身を指す」と理解できればよい
- 「相手に届くか」「名前がどこへ解決されるか」を観察できる
nslookup
Section titled “nslookup”nslookup example.com- DNS に問い合わせて、名前から IP アドレスを調べる
- 返る IP が複数ある場合もある
- 環境によって返り値が少し違っても問題ない
ここで重要なのは、数字を暗記することではなく、何を調べるコマンドなのか を理解することである。
| キーワード | 説明 |
|---|---|
| パケット | ネットワーク上で運ばれるデータの単位 |
| OSI参照モデル | 通信を役割ごとに層で分けて考えるためのモデル |
| TCP/IP | 実務でよく使われるネットワークの実用的なモデル |
| IPアドレス | 宛先の機械を識別する番号 |
| DNS | ドメイン名を IP アドレスへ変換する仕組み |
| ルーター | 次にどこへ送るか判断する機器 |
| ポート番号 | 1台の機械の中のサービスを識別する番号 |
127.0.0.1 | 自分自身を表すループバックアドレス |
次のステップ
Section titled “次のステップ”演習問題 に取り組んで理解を確認しよう。
理解できたら 2-2. Webの仕組み へ進もう。