ネットワークの教科書NETWORK
参照ページ読了 約20分

ネットワークの全体像を一気に読む

OSI参照モデルからIPアドレス、サブネット、TCP/UDP、Webページが表示されるまでを一気通貫で確認できる参照ページです。コース(全19回)の外に置いているので、順番を気にせず好きなときに読めます。詳しい解説は各回にリンクしています。

このページの位置づけ:これは全19回のコースの1回ではなく、コースの外に置いた参照ページです。 全体像を先に一気につかみたい人、通読して総復習したい人向けにまとめました。 各セクションの詳しい解説・練習問題は、対応する回にリンクしています。
01 / はじめに

なぜネットワークは「階層」に分けるのか

ネットワークとは、2台以上のコンピュータをつないでデータをやりとりする仕組みのことです。 ただし「つなぐ」と一口に言っても、やることは山ほどあります。 電気信号やWi-Fiの電波をどう表すか。同じ部屋の機器をどう見分けるか。 地球の裏側の相手までどう道を選ぶか。届かなかったデータをどう送り直すか——。

これを1つのプログラムで全部やろうとすると、 「無線に変えたらアプリも作り直し」という悲惨なことになります。 そこで役割ごとに仕事を分け、下の層は上の層に自分の中身を見せず、決められた形でだけ受け渡すように決めました。 これが階層化(レイヤリング)です。

例えるなら、手紙と郵便です。手紙の中身(何語で書くか)を考える人と、封筒に宛名を書く人と、 トラックで運ぶ人は別々でいい。トラックが電車に変わっても、手紙の書き方は変えなくていい。 ネットワークの階層はこの分業とまったく同じ発想です。

階層化のうれしさは3つ

交換できる下の層を入れ替えても上は無傷

有線LANをWi-Fiに変えても、ブラウザやメールソフトは作り直しになりません。第1〜2層が変わっただけだからです。

切り分けられる障害を層ごとに追える

「ケーブルは刺さっているか(L1)」「IPは振られているか(L3)」「名前は引けているか(L7)」と下から順に潰せます。

分担できる機器やベンダーを混ぜられる

層の境目のルールさえ守れば、A社のルータとB社のスイッチとC社のPCが問題なく通信できます。

「なぜ分けるのか」をもう少し丁寧に、実際の切り分け例つきで読みたい場合は1-1 ネットワークとは・なぜ階層に分けるのかを見てください。

02 / モデル

OSI参照モデル ― 通信を7階層に分けた共通言語

OSI参照モデル(Open Systems Interconnection)は、ISO(国際標準化機構)が定めた通信機能を7つの層に整理したモデルです。 実際の製品がこの通りに作られているわけではありませんが、 「それはL2の問題? L3の問題?」と話を通じさせるための共通語として、現場でも試験でも今なお使われます。

下の層ほど「物理に近い」層です。各層を押すと、右(スマホでは下)に詳しい説明が出ます。

LAYER 7 / APPLICATION
アプリケーション層

人やアプリが直接使うサービスそのものを提供する層。

Webの閲覧、メールの送受信、ファイル転送、名前解決など、目的ごとのプロトコルが並びます。ブラウザやメールソフトそのものではなく、それらが話す言葉の決まりがこの層です。

PDU
メッセージ
宛先
URL / ドメイン名
HTTPHTTPSDNSSMTPIMAPSSHDHCP
身近な例:ブラウザに表示される 404 Not Found は、HTTPというL7プロトコルの返事です。
覚え方: 第7層から順に「(アプリケーション)(プレゼンテーション)(セッション)(トランスポート)(ネットワーク)(データリンク)(物理)」で「アプセトネデブ」。 「プ」を忘れて「アプ」と2文字読みにすると、プレゼンテーション層がまるごと抜け落ちるので注意してください。 詳しい役割の解説と練習問題は1-2 OSI参照モデル ― 7階層それぞれの役割にあります。
03 / モデル

TCP/IPモデル ― 実際のインターネットはこちら

OSIが「理解のための理論モデル」だとすると、TCP/IPは実際に動いている実装です。 いま私たちが使っているインターネットは、ほぼすべてTCP/IPで動いています。 こちらは4階層で、OSIの隣り合う層をまとめた形になっています。

OSI(7階層)TCP/IP(4階層)L7アプリケーション層L6プレゼンテーション層L5セッション層L4トランスポート層L3ネットワーク層L2データリンク層L1物理層アプリケーション層OSI 第5〜7層をまとめるトランスポート層インターネット層ネットワークインタフェース層OSI 第1〜2層をまとめる
OSIの第5〜7層はTCP/IPの「アプリケーション層」1つに、第1〜2層は「ネットワークインタフェース層」1つにまとまる。線の色はOSI側の層の色。
TCP/IPモデルの4階層と代表的なプロトコル
TCP/IP(4階層)代表的なプロトコルデータの呼び名
アプリケーション層HTTP, HTTPS, DNS, DHCP, SSHメッセージ
トランスポート層TCP, UDPセグメント / データグラム
インターネット層IP, ICMP, ARPパケット
ネットワークインタフェース層Ethernet, Wi-Fi (802.11)フレーム → ビット
名前の由来: TCP/IPという呼び名は、中核となる2つのプロトコルTCP(トランスポート層・確実に届ける係)とIP(インターネット層・宛先まで道を選ぶ係)から来ています。 7層⇔4層の詳しい対応と、現場での使い分け(呼ぶときはOSI、触るときはTCP/IP)は1-3 OSI参照モデルとTCP/IPモデルの違い・対応関係で扱っています。
04 / しくみ

カプセル化 ― データが層を降りるたび、封筒が増える

送信側ではデータが上の層から下の層へ渡され、各層で必要な情報(ヘッダ)が前に付け足されます。 これをカプセル化といいます。受信側では逆に、下から上へ渡しながらヘッダを1枚ずつはがしていきます(非カプセル化)。 下のボタンで、ブラウザが送った「GET /index.html」が電気信号になるまでを1段ずつ見てみましょう。

STEP 1 / 5
HTTPリクエストアプリのデータ
アプリケーション層 — データ
ブラウザが GET /index.html HTTP/1.1 というHTTPリクエストを作りました。この時点ではまだ「文章」でしかなく、どこへどう届くかの情報は何も付いていません。
ヘッダに何が入るかが、その層の仕事そのものです。TCPヘッダにはポート番号(どのアプリ宛か)、IPヘッダにはIPアドレス(どのホスト宛か)、 Ethernetヘッダには MACアドレス(隣のどの機器宛か)。「宛先の粒度が層ごとに違う」と捉えると混乱しません。 各層のヘッダサイズや非カプセル化の手順まで詳しく知りたい場合は1-4 カプセル化 ― データが層を降りるたびに封筒が増えるを見てください。
05 / 第3層

IPアドレス ― インターネット上の住所

IPアドレスは、ネットワーク上の機器を識別する番号です。IPv4では32ビット(0と1が32個)で、 人間が読みやすいよう8ビットずつ4つに区切り、10進数にして「.」でつないで書きます。 8ビットで表せるのは0〜255なので、192.168.10.25 のような形になります。

IPアドレスは「ネットワーク部」と「ホスト部」でできている

住所が「東京都千代田区」+「1-2-3」に分かれるように、IPアドレスもどのネットワークか(ネットワーク部)その中の何番目の機器か(ホスト部)に分かれます。 どこまでがネットワーク部かを示すのがサブネットマスクで、255.255.255.0/24(CIDR表記)と書きます。 32ビットの区切り方やクラスの歴史まで詳しくは2-2 IPアドレスの構造 ― 32ビットをどう読むかで扱っています。

プライベートIPアドレスとNAT

IPv4は約43億個しかなく、世界中の機器に配るには足りません。そこで家庭や社内では 自由に使ってよいプライベートIPアドレス(RFC 1918)を使い、インターネットに出るときだけ ルータがグローバルIPアドレスに変換します。この変換がNAT / NAPTです。 自宅PCが 192.168.x.x なのはこのためです。

範囲CIDRアドレス数主な用途
10.0.0.0 〜 10.255.255.255/8約1,678万大規模な社内ネットワーク
172.16.0.0 〜 172.31.255.255/12約104万中規模、クラウドのVPCなど
192.168.0.0 〜 192.168.255.255/1665,536家庭用ルータの定番

NATとNAPTの違いや、外部から自宅サーバに接続できない理由(ポート開放)は2-4 プライベートIPアドレスとNATで扱っています。

特別な意味を持つアドレス

次の2つはプライベートIPアドレスとは別枠で予約された、特別な用途のアドレスです。

名称範囲意味
ループバックアドレス127.0.0.0/8自分自身を指すアドレス。ネットワークには出ていかない。
APIPA(リンクローカル)169.254.0.0/16DHCPサーバが見つからないとき、OSが代わりに割り当てる仮のアドレス。
トラブルの目印: IPアドレスが 169.254. で始まっていたら、DHCPサーバから応答がもらえなかった合図です。ケーブル抜け、Wi-Fi未接続、ルータの不調をまず疑ってください。

IPv6という続き

枯渇に対する本命の答えがIPv6です。128ビットに拡張され、 16進数を「:」で区切って 2001:0db8:85a3::8a2e:0370:7334 のように書きます。 連続する0のかたまりは :: で1回だけ省略できます(1つのアドレスで1回まで)。 表記の細かいルールは2-2 IPアドレスの構造の後半で扱っています。

06 / 演習

サブネットを計算してみる

ネットワークを小さく区切ることをサブネット化といいます。 部署ごとに分けて無駄な通信を減らしたり、届く範囲を限定してセキュリティを上げたりするために行います。/24 を4つに分けると、こうなります。

192.168.10.0/24256個のアドレス(1本).0/26.1–.62 が使える.64/26.65–.126 が使える.128/26.129–.190 が使える.192/26.193–.254 が使える斜線=使えない(ネットワークアドレス/ブロードキャスト)色つき=使える範囲/24 → /26:数字が2大きくなるごとに、ネットワークは4分の1の大きさになる
192.168.10.0/24(256個)を4等分すると /26 が4つできる。色つきの帯の両端1個(斜線)はネットワークアドレスとブロードキャストで、どのブロックでも割り当てに使えない。

計算のルールは3つだけ

  1. ホスト部のビット数= 32 − プレフィックス長。
  2. アドレス総数= 2(ホスト部のビット数)
  3. 割り当て可能なホスト数= アドレス総数 − 2(先頭のネットワークアドレスと末尾のブロードキャストアドレスを除く)。

以下にIPアドレスとプレフィックス長を入れると、そのネットワークの範囲が出ます。数字を変えて試してください。

同じネットワークかどうかの判定:送信元と宛先のIPアドレスにサブネットマスクを当ててネットワークアドレスを出し、一致すれば直接届けられる(同一ネットワーク)、違えばデフォルトゲートウェイに預ける。 PCは通信のたびにこの判定をしています。判定の具体例は3-1 デフォルトゲートウェイで扱っています。

3ステップの詳しい手順、2進数でのAND演算、/31・/32という例外まで踏み込んだ解説は2-3 サブネットマスクの計算のやり方にあります。 計算だけを何度も試したい場合はサブネット計算機(単独ページ)も使えます。

07 / 第4層

TCPとUDP、ポート番号 ― 確実さを取るか、速さを取るか

IPは「とりあえず宛先に向けて投げる」だけで、届いたかどうかは保証しません(ベストエフォート)。 その上で確実に届ける責任を引き受けるのがTCP保証を捨てて軽さを取るのがUDPです。 どちらを使うかはアプリケーションが選びます。

観点TCPUDP
接続あり(コネクション型)なし(コネクションレス型)
到達確認・再送ACKで確認し、届かなければ再送するしない
順序保証シーケンス番号で並べ直す保証しない
ヘッダサイズ20バイト〜8バイト
主な用途HTTP/HTTPS, メール, ファイル転送DNS, 音声通話, オンラインゲーム

3ウェイハンドシェイク ― TCPが通信を始める3往復目までの合図

TCPはデータを送る前に、3回のやりとりでお互いの準備を確認します。 SYN(つなぎたい)、SYN+ACK(いいよ、こちらもつなぎたい)、ACK(了解)の3段階です。

クライアントサーバ① SYN送信seq=1000② SYN+ACKで応答seq=4000 ack=1001③ ACKで確認ack=4001
クライアントは自分の開始番号(seq=1000)を伝えるSYNを送る。サーバはその受信を確認しつつ(ack=1001)、自分の開始番号(seq=4000)を伝えるSYN+ACKを返す。クライアントはサーバの開始番号の受信を確認するACK(ack=4001)を返し、双方の開始番号が確認し合えたところで接続が確立する。

シーケンス番号とACK番号が何を数えているか、ACKが返らないときの再送のしくみまでは4-2 3ウェイハンドシェイクと再送制御で扱っています。 「なぜこの2択になるのか」という判断基準から知りたい場合は4-1 TCPとUDPの違いを先に読んでください。

ポート番号 ― 「どのアプリ宛か」を示す部屋番号

IPアドレスが建物の住所なら、ポート番号は部屋番号です。 1台のサーバでWebもメールも動かせるのは、届いたデータをポート番号でアプリに振り分けているからです。 0〜65535の範囲があり、0〜1023はウェルノウンポートとして用途が決まっています。

ポートサービスプロトコル
22SSHTCP
53DNSUDP / TCP
67 / 68DHCPUDP
80HTTPTCP
443HTTPSTCP

3つの区分の詳細や、送信元ポートがどう決まるかは4-3 ポート番号とはで扱っています。

08 / 総合

URLを入力してから画面が出るまで、層をまたいで何が起きているか

ここまでの層が全部登場します。自分のPC(192.168.10.25/24)からhttps://example.com/ を開く場面を例に、要点だけ順番に追いましょう。

  1. 1

    名前をIPアドレスに変換するDNS / L7

    まずDNSサーバに「example.com のIPは?」と尋ね、203.0.113.50 のような答えをもらいます。

  2. 2

    相手が自分のネットワークの内か外かを判定するL3

    自分のIPとサブネットマスクから、宛先が同一ネットワークかを計算します。外ならデフォルトゲートウェイに預けます。

  3. 3

    次に渡す相手のMACアドレスを調べるARP / L2

    ARPで尋ねるのは、最終的な宛先ではなく同じネットワーク内にいるゲートウェイのMACアドレスです。

  4. 4

    カプセル化してルータを経由するL4〜L2

    TCP→IP→Ethernetの順に包んで送り出します。宛先IPは変わりませんが、宛先MACはルータを1つ越えるたびに書き換わります

  5. 5

    TCPコネクションを確立するTCP / L4

    サーバの443番ポートへ3ウェイハンドシェイク。ここで通信路が「開通」します。

  6. 6

    TLSで暗号化の準備をするTLS / L6相当

    サーバ証明書を検証して相手が本物か確かめ、共通鍵を安全に共有します。HTTPSの「S」はこの部分です。

  7. 7

    HTTPリクエストを送り、レスポンスを受け取るHTTP / L7

    GET / HTTP/1.1 を送ると、サーバは 200 OK とHTMLを返し、画面が表示されます。

切り分けに効く読み方: 「ページが開かない」とき、ping 8.8.8.8 が通るのに ping example.com が通らなければ、 名前解決(DNS)だけが壊れている、と絞り込めます。層に分けて考える価値はここにあります。

ここで挙げた各段階のもっと詳しい説明(ARPとゲートウェイの関係、ルーティングの最長一致、NATでの書き換えなど)は3-13-23-32-45-3にあります。 全19回すべてがどう1本につながるかを、この例と同じ形でもっと丁寧にたどった総合回が5-4 Webページが表示されるまで(総合)です。

09 / 機器

ネットワーク機器は、どの層で判断しているかで区別する

機器の違いは見た目ではなく「何を見て転送先を決めるか」で決まります。層と結びつけて覚えるのが近道です。

機器見ているものふるまい
ハブ(リピータ)L1何も見ない受け取った信号を、受信したポート以外の全ポートにそのまま流す。現在はほぼ使われない。
スイッチ(L2スイッチ)L2宛先MACアドレスMACアドレステーブルを見て、必要なポートにだけ転送する。LANの主役。
ルータL3宛先IPアドレス経路表を見て、別のネットワークへ中継する。ネットワークとネットワークの境目に立つ。
L3スイッチL2–L3MACアドレスとIPアドレスの両方スイッチの速さを保ったまま、組織内のルーティングもこなす。
ファイアウォールL3–L4(L7も)IPアドレス・ポート番号通してよい通信かを判断して遮断する。アプリの中身まで見るものはWAFと呼ばれる。

MACアドレステーブルの学習のしかたや、コリジョンドメイン・ブロードキャストドメインの違いまで踏み込んだ解説は3-4 ハブ・スイッチ・ルータの違いで扱っています。

10 / 実践

自分の手元で確かめるコマンドと、つながらないときの切り分け

読むより打つほうが早く身につきます。ターミナル(Windowsはコマンドプロンプト)で試してください。

ping相手まで届くかを確認する(L3 / ICMP)
$ ping -c 3 8.8.8.8
64 bytes from 8.8.8.8: icmp_seq=0 ttl=116 time=11.8 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=12.3 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0.0% packet loss

# Windows は -c 3 の代わりに -n 3 を使います。
ip addr / ipconfig自分のIPアドレスとゲートウェイを見る
$ ip addr        # Linux
$ ifconfig       # macOS
> ipconfig /all  # Windows

IPv4 アドレス . . . . . : 192.168.10.25
サブネット マスク . . . : 255.255.255.0
デフォルト ゲートウェイ : 192.168.10.1

# 169.254 で始まっていたらDHCPに失敗しています。
arp -a同一ネットワーク内のIP↔MAC対応表を見る(L2)
$ arp -a
? (192.168.10.1) at ac:de:48:aa:bb:cc [ether] on eth0
? (192.168.10.30) at ac:de:48:dd:ee:ff [ether] on eth0
traceroute / tracert相手までにどのルータを通るか(経路)を見る
$ traceroute 8.8.8.8
 1  192.168.10.1     1.2 ms     ← 自宅ルータ
 2  198.51.100.9     8.4 ms     ← プロバイダ
 3  * * *                       ← 応答を返さない機器
 4  8.8.8.8         14.0 ms     ← 目的地

# TTLを1, 2, 3…と増やしながら送り、各ルータの応答から経路を割り出しています。
nslookup名前解決だけを単独で試す(L7 / DNS)
$ nslookup example.com
Server:   192.168.10.1
Name:     example.com
Address:  203.0.113.50

# pingが通らないとき、まずここが動くかを見ます。

今のPCがどの状態にあるかを、順番に確認していくとこうなります。

↓ 確認する順番結論・対処ランプは点いている?いいえ物理的な接続を確認はいIPアドレスは169.254で始まる?はいDHCP失敗。ルータを再起動いいえゲートウェイにpingは通る?いいえ家庭内LANの問題はい8.8.8.8にpingは通る?いいえ回線・プロバイダの問題はいドメイン名でpingは通る?いいえDNSの問題はい特定サイト固有の問題(ポート・証明書)
点線の箱は確認する項目、色付きの箱は切り分けの結論。上から順に確認していく。

デフォルトゲートウェイやルーティングテーブルをコマンドで確認する詳しい手順は3-13-3にあります。

11 / 確認

理解度チェック(全10問)

選んでから「採点する」を押すと、解説つきで答え合わせができます。

Q1OSI参照モデルで、IPアドレスを使って宛先までの経路を決めるのは第何層?
Q2MACアドレスの説明として正しいものは?
Q3192.168.1.1 はどの範囲に属する?
Q4192.168.10.25/24 のネットワークアドレスは?
Q5/26 のネットワークに割り当てられるホストは最大何台?
Q6TCPにあって、UDPにない特徴はどれ?
Q7TCPの3ウェイハンドシェイクの正しい順番は?
Q8ドメイン名をIPアドレスに変換する仕組みは?
Q9PCのIPアドレスが 169.254.12.7 になっていた。まず疑うべきことは?
Q10スイッチ・ルータのうち、宛先IPアドレスを見て別のネットワークへ中継するのはどちら?
12 / 索引

用語集

プロトコルprotocol
通信の手順と形式の取り決め。同じものを使う者同士でないと会話が成立しません。
パケットpacket
分割して送られるデータの一塊。第3層でのデータの呼び名でもあります。
LAN / WANLAN / WAN
建物内など狭い範囲のネットワークがLAN、それらを結ぶ広域のネットワークがWAN。
デフォルトゲートウェイdefault gateway
宛先が自ネットワーク外だったときに転送を任せる出口。家庭ではルータがこれにあたります。
DHCPdhcp
IPアドレス・サブネットマスク・ゲートウェイ・DNSサーバを自動で配る仕組み。
DNSdns
ドメイン名とIPアドレスを対応づける分散データベース。インターネットの電話帳。
ARParp
IPアドレスからMACアドレスを問い合わせる、第2層のための補助プロトコル。
ICMPicmp
到達確認やエラー通知を運ぶプロトコル。pingやtracerouteが使います。
NAT / NAPTnat
プライベートIPとグローバルIPを変換する機能。NAPTはポート番号も併用し、複数台で1つのグローバルIPを共有します。
MTUmtu
1つのフレームで送れる最大データ量。Ethernetでは通常1500バイトで、超える分は分割されます。
TLStls
通信を暗号化し、相手が本物かを証明書で確かめる仕組み。HTTPSの土台。
最長一致longest match
ルーティングテーブルで複数の経路が当てはまるとき、プレフィックス長が最も長い行を選ぶルール。
もっと詳しく

各回でさらに詳しく

このページは要点だけをつないだ参照ページです。腰を据えて1つずつ、練習問題つきで学びたい場合はコース「はじめて学ぶ」(全19回)を最初から順番に読むことをおすすめします。 計算だけを何度も試したいときはサブネット計算機が単独ページで動きます。