要約

  • 1983年12月の RFC 884 は、Telnetの TERMINAL-TYPE をオプション番号24として定めた。DO と WILL で交換を認め、SEND で尋ね、IS で端末名を返す。
  • 端末は詳しい名前から一般的な名前へ順に答えられた。最後の名前を繰り返せば候補の終わり。1985年の RFC 930 は、返答が質問を追い越す混乱を避けるため、IS を SEND への返事に限定した。

端末には個性がある。ある機種ではカーソルを右へ動かす命令が、別の機種ではただの文字列になる。紙に打ち出すテレタイプを相手に、色付きのメニューを描こうとすれば笑い話だ。遠くのホストはネットワーク越しに文字を受け取れても、机に載っている装置まで透視できない。凝った画面を出す前に、相手の名札を見せてもらう必要があった。

Telnet本体の仕様 は「ネットワーク仮想端末」という共通の出発点を用意していた。どんな実物も、まずはこの想像上の端末として会話を始められる。Marvin Solomon と Edward Wimmers が RFC 884 で加えたのは、その先の礼儀だ。カーソル操作や色を使いたいホストは、接続相手がどんな端末かを尋ねられる。

番号24の端末種別オプションは、初期状態では DON'T と WON'T。名前の交換は始まらない。ホストが DO を送り、相手が WILL を返すと、ようやく質問してよい状態になる。質問は IAC SB TERMINAL-TYPE SEND IAC SE、返事は IAC SB TERMINAL-TYPE IS IBM-3278-2 IAC SE という具合だ。SEND の副命令番号は1、IS は0。返される名前はNVT ASCII文字列で、大文字と小文字は同じものとして扱う。

仕様の候補一覧には、IBMのディスプレー、TOPS20で使われる端末、Unixの端末がずらりと並ぶ。DEC-VT100 も TELETYPE-33 もいる。同じネットワークでつながっても、表示装置としてはまるで別人だ。共通の文字列だけで十分な仕事もある。画面の特定位置を使う仕事には、機種を知る価値が生まれる。

名前そのものも一筋縄ではいかない。著者たちは IBM3278-2 と IBM-3278/2 のような表記揺れを挙げている。相手が名前を知らないときの専用の否定応答は用意されなかった。端末が詳しい名前と一般的な名前を持つなら、ホストからの二度目、三度目の SEND に合わせて順に答える。候補が尽きたら最後の名前をもう一度送る。同じ返事が二回続けば、ホストは質問をやめる。「ほかの呼び名は?」という問いに、これ以上ありませんと伝える仕組みである。

受け取った名前は、ホスト側の端末ドライバーやプログラムへ渡せる。理解できる機種なら、カーソルの移動や色など、仮想端末を超えた表示を選べる。BINARYオプションとの組み合わせも原文は想定した。相手に通じる名前が見つかりそうもなければ UNKNOWN と答える道もあった。名前を使って何を描くかはホストの仕事だ。

ただし1983年の会話には、少しせっかちな話し方が許されていた。DO と WILL が済むと、端末側は尋ねられる前に IS を送ってよい。著者たちは質問とぶつかっても、情報が二度届く程度と考えた。RFC 930 は1985年、この一点を改めた。先回りした返事と質問が行き違えば、次の IS が質問への答えなのか、別名の二枚目なのか分からなくなる。以後、返事は質問の後だけにした。

1989年の RFC 1091 は、複数の端末エミュレーションを切り替える仕組みまで広げた。1983年の文書が描いたのは、もっと小さな交渉だ。遠隔の計算機が画面の扱い方を知りたければ、まず名を聞く。通じなければ、別の名でもう一度紹介してもらう。機械同士にしては、なかなか丁寧である。