ネットワーク

INPUT · スライド

ネットワークの層とプロトコル

01 / 10

ネットワークは約束事のかたまり

ブラウザにアドレスを打つと、ページが返ってくる。この間に起きていることは、ぜんぶ約束事でできている。

相手をどう指すか。どこから話しかけるか。届かなかったらどうするか。文字と画像をどう区別するか。この一つひとつに名前がついていて、それを プロトコル と呼ぶ。

プロトコルは「決めごと」なので、覚えることは多いけれど難しくはない。どの場面の決めごとなのかを分けて覚えるのがコツだよ。

02 / 10

4つの層に分けて考える

全部を一度に決めると手が付けられないので、ネットワークはに分けてある。下の層は上の層の中身を気にしない。これが効いていて、Wi-Fi でも有線でも同じ HTTP が使える。

  • アプリケーション層 … 何をやりとりするか(HTTP・DNS・SMTP)
  • トランスポート層 … 相手のどの窓口に、確実に届けるか(TCP・UDP)
  • インターネット層 … どの機械に届けるか(IP)
  • ネットワークインタフェース層 … 目の前の線や電波にどう流すか(イーサネット・Wi-Fi)

試験では OSI 基本参照モデル という7層の分け方も出てくる。下から 物理・データリンク・ネットワーク・トランスポート・セッション・プレゼンテーション・アプリケーション だよ。

03 / 10

住所は IP アドレス

どの機械に届けるかを決めるのが IP アドレス192.168.0.10 のように4つの数で書く(IPv4)。

このアドレスは前半がネットワークの住所、後半が家の番号に分かれている。どこで区切るかを決めるのが サブネットマスク で、255.255.255.0 のように書く。/24 と書くのも同じ意味で、前から24ビットがネットワークの住所という宣言だよ。

大事なのは、区切りの後ろが全部 0 のものと全部 1 のものは機械に割り振れないこと。前者はネットワークそのものを指す名前、後者はそのネットワーク全員へ配るための宛先として予約されている。

192.168.0.0/24  → 使えるのは .1 〜 .254 の 254 個                   .0 はネットワークアドレス                   .255 はブロードキャストアドレス

04 / 10

部屋番号はポート番号

IP アドレスで建物までは分かる。でも1台の機械の中では、Web サーバもメールサーバも同時に動いている。どの窓口に用があるのかを指すのが ポート番号 だよ。

よく使う番号は決まっていて、HTTP は 80、HTTPS は 443。こういう番号を ウェルノウンポート と呼ぶ。

覚えておきたいのは行きと帰りで送信元と宛先が入れかわること。ブラウザ側は空いている番号を勝手に1つ使い(50001 など)、そこから 80 番へ話しかける。サーバはその逆に、80 番から 50001 へ返す。返すときに番号を作り直したりしない

行き  PC:50001  →  サーバ:80帰り  サーバ:80  →  PC:50001

05 / 10

TCP と UDP ― 確実さか、速さか

トランスポート層には性格の違う2つがある。

TCP は届いたことを確かめながら送る。抜けたら送り直し、順番が入れかわったら並べ直す。だから確実だけれど、そのぶん手間がかかる。Web もメールもファイル転送も TCP だよ。

UDP は投げるだけ。確認しないので抜けることもあるが、待たされない。音声通話や動画の生配信のように、少し欠けても止まるほうが困る用途で使う。

「信頼性よりリアルタイム性」という言い方が出てきたら UDP のことだよ。

06 / 10

名前を引くのが DNS

人は manabiya.example.com と覚えるけれど、届けるのに要るのは IP アドレス。この名前とアドレスの対応を答えてくれるのが DNS だよ。

電話帳と同じ働き。ブラウザはページを取りに行く前に、まず DNS に「この名前のアドレスは?」と聞いている。

似た役割の名前と混ざりやすいので、並べて覚えよう。

  • DNS … 名前 ⇄ IP アドレス
  • DHCP … つないだ機械に、空いている IP アドレスを貸し出す
  • NAT … 社内の私用アドレスを、外向けのアドレスに書き換える

07 / 10

Web は HTTP、守るのは HTTPS

ブラウザとサーバのやりとりの決めごとが HTTP。「これをください」「はいどうぞ」を文字で書いて送り合っている。

HTTPS はその通信を暗号化したもの。ここで大事なのは、暗号化のほかにもう1つできることがある点だよ。サーバ証明書で、相手が本当にそのサーバかを確かめられる

これが HTTPS だけの特徴。cookie でのセッション管理も、ID とパスワードでの認証も、ブラウザのキャッシュも、HTTP でもできる。混同しやすいところだよ。

08 / 10

メールの決めごと

メールは送るときと受け取るときで別のプロトコルを使う。送るのが SMTP、受け取るのが POPIMAP だよ。

メール本文の頭には ヘッダ がついていて、From To Date Subject などが並ぶ。もともとメールは文字しか送れなかったので、画像や音声を運べるようにヘッダを拡張した決めごとMIME だよ。添付ファイルはこれで実現している。

ヘッダで1つだけ特別なのが Bcc。ほかの受信者に見せない宛先なので、転送の途中で削除される。見えたままだと Bcc の意味がなくなるからだね。

From: hanako@example.comTo: taro@example.comSubject: おはようContent-Type: text/plain; charset=UTF-8

09 / 10

つなぐ機器は、どの層で働くか

ネットワークをつなぐ機器は、どの層まで見て中継するかで名前が変わる。ここは層の理解がそのまま問われるところだよ。

  • リピータ … 弱った信号を増幅して距離をのばすだけ(物理層)
  • ブリッジMAC アドレスを見てフレームを中継する(データリンク層)
  • ルータIP アドレスを見て、どの道へ送るかを決める(ネットワーク層)
  • ゲートウェイトランスポート層より上が違うネットワークどうしをつなぎ、プロトコルを変換する

ブリッジは IP を見ない、ルータは MAC で中継しない。ここを入れかえた選択肢が定番だよ。

10 / 10

困ったときに叩くコマンド

つながらないとき、どこまで届いているかを調べる道具がある。

  • ping … 相手に「いる?」と聞いて返事を待つ。疎通確認の定番
  • arp … 同じ LAN の相手の MAC アドレスを調べる(IP アドレスは分かっている前提)
  • ipconfig … 自分のアドレス設定を見る
  • netstat … いまつながっている通信の一覧を見る

もう1つ、Web の言葉で CGI を押さえておこう。Web サーバが外部のプログラムを動かして、その結果をブラウザに返すための仕組みだよ。ページを毎回作って返せるのはこれのおかげ。

ping 192.168.0.1

実行結果

64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=1.21 ms