雖然我們可以認為Telnet連接的雙方都是NVT,但是實際上Telnet連接雙方首先進行交互的信息是選項協商數據。選項協商是對稱的,也就是說任何一方都可以主動發送選項協商請求給對方。
對于任何給定的選項,連接的任何一方都可以發送下面4種請求的任意一個請求。
1)WILL:發送方本身將激活(enable)選項。
2)DO:發送方想叫接收端激活選項。
3)WONT:發送方本身想禁止選項。
4)DON’T:發送方想讓接收端去禁止選項
由于Telnet規則規定,對于激活選項請求(如1和2),有權同意或者不同意。而對于使選項失效請求(如3和4),必須同意。這樣,4種請求就會組合出6種情況,如圖26-9所示。選項協商需要3個字節:一個IAC字節,接著一個字節是WILL,DO,WONT和DONT這四者之一,最后一個ID字節指明激活或禁止選項。
選項標識(十進制)名稱
發送方接收方 描述
1.WILL→←DO 發送方想激活選項接收方說同意
2.WILL→←DONT 發送方想激活選項接收方說不同意
3.DO→←WILL 發送方想讓接收方激活選項接收方說同意
4.DO→ 發送方想讓接收方激活選項
WONT← 接收方說不同意
5.WONT→←DONT 發送方想禁止選項接收方必須說同意
6.DONT→←WONT 發送方想讓接收方禁止選項接收方必須說同意
RFC
現在,有40多個選項是可以協商的。Assigned
1
回顯
857
NumberRFC文檔中指明選項字節的值,并且
3
抑制繼續進行
858
一些相關的RFC文檔描述了這些選項。圖26
5
狀態
859
6
定時標記
86024
10顯示了在本章中會出現的選項代碼。
終端類型
1091
Telnet的選項協商機制和Telnet協議的大部
31
窗口大小
1073
分內容一樣,是對稱的。連接的雙方都可以發
32
終端速率
1079
起選項協商請求。但我們知道,遠程登錄不是
33
遠程流量控制
137234
行方式
1184
對稱的應用。客戶進程完成某些任務,而服務
36
環境變量
1408
有些選項不是僅僅用“激活”或“禁止”就能夠表達的。指定終端類型就是一個例子,客戶進程必須發送用一個A S C I I字符串來表示終端類型。為了處理這種選項,我們必須定義子選項協商機制。
在R F C 1 0 9 1 [ VanBokkelen 1989] 中定義了如何表示終端類型這樣的子選項協商機制。首先連接的某一方(通常是客戶進程)發送3個字節的字符序列來請求激活該選項。
然后服務器進程再發送如下的字符串:
該字符串詢問客戶進程的終端類型。其中S B是子選項協商的起始命令標志。下一個字節的“2 4”代表這是終端類型選項的子選項(通常S B后面的選項值就是子選項所要提交的內容)。下一個字節的“1”表示“發送你的終端類型”。子選項協商的結束命令標志也是I A C,就像S B是起始命令標志一樣。假如終端類型是i b m p c,客戶進程的響應命令將是:
<IAC, SB, 24, 0‘I’, ‘B’, ‘M’, ‘P’, ‘C’, IAC, SE>
第4個字節“0”代表“我的終端類型是”(在Assigned Numbers RFC文檔中有正式的關于終端類型的數值定義,但是最起碼在U n i x系統之間,終端類型可以用任何對方可理解的數據進行表示。只要這些數據在t e r m c a p或t e r m i n f o數據庫中有定義)。在Te l n e t 子選項協商過程中,終端類型用大寫表示,當服務器收到該字符串后會自動轉換為小寫字符。
新聞熱點
疑難解答