• 沒有找到結果。

遠端桌面系統介紹

第二章 相關知識及背景介紹

2.1 遠端桌面系統介紹

目前市面上有許多遠端桌面程式,在此就不全部介紹,僅選出較常用的三個來介 紹,並淺要地分析他們的原理,和比較各項特點。

2.1.1 VNC

Virtual Network Computing[1](VNC)是現行的遠端桌面連線系統之一,最初發展是在 1995 年由英國劍橋的 Olivetti & Oracle 實驗室發展出來,公開且免費的通訊協定,至今

已發展多種版本,為跨平台的遠端桌面連線程式。目前延伸的版本有 cotVNC、

EchoVNC、RealVNC、TightVNC 和 UltraVNC。

VNC 透過 Remote Frame Buffer (RFB) Protocol 控制遠端的電腦,VNC 為一套跨平 台的應用程式,在操作端安裝VNC Viewer 就是我們所說的 Client,在遠端的電腦安裝 VNC Server,允許多台 Clients 在同一個時間連接同一個 Server,另外,也可透過 JAVA Applet 使用網路瀏覽器連接到安裝 VNC Server 的電腦。VNC 的架構可以分為 VNC Server 和 VNC Client(Viewer),彼此溝通的通訊協定為 RFB Protocol。

z VNC Server:負責接收 Client 傳送過來的鍵盤或是滑鼠的輸入訊號後,並提供一 套桌面分享機制,透過TCP/IP 傳送畫面改變的資料到 Client。

z VNC Client:根據收到的資料,在將 Client 端顯示 Server 的畫面,並依照接收 到的資料做更新。

z RFB Protocol:一個簡單的原則,將 Server 端某塊寬(W)、高(H)點陣圖(bitmap) 的資料,放到螢幕指定的X、Y 座標上。

2.1.2 RDP

Remote Desktop Protocol[2],簡稱 RDP。RDP 是微軟根據 ITU T.120 協議系列所制

定的一套未公開發表的數據通訊協議。透過網路連接RDP Server 將應用程式顯示畫面

傳送到RDP Client,RDP Client 將滑鼠、鍵盤等輸入訊息傳送給 RDP Server。在畫面傳 送上,是以命令(order)為操作方式,可以分為 primary order 和 secondary order,Primary order 主要的工作在於處理線條、矩形或是出現過的點陣圖和文字,Secondary order 則 是傳遞首次出現的bitmap 和文字。在終端服務的桌面圖形傳輸上,畫面中 bitmap 的傳 送,可以說是主要的資料量。

RDP 的 bitmap 傳送方式有兩種方式:

1. RDP Server 先利用 secondary order 的 bitmap cache 將 bitmap 傳送到 RDP Client 暫存起來,隨後傳送一個 memory blt 將 cache 中 bitmap 資料,依據 cache id 和cache index 取出指定的 bitmap,顯示在螢幕對應的位置上,主要畫面傳送都是利 用這樣的方法。

2. RDP Server 直接傳送 bitmap 資料,並給予座標位置,RDP Client 收到後,直

接將資料顯示在畫面上。傳遞的bitmap 通常為視窗的外框或是工作列表邊緣線,因

此,在畫面傳送上佔很小的比例,這部份的畫面更新方式稱為bitmap updates。

2.1.3 X Window

X Window 系統[3](也常稱為 X11 或 X)是一種以點陣圖方式顯示的視窗系統。最初 是1984 年麻省理工學院的研究,之後變成 UNIX、Linux 等作業系統所一致適用的標準 化軟體工具套件及顯示架構的運作協定,經過二十多年的演進,現今已成為工業標準。

X Window 與一般的作業系統不同,在設計時就是以 Client/Server 為理念,整個 X Window 可以分為幾個部份:X Server、X Client、X Protocol 和 X Library。

z X Server:負責控制顯示卡將影像畫在顯示器上,並且管理鍵盤和滑鼠的事件,

產生視窗、對應視窗及刪除視窗,這部份要特別說明,與一般的Client/Server 名 詞定義有點差異,X Server 定義為 Display Server,而應用程式端稱為 X Client。

z X Client:在 X Window 下的應用程式,要求特定的 X Server 作特定的動作。主 要的工作為:1、向 X Server 提出需求,2、接收來自 X Server 的事件訊息,3、

接收來自X Server 的錯誤訊息。

z X Protocol:X Client 和 X Server 的通訊協定,定義 Requests、Reply、Error 和 Events,2.2.1 節有詳細說明。

z X Library:簡稱 X Lib,大部分 X window 上的應用程式以 X Library 來建立 GUI

z 2D draw primitives:利用區塊填色的方法將圖形編碼,通常是一種非失真編碼的 方式,VNC 畫面編碼主要是以這樣的方法。

z Low level graphic:除了圖形編碼的方法之外,還利用一些簡單的指令,例如:字 型、多邊形、線條等等的指令呼叫 Client 繪圖,RDP 便是利用這樣的更新方式 進行畫面更新。

z High level graphic:除了 2D draw primitives 和 Low level graphic,還支援視窗的 建立和管理,X Window 所利用的 X Protocol 就是屬於這類。

2. Server/Client 訊息傳遞方式

Server 和 Client 的訊息傳遞方式主要可以分為兩種,Server Push 就是由 Server 主 動決定何時傳送更新畫面到Client;Client Pull 就是由 Client 向 Server 要求傳送更新,

是只有在使用者輸入訊息時,才會通知Server 作畫面更新的傳送,但是其資料量較少。

瞭解了畫面編碼方式及系統更新方式,根據這些特點我們將針對這幾個系統做分析比 較,說明如表2-1。

表2-1. 遠端桌面系統比較

系統 畫面編碼方式 更新方式 壓縮方式 cache license

VNC Compressed Pixel Data

Client pull

2D draw primitives

Client frame

buffer GPL RDP Low level

graphics

Server

push 2D RLE YES proprietary X window High level

graphics

Server

push none NO GPL

2.2 X Window 的 Client/Server 架構