1.半雙工
這是Telnet的預設,但現在卻很少使用。NVT預設是一個半雙工裝置,在接收使用者輸入之前,它必須從伺服器處理序獲得GOAHEAD(GA)命令。使用者的輸入在本機回應,方向是從NVT鍵盤到NVT印表機,所以客戶進程到伺服器處理序只能發送整行的資料。
雖然該方式適用於所有類型的終端裝置,但是它不能充分發揮目前大量使用的支援全雙工系統通訊的終端功能。RFC857[Postel和Reynolds1983c]定義了ECHO選項,RFC858[Postel和Reynolds1983d]定義了SUPPRESSGOAHEAD(抑制繼續進行)選項。如果聯合使用這兩個選項,就可以支援下面將討論的方式:帶遠程回顯的一次一個字元的方式。
2.一次一個字元方式
和Rlogin工作方式類似。我們所鍵入的每個字元都單獨發送到伺服器處理序。伺服器處理序回顯大多數的字元,除非伺服器處理序端的應用程式去掉了回顯功能。該方式的缺點也是顯而易見的。當網路速度很慢,而且網路流量比較大的時候,那麼回顯的速度也會很慢。雖然如此,但目前大多數Telnet實現都把這種方式作為預設。
我們將看到,如果要進入這種方式,只要啟用伺服器處理序的SUPPRESSGOAHEAD選項即可。這可以通過由客戶進程發送DOSUPPRESSGOAHEAD(請求啟用伺服器處理序的選項)請求完成,也可以通過伺服器處理序給客戶進程發送WILLSUPPRESSGOAHEAD(伺服器處理序啟用選項)請求來完成。伺服器處理序通常還會跟著發送WILLECHO,以使回顯功能有效。
3.一次一行方式
該方式通常叫做准行方式(kludgelinemode),該方式的實現是遵照RFC858的。該RFC規定:如果要實現帶遠程回顯的一次一個字元方式,ECHO選項和SUPPRESSGOAHEAD選項必須同時有效。准行方式採用這種方式來表示當兩個選項的其中之一無效時,Telnet就是工作在一次一行方式。可以看到如何協商進入該方式,並且當程式需要接收每個擊鍵時如何使該方式失效。
4.行方式
我們用這個術語代表實行方式選項,這是在RFC1184[Borman1990]中定義的。這個選項也是通過客戶進程和伺服器處理序進行協商而確定的,它糾正了准行方式的所有缺陷。目前比較新的Telnet實現支援這種方式。
是不同的Telnet客戶進程和伺服器處理序之間預設的操作方式。“char”表示一次一個字元方式,“kludge”表示准行方式,“linemode”表示如RFC1184定義的實行方式。
不同的Telnet客戶進程和伺服器處理序之間預設的操作方式
可以看出,只有當客戶進程和伺服器處理序都是BSD/386或4.4BSD的時候才支援實行方式。當伺服器處理序的作業系統是這兩者之一時,如果客戶進程不支援實行方式,才會協商進入准行方式。還可以看出,其實任何類型的客戶進程和伺服器處理序都支援准行方式,但是一般都不把它作為預設,除非伺服器處理序指定。