こう 聞かれます
- 「OSI 参照モデルと TCP/IP モデルを
説明してください」 - 「HTTP、
TCP、 IP は、 それぞれどの 層の 話ですか」 - 「サービスに
つながらないと 言われたら、 どこから 調べますか」 (層の 考え方を、 裏から聞く形)
面接官が 見ている点
- 層の
名前を 暗記して 並べるだけでなく、 なぜ層に 分けるのか (役目を 分けて、 ほかの 層を 変えずに 取り替えられる ) を話せるか - 知っている
プロトコルや 機器を、 正しい 層に置けるか - 障害の
ときに 層を 道具として 使い、 下の 層から 順に 切り分ける、と言えるか
短い答え
- 通信の
仕事を 役目ごとの 段 (層) に 分けた 地図で、 OSI 参照モデルは 7 層、 実際の インターネットで 使う TCP/IP モデルは 4 層に 分けます。 - 下から
順に、 線や 電波で 隣の 機械へ 届ける 層、 IP で 遠くの機械まで 届ける 層、 TCP や UDP で どの プログラムへ どう 届けるかを 決める 層、 HTTP のように アプリが 使う 約束の 層、 と重なっています。 - 層に
分ける おかげで、 たとえば Wi-Fi を 有線に 替えても HTTP の 側は 変えずに 済みます。 障害の ときも、 下の 層から 順に 疑うと 切り 分けが 速くなります。
少し 詳しい答え
2 つの モデルの対応
OSI 参照モデルは、
| TCP/IP の層 | 例 |
|---|---|
| アプリケーション層 (7、6、5) | HTTP、DNS、SSH |
| トランスポート層 (4) | TCP、 |
| インターネット層 (3) | IP、ルーター |
| リンク層 (2、1) | イーサネット、 |
いちばん下の
面接では、
どの 層で 何が起きるか
- リンク層同じ
線や 同じ Wi-Fi の 中で、 隣の 機械へ データを 届けます。 スイッチは ここで働きます - インターネット層 IP アドレスを
見て、 いく つもの ネットワークを またいで 宛先の 機械まで 運びます。 どの 道を 通るかは ルーターが決めます - トランスポート層ポート番号で、
機械の 中の どの プログラムへ 渡すかを 決めます。 TCP なら 届いたかの 確かめや 順番も ここで扱います - アプリケーション層 HTTP の GET や POST のような、
アプリどうしの約束です
送る
仕事でも
つながらない ときは 下の層から
障害の
ターミナル
# インターネット層 IP で相手の機械まで届くか
ping example.com
# トランスポート層 相手のポートが開いているか
nc -vz example.com 443
# アプリケーション層 HTTP の答えとステータスコード
curl -I https://example.comping が
作った
層の 地図の弱点
層の
よく ある間違い
- 層の
名前を 上から 言えれば 十分だと思う 何の ために 分けるのか、 自分の 作った 物の どこが どの 層かを 話せないと、 深掘りで 詰まります - IP アドレスと
ポート番号を 同じ層の話にする IP アドレスは インターネット層、 ポート番号は トランスポート層の話です - 障害の
ときに、 いきなりアプリの コードを疑う 名前が 引けるか、 機械まで 届くか、 ポートが 開いているかを 先に 確かめると、 無駄な 調べが減ります
深掘りの問い
- 「ルーターと
スイッチは 何が 違いますか」 スイッチは 同じ ネットワークの 中で 隣の 機械へ 届け、 ルーターは IP アドレスを 見て ネットワークの 間を つなぐ、と層に 結んで答えます - 「L4 と L7 の
ロードバランサーは 何が 違いますか」 L4 は IP アドレスと ポート番号 (TCP や UDP) を 見て 振り分け、 L7 は URL や ヘッダーを 見て 振り分けられる、と答えます - 「なぜ層に
分けるのですか」 役目を 分けると、 ある 層の 中身を 替えても ほかの 層を 変えずに 済み、 作る 人も 役目ごとに 分かれて 考えられる、と答えます