要約

  • RFC 1953 では、点対点リンクの各方向で下流側が受信ラベル空間を管理し、Redirect で上流へフローとの対応付けを提案した。上流側は一部でも全部でも無視でき、Redirect 自体に確認応答はなかった。
  • 対応付けは有効期間を持つリースだった。同じ提案は期限を更新するが、同じフローに別ラベルが届けば新提案を捨て、フローをデフォルト転送へ戻した。隣接状態が一致しないメッセージも捨てられた。
  • 近道の設置は任意でも、ラベルの再利用には Reclaim Ack という完了証拠が必要だった。一方で文書はセキュリティ問題を論じておらず、インスタンス番号やチェックサムを認証と誤読してはならない。

タイマーが切れた直後の一個

あるフローだけ、隣の装置との間で短いラベルを使っていたとする。ラベルを見れば、受信側は保存済みの転送判断を呼び出せる。ところが次のパケットが来る前に lifetime が尽きた。受信側の時計から対応表が消え、上流側もそのラベルを使い続けられない。

それでもパケットは行き場を失わない。もともと存在した通常の IP 転送へ戻るからだ。近道がなくなっても、道そのものは残る。この順序に RFC 1953 の設計思想が凝縮されている。加速状態は基本経路の上に載る借り物であり、基本経路を置き換える主権ではない。

文書は1996年5月に Informational RFC として公開された。題名は Ipsilon Flow Management Protocol Specification for IPv4 Version 1.0。IESG Note は、この仕様が私的プロトコルを記録したもので、IETF ワーキンググループの成果でも standards track 文書でもなく、その水準の広範なレビューを受けたとは限らない、と境界を明記した。

したがって、番号があることを普及や標準化の証明にしてはいけない。RFC は仕組みを観察可能にしたが、導入規模、性能測定、相互運用性、商業的成功は立証していない。後世の MPLS への一本の血統書でもない。

フローは発見物ではなく、選んだキーである

IFMP はフローを、ルーティングまたは論理的な処理方針によって関係づけられるパケット列として扱った。Flow Type は、どの不変ヘッダフィールドを識別に使うかを定め、包含関係の階層によって最も具体的な一致を選べるようにした。

Version 1 には識別子を持たない Flow Type 0、アドレス、プロトコル、ポートを使う TCP/UDP 向けの Flow Type 1、ポートなどを省いた粗い Flow Type 2 があった。ここで作られるのは転送上の分類である。利用者本人、アプリケーションの正当性、所有権、組織の許可を証明するものではない。

短いラベルで処理できるのは、完全な IPv4 情報から得た判断を両端が覚えているからだ。記号が意味を内包しているのではない。保存状態が意味を与える。その記憶が再起動前のものだったり、別の相手を指していたりすれば、同じ番号は危険なほど曖昧になる。

そこで IFMP は Redirect より先に adjacency を同期させる。Sender Instance はリンクまたはノードの再起動後に変わり、近い過去で一意になるよう選ばれ、ゼロは無効だった。Peer Instance と Peer Identity は相手について自分が何を信じているかを表した。redirection sequence は 2^32 を法として増加し、リンクのリセットで初期化された。

隣接関係が ESTAB に達する前は redirection message を送れない。受信側は送信元アドレス、sender instance、peer instance を保存状態と照合し、食い違えば捨てる。これは古いリンク生命を切り離す仕組みであって、暗号学的な相手認証ではない。Security Considerations は、セキュリティ問題を論じていないとだけ述べた。

ラベルを持つ側と、実行する側

IFMP はリンクの二方向を別々に扱った。ある方向でラベル付きパケットを受け取る下流側が、その方向のラベル空間を管理する。下流は選んだラベルと定義済みフローを Redirect element に載せ、上流へ送る。

これは資源の所在に沿った割当てである。受け取る側がローカル番号を選ぶ。ただし、選択権は命令権ではない。上流ノードは Redirect の任意の要素、あるいは全部を無視できた。Redirect には Ack がない。受信したという事実から、採用、転送成功、終端到達を導くことはできない。

Label Range reply も同じ局所性を示す。受信リンクが扱える最小値と最大値を通知するもので、世界共通のラベル登録簿ではない。数値は一つのリンク、一つの方向、一つの隣接状態の中だけで意味を持つ。

矛盾したら、速い方を選ばない

各 Redirect にはゼロでない秒単位の lifetime があった。対応付けはその時刻までに破棄され、同一内容の Redirect が来ればリースが更新された。すでに振り向けられたフローに同じラベルが提案されれば期限をリセットする。

重要なのは別のラベルが来た場合である。プロトコルは新旧どちらが正しいかを推測しない。新提案を無視し、そのフローをデフォルト状態へ戻す。二つの短い答えが食い違うなら、圧縮前の共通言語へ退く。

最適化の安全性は、成功時の速さだけでは測れない。期限切れ、再起動、順序の飛び、相手の変更、矛盾した再束縛のどれからでも通常転送へ収束できることが重要だ。遅い経路が実際に動き、試験されている限り、障害は意味の喪失ではなく性能の低下にとどまる。

RFC 1954 はこの仕組みを ATM 上に写した。ラベルは VPI/VCI に対応し、一部の振り向け形式では繰り返し現れる IPv4 フィールド、さらにある型では TCP/UDP ポートまで省略された。情報は消えたのではなく、対応表へ移った。制御トラフィックとデフォルト転送には既定のカプセル化が残った。

提案には不要で、再利用には必要な返事

Redirect が未確認なのは、拒否しても通常転送が壊れないからである。だが Reclaim は別の問題を扱う。下流は上流へフローの束縛を解き、デフォルト転送へ戻し、ラベルを解放するよう求める。ラベルを早く使い回せば、旧フローのキュー済みデータと新しい意味が衝突しかねない。

そのため、すべての Reclaim element は処理後に Reclaim Ack を受ける。未知のフローにも要求内容で応答する。既知のフローが別ラベルへ束縛されていたなら、その実際の束縛を解除し、実際に解放したラベルを報告する。可能なら、そのラベルを使う待機データの送出後に確認する。

Ack はフローが unbound でラベルが free だという隣接間の証拠である。物理装置のあらゆるキューや遠隔宛先まで証明する万能の領収書ではない。それでも、「解放を依頼した」と「再利用できる」は別状態だと明示した点が大切だ。生成は投機的でもよいが、破壊的な再利用は完了証拠を待つ。

後世のラベルから逆算しない

IFMP は IP の制御判断と ATM の交換を結びつけようとした一群の提案に属する。RFC 1987 の GSMP は、コントローラーが ATM スイッチの接続、ポート、統計を扱う非対称な master/slave 関係を記した。Cisco の Tag Switching は転送と制御を分け、トポロジー駆動を含む複数の割当て方式を示した。

後の MPLS architecture と LDP specification は、ラベル束縛、転送等価クラス、制御と転送の分離が長く残る設計群になったことを示す。ただし、似た問いへの後続文書が存在することは、IFMP が直接それらを生んだ証拠ではない。RFC 1953 を MPLS 標準と呼ぶことも、後の概念を1996年へ投影することもできない。

比較して残るのは、系譜ではなく問いである。短い識別子を誰が管理するのか。誰が利用を提案し、誰が断れるのか。状態はいつ死ぬのか。食い違ったとき何が残るのか。番号を再利用してよいと誰が、どの証拠で判断するのか。

紙の Redirect と、動いた転送

Heng Lu の running-code primacy を当てると、証拠の階層が見える。仕様に Redirect と書いてあること、相手が Redirect を送ったこと、受信装置が束縛を保存したこと、実際のパケットがラベル付きで流れたことは、別々の現実である。メッセージは提案の証拠にすぎず、実行は観測された転送が示す。

minimum initial specification の観点では、共有規則は薄い。両端が合わせるのは、フローキー、インスタンス、順序、有効期間、ラベル範囲、回収確認である。全世界の割当て主体も、必ず加速せよという中央命令も要らない。局所的な協調のための最小限を共有し、採否を実行点へ残す。

reality layers の区別も明瞭だ。パケットにラベルがあること、ノードに束縛があること、隣接双方が同じ束縛を信じること、その束縛が転送として実行されることは同じではない。記号は状態を参照し、状態は行為によって初めて運用上の現実になる。

速い道を差し出したのはスイッチだった。だが、そこへ入るかを決めるのはルーターだった。この小さな拒否権が、近道を近道のままにした。

出典と主張の境界

文書の身元と位置づけは RFC 1953 の RFC Editor 記録 に、プロトコルの詳細は RFC 1953 本文 による。ATM への対応は RFC 1954、既定カプセル化の背景は RFC 1483、スイッチ制御の比較は RFC 1987 の記録 を参照した。比較対象は Tag Switching の RFC 2105、MPLS architecture の RFC 3031、LDP の RFC 5036 であり、直接の因果系譜を主張しない。分析枠は Heng Lu の Running-Code Primacy、Minimum Initial Specification、Reality Layers に基づく。

これらの資料が支えるのは仕様と限定した比較である。導入率、実測性能、商業的成功、普遍的相互運用性、暗号学的安全性、IFMP から MPLS への単一路線は立証しない。