コンテンツにスキップ

ネットワーク(TCP/IP):URL を入力してからページが表示されるまで

前提:クラウドコンピューティング:オンプレミスとの分岐点を数式で見る

生 Markdown
  • インターネットは「層」に分けて設計されています。層の本質はカプセル化、すなわち上位層のデータをそのまま下位層のペイロードとして包み、下位層は中身を解釈しないという規律です。この規律のおかげで、アプリケーションの数と物理媒体の数を掛け算ではなく足し算で扱えます。
  • IP アドレスは「番号」ではなくアドレスの集合(プレフィックス)として扱われます。プレフィックスの集合は入れ子か素かのどちらかにしかならず、そこから最長プレフィックス一致が一意に定まることが証明できます(定理 4.4)。経路表という巨大な分散データ構造が矛盾なく動くのは、この単純な事実のおかげです。
  • TCP のスループットには W/RTTW/\mathrm{RTT} という上限があります(命題 5.4)。帯域を増やしても RTT が縮まらない限り、ウィンドウ WW を広げなければ速くなりません。長距離通信で「回線は速いのに遅い」現象の大半はこれで説明できます。
  • 3 ウェイハンドシェイクの 3 回目は冗長ではありません。2 回で済ませると、遅延して届いた古い接続要求で誤った接続が成立します(命題 5.3)。
  • ブラウザに URL を入れてから HTML が届くまでには、DNS・TCP・TLS・HTTP でそれぞれ往復が発生します。国際回線の RTT を 80 ms とすると初回アクセスに約 320 ms かかり、この内訳を数えられることが性能改善の出発点になります(例 7.1)。

1. 動機 — 二台をつなぐのは簡単、全世界をつなぐのは難しい

Section titled “1. 動機 — 二台をつなぐのは簡単、全世界をつなぐのは難しい”

二台の計算機をケーブルでつなぎ、電圧の高低でビットを送る。これだけなら数十行のプログラムで書けます。難しいのは、互いに設計を知らない何十億台の機器を、誰も全体を管理していない状態でつなぐことです。

歴史的には 1969 年の ARPANET が出発点でした。当初のプロトコル NCP は、すべてのホストが同種のネットワークにつながっていることを前提にしていました。しかし 1970 年代に入ると、無線パケット網や衛星回線など、性質のまったく異なるネットワークが現れます。「ネットワークどうしをつなぐ」という問題(inter-networking、これが internet の語源です)に Vinton Cerf と Robert Kahn が 1974 年の論文で与えた答えが、現在の TCP/IP の骨格です。1983 年 1 月 1 日、ARPANET は NCP を捨てて TCP/IP に一斉移行します。

彼らの設計の中心にあるのは、次の二つの割り切りです。

第一に、パケット交換にする。 通話のように回線を占有する方式(回線交換)では、通信していない間も帯域が遊びます。データを小さな塊(パケット)に切って宛先を書き、共有された回線に流し込めば、複数の通信で帯域を分け合えます。代わりに、パケットは順序が入れ替わったり、混雑時に捨てられたりします。

第二に、中継ノードを賢くしない。 途中のルータは「次にどこへ渡すか」だけを決め、再送も順序の復元も末端のホストが行います。これを end-to-end 原則と呼びます。中継が単純だからこそルータは高速化でき、新しい種類の通信を追加してもネットワークの中身を書き換えずに済みます。

そのうえで機能をに分けます。動機は抽象化の美しさというより、単純な組み合わせの数え上げです。アプリケーションが mm 種類、物理媒体が nn 種類あるとき、すべての組み合わせを個別に実装すれば mnmn 通りの作業が要ります。両者の間に共通の中間層(IP)を挟めば、上向きに mm 個、下向きに nn 個、合計 m+nm+n 個で済みます。IP が一種類しかなく上下が多様なこの構造を、砂時計モデルと呼びます。

ここから先は Pro プランの内容です。

この章の続き(定義・定理・証明・例・演習)をすべて読むには Pro プランにご登録ください。無料の章は最後まで読めます。

プランを見る ログイン

この記事の誤りを報告する ・運営: 夢現技研合同会社料金プラン利用条件特定商取引法に基づく表記

© 2026 夢現技研合同会社 ・本文の LLM への入力は自由です。コード例は MIT ライセンスです。