初級では端末を「通信の出発点・到着点」と捉えました。中級では、その内側——アプリからNICまでの通り道(ネットワークスタック)、自分を示す2つのアドレス、そして起動時の住所の受け取りと名前解決——を一段深く見ます。
中級の解説は準備中のため、中級の内容を表示しています。
概要 — まず全体をつかむ
詳細 — 1段階ずつ追う
これは何をする係?
端末の役割は初級どおり、お願い(リクエスト)を作って送り出し、返ってきたデータを受け取ることです。中級で押さえたいのは、アプリは直接ネットに触れないという点です。
アプリが送るデータは、端末の中を層になって流れていきます。これをネットワークスタックと呼びます。
- アプリ — 「このページをください」というデータを用意する
- ソケット — アプリがOSへデータを渡すための入口(出入口の窓口)
- OSのTCP/IP — データをパケットに仕立て、宛先や順序の管理を担う
- NIC — パケットを電気や電波の信号に変える通信部品
- 回線 — 有線・無線でネットワークへ出ていく道
つまりアプリは、必ずOSとNICを通ってからでないと外に出られません。ネットの細かい面倒(宛先付け・再送・信号化)は下の層が引き受けるので、アプリは中身づくりに集中できます。
アニメーション『端末から回線まで』を開く
どう通信を始める?
初級の流れを、スタックに沿ってなぞり直します。宛先はIPアドレスとポート番号の組で決まる点が中級の要点です。
- あなたが操作する(リンクを押す、送信する)
- アプリがデータを用意し、ソケットを通してOSに渡す
- OSのTCP/IPが、宛先IP+ポートを付けてパケットに仕立てる
- NICがパケットを信号に変える
- 有線/無線でネットワークへ送り出す
ここでポート番号は「どのアプリ宛てか」を示す番号です。IPアドレスが「どの機器か」を決め、ポートが「その機器のどのアプリか」を決める——だからブラウザとメールが同時に通信していても、返事が混ざりません。
自分を示す2つの住所
端末は、通信のためにアドレスを持ちます。中級では2種類を区別します。
- IPアドレス — ネット上の住所。ネットワークの中で「どの機器か」を示す(初級で登場した住所)
- MACアドレス — NICに焼き付いた、NIC固有の番号。すぐ隣の相手へ渡すときに使う
ざっくり言えば、IPは遠くまで届けるための住所、MACはすぐ隣の一区間で使う名札です。パケットは宛先IPを保ったまま旅をしますが、一区間ごとの受け渡しではMACアドレスが使われます。
なお同じスマホでも、家ではWi-Fi、外ではモバイル回線と入口(NICと回線)を切り替えます。ネットワークから見れば端末は末端——だから「端末」です。
⚠️ うまくいかないとき
初級の不調に加え、中級では起動時の受け取りでつまずく例を押さえます。端末は起動時、まずDHCPで自分のIPアドレス・ゲートウェイ・DNSサーバの場所をまとめて受け取り、通信時はDNSで名前をIPアドレスに変換します。
- 機内モード/Wi-Fiオフ — そもそも通信の入口が閉じている
- DHCPで住所が取れない — IPアドレスが割り当たらず、外へ出られない
- DNSが引けない — 名前をIPに変換できず「サーバが見つからない」となる(IP直打ちなら届くことも)
- ポートが塞がれている — 特定アプリの通信だけ通らない
- 端末側の不調 — 再起動でスタックが初期化され直ることも
理解度チェック
そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。
問1. 端末が起動して通信を始めるとき、DHCPとDNSが担う役割の組み合わせとして正しいのは?
問2. アプリが送るデータが、実際にネットワークへ出ていくまでの順番として正しいのは?
問3. ブラウザとメールが同時に通信していても返事が混ざらないのはなぜか。IPアドレスとポート番号の役割として正しいのは?
問4. IPアドレスとMACアドレスの使い分けとして正しいのは?
問5. ネットワークスタックにおいて、アプリが外へデータを送り出すときの経路として正しいのは?
問6. DNSが引けないときに起きやすい症状として正しいのは?
問7. アプリがOSへデータを渡すための「入口(窓口)」を、カタカナで何と呼ぶ?
問8. NICに焼き付いた、NIC固有の番号を「◯◯◯アドレス」という。◯◯◯を英字3文字で答えてください。