TCP/IP 協議之 Telnet

1、一種通用的C/S應用程序(TELNET 是 terminal network縮寫),讓用戶登陸到遠程計算機上運行那邊的程序,然後將結果回顯。

2、網絡虛擬終端(NVT):爲不同的系統統一了字符集。

(1)、字符集用兩種,一種當普通的數據,和ASCII嘛的0-127意義相同(就是以開頭一bit爲0)。
一種是遠程控制字符,開頭一bit爲1,比如IAC爲0xff,SE爲0xf0,SB爲0xfa等等。

(2)、嵌入指令,在TELNET中,命令數據是混在普通數據當中的,分開的標記就是命令指令之前有一個特殊字符IAC(0xff),意思是“解釋爲命令”。

(3)、選項與選項協商

a、選項,讓雙方提供相應的選項,比如0x01代表回顯,0x18代表終端類型。

b、協商,有如下的控制字符用於協商,WILL(0xfb),WONT(0xfc),DO(0xfd),DONT(0xfe)

選項協商過程如下:

WILL,WONT代表“將要提供,問對方是否同意”,對方只能用DO或DONT來回答(注意的是WONT的回答只能是DONT)

DO,DONT代表“要請求對方提供”,對方回答用WILL或WONT(對DONT的回答只能用WONT)

例子:

一端傳數據如下:(0xff 0xfd 0x01)IAC DO ECHO ,對方回答如下:(0xff 0xfb 0x01)IAC WILL ECHO

c、子選項的開始和結束:標記爲SB(0xfa)和SE(0xf0)

3、TELNET的過程:本地的輸入經終端驅動到TELNET程序,TELNET程序換成NVT字符集,再經過封裝發送到遠程機,遠程機經過TCP協議棧解析該包後,經TELNET程序入手把NVT字符集翻譯成本地命令,然後僞裝終端輸入傳給爲終端程序解析,把結果傳給要做的應用程序。

也就是說:命令和字符是由遠程機解釋的

但是有時要對本地程序進程控制,用轉義字符,比如中斷,如果按[^C]是傳給遠程的,如果要本地的程序中斷,要用[^]]

4、操作方式,有三種:默認方式,字符方式,和行方式;

默認方式是用戶按鍵後,客戶器進行回顯處理,當按完一行後,進行發送,但是要等待GA控制符(半雙工狀態),基本不用

字符方式:用戶每按一鍵,字符經傳輸到服務器處理,再回顯結果,浪費網絡

行方式:和默認方式不同的是,不用等GA控制符(全雙工方式),現在一般用這個。注意行結束符用CR LF("/r/n")表示。

所以現在的TELNET包中一般有0x22選項(IAC DO 0x22),(0x22是改變到行方式的選項)

5、安全問題,不大安全。

6、類似協議:SSH(Secure SHell),Rlogin等

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章