基于消息傳遞的遠程桌面控制協(xié)議實現(xiàn)_第1頁
基于消息傳遞的遠程桌面控制協(xié)議實現(xiàn)_第2頁
基于消息傳遞的遠程桌面控制協(xié)議實現(xiàn)_第3頁
基于消息傳遞的遠程桌面控制協(xié)議實現(xiàn)_第4頁
基于消息傳遞的遠程桌面控制協(xié)議實現(xiàn)_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、基于消息傳遞的遠程桌面控制協(xié)議實現(xiàn)第22卷第2期NO.2Vo1.22內(nèi)江師范學院JOURNALOFNEIJIANGTEACHERSCOLLEGE?41?基于消息傳遞的遠程桌面控制協(xié)議實現(xiàn)王(1.內(nèi)江師范學院計算機與信息科學系,四川內(nèi)江641112;2.內(nèi)江師范學院網(wǎng)絡(luò)應(yīng)用項目開發(fā)重點實驗室,四川內(nèi)江641112)摘要:簡要分析了現(xiàn)有消息傳遞工作模式.針對現(xiàn)有遠程控制協(xié)議消息傳遞低效,根據(jù)實際的需要設(shè)計出一種新穎的遠程控制協(xié)議.這種協(xié)議改變原有的工作模式,利用現(xiàn)有的技術(shù),彌補了這個不足.關(guān)鍵詞:消息傳遞;遠程桌面控制協(xié)議;工作模式中圖分類號:TP316文獻標識碼:A文章編號:16711785(2

2、007)020041051引言消息傳遞具有方便,高效,廉價,即時等優(yōu)點,當前的即時消息傳遞系統(tǒng)主要有兩種通信模型,對應(yīng)著兩種工作模式:客戶端一服務(wù)器(clientserver)工作模式和層對層(peertopeer)工作模式.目前的遠程桌面控制軟件比較多,一般跨平臺功能較差,消息傳遞不能保證高效,基于此設(shè)計了高效消息傳遞的遠程桌面控制協(xié)議,對傳統(tǒng)的桌面控制消息部分做了改進.在遠程桌面控制中,如果在屏幕未發(fā)生變化的時候,并不傳送數(shù)據(jù),這樣不僅減少了對服務(wù)器端的資源的占用,而且也減少了對網(wǎng)絡(luò)資源的占用.通常引起計算機屏幕變化的因素較多,可能是輸入信息引起的,也可能是程序運行引起的但在遠程桌面控制中

3、我們關(guān)心的屏幕變化主要由客戶端的輸入信息引起的,也就是通過鼠標和鍵盤輸入的信息.通常情況下輸入的鼠標和鍵盤消息驅(qū)動當前的屏幕圖像改變引.遠程桌面控制協(xié)議中連接初始化階段的消息傳輸過程如圖1所示.2系統(tǒng)消息定義對于系統(tǒng)運行時信息傳遞是關(guān)鍵的問題,為了很好區(qū)分信息究竟來自服務(wù)器還是來自客戶端.所以我們把系統(tǒng)中信息傳遞分為兩類:從客戶端到服務(wù)器為一類定義為publicfinalstaticbyteCLIENTTOSERVERMESSAGE一0;從服務(wù)密碼,一段接圖1協(xié)議中消息傳遞過程器到客戶端為一類定義為publicfinalstaticbyteSERVERToCLIENTMESSAGE一1.對于每

4、一類所傳遞的信息不一樣,所以分別給予了詳細定義.2.1從客戶端向服務(wù)器發(fā)送的消息2.1.1SETPIXELFORMAT消息客戶端向服務(wù)器發(fā)送的SETPIXELFORMAT消息說明了客戶端當前的屏幕像素格式,它的形式和服務(wù)器初始化消息中像素格式的表示方法基本一致.在實際的遠程監(jiān)控過程中.服務(wù)器和遠程的客戶機的顯示模式(分辨率以及收稿13期:20060920基金項目:內(nèi)江師范學院院級科研項目(06NZJ一5).作者簡介:王建(1975一),男,漢,四川仁壽人,內(nèi)江師范學院講師,碩士?42?內(nèi)江師范學院第22卷第2期每個像素數(shù)據(jù)所占的字節(jié)數(shù))很可能不一樣,這時以客戶端的顯示模式為準.當客戶端向服務(wù)器

5、端發(fā)送消息SETPIXELFORMAT消息時,服務(wù)器就按照這個消息中所規(guī)定的像素格式傳輸本機屏幕的像素數(shù)據(jù);當客戶端不向服務(wù)器發(fā)送該消息,說明客戶端可以接受服務(wù)器端當前已有的像素格式,這時服務(wù)器按照協(xié)議連接初始化所發(fā)送的消息來確定自己在圖像傳輸時采用的像素格式.SETPIXELFORMAT消息的格式如圖2所示.消息類型:客戶端所能接受的象素SETPIXELF0RMAT格式(形式和服務(wù)器端初始化消息中的一致)圖2SETPIXELFORMAT消息的格式2.1.2SETENCODINGS消息SETENCODINGS消息是服務(wù)器和客戶雙方進行圖像傳輸前進行編碼方法約定的消息,它用來通知服務(wù)器客戶端所能

6、接受的編碼方法,主要包括基本編碼方法(RAw一0),矩形復制編碼方法(COPYRECT一1),壓縮編碼方法和改進的壓縮編碼方法(RRE一2,CoRRE一4,HEXTILE一5,ZRLE一16).這個編碼約定的消息之所以是由客戶端發(fā)往服務(wù)器端(由客戶端提出編碼方法),主要原因是考慮到本人所設(shè)計的遠程監(jiān)控軟件是基于瘦客戶端結(jié)構(gòu)的.服務(wù)器的軟件部分能夠提供前面所述的全部6種編碼方法,客戶端的設(shè)備由于結(jié)構(gòu)和功能相對簡單,因此在有些情況下,不需要復雜的編碼方法,它可能只支持某一種編碼方法(如基本編碼方法).這時客戶端就通過SETENCODINGS消息使服務(wù)器了解它支持的編碼方法,在今后的圖像傳輸過程中,

7、服務(wù)器采用這種方法對屏幕矩形區(qū)域進行編碼.SETENCODINGS消息格式如圖3所示,編碼方法的代號如表1所示.消息類型(1byte):代表編碼方法的數(shù)值SETENCODINGS(1byte)圖3SETENCODINGS消息的格式表l編碼方法的代號碼方法的數(shù)值編碼方法0RAW編碼1COPYRECT編碼2RRE編碼4CORRE編碼5HEXTIIE編碼16ZRLE編碼2.1.3FRAMEBUFFERUPDATEREQUEST消息該消息用來通知服務(wù)器和客戶端所要刷新的屏幕顯示區(qū)域(由矩形左上角像素的坐標以及矩形的寬,高所確定的區(qū)域,通常為服務(wù)器端顯示器的全屏信息).在收到這個消息后,服務(wù)器將給客戶發(fā)

8、送FRAMEBUFFERUPDATE消息作為回應(yīng).通常情況下,服務(wù)器認為客戶的顯示緩存中保留了上一幀數(shù)據(jù)(刷新前)的完整狀態(tài),所以在對屏幕顯示刷新時,只對客戶發(fā)送顯示緩沖區(qū)中變化的部分.但是,在某些情況下(網(wǎng)絡(luò)傳輸中數(shù)據(jù)丟失),客戶端的顯示緩存中沒有保存上一幀數(shù)據(jù),此時,客戶發(fā)送FRAMEBUFFERUPDATEREQUEST消息中數(shù)據(jù)項INCREMENTAL的值為0,服務(wù)器收到這條消息后,就將整個屏幕的當前顯示狀態(tài)圖像完整地發(fā)送給客戶端.2.1.4KEYEVENT消息KEYEVENT消息中包含了遠程客戶的鍵盤命令信息,它是由客戶端的系統(tǒng)功能,是鍵盤上某個鍵的標準ASCII代碼.另外該消息中還

9、包括一個數(shù)據(jù)項表示鍵的按鍵狀態(tài).2.1.5POINTEREVENT消息POINTEREVENT消息中包含了遠程客戶的鼠標命令信息,它是由客戶端的表示鼠標系統(tǒng)功能調(diào)用得到,消息中有表示鼠標當前坐標位置及動作的數(shù)據(jù)項.2.1.6從客戶端向服務(wù)器發(fā)送的消息說明publicfinalstaticbyteSETPIXELFORMAT一0:publicfinalstaticbyteSETENC()DINGS一2:publicfinalstaticbyteFRAMEBUFFERUPDATEREQUEST一3:publicfinalstaticbyteKEYEVENT一4;publicfinalstaticb

10、ytePOINTEREVENT一5:publicfinalstaticbyteCLIENTCUTTEXT=6:publicfinalstaticbyteCLIENTTOSERVERMESSAGETYPE一127;publicfinalstaticStringSSETPIXELFORMAT一setpixelformat2007年4月王建:基于消息傳遞的遠程桌面控制協(xié)議實現(xiàn)?43?publicfinalstaticStringSSETENCODINGS一setencodings:publicfinalstaticStringSFRAMEBUFFERUPDATEREQUEST一framebuffer

11、updaterequestr.publicfinalstaticStringSKEYEVENT:keyevent:publicfinalstaticStringSPOINTEREVENT:pointerevent:publicfinalstaticStringSCLIENTCUTTEXT:clientcuttext:publicfinalstaticStringSCLIENTTOSERVERMESSAGETYPE一clienttoservermessagetyper,;2.2從服務(wù)器向客戶端發(fā)送的消息2.2.1FRAMEBUFFERUPDATE消息FRAMEBUFFERUPDATE消息是服務(wù)器

12、向客戶端發(fā)送的最主要的消息,它包含了一系列服務(wù)器屏幕矩形區(qū)域的像素數(shù)據(jù),客戶端根據(jù)這個消息中的像素數(shù)據(jù)填充自己顯示緩存中相應(yīng)的區(qū)域,從而形成客戶端顯示的一次刷新.為了減少服務(wù)器和客戶端在網(wǎng)上的數(shù)據(jù)傳輸量,服務(wù)器并不是一直不停地向客戶端發(fā)送圖像信息,只是當客戶端向服務(wù)器發(fā)送FRAMEBUFFERUPDATEREQUEST消息后,服務(wù)器認為客戶端向其發(fā)送了控制信息,使得服務(wù)器桌面當前的顯示狀態(tài)發(fā)生了變化,作為應(yīng)答,向客戶端發(fā)送包括一系列屏幕矩形區(qū)域的FRAMEBUFFERUPDATE消息.這種客戶端驅(qū)動機制減少了網(wǎng)絡(luò)的數(shù)據(jù)傳輸量,節(jié)約了網(wǎng)絡(luò)帶寬.FRAMEBUFFERUPDATE消息的形式如圖4所

13、示.當矩形區(qū)域數(shù)據(jù)采用了RAW編碼方法后,這個區(qū)域的像素集合并沒有經(jīng)過任何形式的壓縮,它僅僅是矩形區(qū)域按照從左到右,從上到下的順序依次掃描編碼得到的,數(shù)據(jù)的總量為:像素格式矩形寬度矩形高度(字節(jié))當矩形區(qū)域數(shù)據(jù)采用了矩形復制編碼方法后,代表矩形區(qū)域所有像素的數(shù)據(jù)只有2個:矩形區(qū)域左上角的X坐標和y坐標【3.當矩形區(qū)域數(shù)據(jù)采用了壓縮編碼方法或改進壓縮編碼方法后,整個矩形區(qū)域被分成若干個小于或等于1616的子矩形區(qū)域.這些子矩形是按照對矩形進行由左到右,由上到下的順序劃分得到的.消息類型:服務(wù)器所要發(fā)矩形1矩形2矩形FRAMEBUFF送的矩形個數(shù)相關(guān)信息相關(guān)信息相關(guān)信息ERUPDATE矩形i的相關(guān)

14、信息:眶形矩形矩形i矩形矩形i矩形i經(jīng)過左上角x坐標左上角y坐標寬度高度締酚怯指辭節(jié)編碼后6勺j次據(jù)矩形i編碼方法的指示字節(jié)編碼方法的指示字節(jié)的數(shù)值所代表的編碼方法ORAW編碼1COPYRECT編碼2RRE編碼4C0RRE編碼5HEXTILE編碼16ZRLE編碼圖4FRAMEBUFFERUPDATE消息的形式2.2.2從服務(wù)器向客戶端發(fā)送的消息定義publicfinalstaticbyteFRAMEBUFFERUPDATE一0:publicfinalstaticbyteSETCOLOURMAPENTRIES=1:publicfinalstaticbyteBELL一2;publicfinalst

15、aticbyteSERVERCUTTEXT一3:publicfinalstaticbyteSERVERTOCLIENTMESSAGETYPE一127;publicfinalstaticStringSFRAMEBUFFERUPDATE一framebufferupdate;publicfinalstaticStringSSETCOLOURMAPENTRIES一setcolourmapentries:publicfinalstaticStringSBELL一bell:publicfinalstaticStringS.SERVER.CUT.TEXT:servercuttext:publicfinals

16、taticStringSSERVERTOCLIENTMESSAGETYPE一servertoclientmessagetyper;3主要消息格式3.1鼠標控制信息的格式定義(見表2)?44?內(nèi)江師范學院第22卷第2期表2鼠標控制信息的格式定義字節(jié)數(shù)描述1取值固定為5,用于標明該信息為鼠標控制信息鼠標按鍵狀態(tài)字節(jié):若某按鍵被按下則該位置1,否則為04鼠標事件位置的z坐標和Y坐標值3.2鍵盤控制信息的格式定義(見表3)表3鍵盤控制信息的格式定義字節(jié)數(shù)描述1取值固定為6,用于標明該信息為鍵盤控制信息1按鍵狀態(tài):按鍵被按下則置1,否則置0按鍵標識:使用XWindow系統(tǒng)的統(tǒng)一鍵盤定義!2在Keysym

17、定義中,常規(guī)按鍵(字母,數(shù)字,標點等)使用它們對應(yīng)的ASCII碼作為標識;對于其他按鍵,定義標識對照如表4所示.表4其他按鍵定義3.3圖像數(shù)據(jù)消息格式定義(見表5).表5圖像數(shù)據(jù)消息格式定義字節(jié)數(shù)描述圖像數(shù)據(jù)消息的類型號圖像矩形的像素信息:z坐標,Y坐標,寬度和高度像素矩陣的壓縮編碼方式像素矩陣數(shù)據(jù),N的大小由特定編碼方式及圖像大小決定4消息傳送的大概過程該系統(tǒng)和其它遠程桌面控制系統(tǒng)相同,一樣都具有網(wǎng)絡(luò)計算能力,它們的不同之處就在于,該系統(tǒng)的設(shè)計重點是與平臺無關(guān)的特性.因此,我的設(shè)計目標就是盡可能兼容各類計算機硬件和各種操作系統(tǒng).在計算機硬件系統(tǒng)方面有大型機,工作站和PC,Mac等;在操作系統(tǒng)

18、方面有Windows系列,Unix系列,Linux系列以及SunSolaris系列等系統(tǒng).鑒于設(shè)計目標,在設(shè)計該系統(tǒng)時遵循下列兩條原則:支持最廣泛使用的終端設(shè)備;不依賴特定操作系統(tǒng)的特定服務(wù)或接口.基于上述原則,設(shè)計出系統(tǒng)的模型如圖5所示.該模型包括兩部分:被控制的服務(wù)器,遠程控制客戶端.兩者之間通過與平臺無關(guān)的網(wǎng)絡(luò)協(xié)議交換信息.模型中的消息有兩種:客戶端發(fā)向服務(wù)器的控制信息,鍵盤控制信息和鼠標控制信息;服務(wù)器發(fā)向客戶端的圖像數(shù)據(jù),服務(wù)器屏幕上的顯示信息.下面分別介紹兩類信息的作用.圖5系統(tǒng)的模型客戶端發(fā)向服務(wù)器的控制信息,計算機使用者通過操作客戶端機器來達到控制服務(wù)端機器.控制信息承載客戶端

19、對服務(wù)器的操作指令.服務(wù)器在接收到控制信息之后,調(diào)用系統(tǒng)服務(wù)完成相應(yīng)操作.控制信息的最初觸發(fā)源是客戶端的終端設(shè)備(鍵盤,鼠標),當客戶端接收到本地終端設(shè)備對服務(wù)器的操作指令后,根據(jù)指令性質(zhì)的不同,按下述數(shù)據(jù)格式傳送給服務(wù)器.鼠標控制指令,鼠標動作涉及兩個方面:鼠標單擊位置(以一對相對于屏幕左上角的坐標值表示)和鼠標按鍵事件(左鍵單擊,右鍵單擊等).因此被傳送的鼠標控制信息至少應(yīng)包括位置信息和按鍵信息.鍵盤控制指令,鍵盤動作涉及兩個方面:動作相關(guān)按鍵和按鍵狀態(tài)(按下,釋放).因此被傳送的鍵盤控制指令至少應(yīng)包括按鍵信息和按鍵狀態(tài)信息.圖像數(shù)據(jù)是服務(wù)器工作狀況的反映,因此,也就負責對用戶控制命令的回

20、饋,客戶端在接收到圖像數(shù)據(jù)之后在本地監(jiān)視器重新繪制,這樣服務(wù)器的工作狀況就在客戶端實時再現(xiàn).圖像數(shù)據(jù)并不繼承特定操作系統(tǒng)所定義的窗體概念,而是基于更底層的屏幕像素矩陣觀點l4.圖像數(shù)據(jù)的最基本單位是矩形,即在監(jiān)視器上可顯示出的一個矩形區(qū)域的像素集合.服務(wù)器只發(fā)送最近更新過的矩形區(qū)域的圖像數(shù)據(jù),這樣可以在一定程度上減少網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量,提高系統(tǒng)效率.此外,應(yīng)用多種高效率的圖像壓縮編碼,盡量減少數(shù)據(jù)傳輸量.2007年4月王建:基于消息傳遞的遠程桌面控制協(xié)議實現(xiàn)?45?5小結(jié)本文主要是圍繞信號機制,消息傳遞來展開.所設(shè)計的遠程桌面控制協(xié)議是靠服務(wù)器和客戶端一系列的消息傳遞來完成的,整個消息傳遞過程

21、可以分為初始化階段和正常數(shù)據(jù)交換階段.參考文獻1PeiJ,HanJ,MortazaviB.Prefixspan:miningsequentialpatternsefficientlybyprefixprojectedpatterngrowthJ.DataEngineering,2001,8(4):215-224.2梁飛蝶,李錦濤.瘦客戶計算應(yīng)用協(xié)議中遠程顯示機制的比較J.計算機工程與應(yīng)用,2004,(21):135137.3常永昌,馮新喜,王芳.一種遠程控制軟件的設(shè)計與實現(xiàn)J.計算機應(yīng)用,2003,23(3):127128.4王宇宙,趙宗濤.遠程控制軟件安全設(shè)計與實現(xiàn)J.計算機應(yīng)用.2003,

22、23(6):265266.RealizationoftheRemoteDesktopControlProtocolBasedonMessageTransmissionWANGJian(1.DepartmentofComputerandInformationScience,NeijiangTeachersCollege;Neijiang,Sichuan64112,China;2.KeyLaboratoryof,Project;NeijiangTeachersCollege,Neijiang,Sichuan641112,China)Abstract:Theworkmodesofmessagetransmissionareanalyzedbriefly.Toavoidthedeficiencythatthecurrentmessagetransmissionofremotedesktopcontrolprotocolcannotrapidlytransmit,theremotedesktopcontrolprotocolisdesignedaccordingtOactualneed.Itchangestheformerworkmodeusingcurrenttechniques.Keywor

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論