相手先のIPアドレスがわかるなら、そこだけにユニキャストで1対1で通信知ればいいじゃん!と思ってしまいます。L3視点でみると。しかしARPプロトコルではブロードキャストを利用します。
なんで?おかしくない?
まぁ、答えは、IPアドレスだけでは通信はできない、MACアドレスを知らないと通信ができないから。IPアドレスはあくまでも理論的なアドレス。物理アドレスであるMACアドレスを知らないと、通信は行えない。
と、まーた悩んじゃったので書き出しておいて、いつかまた悩んだときに読み返すために備忘録。思考の足跡にでもなれば。
でも文章にするのは難儀なので箇条書きでいこうw
ARPが必要な理由とか
- 最終的に、MACアドレスを知らないと機器同士(カッコよく言うとノード間)の通信は行えない。
- でも大体相手のIPアドレスしか知らないよねー
- IPアドレスからMACアドレスを知る。それがARP。
- え?じゃあどうやってMACアドレスを相手に教えるの?
- 教えたくても、通信ができないなら伝えられないよねー。紙で渡すの?
- 互いのMACアドレスを知らないと、一対一の通信は行えない。
- ブロードキャストフレームなら、一対多での通信が行える。
通信の手順(L2レベル)
ネットワークがつながる理由とか
- IPアドレスがないと機器を探すの大変、それがIPアドレスがある理由
- ブロードキャストフレームが、インターネット全体に飛んだら何億人の人のデータがオレのPCまで届いちゃう。そんな処理できない。
- じゃあ、ブロードキャストフレームは一つのネットワーク(サブネット)単位でわけましょうよ。ブロードキャストをせき止める役割を果たすのがルータ。IP層。
- L2スイッチングハブは「向こうポートにあいつはいる。それ以外のポートにはいないよ?だからオレは向こうのポートだけにパケットを流す(キリッ」そんな賢い奴。いちょ、たまに自分の情報が信じられなくなり、記憶した情報をクリアする。
- せき止めたんだけど、向こう側に通信したい人いるんですよ…。はい、そこで登場ゲートウェイ。ルーティング〜。
- バケツリレー、送信元IPは変わらない。送信元MACアドレスはルーター。多分そんな感じでヘッダー書き換えるよルーターさんは。
レイヤーで用語が変わるんだよね・・・
取り扱っているデータの単位っていうの?呼び方が各レイヤーで変わる。各レイヤーでヘッダー情報とかでカプセリングされると名前が変わる。
- L2ではフレーム
- L3ではパケット
- L4ではセグメント