Dev Study
← 研修トップ

ネットワークの仕組み

パケットが宛先に届くまでに、途中の機械は何を見て、何を決めているのか。ルーティング表の1行の読み方から始めて、TCP/IPまでを原理から積み上げます。

  1. 1
    なぜ層に分けるのか — 「層」という考え方そのもの
    通信は「宛先を書いた紙を、宛先を書いた封筒に入れ、それをまた別の宛先を書いた袋に入れる」という入れ子の構造を持っています。層とは、この入れ子の一段一段のことです。
    約 15 分
  2. 2
    信号からフレームへ — ビット列をどこで区切るか
    ケーブルを流れてくるのは、切れ目のない0と1の連なりです。受信側は「どこからが1通のデータか」を自力で見つけなければなりません。
    約 15 分
  3. 3
    MACアドレスとスイッチ — 同じ部屋の中の配達
    スイッチは、通過したフレームの「送信元MAC」を見て、どのポートの先に誰がいるかを勝手に覚えます。転送するときに見るのは「宛先MAC」です。学習と転送で見る場所が違います。
    約 15 分
  4. 4
    IPアドレスとサブネット — なぜ住所を2段に割るのか
    IPアドレスは32ビットの1つの数ですが、先頭何ビットかを「どのネットワークか」、残りを「その中のどの機器か」として2段に読みます。この切れ目の位置を指定するのがサブネットマスクです。
    約 16 分
  5. 5
    ルーティング表 — 複数の行が当てはまったら、どれを選ぶのか
    ルータは、宛先に当てはまる行の中から「最も細かく指定している行」を選びます。これを最長一致(longest prefix match)といいます。
    約 13 分
  6. 6
    経路は誰が決めるのか — 静的・動的とデフォルトゲートウェイ
    ルーティング表の行は、人が手で書いたもの(静的)と、ルータどうしが会話して自動で作ったもの(動的)の2つの出所から埋まります。どちらを使うかは規格が決めることではなく、実務上の判断です。
    約 17 分
  7. 7
    NAT — アドレスが足りない世界の辻褄合わせ
    家庭や社内から外へ出る通信は、途中で送信元のアドレスとポート番号が書き換えられています。書き換えの対応表は、通信を始めた瞬間に作られ、使われなくなると消えます。この「勝手に生まれて勝手に消える」性質が、NATのふるまいのほとんどを説明します。
    約 19 分
  8. 8
    ポートという多重化 — 1本の線に何本もの会話
    1本の回線の上で何十本もの通信が同時に成立しているのは、宛先を「どのホストか」だけでなく「そのホストのどの窓口か」まで細かくしたからです。この窓口の番号がポートで、届いたデータをどの会話に振り分けるかを決めます。
    約 14 分
  9. 9
    なぜ手を3回握るのか — 「接続」という幻想の作り方
    IPは荷物を1つずつ投げるだけで、「つながっている」という状態をどこにも持ちません。TCPの接続とは、両端のメモリに置かれた合意のことです。その合意を作る手続きが3ウェイハンドシェイクです。
    約 16 分
  10. 10
    届いたことを確かめる — ACKと再送、そして規定と実装のズレ
    ネットワークには「送った」ことを保証する仕組みがありません。TCPが信頼できるのは、送った側が相手からの確認応答(ACK)を待ち、返ってこなければもう一度送るからです。届いたことを知る方法は、相手に言ってもらうことしかありません。
    約 18 分
  11. 11
    送りすぎない仕組み — フロー制御と輻輳制御の違い
    TCPには「送りすぎない」ための上限が2つあります。相手の受信バッファの空きを示す rwnd と、途中の経路が耐えられる量を送信側が推定した cwnd です。別々の理由で別々に動きます。
    約 18 分
  12. 12
    名前からアドレスへ — DNSは巨大な委任の木
    DNSの木は、単に階層が深いのではありません。各ノードで**権限そのものが別の組織に移譲**されています。上位は下位の中身を持たず、「あちらに聞け」と紹介を返すだけです。
    約 20 分
  13. 13
    パケットを自分の目で見る — 切り分けの型
    「つながらない」という報告は、それ自体では何も特定していません。第14週から積み上げてきた層は、ここで「どの段まで生きているかを下から順に確かめる」という手順に変わります。
    約 15 分