1. 程式人生 > >Telnet協議(1)

Telnet協議(1)

Telnet網路的使用

概述:在internet的初期,遠端訪問計算機是一個非常麻煩的過程,需要修改提出請求的計算機的作業系統。同樣,因為網路可能存在的異構性,不能確保在一臺計算機上鍵入的內容可以不發生改變的在其他的計算機上被翻譯出來。例如,在本地計算機上同時按下Ctrl和D鍵,代表關閉一個會話。但是在遠端系統中這一個作業系統就不能結束正在執行的會話。

系統程式設計師逐步的成功地開發出了一種工具,可以允許使用者與遠端系統之間進行互動,就好像是在本地系統中一樣。這一個工具稱為遠端通訊網路(Telnet)。Telnet替換了擊鍵動作的本地解釋。也就是說,Telnet提供服務允許使用者登陸遠端計算機並執行命令,就像是在使用遠端計算機的控制檯。

實際上,Telnet作為一個協議的出現早於TCP/IP協議簇的其他的應用層協議。Telnet協議是最初的協議,TCP/IP協議簇隨後才逐漸建立起來。Telnet服務是面向連線的,因此是基於TCP協議的。TCP埠23支援Telnet服務。Telnet基於三個原理:網路虛擬終端(NVT).協商原理.終端和程序的對稱觀。

  1. 網路虛擬終端(NVT).為了支援異構性(在不同的平臺和系統中的互操作性)Telnet使用了NVT。NVT是資料和命令順序的標準的表示方法。NVT是客戶/伺服器體系結構中的一種實現,把連線的每一端都作為虛擬終端進行對待(邏輯輸入輸出裝置)。邏輯輸入裝置(如使用者的鍵盤)產生向外的資料。邏輯輸出裝置(如監視器)響應接收的資料和遠端系統的輸出。無論哪個虛擬終端產生指令,都被翻譯成相應的物理裝置指令。換句話說,客戶端的Telnet程式將伺服器發出的NVT程式碼對映為可以被客戶端理解的程式碼。
  2. 協商原理:一些系統可能提供NVT所包括的服務以外的服務,使用最少數量服務的系統可能無法正確地與另一端進行通訊。因而,兩臺計算機進行Telnet通訊時,通訊和終端引數是在連線過程中確定的。有任何一方無法處理的服務或程序將被忽略。這就減少了雙方作業系統對交換資訊的解釋需求。例如,使用者可能協商回送(echo)選項並指定是在本地還是在遠端系統中執行回送。
  3. 終端和程序的對稱觀:著意味著協商語法的對稱性,既允許使用者也允許伺服器請求指定的選項。這種終端和程序的對稱觀優化了由另一端提供的服務。Telnet不僅允許終端與遠端應用互動,還允許程序——程序和終端——終端的互動。

使用者使用Telnet執行以下操作

  1. 連線線上資料庫,以便訪問資訊。
  2. 連線線上知識庫,例如圖書館,以便於查詢資訊。
  3. 連線遠端作業系統,以便於使用應用程式,例如電子郵件等
  4. 連線交換機。路由器等網路裝置以便實現遠端配置與維護。

Telnet命令

在客戶程序和伺服器程序之間流動的資訊必須遵從Telnet報文格式,或稱之為命令結構。Telnet協議資料單元的格式

 

 

第一個位元組是“解釋或命令”位元組(IAC),它是Telnet中的保留編碼。該位元組也是轉義字元,因為它被接收端用來檢測進入的流量不是資料而是Telnet命令。

第二個位元組是命令編碼。該位元組的值跟IAC位元組結合在一起描述命令的型別。

第三個位元組稱為選項協商編碼,用來定義在會話期間使用的若干選項。

正如表10-5所示,由NVT鍵盤上概念性的鍵產生的每一個訊號都有對應的命令。例如,要請求伺服器中斷正在執行的程式,客戶程序必須傳送由兩個八位組構成的序列,即255後隨244.其他的一些命令允許客戶程序和伺服器程序協商它們將要使用的選項和同步通訊。

在Telnet中,選項是可以協商的,這就使得客戶程序和伺服器程序可以重新配置它們的連線。

Telnet選項的範圍是廣泛的:一些選項主要就是擴充套件選項功能,另外一些選項就是處理細節問題。例如:早先的Telnet協議是為半雙工環境設計的,在對方能夠再發送資料之前,必須給它發一個“繼續”訊號。Telnet的選項之一就是控制Telnet是工作在半雙工環境還是工作在全雙工環境。另外有一個選項允許在遠方機器上的伺服器程序確定使用者的終端型別。終端型別對於產生游標定位的軟體(例如,在遠方機器上執行的全螢幕編輯程式)是很重要的。表10—6列出了普遍實現的若干個Telnet選項。

 

Telnet實用程式

Telnet既是協議也是實用程式。Telnet程式使用Telnet協議為使用者提供遠端使用遠端主機的服務。Telnet實用程式以互動方式工作,它使使用者能夠在一個終端會話中與遠端計算機進行通訊。

每當使用者建立起跟遠端計算機的Telnet連線,並在遠端計算機上註冊上機的時候,Telnet都以輸入方式操作。在輸入方式下,鍵入的所有的字元都被送到遠端計算機,並在使用者的終端螢幕上顯示所有由遠端計算機傳送的資料。其中的一個例外就是當鍵入轉義字元^),則以命令方式設定Telnet。

與輸入方式不同的另外一種方式就是命令方式。在命令方式下鍵入的資料由Telnet解釋以控制Telnet的操作。命令方式在Telnet還沒有連線到遠端主機時是活動的。

  1. Telnet的呼叫方式:一種是帶引數(主機名或者IP地址)的直接的輸入方式,另一種就是不帶引數的命令方式

如果沒有連線到遠端計算機,計算機處於命令方式;當在輸入方式下鍵入轉義字元^)時Telnet也處於命令方式。如果在命令方式下使用 open命令建立起到遠端計算機的Telnet連線,則Telnet進入輸入方式。

  1. 使用Telnet命令

如果通過鍵入轉義字元從輸入方式轉化為命令方式,那麼Telnet在處理完由轉義字元引入的命令之後仍然回到輸入方式。在輸入方式下,使用者隨時可以採用轉義字元進入到Telnet命令方式。Telnet等待使用者輸入命令,並執行命令,然後自動返回原先的輸入方式。在命令方式的提示符下使用者輸入的Telnet命令僅由本地客戶機執行,而與伺服器無關。