• 沒有找到結果。

第二章 遠端桌面介紹

2.1 VNC

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

至今已發展多種版本,為跨平台的遠端桌面連線程式。

2.1.1 VNC 簡介

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

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

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

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

圖 1. VNC 系統架構

2.1.2 VNC 的圖形編碼

在圖形傳輸時,根據不同的網路頻寬,Client/Server 處理資料的速度,VNC Protocol 提供了多種編碼方式,主要有 Raw、Copy-Rect、RRE、Hextile 以及 ZRLE,接下來根 據這幾種編碼方式說明。

z RAW:直接傳送圖形的資訊圖形資料不經過壓縮,傳送 pixel 資料由左至右 依序傳送,任何版本的 VNC 都支援這樣的編碼方式,因此造成資料量驚人。

z Copy-Rect(Copy Rectangle encoding):將 framebuffer 中的圖形位置由一塊區 域複製到另一塊區域,是一種簡單有效率的方法,Client 端的 buffer 已經暫 存了這塊區域的資料,Server 只要將 x、y 的座標告知 Client,只要複製 buffer 中的資料,便可以在畫面中顯示出來,可以節省網路頻寬。這樣的情形發生 在移動桌面內的視窗時,由於視窗內的資料並沒有改變,只需要改變顯示的 區域,透過這樣的方法可以降低頻寬的使用。

z RRE:這種編碼方式是將同樣的 pixel 壓縮成單一數值重複計算,在 VNC 中 實現的方法就是將要傳送的矩型區域中的顏色資訊,找出分布最多的顏色當 做背景色,然後根據其他顏色的分布定義出多個子區域(Sub-rectangle)並記 錄該區域的顏色、位置以及大小,如圖 2.,這樣的方法在面積大顏色單純的

區塊(例如:單色的桌布畫面),但是不適合於背景複雜的區塊。

圖 2. VNC 的 RRE 編碼方式

z Hextile:Hextile 算是 RRE 原理變化,將一個矩形區域以 tile 為單位切割,每 個 tile 為 16 x 16 pixels,每個 tiles 的順序由左至右、由上至下依序切割,如 果一個矩形區域,寬不是 16 的倍數那麼最後一個 tile 的寬度就會窄一點,相 同情形,如果高不能被 16 整除,那麼最後一個 tile 的高度就會短一點。每個 tile 可以使用 Raw 編碼或是 RRE 編碼,如果採用 Raw 編碼就直接記錄這個

tile 的 pixel 顏色資訊;如果採用 RRE 編碼,每個 tile 有自己的背景顏色,如 果其背景顏色和前一個 tile 的背景顏色一樣,就不需要明確定義;另外尚需 定義 tile 中,所有 subrectangle 前景顏色,並記錄下來,如果前景顏色都一致,

只需要紀錄一次。每個 tile 中的 subrectangle 都需要清楚的定義前景顏色和 x、

y 座標以及長、寬。

圖 3. VNC 的 Hextile 編碼

z ZRLE:Zib Run-Length Encoding(ZRLE),是結合了 zlib 壓縮、titling、調色 盤和 run-length 編碼技術。傳輸的時候,矩形區域以 4 個 bytes 開始,緊接著 是 zlib 壓縮資料,唯一的 zlib stream 傳送在 RFB protocol 連線上,因此 ZRLE 區域必須精確的依序編碼和解碼。Zlib 資料在還沒解壓縮之前,代表了 64 x 64 個 pixels,由左到右、從上到下,類似於 hextile 切割方式,如果高和寬不是 64 的整數倍,那麼最後一筆資料區域會小一點。

2.1.3 VNC 優缺點分析

VNC 最大的優點就是其跨平台的性質,透過其簡單的傳輸協定,在不同作業系 統、應用程式都能夠使用,此外,其協定的開放及免費性質,任何想應用的實驗環境 都可以實現或是自行設計。

VNC 在影像傳送有個缺點,假設我們要播放 640 x 480(pixels)的影片,VNC Server 就必需每秒傳送 30 張 16 位元的高彩圖片,每秒傳輸資料量為 17.58 MBytes,這樣的 結果不利於在低頻寬的網路上使用,不適合播放動態影片,造成使用者觀賞影片時,

Client 播放影片畫面有遲滯的現象發生。

在文檔中 終端服務的桌面影像壓縮 (頁 15-18)