01 / 10
ネットワークは約束事のかたまり
ブラウザにアドレスを打つと、ページが返ってくる。この間に起きていることは、ぜんぶ約束事でできている。
相手をどう指すか。どこから話しかけるか。届かなかったらどうするか。文字と画像をどう区別するか。この一つひとつに名前がついていて、それを プロトコル と呼ぶ。
プロトコルは「決めごと」なので、覚えることは多いけれど難しくはない。どの場面の決めごとなのかを分けて覚えるのがコツだよ。
ネットワーク
INPUT · スライド
01 / 10
ブラウザにアドレスを打つと、ページが返ってくる。この間に起きていることは、ぜんぶ約束事でできている。
相手をどう指すか。どこから話しかけるか。届かなかったらどうするか。文字と画像をどう区別するか。この一つひとつに名前がついていて、それを プロトコル と呼ぶ。
プロトコルは「決めごと」なので、覚えることは多いけれど難しくはない。どの場面の決めごとなのかを分けて覚えるのがコツだよ。
02 / 10
全部を一度に決めると手が付けられないので、ネットワークは層に分けてある。下の層は上の層の中身を気にしない。これが効いていて、Wi-Fi でも有線でも同じ HTTP が使える。
試験では OSI 基本参照モデル という7層の分け方も出てくる。下から 物理・データリンク・ネットワーク・トランスポート・セッション・プレゼンテーション・アプリケーション だよ。
03 / 10
どの機械に届けるかを決めるのが 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:5000105 / 10
トランスポート層には性格の違う2つがある。
TCP は届いたことを確かめながら送る。抜けたら送り直し、順番が入れかわったら並べ直す。だから確実だけれど、そのぶん手間がかかる。Web もメールもファイル転送も TCP だよ。
UDP は投げるだけ。確認しないので抜けることもあるが、待たされない。音声通話や動画の生配信のように、少し欠けても止まるほうが困る用途で使う。
「信頼性よりリアルタイム性」という言い方が出てきたら UDP のことだよ。
06 / 10
人は manabiya.example.com と覚えるけれど、届けるのに要るのは IP アドレス。この名前とアドレスの対応を答えてくれるのが DNS だよ。
電話帳と同じ働き。ブラウザはページを取りに行く前に、まず DNS に「この名前のアドレスは?」と聞いている。
似た役割の名前と混ざりやすいので、並べて覚えよう。
07 / 10
ブラウザとサーバのやりとりの決めごとが HTTP。「これをください」「はいどうぞ」を文字で書いて送り合っている。
HTTPS はその通信を暗号化したもの。ここで大事なのは、暗号化のほかにもう1つできることがある点だよ。サーバ証明書で、相手が本当にそのサーバかを確かめられる。
これが HTTPS だけの特徴。cookie でのセッション管理も、ID とパスワードでの認証も、ブラウザのキャッシュも、HTTP でもできる。混同しやすいところだよ。
08 / 10
メールは送るときと受け取るときで別のプロトコルを使う。送るのが SMTP、受け取るのが POP や IMAP だよ。
メール本文の頭には ヘッダ がついていて、From To Date Subject などが並ぶ。もともとメールは文字しか送れなかったので、画像や音声を運べるようにヘッダを拡張した決めごとが MIME だよ。添付ファイルはこれで実現している。
ヘッダで1つだけ特別なのが Bcc。ほかの受信者に見せない宛先なので、転送の途中で削除される。見えたままだと Bcc の意味がなくなるからだね。
From: hanako@example.comTo: taro@example.comSubject: おはようContent-Type: text/plain; charset=UTF-809 / 10
ネットワークをつなぐ機器は、どの層まで見て中継するかで名前が変わる。ここは層の理解がそのまま問われるところだよ。
ブリッジは IP を見ない、ルータは MAC で中継しない。ここを入れかえた選択肢が定番だよ。
10 / 10
つながらないとき、どこまで届いているかを調べる道具がある。
もう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