TCP/IP 與 Internet 網路:第十一章 網路終端機系統 上一頁 下一頁
11-2 Telnet 通訊連線
圖 11-3 為 Telnet 通訊連線方式,客戶端透過終端機模擬程式,以 Telnet 通訊協定來連接伺服端主機,模擬程式可能是目前 Windows 系列最常用的 NetTerm 應用程式(或其它程式),也可以是主機內的 NVT(Network Virtual Terminator)程式。在這連線之中有下列重點描述:
圖 11-3 Telnet 的通訊連線
● Telnet 通訊連線是透過 TCP 傳輸通訊鏈路連接,而 Telnet 伺服器是連接在 TCP/23 著名埠口上。客戶端利用一空閒 TCP 埠口(如 1025/TCP)連結到伺服端 TCP 埠口 23(23/TCP)上,它們之間也是透過 Socket 通訊端點。
● 在客戶端可以透過一般功能較強的終端機模擬程式(如 NetTerm 等),或直接經過系統核心所提供的 NVT 程式,直接呼叫 NVT 連結伺服端。亦是直接在系統下執行 Telnet 命令,如 Windows 系統以 telnet 或 Linux 系統以 # telnet 下達執行命令。
● 伺服端必需隨時監督 TCP 埠口 23(23/TCP)是否有連線要求(一般都由 xinetd 服務程式負責),當有連線要求時便啟動 Telnet 伺服程式(in.telnetd),由Telnet 伺服程式來負責和 Telnet 程式之間的通訊。
● Telnet 伺服程式必須處理有關『虛構終端設備』(Pseudo Terminal Device, PST)的程序,而在 Internet 網路上都使用 NVT 標準。
● 伺服端透過 NVT 處理程序,此時必需協商雙方使用的終端機型態,並呼叫使用者的登入程序(Login Script),由 Login Script 詢問使用者名稱和密碼,如使用者登入成功,便啟動 User Script 來接受與處理使用者所下達的命令。
● 我們可以發現,伺服端主機處理『虛構終端設備』,就好像直接連線(11-1-1 介紹)的終端機系統中,主機電腦隨時掃描監督連線多工設備一樣,而使用者登入情形也宛如和主機直接連線情況一樣。
如果我們直接由 win98-1(163.15.2.34)上 Telnet 登入到 Linux-1(163.15.2.62),則執行 C:\> telnet 163.15.2.62,則結果如下:
Red Hat Linux release 6.2 (Zoot) Kernel 2.2.14-5.0 on an i586 login: tsnien Password: Last login: Fri Jun 14 09:58:15 from 163.15.2.34 You have mail. [tsnien@linux-1 tsnien]$ |
可在 Linux-1 上可觀察 Telnet 伺服程式(in.telnetd)的執行情形:(節錄部份內容)
[tsnien@linux-1 tsnien]$ ps –ef …. root 763 550 0 18:36 ? 00:00:00 in.telnetd: 163.15.2.34 root 764 763 0 18:36 pts/0 00:00:00 login -- tsnien tsnien 765 764 0 18:37 pts/0 00:00:00 -bash |
由上可以發現 Telnet 伺服程式(in.telnetd)正連接 163.15.2.34 的 Telnet 通訊程式,而 Login Script(login -- tsnien)和使用者程序(User Script)都是建立在同一虛構終端設備(pts/0)。由它們之間 PID( Process Identifier)也可以發現,是由 in.telnetd 產生 Login Script(login - tsnien),再由使用者登入程序中在產生使用者程序(-bash)。