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
*1:http://www.ietf.org/rfc/rfc1091.txt
*2:http://www.ietf.org/rfc/rfc1079.txt
*3:http://www.ietf.org/rfc/rfc1096.txt
*4:http://www.ietf.org/rfc/rfc1572.txt
*5:http://www.ietf.org/rfc/rfc858.txt
*6:http://www.ietf.org/rfc/rfc857.txt
*7:http://www.ietf.org/rfc/rfc1073.txt