Telnet②実験

Telnet関連のRFCを読もうとしたが予想外に多くめんどうなので、とりあえずサーバに接続してみることにした。

E:\Temp>ttest
RECV: ff fd 18 ff fd 20 ff fd 23 ff fd 27

クライアントから何も送らなくてもサーバからオプション交渉データが送られてきた。内容はこんなん。

ff fd 18 IAC DO TERMINAL-TYPE
ff fd 20 IAC DO TERMINAL-SPEED
ff fd 23 IAC DO X-DISPLAY-LOCATION
ff fd 27 IAC DO NEW-ENVIRONMENT-OPTION
TERMINAL-TYPE RFC1091*1

端末タイプ。VT100とかよくあるね。とりあえず拒否っとこう。

ff fc 18 IAC WONT TERMINAL-TYPE
ff fc 18
SEND: ff
SEND: fc
SEND: 18
TERMINAL-SPEED RFC1079*2

シリアルポート接続の時の速度かな?拒否でいいかなぁ。

ff fc 20 IAC WONT TERMINAL-SPEED
ff fc 20
SEND: ff
SEND: fc
SEND: 20
X-DISPLAY-LOCATION RFC1096*3

Xサーバのディスプレイ指定。当然拒否。

ff fc 20 IAC WONT X-DISPLAY-LOCATION
ff fc 23
SEND: ff
SEND: fc
SEND: 23
NEW-ENVIRONMENT-OPTION RFC1572*4

環境変数の設定かな?拒否。

ff fc 27 IAC WONT NEW-ENVIRONMENT-OPTION
ff fc 27
SEND: ff
SEND: fc
SEND: 27
RECV: ff fb 03 ff fd 01 ff fd 1f ff fb 05 ff fd 21

すべてに応答したためかまたサーバから送られてきた。内容はこう。

ff fb 03 IAC WILL SUPPRESS-GO-AHEAD
ff fd 01 IAC DO ECHO
ff fd 1f IAC DO NAWS
ff fb 05 IAC WILL STATUS
ff fd 21 IAC WILL TOGGLE-FLOW-CONTROL
SUPPRESS-GO-AHEAD RFC858*5

GO AHEAD抑止。半二重モードで使われるGO AHEADを抑止→全二重モードで通信しよう、ってことだろう。これはおkしとこう。

ff fd 03 IAC DO SUPPRESS-GO-AHEAD
ff fd 03
SEND: ff
SEND: fd
SEND: 03
ECHO RFC857*6

クライアントが送信したデータをサーバが返してくれる。これもおk。
(↑はWILLの時だった。ここはWONTで返すべき。 2006/09/11追記)

ff fb 01 IAC WILL ECHO
ff fb 01
SEND: ff
SEND: fb
SEND: 01
NAWS RFC1073*7
STATUS RFC859*8
TOGGLE-FLOW-CONTROL RFC1372*9