之前在某項目上遇見一個現象:
一個聯通的無線上網裝置作為最終的上行出口,使用有線從無線裝置接入一台筆記本,使用WIFI接入一部Ipad,然後通過公網通路Citrix XenDesktop的虛拟桌面:
發現通過筆記本通路虛拟桌面登入的速度大約在半分鐘、運作的流暢度差不多和在區域網路内使用的相差不大;
通過Ipad通路虛拟桌面,其登入的速度很慢,加載桌面啟動畫面和加載使用者配置都有很長的時間,整個登入速度大約在2分鐘左右。
值得讨論的是:
為什麼同樣是使用該台無線裝置,其有線連接配接的筆記本和使用WIFI連接配接的裝置通路速度差異如此明顯呢?
我不是網絡方面的專家,就以我淺薄的見識來了解,我認為有以下幾個因素導緻:
解碼的資料類型不同:基于Windows的Citrix Receiver會在終端上接受資料并進行解碼再繪制成圖像顯示在顯示器上,ICA協定将畫圖的工作交給了用戶端,伺服器需要了解用戶端顯示能力的具體情況,以便作出相應調整。說得更加明白一點就是,基于Windows的用戶端,ICA協定傳送的是GDI的繪圖指令,其和列印系統的EMF檔案類似,Windows用戶端的Citrix Receiver接受到這些指令之後利用本地的Windows繪圖引擎然後将圖像重新繪制出來,是以Windows的用戶端其配置越高,其繪制圖像的速度越快,顯示速度以及與運作就越快。而基于IOS或者是Android的Citrix Receiver,是在伺服器端将視窗在顯存中畫好之後将圖像傳給用戶端,用戶端隻充當一個圖像顯示的角色。也就是說由于IOS和Android用戶端無法解碼ICA的GDI繪圖指令,其對必須要傳圖檔的方式将圖像傳送到這些終端上,然後顯示出來。
傳輸的資料量不同:基于Windows的用戶端,ICA向其傳輸的是基于Windows圖像引擎的繪圖指令,而基于IOS或者是Android的用戶端,ICA向其傳輸的是圖像。就一般虛拟桌面而言,其傳輸的圖像的資料量太大。
計算能力的不同:這其中,這些操作都需要終端的計算能力。因為PC的計算、存儲能力大大的超出移動裝置的計算、存儲能力許多,是以在圖像顯示以及對輸入輸出的處理上相較于PC機,移動終端感覺明顯較慢。
無線網絡的機制因素:我們知道在無線網絡中,有兩種傳輸的機制:PCF和DCF。這些機制就構成了所謂Qos等等技術的實作。但是在我們沒有使用這些技術的時候,或者說我們在無線裝置上,并沒有開啟這些功能,那麼預設情況下,無線網絡的頻寬是一定的,我們在使用無線網絡的時候,無線網絡的是沒有這樣的機制說可以保證我們每一個使用該無線網絡的都均分頻寬,無法做到公平性。也就是說頻寬的使用不保證公平,而且不止是無線網絡,有線網絡也是如此。同時,傳輸出去的延遲也不會保證。假設說,上述場景裡面,我們的無線裝置的頻寬分為筆記本和Ipad兩個,我們可以了解為兩個傳輸通道。因為我筆記本處理速度快,傳輸資料量,有限媒體有比無線媒體傳輸的速度快(指的是無線裝置到筆記本的連線),是以可能基于筆記本的頻寬總是處于無線裝置将資料在發送端發送完畢之後,其資料還沒有達到筆記本端(假設),是以該條頻寬其實就永遠的屬于饑餓狀态,無線裝置對于處于饑餓狀态的頻寬處理的頻率和配置設定的處理資源就相對會多。而連接配接IOS和Android的頻寬則因為系統處理不過來而将傳送通道塞滿(假設),無線裝置自然将處理的頻率和資源就配置設定得少一些。大緻就是這樣一個理論吧。舉個例子來說,我們現在的工廠裡面,勞工面前有兩個傳送帶,A這條傳送帶因為前端處理人員處理的速度很快,那麼這個勞工對A這條傳送帶上放東西就會越快;而B這條傳送帶上放上東西一會兒都不見走,勞工自然散漫對待B這條傳送帶。
歡迎大家進行讨論,我認為這個是值得探讨的問題!期待資深大拿對該問題進行專業的解答。
根據Citrix專業微信群高手的指教,因素應該還有以下兩點:
1、基于B/S和C/S的通路模式存在差異性;
2、基于Citrix ICA/HDX協定的會話可靠性。