# ブリッジング
## 定義
ブリッジング(bridging)は、『The Real Internet Architecture』がネットワークを合成する演算子として数える3つ(ブリッジング・レイヤリング・サブダクション、ch.1 §1.5)のうち最初に説明される演算子である。**2つのネットワークがブリッジされるとは、両者の境界を越えるリンク(ブリッジングリンク)が存在することをいう**。ブリッジングリンクは各ネットワークに1つずつ端点を持ち、両方のネットワークに属する。この端点は「ゲートウェイ」と呼ばれ、パケットを一方のネットワークから他方へ転送する。ブリッジングはあるネットワークを他のネットワークから到達可能にするため、セッションはネットワーク境界を越えて両方のネットワークのパスにまたがるパケットを運べるようになる。(Source: [[@2024__PrincetonUP__The Real Internet Architecture - Chapter 3 Composing Networks and Services]] §3.2.1)
ブリッジされる2つのネットワークは、互換性のあるネットワークヘッダ形式(特に構文的名前空間)とセッションプロトコルを共有していなければならない。この制約の下で、著者らはブリッジングを次の4つの形式的性質で定義する。(i) ブリッジングは2つ以上のネットワークの集合に適用される。(ii) 到達可能性はすべてのメンバーの転送の組み合わせ効果である。(iii) あるネットワークが2つの部分網に分割できるなら、その部分網はブリッジングリンクを持つ2つのブリッジされたネットワークと振る舞い上等価である(この場合両者は同一の管理主体を持つ)。(iv) 逆に、ブリッジされた2つのネットワークは、両方のメンバーとリンク(ブリッジングリンクを含む)を持つ単一の上位ネットワーク(supernetwork)と振る舞い上等価である(この場合管理主体は異なりうるが、形式的に定義されたネットワークの振る舞いには影響しない)。これらは2つ以上の部分網にも一般化される。ブリッジングは異なる管理主体を持つネットワークを合成できるほど汎用的である一方、重複する名前空間を持つネットワークどうしのブリッジングは課題であり(複合セッションで解決)、ネットワークヘッダやセッションプロトコルが非互換な異種ネットワークにはそもそも適用できない。(Source: ch.3 §3.2.1)
## 複合セッション(compound session)
ブリッジングが解決できない問題——重複する名前空間の解消、異種ネットワークの相互運用——を補うのが**複合セッション(compound session)**である。複合セッションは「プロキシ」と呼ばれるミドルボックスで2つのセッションをエンドツーエンドに結合する仕組みであり、これ自体はネットワークの合成ではなく、第2章の「プロトコル埋め込み」に続くもう一つのネットワークサービス合成メカニズムとして位置づけられる(複合セッションでないセッションは「単純セッション」と呼ぶ)。プロキシは一方の単純セッションのセットアップメッセージを受け取ると他方の単純セッションに結合することを決め、内部の結合テーブル(join table)に2つの単純セッションを記録する。以後両側からのメッセージはすべてプロキシが結合テーブルに従いヘッダを書き換えながら中継する。(Source: ch.3 §3.2.3)
- **NAT(network address translator)**: 私設IPネットワークが公衆インターネットとブリッジできない(私設名がトランジットネットワークで経路広告されない)問題を、複合セッションで解く実例。私設メンバーはNATというプロキシを介して外向きセッションを開始し、NATは送信元名と送信元ポートを自身の公開名に書き換える。ただし公衆インターネット側からは私設メンバーへセッションを開始できないという限界を持つ。(Source: ch.3 §3.2.4)
- **相互運用プロキシ(interoperation proxy)**: 名前空間・ヘッダ・セッションプロトコルが非互換な異種ネットワーク(例: IPネットワークとPSTN)は、ブリッジングでは合成できない。相互運用プロキシは2つの半身を持ち、各半身が異なるネットワークの通常のメンバーとして振る舞いながらヘッダ変換・プロトコル変換(音声データならペイロードの符号化変換まで)を行う複合セッションによって、異種ネットワークをまたぐセッションを実現する。(Source: ch.3 §3.2.5)
- 私設IP名の再利用は、合成的ネットワークアーキテクチャの形式化における「2つのネットワークは一意な名前の集合が互いに素でなければブリッジできない」という制約の価値を示す例でもある。グループ名はこの制約に縛られないため、私設IP名は「1メンバーだけのローカルエニキャストグループ名」としてモデル化できる。(Source: ch.3 §3.2.4.2)
## ブリッジングの実例: インターネットとBGP
インターネットは無数のIPネットワーク(自律システム、AS)がブリッジされた集合体である(2023年時点で約7万5千のネットワーク)。ブリッジング関係は緩やかな階層をなし、エッジネットワーク(ユーザメンバーのためだけに存在する顧客網)とトランジットネットワーク(エッジネットワークのためにパケットを運ぶISP網。末端をアクセスネットワーク、頂点をコアネットワークと呼ぶ)に大別される。この階層には2つの理由がある。**物理的階層**(コアの高帯域・少リンク数 対 周辺の低帯域・多リンク集約という理論的・実証的に最適な設計)と、**ビジネス階層**(顧客/プロバイダ関係が階層に沿い、対等関係がグラフを水平方向につなぐ)である。ブリッジされたネットワーク間のルーティングはBGP(path-vectorプロトコル)が担い、顧客優先・対等次点・プロバイダ最後という経路選択とエクスポートポリシーによって、階層的な原則に従う限り不安定性・非決定的収束が防がれる。IPエニキャストもBGPルーティングによって実現される、ブリッジングの効果の一例である。(Source: ch.3 §3.2.2, §3.2.2.1-§3.2.2.3)
## 横断的知見
- **『Computer Networks: A Systems Approach』第3章が説明する「学習ブリッジ(learning bridge)」とスパニングツリーアルゴリズムは、RIAの形式的な「ブリッジされた2ネットワークは単一の上位ネットワークと振る舞い上等価」という性質(iv)を、Ethernet L2の具体的な実装として先取りしていた**: Systems Approach第3章は、複数のLANセグメントを学習ブリッジで接続すると、ブリッジテーブルの自動学習とスパニングツリーによるループ排除を通じて、上位のプロトコルからは単一の「拡張LAN」として見えるようになると説明する。これはRIA第3章が形式的に定義する「ブリッジされた2つのネットワークは、両方のメンバーとリンクを持つ単一の上位ネットワーク(supernetwork)と振る舞い上等価である」という性質と本質的に同じ主張であり、Systems Approachの学習ブリッジは、RIAが数十年後に定式化した性質の具体的な工学的実現例だったことになる。ただし両者には違いもある——学習ブリッジはEthernet(L2)という単一の技術層に限定された機構だが、RIAのブリッジング演算子は名前空間・ヘッダ形式・セッションプロトコルが互換でありさえすれば、層を問わずどのネットワーク対にも適用できる一般演算子である点で抽象度が異なる。(Source: [[@2020__SystemsApproach__Computer Networks - A Systems Approach - Chapter 3 Internetworking]] §3.2.1, §3.2.3, [[@2024__PrincetonUP__The Real Internet Architecture - Chapter 3 Composing Networks and Services]] §3.2.1)
- **AS間の顧客/プロバイダ・対等関係というビジネス階層は、RIA第3章とSystems Approach/Burgessの双方が同じ実体(BGPポリシー)を扱いながら、前者は「なぜ階層が安定するか」という形式的性質の裏付けとして、後者は「BGPは何を保証しないか」という運用リスクとして語る**: [[階層的ルーティングとアドレス集約]]概念は、Systems Approach第4章のBGPメカニクス(path-vector、AS relationship の3類型)と、Burgessの「BGPは正しさを保証しない信頼に基づくディレクトリサービスである」という運用者視点を対比してきた。RIA第3章はこれらとは異なる第三の焦点を当てる——顧客/プロバイダ関係が階層に沿い対等関係が水平方向をつなぐという構造そのものが、なぜBGPの発散・非決定的収束という最悪ケースを防ぐのか、という**安定性の形式的根拠**としてビジネス階層を説明する。3つの文献を並べると、同じAS間関係というBGPの社会的レイヤーが、「メカニクス(何ができるか)」「安定性の根拠(なぜ壊れないか)」「信頼性の限界(何を保証しないか)」という3つの異なる問いに答えていることが分かる。(Source: [[@2020__SystemsApproach__Computer Networks - A Systems Approach - Chapter 4 Advanced Internetworking]] §4.1, [[@2024__PrincetonUP__The Real Internet Architecture - Chapter 3 Composing Networks and Services]] §3.2.2.1, §3.2.2.2, §3.2.2.3)
- **RIAの複合セッションにおける「プロキシ」は、Burgessが分類する「キャッシュ型」「ファイアウォール型」というプロキシの目的論的分類とは異なる、結合テーブル(join table)による形式的なメカニズムとしてプロキシを再定義している**: [[プロキシとエージェント]]概念は、Burgess(2004)に基づきプロキシを「キャッシュ型(トラフィック削減)」「ファイアウォール型(危険な接続の代行)」という目的で分類してきた。RIA第3章は同じ「プロキシ」という語を、2つの単純セッションを結合テーブルでエンドツーエンドに結合する形式的な仕組みとして定義し直し、NAT・相互運用プロキシ・Level 4/7ロードバランサ(第3章§3.3.5.5)をすべてこの単一の形式的メカニズムの実例として統一的に説明する。Burgessの分類が「プロキシは何のために使われるか(目的)」を問うのに対し、RIAは「プロキシは形式的に何をしているか(結合テーブルによるセッションの中継とヘッダ書き換え)」を問うており、キャッシュ型・ファイアウォール型という目的分類のどちらも、RIAの形式的メカニズムの上に成り立ちうることが示唆される。(Source: [[@2004__Wiley__Principles of Network and System Administration - Chapter 9 Application-level services]] §9.2, [[@2024__PrincetonUP__The Real Internet Architecture - Chapter 3 Composing Networks and Services]] §3.2.3, §3.3.5.5)
## 未解決の問い
- Systems Approachの学習ブリッジはEthernet(L2)専用の機構だが、RIAのブリッジング演算子は層を問わない一般演算子だと主張される。実際にL3(IP)以外の層、あるいは非常に異質な2つのネットワーク層の間で「ブリッジング」(レイヤリングではなく)が成立する実例は、本wikiにはまだ蓄積されていない。
- ブリッジングの形式的性質(iii)(iv)——部分網分割とブリッジングの同値性——は、著者らが「形式的に定義される」と述べるにとどまり、RIA第3章では証明や形式手法(TLA+等)への参照が示されない。この形式化の詳細は本書の他の章(あるいは著者らの別の学術論文)にあるか、要確認。
- BGPの「顧客優先・対等次点・プロバイダ最後」という経路選択ポリシーが階層的原則から逸脱した場合(例外の存在)、RIA第3章は「不安定性・非決定性が生じうる」と述べるにとどまる。逸脱がどの程度なら許容されるか、定量的な閾値は示されない。
- 複合セッションにおける「結合テーブル」の実装(状態のライフサイクル管理、故障時の扱い)は、RIA第3章では概念的な説明にとどまる。Burgessが論じるファイアウォール型プロキシの障害耐性・状態管理と、RIAの結合テーブルはどこまで同じ課題を共有するか。
## 関連
- ソース: [[@2024__PrincetonUP__The Real Internet Architecture - Chapter 3 Composing Networks and Services]](§3.2 ブリッジングの定義と実例) / [[@2020__SystemsApproach__Computer Networks - A Systems Approach - Chapter 3 Internetworking]](学習ブリッジ、スパニングツリー) / [[@2020__SystemsApproach__Computer Networks - A Systems Approach - Chapter 4 Advanced Internetworking]](BGP、AS関係) / [[@2004__Wiley__Principles of Network and System Administration - Chapter 9 Application-level services]](プロキシの目的論的分類)
- 概念: [[レイヤリング]](もう一つの合成演算子) / [[階層的ルーティングとアドレス集約]] / [[エニキャストルーティング]] / [[プロキシとエージェント]] / [[ネットワークアーキテクチャ]]
- 実体: [[The Real Internet Architecture]]
## 出典
- Pamela Zave, Jennifer Rexford, *The Real Internet Architecture*, Princeton University Press, 2024, Chapter 3, §3.2.
- Larry Peterson and Bruce Davie, *Computer Networks: A Systems Approach*, 6th edition, Chapter 3: Internetworking, §3.2. https://book.systemsapproach.org/internetworking.html
- Larry Peterson and Bruce Davie, *Computer Networks: A Systems Approach*, 6th edition, Chapter 4: Advanced Internetworking, §4.1. https://book.systemsapproach.org/scaling.html
- Mark Burgess, *Principles of Network and System Administration*, Second Edition, John Wiley & Sons, 2004, Chapter 9, §9.2.