270 likes | 539 Views
TELNET PROTOCOL. 指導教授 梁德昭 報告學生 洪璟霖. ##Addition## Active User Service. 1. 提供 線上狀態名單資訊的服務程式, 可為下列傳輸模式來實作: TCP-based Active User Service => 以 TCP socket 實作的. UDP-based Active User Service => 以 UDP socket 實作的 服務程式. Active User Service. User List Syntax (format)
E N D
TELNET PROTOCOL 指導教授 梁德昭 報告學生 洪璟霖
##Addition##Active User Service 1. 提供線上狀態名單資訊的服務程式, 可為下列傳輸模式來實作: TCP-based Active User Service =>以TCPsocket實作的. UDP-based Active User Service =>以UDP socket實作的服務程式
Active User Service User List Syntax (format) 名單的輸出格式(STD24)RFC 866沒有 強制規定, 建議使用ASCII printable字元來顯示
Telnet協定 在我們常使用TELNET程式連BBS站 或是mail 主機, 其通訊過程不是單單只有一般“資料”的傳輸而且還有所謂的協商(negotiation)這些細節都在TELNET PROTOCOL中定義好了!! 現在就介紹一些基本觀念….
VT100 TERMINAL VT100 TERMINAL 終端機介紹 -- Terminal RS232 Link RS232 Link MainFrame 大型電腦
PC runing Telix Terminal Emulator(終端模擬) RS232 Link Terminal Server RS232 Link Internet DEC MainFrame 大型電腦 PC running TCP/IP software(TELNET)
Why Terminal Emulator? • 1.由於PC越來越普及, 價格也越來越便宜 • 為了也能使PC與大型主機作連線, 因此 • 模擬終端機的程式就因此而發展出來的! • 2.由於終端機因機種不同而有許多種不同的操作介面(通常是指Keyboard binding) • 而有分不同的終端機型態 如:DEC的VT100, VT220;IBM 3270與5250 • 為了能夠整合異質系統之間的溝通, 因此才有了終端機模擬程式 • 而不用因此為了與該主基連線而需購買該型之終端機, 減少 • 不必要的花費與麻煩
What About the TELNET? • TELNET程式可以說是走TCP/IP協定之上的Terminal Emulator • 由於傳統終端機模擬程式是架構在RS-232通訊上, 對於pc而言 • 僅能透過撥接的方式來控制遠端的系統或是有RS232之attachment的系統! • 相對於傳統終端機模擬程式,TELNET是在Internet(arpa-net)發展的產物.以TCP/IP為基礎, 用來與遠端提供telnet服務的程式
Why NVT? • 由於各系統特性不盡相同, 舉例來說: • 文字跳行的控制碼某些系統以CR為control code某些為LF • 而有些為CRLF • 各系統中斷按鍵不一:EX: ESC , CTRL+C • NVT為了解決上敘問題而發展出來, 統一一套通訊標準!
The NVT Definition (Network Virtual Terminal) • 資料傳輸以8位元為準 • DATA傳輸以ASCII 7bits一樣, 但高位元為command sequence • 使用ASCII字元表中95個可見碼 (A-Z a-z 0-9 與 標點浮號) • 使用ASCII 0-31與127作為控制碼用
NVT使用的控制碼 Name ASCII number Meaning --------------------------------- NULL (00) No Operation LF (10) Line Feed CR (13) Carriage Return Bell (07) A Beep sound BS (08) BackSpace HT (09) Horizontal Tab VT (11) Vertical Tab FF (12) Form Feed other xx No Operation
The NVT Concept Printer Printer INTERFACE INTERFACE Local Device Local Device NVT1 Network NVT2 Local Device Keyboard Local Device Keyboard PS:Printer can also be screen !!
Telnet Command 在client端登入server端時, 所看到的畫面 基本上是“資料”的傳輸. 不過還有另一種是Server端會詢問client端是用那種終端型態(vt100,vt200 or IBM 3270等),資料格式為7bits還是 8bits,這樣的需求上, client與server就要用Telnet Command來取得共識! 為了與“資料”傳輸作區分, TELNET協定以0xff (IAC) 為TELNET command的起頭, 換句話說, 當telnet client或server收到0xff時, 下一個 octect就是telnet command 而非一般資料, 並作適當的處理
Telnet Command定義 縮寫ASCII CODE IAC 0xff DONT 0xfe WONT 0xfd WILL 0xfc SB 0xfa GA 0xf9 EA 0xf8 EC 0xf7 AYT 0xf6 AO 0xf5 IP 0xf4 BRK 0xf3 SE 0xf0
實際上的例子 介紹Telnet與server之間的資料傳輸情況 如果client端在server下達ls -a指令時不小心把a打成s,於是他用了backspace鍵來修改最後按了 ENTER執行 • mail login: chinlin • Password: • TclOS 4.0 • Last login: Mon Nov 15 22:00:41 1999 on ttyp1 from b713pc60.im.tku.. • You have new mail. • mail:~$ ls -a 實際送出字串為: l s SP - s IAC EC a CR LF
TELNET Options • 在TELNET command中有個SB • (Subnegotation Begin)與SE(Subnegotiation End)的命令, 用來提供telnet協商用. • 透過問與答的方式來要求對方“設定”或“啟動”某些功能.
Telnet options list • CODE Name Function • 0 Transmit Binary 以8bit傳輸 • 1 Echo 回應所收的data • 3 Suppress GoAhead stop GA • 24 Terminal Type 詢問Term Type • 34 Line Mode Linemode傳輸
Example of Telnet Options • Server向telnet client取得終端型態之協商: • Server:IAC SB 0x18 IAC SE • Client:IAC SB 0x18 IS “VT110” IAC SE • client向server要求使用8 bit傳輸: • client:IAC SB WILL 0x00 IAC SE • 若同意 => server:IAC DO 0x00 • 反之 => server:IAC DON’T 0x00
STD 29 - TELNET SUPPRESS GO AHEAD Option 1.在半雙工通訊模式下, client/server傳送完指令後會送出GA指令到對方通知對方可以進行下一步動作. 但是一般來說, telnet 連線後就已處於全雙工傳輸狀態下,GA指令似忽是餘的, 因此多數client會要求server將SUPPRESS-GO-AHEAD啟動, 也就是把GA取消傳送!! 2. SUPPRESS GA常與ECHO options 搭配使用
Client Server STD 29 - TELNET SUPPRESS GO AHEAD Option 在GA模式下... 我好啦!換你啦! 資料或協商指令
Client Server STD 29 - TELNET SUPPRESS GO AHEAD Option 在SUPPRESS-GA模式下... SYMMETRIC 資料或協商指令 資料或協商指令
STD 28 - TELNET ECHO Option 1.要求將回應字元功能致能 2.client端某方以進入ECHO mode若又收到 IAC DO ECHO 可以 ex: client: IAC DO ECHO 要求Server端進入ECHO模式, 把所接收到 的字元一一送回到client端
STD 29 - Binary Transmission Option 1. 要求進入8 bit模式傳輸 2. 在此模式中,除了IAC IAC視為一個byte ASCII 255外, 接收端須將非IAC為前頭的“資料“以8bits方式處理,. 3. 接收端依然處理IAC + 定義的TELNET COMMAND 之組合的字串 4. 接收段若收到IAC + 未定義的TELNET COMMAND將以 IAC NOP 效果處理.
STD 30 - Status Option 1. 傳送目前之狀態 ex: Host1:IAC DO STATUS Host2: IAC WILL STATUS Host1:IAC SB STATUS SEND IAC SE Host2:IAC SB STATUS IS WILL ECHO DO SUP-GA WILL STATUS IAC SE
如何在UNIX下觀看TELNET的協商過程 • 在mail server或其它UNIX-clone主機下 • ex: • mail:~chinlin$ telnet • telnet> toggle options • Will show option processing. • telnet> open bbs.im.tku.edu.tw • ……………………...
如何在UNIX下觀看TELNET的協商過程 telnet>toggle options telnet> open mail.im.tku.edu.tw Trying 163.13.200.193.. Connected to mail.im.tku.edu.tw. Escape character is '^]'. SENT DO SUPPRESS GO AHEAD SENT WILL TERMINAL TYPE SENT WILL NAWS SENT WILL TSPEED SENT WILL LFLOW SENT WILL LINEMODE RCVD DO TERMINAL TYPE RCVD DO TSPEED RCVD WILL SUPPRESS GO AHEAD RCVD DO NAWS RCVD DO ECHO SENT WONT ECHO RCVD WILL ECHO SENT DO ECHO