升騰終端telnet模塊1天-相關協(xié)議介紹_第1頁
升騰終端telnet模塊1天-相關協(xié)議介紹_第2頁
升騰終端telnet模塊1天-相關協(xié)議介紹_第3頁
升騰終端telnet模塊1天-相關協(xié)議介紹_第4頁
升騰終端telnet模塊1天-相關協(xié)議介紹_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

net協(xié)議Telnet是標準的提供登錄功能的應用,幾乎每個TCP/IP的實現(xiàn)都提供這個功能。它能夠運行在不同操作系統(tǒng)的主機之間。Telnet通過客戶進服務器進程之間的選 登錄采用客戶-服務器模式。下圖是一個Telnet信息的傳輸是通過TCP連接,連接的任何返回信息都輸出到終端上。Telnet服務器進程經常要和一種叫做“偽終端設備”(pseudo-terminaldevice)打交道,至少在Unix系統(tǒng)下是這樣的。這就使得對于登錄外殼(shell)進程來講,它是被Telnet服務器程序中最的方面之一。紹Telnet是如何處理這個問題的。注意在上圖中,我們用虛線框把終端驅動進偽終端驅動進程框了起來。在TCP/IP實現(xiàn)中,虛線框的內容一般是操作系統(tǒng)內核的一部分。Telnet客戶進服務器進程一般必須要有一個帳號。對于Telnet,如果比較一下它們客戶進服務器進程源代碼的數(shù)量,就可以知道這兩者的復雜程度。圖26-2顯示了伯克利不同版本的Telnet客戶進服務現(xiàn)在,不斷有新的Telnet選項被添加到Telnet中去,這就使得Telnet實現(xiàn)的源代碼數(shù)量終端上鍵入的信息)和服務器進程端發(fā)出的字節(jié)數(shù)的數(shù)量之比是120。這是因為我們在終 Telnet協(xié)議可以工作在任何主機(例如,任何操作系統(tǒng))或任何終端之間。RFC854[Pos和Reynolds1983a]定義了該協(xié)議的規(guī)范,其中還定義了一種通用字符終端叫做網絡虛擬終端NVT(NetworkVirtualTerminal)。NVT是虛擬設備,連接的雙方,即客么類型,操作系統(tǒng)必須能夠把NVT格式轉換為終端所能夠支持的格式。NVT是帶有鍵盤1、NVT術語NVTASCII代表7比特的ASCII字符集,網間網協(xié)議族都使用NVTASCII。每個7比特的字符都以8比特格式發(fā)送,最比特為0。行結束符以兩個字符CR(回車)和緊接著的它們是CR和緊接著的NUL(字節(jié)0),以r0表示。在下面的章節(jié)中可以看到,F(xiàn)TPSMTP,Finger和Whois協(xié)議都以NVTASCII來描述客戶命令和服務器的響應。Telnet通信的兩個方向都采用帶內信令方式。字節(jié)0xff(十進制的255)叫做IA(interpretascommand,意思是“作為命令來解釋”)。該字節(jié)后面的一個字節(jié)才是命令流是NVTASCII,它們都是7bit的格式,這就暗示著255這個數(shù)據字節(jié)不能在Telnet上傳輸。其實在Telnet中有一個二進制選項,在RFC856Postel和Reynolds1983b]中有定義,關于這點我們沒有討論,該選項允許數(shù)據以8bit進行傳輸)。圖268列出了所有的Telnet命令。由于這些命令中很多命令很少用到,所以對于一些重要令,如果在下雖然我們可以認為Telnet連接的雙方都是NVT,但是實際上Telnet連接雙方首先進行交WILLenable選項DOWONT:發(fā)送方本身想選項DON’T:發(fā)送方想讓接收端去選項由于Telnet規(guī)則規(guī)定,對于激活選項請求(如1和2),同意或者不同意。而對于使選協(xié)商需要3個字節(jié):一個IAC字節(jié),接著一個字節(jié)是WILL,DO,WONT和DONT這四者之dNumberRFC文檔中指明選項字節(jié)的值,并且一些相關的RFC文檔描述了這些選項。下圖Telnet的選項協(xié)商機制和Telnet協(xié)議的大部分內容一樣,是對稱的。連接的雙方都可以有些選項不是僅僅用“激活”或“”戶進程必須發(fā)送用一個ASCII,子選項協(xié)商機制。在RFC1091[okken1989]中定義了如何表示終端類型這樣的子選項協(xié)商機制。首先連接的某一方(通常是客戶進程)發(fā)送3個字節(jié)的字符序列來請求激活該選項。<IAC,WILL,這里的24(十進制)是終端類型選項的ID號。如果收端(通常是服務器進程)同意,那么<IAC,DO,<IAC,SB,24,1,IAC,該字符串詢問客戶進程的終端類型。其中SB是子選項協(xié)商的起始命令標志。下一個字節(jié)的“24”代表這是終端類型選項的子(通常SB后面的選項值就是子選項所要提交的)。下一個字節(jié)的“1”表示“發(fā)送你的終端類型”。子選項協(xié)商的結束命令標志也是IAC,就像SB是起始命令標志一樣。如果終端類型是ibmpc,客戶進程的響應命令將是:<IAC,SB,24,0‘I’,‘B’,‘M’,‘P’,‘C’,IAC,端類型的數(shù)值定義,但是最起碼在Unix系統(tǒng)之間,終端類型可以用任何對方可理解的數(shù)據進行表示。只要這些數(shù)據在termcap或terminfo數(shù)據庫中有定義)。在Telnet子選項對于大多數(shù)Telnet的服務器進客戶進程,共有4種操作方式這是Telnet的默認方式,但現(xiàn)在卻很少使用。NVT默認是一個半雙工設備,在接收用戶向是從NVT鍵盤到NVT,所以客戶進程到服務器進程只能發(fā)送整行的數(shù)據。雖然終端功能。RFC857[Pos 和Reynolds1983c]定義了ECHO選項,RFC858[Pos Reynolds1983d]定義了SUPPRESSGOAHEAD(抑制繼續(xù)進行)選項。如果聯(lián)合使用這兩個選項,就可以支持下面將討論的方式:帶回顯的一次一個字符的方式。此,但目前大多數(shù)Telnet實現(xiàn)都把這種方式作為默認方式。看到,如果要進入這種方式,只要激活服務器進程的SUPPRESSGOAHEAD選項即可。這可以通過由客戶進程發(fā)務器進程通常還會跟著發(fā)送WILLECHO,以使回顯功能有效。該方式通常叫做準行方式(kludgelinemode),該方式的實現(xiàn)是遵照RFC858的。該RFCTelnet就我們用這個術語代表實行方式選項,這是在RFC1184[Borman1990]中定義的。這個選項也新的Telnet實現(xiàn)支持這種方式。圖26-11是不同的Telnet客戶進服務器進程之間默認的操作方式?!癱har”表示一次一個字符方式,“kludge”表示準行方式,“l(fā)inemode”表示如RFC1184定義的進服務器進程都是BSD/386或4.4BSD的時候才支持實行方式。當服務器進程的操Telnet以DataMark命令(即圖268中的DM)作為同步信號,該同步信號是以TCP緊急來。Telnet的雙方都可以發(fā)送該命令。當一端收到對方已經進入了緊急方式后,它將開始讀數(shù)據流,一邊讀一邊丟棄所讀的數(shù)據,直到讀到Telnet命令為止。緊急數(shù)據的最后一個字節(jié)就是DM字節(jié)。采用TCP緊急方式的原因就是:即使TCP數(shù)據流已經被TCP流量控制所終止,Telnet命令也可以在連接上傳輸。在下節(jié)中看到Telnet同步信和RloginTelnet客戶進程也可以使用戶直接和客戶進程進行交互,而不是被發(fā)送到服務器進程。通??蛻舻霓D義字符是Control_](control鍵和右中括號進程提供“help”命令,該命令將顯示所有可用令。在下節(jié)中看到客戶進程轉義的例子,以及此時可以輸入令。在這里介紹在三種不同的操作方式下Telnet選項協(xié)商的情況。這些方式包括:單字看到很多選項被服務器。為了看到服務器和客戶機之間選項協(xié)商的內容,激活客戶進程的一個選項來顯示所有的選項協(xié)商。同樣我們運行tcpdump來獲得數(shù)VD開頭的選項協(xié)商的每一步都進行了標注。關于每一步的解釋如下:客戶進程要按照在RFC1091[VanBokkelen1989]中的定義發(fā)送終端類型。這對Unix類型ILL。NAWS的意思是“協(xié)商窗口大小”,它在RFC1073Waitzman中有定義。如果服務LFLOW代表“本地流量控制”,這在RFC1371[Hedrick和Borman1992]中定義。客戶進器進程同意(實際上不同意,見13行),只要Control_S和Control_Q進程需要在客戶進服務器進程進行切換,客戶進程都要向服務器進程發(fā)送子選項(這類似于圖26-4中Rlogin的0x10和0x20命令)。正如在關于Rlogin的討論中我們所提到的那樣,由LINEMODE代表面所說的實行方式。所有終端字符的處理由Telnet客戶進程完(例如回格,刪除行等),然后整行發(fā)送給服務器進程。在本節(jié)后面,介紹一個例子。該選項同樣被服務器進程,如14行所示。ENVIRON選項允許客戶進程把環(huán)境變量發(fā)送給服務器進程,這在RFC1408Borman19務器進程該選項(Unix中的環(huán)境變量通常是大寫字母,緊跟一個等號,然后是一個環(huán)境變量:DISPLAY和PRINTER,前提是這兩個變量已經定義并且有效。TelneSTATUS選項(RFC859[Pos和Reynolds1983e]中定義)允許連接的一方詢問對方對Telnet選項目前狀態(tài)的理解。在這個例子中,客戶進程要求對方激活選項(DO)。如果服務器進程同意(實際上不同意,見16行),客戶進程就可以要求服務器進程以子選項的這是服務器進程的第一個響應。服務器進程同意激活終端類型選項(幾乎所有的Unix要等到服務器進程用子選項的形式詢問終端類型的時候才能夠發(fā)送(17行)。服務器進程同意抑制發(fā)送GOAHEAD命令服務器進程不同意客戶進程發(fā)送它的窗口大小服務器進程不同意客戶進程發(fā)送它的終端速率服務器進程不同意客戶進程激活行方式選項客戶進程把終端類型IBMPC3”以6換。這是目前大多數(shù)Unix的Telnet服務器進程判斷客戶進程是否運行42BSD或更新的BSD版本時的一個方法。如果客戶進程回送WILLECHO,就表明客戶進程運行的是老版本的4.2BSDTCP的緊急(在這種情況下就不能采用TCP緊急方式)22)客戶進程回送WONTECHO,表示它不是一臺4.2BSD主機。)這是客戶進程發(fā)起的選項協(xié)商。該報文段顯示多個Telnet選項可以打在一個TCP段中發(fā)送。報文段3是圖26-12中的第9行,即DOTERMINALTYPE命令。報文段5包含下面的8個選項協(xié)商中服務器進程的響應,即圖26-12中的10~17行。該報文段的長度是27字節(jié),因為10~16行是常規(guī)選項,每個占3個字節(jié),而17行的子選項部分占6個字節(jié)。報文段6包含12個字節(jié),和18行對應,這是客戶發(fā)送它的終端類型的子選項。報文段8(53個字節(jié)包含兩個Telnet命令和47字節(jié)的輸出數(shù)據。前面的兩個服務器進程發(fā)送Telnet命令占6字節(jié),:WILLECHO和DOECHO(19和21行)。后47個字節(jié)的數(shù)據是:\r\n\r\nUNIX(r)SystemVRelease4.0(svr4)前面4rn”在Telnet命令可以在一個數(shù)據段中傳輸。Telnet服務器進客戶進程必須掃描接收到的每個字符,尋找IAC字節(jié)并執(zhí)行它后續(xù)令。報文段920和22行。23行是報文段10的響應,也是服的過程中還可以進行選項協(xié)商,我們在該例子中就不多介紹了。報文段12是服務器進程發(fā)送的提示符“l(fā)ogin:”。報文段14是用戶輸入的登錄用戶名的第一個字符,它的回顯在報文段15中。這和我們在192節(jié)中介紹的Rlogin交互類似:客戶進程每次發(fā)送一個服務器進程完成回顯工作。圖26-12中的選項協(xié)商由客戶進程初始化的,但是在本書中我回顯(echo)服務器等情況。當然我們介紹這些的目的是為了描述TCP的各種特性。但考這是因為在Unix系統(tǒng)中,除非使用標準的Telnet端23,否則客戶進程不進行選項協(xié)商。這個特性使得Telnet客戶進程可以使用標準的NVT同其他一些非Telnet服務器進程交換數(shù)據。我們已經在日間服務器、回顯服務器和丟棄(discard服務器中使用了這個特為了描述Telnet的行方式選項協(xié)商過程,我們在主機bsdi運行客戶進程,服務器是位于vangogh.vs.berkeleyedu節(jié)點運行4.4BSD操作系統(tǒng)的一臺主機。BSD386和44BSD都支持這個選項。我們不詳細討論所有的報文、選項和對于BSD386希望協(xié)商的選項例如:窗口大小、本地流量控制、狀態(tài)、環(huán)境變量和終端速率等,4.4BSD服務器進程都支持。44BSD服務器進程將協(xié)商一個BSD386客戶進程不支持的新選項:鑒別(為避免以和上個例子一樣,客戶進程發(fā)送WILLLINEMODE選項,由于服務器進程支持該選項,所以服務器進程發(fā)送DOLINEMODE。此時客戶進程以子選項形式給服務器進程發(fā)送16個器進程還要求客戶進程把所有中斷鍵和信號鍵轉換為相應的TelnetControl_C,我們可以按Control_C來中斷服務器端的某個進程??蛻暨M程必須把Control_C轉換為Telnet的IP命令(<IAC,IP>)傳輸給服務器進程。當用戶輸令時情況也有所不同。在Rlogin和一次一字符方式的Telnet中,都是由服務器進程發(fā)送WILLECHO客戶進程回送DOECHO服務器進程向客戶進程發(fā)送字符串Password:服務器進程發(fā)送WONTECHO客戶進程回送DONTECHO。然后繼續(xù)由客戶進程負責回顯。一旦登錄完成,客戶進程客戶進服務器進程之間的數(shù)據交互數(shù)量,而且對于用戶的_擊鍵(也就是回顯和編輯)Vangogh%date(去掉了業(yè)務種類信息和窗口通告信息)。 把它和在Rlogin中輸入同樣命令(圖192)時的情況進行一下比較。我們看到在Telnet行方式下只需要2個報文段(一個包含數(shù)據,另一個用于ACK,連同IP和TCP首部共86字節(jié)),而在Rlogin中要發(fā)送15個報文段(5個有鍵入的數(shù)據,5個有回顯的數(shù)據,5個是ACK,共611字節(jié))??梢姽?jié)省的數(shù)據量是非常可觀的。如果在服務器端運行一個需Telnet服務器進程被通告需要客戶響應以DOECHOWONTECHO命令,同時發(fā)送行方式子選項,告訴客戶恢復進入行方式。客戶響應DONTECHO來講,例如編輯器,回顯必須失效而單個字符方式必須有效。圖26-15概括了Rlogin和Telnet不同方式之間的差異。一次一行方式(準行方式從圖26-11可以看出,如果客戶不支持行方式,那么較新的服務器支持行方式選項,它也BSD386服務器進程如何協(xié)商當客戶進程不同意服務器進程激活行方式的請求時,服務器進程發(fā)送DOTIMINGMARK選項。RFC860[Pos和Reynolds1983f]定義了這個Telnet選項。它的作用是讓收發(fā)雙客戶響應WILLTIMINGMARK兩個選項。我們面已經強調:單個字符方式下是假定SUPPRESSGOAHEAD和ECHO選項同時有效的,所以兩個選項就進入了準行方式。服務器發(fā)送login提示符,然后用戶鍵入用戶名。用戶名是以整行的方式發(fā)送給服務器發(fā)送Password提示符和WILLECHO命令。這將使客戶進程的回顯失幕上。客戶響應DOECHO命令。我們鍵令??蛻粢哉蟹绞桨l(fā)送到服務器服務器發(fā)送WONTECHO命令,使得客戶重新激活回顯功能,客戶響應DONTECHO。從在圖2611char”的記錄都支持準行方式,只不過如果在服務器端運行如vi編輯器這樣的應用程序,同樣會有行方式下遇到的問題。當要運服務器進程向客戶進程發(fā)送WILLSUPPRESSGOAHEAD和WILLECHO,這將使客戶進程當應用程序結束并改變其偽終端方式時,服務器進程發(fā)送WONTSUPPRESSGOAHEAD和WONTECHO命令,使得客戶進程返回準行方式??蛻暨M程回送DONTSUPPRESSGOAHEAD和DONTECHO命令,告訴服務器進程它圖2616概括了單個字符方式及準行方式中不同的SUPPRESSGOAHEAD和ECHO選項圖26-16準行方式下net選項的設看一下當用戶鍵入中斷鍵時Telnet將發(fā)生什么情況。假定在客戶主機bsdi和服務器cangoghcsberkeleyedu之間建立了一個Telnet會話。圖2617顯示了當用戶鍵入中斷鍵后的時間系列(去掉了窗口通告和服務類型)。報文段1中顯示的是中斷鍵(通常是Control_C或DELETE)已經轉換為Telnet的IP(中斷)<IACIP>。下面的3個字節(jié):<IACDOTM>,組成了Telnet的DOTIMINGMARK選項。這個標志由客戶進程發(fā)送,必須使用WILL或WONT響應。所有在響應前收1沒有采用TCP緊急方式。Hos

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論