要約

  • RFC 1490は、Frame Relay網が扱える最大フレーム長を超えるパケットについて、分割と再構成を推奨した。ただし必須ではなく、処理は網の両端にあるDTEで完結する。
  • 同一の仮想回線では断片を順番どおりに送り、途中に別の情報を挟まない必要があった。欠落や破損があればメッセージ全体を破棄し、再送は上位プロトコルに委ねた。
  • 1998年のRFC 2427は、カプセル化全体は広く実装された一方、断片化アルゴリズムには相互運用実装がなかったと記録し、FRF.12へ切り替えた。

RFC 2427は、RFC 1490について一括した成功・失敗の判定をしていない。後継文書は、マルチプロトコル・カプセル化が広く実装され使われていたと述べる。その同じ付録で、RFC 1490の断片化アルゴリズムには相互運用可能な実装がなかったと記録し、方式を削除してFrame Relay ForumのFRF.12を参照した。「実装が一つもなかった」とは書いていない。別々の実装が互いに動作しなかった、という記録だ。この区別が、規格全体の採用と個別機能の互換性を分ける。

1993年の課題はサイズだった。7月公開のRFC 1490は、Frame Relayバックボーン上でルーティング通信とブリッジ通信を運ぶ方式を記述した。網によっては最大フレーム長が262オクテットまで小さくなる。カプセル化後のパケットは、その上限を超えうる。そこで断片化が用意されたが、RFCは分割・再構成を推奨するにとどめ、必須にはしなかった。基本的なカプセル化は、すべての装置がこの追加機能を実装しなくても利用できた。

どこで再構成するかが、IPとの違いを決める。RFC 1490の手順はFrame Relay網の境界、すなわち両端のDTEに限られていた。送信側はまずパケットをカプセル化し、その後で網が運べるフレームに分割する。受信側のDTEが再構成し、通常のパケットと同じ経路で上位の処理へ渡す。IPが小さなIPデータグラムを多数受け取る手順ではない。Frame Relayのフレーム長という網固有の制限を、リンクの両端で処理していた。

RFC 791のIP断片化は別の層にある。IPデータグラム自身が識別子、オフセット、断片化フラグを持ち、IPの宛先が元のデータグラムを再構成する。RFC 1490はすでにカプセル化されたパケットの外側に別の断片ヘッダーを置き、通常のプロトコル処理より前にFrame Relay境界で復元する。データを複数片にする点は似ていても、担当する層、受信側、再構成後の責任が違う。

この方式は、未完了メッセージを追跡する状態を必要とした。各断片にはカプセル化識別子、2オクテットのシーケンス番号、オフセット、最終片を示すビットが入る。番号は新たに分割するメッセージごとに進み、初期化時には乱数から始まる。オフセットは32オクテット単位で、最初の断片はゼロでなければならない。受信側はその情報で断片群を識別し、順に配置し、全体がそろったか判定した。

送信順序にも強い制約があった。断片はゼロ位置から順に送り、同じデータリンク接続向けの別の情報を途中に挟んではならない。端点は少なくとも2 KiBを再構成できる必要があり、8 KiBが推奨された。断片が欠けたり壊れたりすれば、端点はメッセージ全体を破棄する。個々の断片を再送する機能はなく、再送責任は上位プロトコルにあった。

再構成タイマーもなかった。RFC 1490は、Frame Relayサービスがフレームを順番どおりに届けることを要求されるため、未完了の断片列を期限切れと判定するタイマーは不要だと説明する。これはアルゴリズムの前提であり、あらゆる事業者の実績を測った結果ではない。受信側には未完了データを保持するメモリーが要るし、断片が一つ失われれば全体を捨てる。タイマーを設けないなら、順序保証と上位層の再送が復旧の境界になる。

後継規格が残した実装記録は、この方式が削除された理由を必要以上に脚色しなくても十分に示している。RFC 2427は、RFC 1490のカプセル化全体が広く実装され、業界団体やITUの文書にも取り入れられたと述べる。その一方で、断片化アルゴリズムには相互運用実装がなく、いくつかのFrame Relay用途には不十分だとの指摘があったとする。文書はFRF.12を代替として指定するが、メーカー名、テスト数、具体的な障害の形までは示さない。原因をそれ以上特定する証拠はない。

だから、規格の成否を二択にするのは誤りだ。断片化が相互運用できなかったからといって、RFC 1490全体が使われなかったわけではない。反対に、カプセル化が普及したからといって、その任意機能まで動いたわけでもない。一つの文書に書かれた機能にも、異なる実装集合とライフサイクルがある。ある形式が製品間に広がる一方で、別のアルゴリズムは共通の互換性契約にならないことがある。

「RFC 1490対応」という表示だけでは、実際に何ができるか分からない。どの機能を実装したのか。回線ごとの最大フレーム長は何か。両端は同じ断片形式と順序規則を使うのか。欠落時に誰が再送するのか。RFC 2427の記録は機能単位で答える。基礎のカプセル化には広い実装実績があったが、断片化には相互運用性がなかった。FRF.12への移行は標準の更新を示すが、その後のあらゆる網での採用を証明するものではない。