當前位置:論文網 > 論文寶庫 > 信息科技類 > 通信 > 正文

多信息和通信方式虛擬通信系統研究

來源:UC論文網2019-06-05 08:48

摘要:

  [摘要]本文主要對虛擬信息類型和通信方式進行分析,并根據本文所要設計完成的計算機組成原理的特征,在現有的通信機制中選擇符合系統通信要求的通信機制,并將其封裝成一個子通信子系統,它可以支持多種信息類型和通信方式。  [關鍵詞]虛擬,通信子系統,設計,實現  用現代計算機技術研究虛擬實驗室的應用,是近幾年國內外實驗教學研究的熱點。虛擬實驗室就是以計算機網絡為核心,將虛擬儀器通過網絡連接起來,以實現...

  [摘要]本文主要對虛擬信息類型和通信方式進行分析,并根據本文所要設計完成的計算機組成原理的特征,在現有的通信機制中選擇符合系統通信要求的通信機制,并將其封裝成一個子通信子系統,它可以支持多種信息類型和通信方式。


  [關鍵詞]虛擬,通信子系統,設計,實現


  用現代計算機技術研究虛擬實驗室的應用,是近幾年國內外實驗教學研究的熱點。虛擬實驗室就是以計算機網絡為核心,將虛擬儀器通過網絡連接起來,以實現數據采集、分析和遠程操作的一個系統,它具有透明性、資源共享性、互操作性、用戶自主性、擴展性以及安全性等特點,是傳統實驗室無法比擬的。通信與調度管理是構建虛擬教學實驗室系統的關鍵問題,各種數據的傳輸需要一個良好的通信機制來保證,調度管理則是系統能夠有序化工作的關鍵。


  一、虛擬教學實驗室通信子系統的通信機制選擇


  在當下流行的多種通信方式中,共享的通信方式、NetBIOS和MailSlot的可靠性差。DDE,WM_COPYDATA和剪貼板是同一臺計算機中不同應用程序之間的進行數據交換的方式。Pipe的速度較慢,而MailSlot最大的缺陷是不可靠。Sockets由于是工作在通信的底層,實現起來比較復雜,但是如果是工作在Windows平臺之上,則不存在這個問題,因為微軟公司提供了相應的控件。RPC對外界屏蔽了通信細節,具有較好的結構化和抽象能力,它是分布在不同處理機上的程序進行合作的一種高級機制,并被廣泛地用于分布式操作系統、分布式數據庫和客戶/服務器計算機領域中。CORBA適用于異構的、大規模的分布式系統。它們各有各的優缺點,沒有哪一種是萬能的。因此,只有在合適的場合采用合適的方案,才是最好的解決辦法。


  由于基于局域網的虛擬教學實驗室系統來說,主要是運行在Windows平臺之上,并結合本文所設計的計算機組成原理虛擬實驗室的特點,因此我們使用Socket來實現系統的通信。


  二、虛擬教學實驗室通信子系統信息類型與通信方式設計


  由于虛擬實驗室需要支持不同的信息流,如實驗數據、白板信息等,還要支持不同的通信方式,如單播、組播和廣播,從而實現學生可以單獨實驗、協同實驗和文本交流等功能。所以,虛擬實驗室必須解決多種消息類型和多種通信方式這一基本應用需求。


  1.系統的信息類型設計。在虛擬實驗室系統當中,客戶端與服務器端之間存在著大量的信息交互,這些信息的類型多種多樣,而且這些信息對網絡的通信有不同的要求,有些對實時性要求較高,有些則對順序和可靠性要求較高。


  (1)數據文本信息。主要指用戶所發送的實驗數據和服務器處理后的實驗數據。在本系統中,客戶端將用戶的操作及實驗數據以文本文件的形式傳送給應用服務器,服務器進行處理后,也是以文本文件的形式將處理結果傳回客戶端。由于該數據量不是很大,所以通常用TCP形式實現。


  (2)白板信息。白板可以使每一個實驗成員利用圖形、文字等協同合作一個實驗。傳送的白板數據是對繪圖對象的操作,其先后相關性體現在各個繪圖對象的屬性變化上,任何數據的傳輸速度如果過慢的話,將體現不出協同和合作的特性,因此必須保證傳送的實時性,通常以UDP的形式實現。


  (3)音頻/視頻信息。這兩種信息對于傳輸的實時性要求較高,對可靠性要求較低,因此通常以UDP的形式實現。但是為了提高可靠性,要在UDP的基礎上加上質量保證控制機制。


  (4)文字信息。文字信息提供以文字形式交流的手段,多個用戶進行實驗時,可以互相進行簡單的文字交流,在虛擬實驗室當中,文字信息數據量小,以TCP形式實現。控制信息:控制信息是實現協同和管理的根本保證,必須以可靠的形式傳輸。由于其數據量很小,所以通常以TCP形式實現。


  2.系統的通信方式設計。在虛擬實驗室當中,服務器和客戶端在通信中要求能夠實現單播、組播和廣播。單播是將數據從一個發送點傳輸到一個接收點,是點到點的通信方式。廣播是將數據發送給網絡中的所有節點,是點到所有節點的通信方式。組播是介于單播與廣播之間的一種點到點的通信方式,它是將數據從一個節點發送給特定“組”內的所有節點。


  圖1單播通信結構示意圖


  (1)單播通信方式。單播通信,就是一個用戶在同一時間只能與另一用戶進行通信。其拓撲結構如圖1所示。當用戶1向用戶3發送信息時,用戶在信息包中聲明需要服務器提供點對點通信方式,同時在信息包中必須提供用戶3的IP地址。這樣服務器就為雙方建立了通信連接,信息就可以在兩個用戶之間傳遞,而網上其他用戶是無法得知信息內容的。圖中虛線表明信息的流動方向。


  單獨完成某個實驗時,不需要和其他人合作完成,每個人各自完成自己所選的實驗,而互不干擾。因此,在這種情況下,采用單播的通信方式。


  (2)組播通信。組播通信,就是一個用戶在同一時間可以與其它任意指定用戶之間進行通信,被指定的用戶數量必須大于2。其拓撲結構如圖2所示。


  在該圖中,用戶1通過服務器同用戶2、用戶4建立鏈路。因此用戶1發送的信息可以被用戶2和用戶4同時接收。用戶1在發送信息時必須在信息包中表明多點傳送方式,以及接收該信息的用戶地址。


  在本系統中,如果一個人需要合作完成某個實驗,也稱協同實驗,對于某個人在客戶端所作的實驗設計編輯操作,先由虛擬實驗平臺將它轉換為消息數據,在本地子網進行組播。于是,合作的組內成員客戶端可以直接收到組播的消息數據。


  圖2組播通信結構示意圖


  (3)廣播方式。廣播方式就是,一個用戶發出的信息包,被發往網上所有用戶。其通信方式如圖3所示。在本系統中,服務器需要向所有的客戶端發出一些簡單的消息,在這樣的情況下,使用廣播方式可以減輕服務器的負載,提高系統的效率。


  圖3廣播方式結構圖


  3.通信子系統的框架設計。根據虛擬教學實驗室系統的不同要求,為了屏蔽底層通信方式的差異,提供具有特定服務質量的通信服務。通過以上對多種信息類型和多種通信方式的分析,設計了一個系統,稱為通信子系統,它提供對單播、組播和廣播的支持,并且能夠完成系統客戶端和服務器端之間的通信。


  圖4通信子系統框架


  由于在本系統中,虛擬實驗模塊所產生的數據無論是用戶的注冊/登錄信息還是實驗據信息,都是文本數據,都采用TCP來實現。在協同實驗當中,白板模塊所產生的信息有可能是文字信息,也有可能是圖像信息,在本文中我們采用UDP的形式來實現。控制信息和文字信息都是以TCP來實現的。


  三、虛擬實驗室通信子系統的功能實現


  1.信息處理模塊。(1)阻塞和非阻塞通信原語。阻塞原語(也叫同步原語),當一個進程執行“發送”調用,信息正在發送時,執行“發送”原語的進程將被阻塞(即掛起)。系統調用“發送”命令之后的代碼不能執行直到信息已經發送出去。同樣的道理,對于“接收”命令,在沒有實際收到信息之前是不能返回調用進程的,而執行“接收”原語的進程一樣要掛起等待,哪怕等無限長時間。在虛擬教學實驗室系統中,“接收”和“發送”進程都是與特定的端口相連接的。也就是說,接收進程只能收到發送與之相關的特定端口的信息,對于其他信息則無法接收。同樣,“發送”進程也只能將信息發送到特定的端口(一般是接收方的接收端口)。


  與阻塞原語相對應的是非阻塞原語(也叫異步原語)。在這種原語中,發送進程調用“發送”命令后不掛起,而是立即將控制權交給調用進程。非阻塞原語的優點是發送進程可以與信息的發送并行操作。然而,使用非阻塞原語在獲得良好性能的同時也帶來了缺點,這就是發送進程必須等待信息已經正確發送出去,才能修改發送緩沖區中的數據,否則可能帶來嚴重的正確性問題。


  對于這個問題可以有兩種解決方案。一是將發送信息拷貝到信息緩存區,從而允許發送進程繼續運行。第二種方案是當信息發送成功后中斷發送進程,以便告之它可以繼續使用發送緩沖區,這種方法不需要信息的拷貝,從而節省時間。但用戶級的中斷會使程序變得較復雜,并會引入競爭條件,使得程序的執行不具有可重復性。在一般情況下,第一種選擇是最好的,容易理解而且實現起來也最簡單,不需要另外的緩沖區,可以很快地發送信息。另外,如果對于某些應用必須將處理和信息傳輸并行操作,那么,第二種是最好的。


  (2)系統的兩種通信模式。在本系統中,客戶端和服務器端之間的通信我們采用了基于TCP/IP協議族上的TCP和UDP協議,該協議是利用傳輸層上的Socket構建的TCP協議和UDP協議根據虛擬教學實驗室系統的特點以及上面對信息流的分析,其實現方式包括以太網下TCP和UDP的Socket兩種通信模式,在本系統中,由于信息類型不同,我們使用基于TCP的Socket來完成對實驗數據這些數據的傳輸,用基于UDP的Socket來完成對白板和控制信息的傳輸。


  2.系統管理模塊。在虛擬教學實驗室系統中,由于存在多個客戶同時訪問服務器的可能性,如果有多個用戶同時訪問服務器端,那么就會出現多個線程,那么就必須對這些線程進行統一的管理,要為所有的用戶維護接收和發送線程,還必須對這些用戶的線程進行調度,使這些線程按照一定的策略運行,維護著系統的運行。服務端還必須有一個主控線程負責對用戶列表進行初始化,建立各個通信中需要用到的套接字,創建控制線程、白板轉發線程:負責監聽來自客戶端的建立控制連接或白板連接的請求,有請求到來時建立通信連接。


  3.應用接口。應用接口實現通信子系統與應用層程序的交互。它包括兩方面內容,一是應用程序的編寫應遵循通信子系統所規定的標準;二是應用程序可以通過通信子系統提供的應用程序接口使用通信子系統。應用通信子系統構建虛擬教學實驗室系統的目的是為了滿足系統對開放性、實時性、靈活性、可擴充性和易操作性的要求。


  應用層可以通過通信子系統提供的應用程序接口使用通信子系統。在給用戶使用時,將接口的內部實現過程隱藏,提供類似Socket編程的外部接口,其應用接口如下:


  addUsers():該函數以用戶信息為參數。主要功能是給協議字段中的TON,METHOD標志和USERINFO賦值。然后調用setHead設置協議頭。


  send():該函數以消息為參數。主要功能是調用addHead給消息加上協議頭,調用reallysend向服務器端發送消息包。


  read():該函數以消息包為參數。主要功能是接收服務器發來的消息包,并調用protocol進行對該信息包解析。


  Sendservermsg():以消息和用戶信息為參數。內部處理過程:調用addhead給消息打包,調用reallySend發送服務器與客戶端直接交流的消息包。


  sendusrmsg():以消息包為參數。內部處理過程:接受消息包,調用protocol分析協議頭,轉發客戶消息。

核心期刊推薦

河北时时彩一定牛推荐号