Telnetオプションネゴシエーション
Telnetの中に収められた小さなプロトコル。クライアントとサーバーが互いの対応機能を、1バイトずつ確認し合う。
仕様はRFC 854と855で、どちらも1983年のものである。バイト値255のIAC(Interpret As Command)が、後続がテキストではなくコマンドであることを示す。続くWILL、WONT、DO、DONTとオプション番号の組み合わせで意味が決まる。IAC DO 31は「ウィンドウサイズを教えて」(NAWS)、IAC WILL 1は「サーバーがエコーを担当する」の意味だ。長いペイロードはSBとSEの間で送られる。
この設計には有名な落とし穴がある。データ中の255そのものは2つ重ねないとコマンドと解釈されてしまう。そのため、生のTCPでポート23に接続するツールはセッションの冒頭で文字化けを見ることになる。MUDの世界は1990年代にこの仕組みを再発見し、今も圧縮やクライアントデータのやり取りに使っている。