要約

  • 1988年のRFC 1043は、TELNETのData Entry TerminalオプションのDODIIS実装を記録した。文字エコー方式では、一打鍵が送信用とエコー用の二つのデータグラムを生み得ると説明する。
  • DETでは端末がフォームの開いた欄を手元で編集する。アプリケーションと端末は機能を交渉し、GO-AHEADで順番を渡し、必要な欄を返す。「変更済み」には人が触った欄だけでなく、属性で指定された欄も含まれる。

一文字のために、行きと帰りの荷物

RFC 1043の冒頭は、遠隔文字エコーの費用を具体的に描く。キーボードの一文字がTCP/IPヘッダー付きのデータグラムになってホストへ行き、ホストは同じようなデータグラムを返す。米国Defense Intelligence Agencyは、パケット交換網を通じて全画面アプリケーションを使う方法を開発していた。文書によればIAS、MVS、OS86、UNIXではDETが実装済みで、VMとVMS向けは開発中だった。機種はそろわない。それでも利用者が記入するのは、一文字ずつ遠くへ押印をもらう用紙ではなく、一枚のフォームであってほしい。

Data Entry TerminalオプションはRFC 732にさかのぼる。RFC 1043が向き合ったのは、その後の実装のばらつきだ。DODIIS内の複数組織が独立に開発した端末とアプリケーションが、互いに通じる保証を求めていた。通信量を節約する仕組みが別の機械で崩れるなら、節約分はすぐ保守の手間に化ける。そこで共通の最低限、追加機能の交渉、操作権の渡し方を細かく定めた。

想定した装置は半二重のフォーム端末で、長方形の画面に保護された表示と編集可能な欄が並ぶ。利用者は開いた欄をローカルのキーボードで直せる。機能キーや欄の選択でも応答できる。標準画面は一行80文字、24行。利用者側ホストは24〜48行を扱い、寸法変更は交渉する。アプリケーションが欄の位置、長さ、属性と内容を組み立て、完成するとGO-AHEADを送る。これが端末のキーボードを解放する合図だ。利用者が記入を終えると端末が結果とGO-AHEADを返し、次の手をアプリケーションへ渡す。カーソルには持ち主が一人ずついる。

最初のフォームの前に、双方はDETを使うこと自体に同意する。TELNETオプション番号は20。DOとWILLを接続の両方向で交わす。合意できなければ標準状態のWONT DET -- DONT DETに残り、通常のネットワーク仮想端末として動く。DETを選んだときは、Echo、Suppress Go-Ahead、Binaryのような衝突するTELNETオプションを断るか終了するようRFCは求めた。新しい順番待ちの約束の横で、古い文字エコーが勝手にしゃべっていては困る。

DETの中でも、追加機能には別の握手が要る。編集、消去、送信、書式の四種類のfacilitiesサブコマンドで、端末は提供できる能力を、アプリケーションは必要な能力を示す。両者のビットマップの論理積だけが使える。表示の明るさは提示された低い方の段階を採る。任意機能は合意後に使い、どちらかが後から無効化できる。予約ビットをゼロにする規則は、将来の機能への知らぬ間の賛成を防ぐ。誰が交渉を始めたかも覚えておく。二台が礼儀正しく返事を返し続ければ、フォームは永遠に始まらない。

記入済みフォームの返し方で、節約は形になる。アプリケーションは画面全体、保護されていない欄、変更された欄をそれぞれTRANSMIT-SCREEN、TRANSMIT-UNPROTECTED、TRANSMIT-MODIFIEDで求められる。明示がなければ、交渉済みのModifiedとProtection属性に従い、許される中で小さい返答が既定になる。画面は端末に残り、次の回にはアプリケーションが必要な部分を直せる。指の動きは近くで処理され、欄がまとまって戻る。

ただし「変更された」の意味には注意が要る。TRANSMIT-MODIFIEDは、利用者が実際に編集した欄に加え、Modified属性の付いた欄も返さなければならない。返ってきた欄のすべてを利用者の操作履歴と読むと、フォームの設計を人の行動と取り違える。RFCはこの点を注意書きにした。後で記録を調べる人にとっては、かなり親切な置き手紙だ。

追加交渉なしで使えるDETの最小コマンド群だけでは、DODIISのフォームには足りなかった。利用者側ホストは指定サブコマンドと、ハードウェアが持つかソフトウェアで容易に実現できる属性を備え、サーバー側はアプリケーションに必要なものを備える。RFCは送受信の推奨役割を表にした。共通の約束を作りながら、機種ごとの現実も残したわけだ。

RFC 1043は、一打鍵ずつ往復する騒がしい会話を、双方が理解する一枚のフォームへ変えた。端末が手元で編集し、機能を交渉し、必要な欄だけを返す。ネットワークが静かになったのは、画面の両側が先に仕事の分担を決めたからだった。