Telnet協議可以工作在任何主機(例如,任何操作系統)或任何終端之間。RFC854[Postel和Reynolds1983a]定義了該協議的規范,其中還定義了一種通用字符終端叫做網絡虛擬終端NVT(NetworkVirtualTerminal)。NVT是虛擬設備,連接的雙方,即客戶機和服務器,都必須把它們的物理終端和NVT進行相互轉換。也就是說,不管客戶進程終端是什么類型,操作系統必須把它轉換為NVT格式。同時,不管服務器進程的終端是什么類型,操作系統必須能夠把NVT格式轉換為終端所能夠支持的格式。
NVT是帶有鍵盤和打印機的字符設備。用戶擊鍵產生的數據被發送到服務器進程,服務器進程回送的響應則輸出到打印機上。默認情況下,用戶擊鍵產生的數據是發送到打印機上的,但是我們可以看到這個選項是可以改變的。
NVTASCII
術語NVTASCII代表7比特的ASCII字符集,網間網協議族都使用NVTASCII。每個7比特的字符都以8比特格式發送,最高位比特為0。行結束符以兩個字符CR(回車)和緊接著的LF(換行)這樣的序列表示。以/r/n來表示。單獨的一個CR也是以兩個字符序列來表示,它們是CR和緊接著的NUL(字節0),以/r/0表示。
Telnet命令
Telnet通信的兩個方向都采用帶內信令方式。字節0xff(十進制的255)叫做IAC(interPRetascommand,意思是“作為命令來解釋”)。該字節后面的一個字節才是命令字節。假如要發送數據255,就必須發送兩個連續的字節255(在前面一節中我們講到數據流是NVTASCII,它們都是7bit的格式,這就暗示著255這個數據字節不能在Telnet上傳輸。其實在Telnet中有一個二進制選項,在RFC856[Postel和Reynolds1983b]中有定義,關于這點我們沒有討論,該選項答應數據以8bit進行傳輸)。圖26-8列出了所有的Telnet命令。由于這些命令中很多命令很少用到,所以對于一些重要的命令,假如在下面章節的例子或敘述中碰到,我們再做解釋。
名稱代碼(十進制) 描述E O F 2 3 6 文件結束符S U S P 2 3 7 掛起當前進程(作業控制)A B O RT 2 3 8 異常中止進程E O R 2 3 9 記錄結束符S E 2 4 0 子選項結束N O P 2 4 1 無操作D M 2 4 2 數據標記B R K 2 4 3 中斷I P 2 4 4 中斷進程A O 2 4 5 異常中止輸出AY T 2 4 6 對方是否還在運行?E C 2 4 7 轉義字符E L 2 4 8 刪除行G A 2 4 9 繼續進行S B 2 5 0 子選項開始W I L L 2 5 1 選項協商(圖2 6 - 9) W O N T 2 5 2 選項協商D O 2 5 3 選項協商D O N T 2 5 4 選項協商I A C 2 5 5 數據字節2 5 5
新聞熱點
疑難解答