定義
用戶計算機與遠程伺服器所使用的計算機和作業系統各不相同,如果不考慮系統間的差異,那么在本地發出的字元及命令,傳送到遠程主機並被遠程系統解釋後可能會不準確或出現錯誤。例如:一些作業系統需要每行文本用ASCII回車控制符(CR)結束,而另一些系統則需要使用ASCII換行符(LF),還有的系統需要用兩個字元的回車換行(CR-LF)序列。再比如,多數作業系統為用戶提供了一個中止程式運行的快捷鍵,但在不同的系統中這個快捷鍵是不同的(一些系統使用Ctrl+C,而另一些系統使用Escape)。
為支持異構性(在不同平台和系統中的互操作性),TELNET協定定義了網路虛擬終端(NVT,network virtual terminal ),即數據和命令序列在Internet上傳輸的標準表示方式。
網路虛擬終端是客戶端一伺服器模式的一種實現,把連線的每一端都作為虛擬終端(邏輯I/C設備)對待,邏輯輸入設備(或用戶的鍵盤)產生待傳送的數據,邏輯輸出設備(或顯示器)回響接收的數據和遠程系統的輸出。任一虛擬終端產生的指令,都會被翻譯成相應的物理設備指令。
簡單地說,為了使遠程主機能夠正確識別用戶輸入的信息,而用戶螢幕上也能正確顯示遠程主機輸出的信息,網路虛擬終端格式充當了橋粱的作用。
數據表示
網路虛擬終端使用7位標準ASCII碼來表示數據,每個7位的字元都以8位(一個位元組)的格式傳送,最高位固定為1。7位標準ASCII字元集包括95個可列印字元(編碼32~126)和33個控制碼(編碼0—31和127),當用戶從本地鍵入普通字元時,網路虛擬終端將按其原始含義傳送,當用戶鍵人組合鍵時,網路虛擬終端將它轉化為特殊的ASCII字元在網路上傳送。下表列出了網路虛擬終端中定義的控制字元。
ASCII控制代碼 | 編號 | 含義 |
NUL | 0 | 無操作 |
BEL | 7 | 產生一個可以看到或可以聽到的信號 |
BS | 8 | 向左移動一個字元的位置 |
HT | 9 | 向右移動到下一個水平制表符停止的位置 |
LF | 10 | 移動到下一行,水平位置不變 |
VT | 11 | 向下移動到下一個垂直制表符停止的位置 |
FF | 12 | 移動到下一頁的頂端 |
CR | 13 | 移動到當前行最左的位置 |
其他控制碼 | - | 無操作 |
除了表中所列控制字元外,網路虛擬終端把兩個字元的序列CR—LF定義為標準行結束符。當用戶按下相當於行結束的鍵時,TELNET客戶端必須把它映射為CR-LF才能傳輸,而TELNET服各端則要把CR-LF翻譯為遠程機器上相應的行結束符。
工作原理
在建立Telnet連線的客戶/伺服器系統兩端,信息的傳遞各自採用本地的格式。客戶端程式將用戶的輸入轉化為統一標準的網路虛擬終端格式,再經網路以TCP數據報的方式傳送到遠程伺服器,伺服器程式將網路虛擬終端格式的信息轉化為本地伺服器作業系統格式。
伺服器按照用戶請求提供相應服務,最後也以同樣的過程將執行結果返回給客戶程式,客戶程式將其轉化為客戶端格式,並顯示在用戶螢幕之上。
經過網路終端網路虛擬終端的禁止作用,可以實現異種作業系統問的互操作性,它是在網路的高層再次實現了網路的一致性。與網路虛擬終端相對應,IP協定則在網路的下層實現了物理網路的一致性。