基于對等網(wǎng)絡(luò)的醫(yī)學(xué)影像服務(wù)系統(tǒng)通訊平臺設(shè)計與應(yīng)用
5)兩節(jié)點在多級NAT的后面時,服務(wù)器只了解與之最近NAT的網(wǎng)絡(luò)信息,依據(jù)其最外層NAT是否一樣,可分如圖2所列的兩種情況。本文引用地址:http://www.biyoush.com/article/154835.htm
圖2(a)顯示了最外層NAT處在不同節(jié)點的網(wǎng)絡(luò)關(guān)系,因它類似于上面的第3種情況,因此它們不能進行直接訪問。圖2(b)顯示了最外層NAT處于相同節(jié)點上的網(wǎng)絡(luò)關(guān)系,因它類似于上面的第4種情況,所以通過各自的私網(wǎng)端口和IP兩節(jié)點不能相互訪問。
3.2 建立點對點通訊的連接
通過分析網(wǎng)絡(luò)節(jié)點的區(qū)域關(guān)系可知,當(dāng)兩節(jié)點都在同一個NAT的后面或都擁有公網(wǎng)IP時,它們之間才能進行直接的對等通訊,否則兩節(jié)點就不能進行直接的對等通訊。
因目前大部分的NAT設(shè)備支持UDP穿洞技術(shù),在建立兩節(jié)點的直接通訊時,讓連接的雙方都從內(nèi)部發(fā)出請求,并通過一個擁有公網(wǎng)IP地址的服務(wù)器來連接介紹,以便避開NAT的隔離保護。所以把UDP作為其基本的通訊協(xié)議,在建立節(jié)點索引列表時要求中心服務(wù)器或超級節(jié)點,按照UDP穿洞技術(shù)的要求,不但要記錄公網(wǎng)的端口和IP地址,還要記錄節(jié)點的私網(wǎng)端口和IP地址。
假如分別用變量Peer1與Peer2來表示節(jié)點的網(wǎng)絡(luò)信息,用結(jié)構(gòu)體來定義節(jié)點的網(wǎng)絡(luò)信息,就可使用用下面C++偽代碼來實現(xiàn)點對點的直接通訊。
以下兩種情況是在兩節(jié)點的私網(wǎng)IP與端口嘗試進行時適用的:
1)若節(jié)點在本機和服務(wù)器上的端口與IP地址相同,說明其采用的是公網(wǎng)的地址空間。兩節(jié)點如果都采用公網(wǎng)的地址空間那么這兩個節(jié)點就可通過私網(wǎng)或公網(wǎng)的端口和IP地址進行直接通訊。
2)若兩節(jié)點的外部IP是相同的,則表明兩節(jié)點最外層的NAT是相同的。若兩節(jié)點在不是多級NAT而是處在同一個局域網(wǎng)內(nèi)的情況下,就可通過節(jié)點的私網(wǎng)端口和IP地址直接進行通訊。
由此可見,這兩種情況都可通過統(tǒng)一使用本地的通訊函數(shù)嘗試直接建立連接,至少可通過各自的私網(wǎng)端口和IP地址進行通訊,并用C++偽代碼來實現(xiàn)。
在實現(xiàn)點對點通訊的過程中,若嘗試采用兩節(jié)點的私網(wǎng)端口與IP連接通訊的方式失敗時,則要嘗試運用UDP穿透技術(shù)。由于NAT具有保護與隔離的作用,所以在一般情況下只有內(nèi)部主機才能訪問外部主機,而外部主機則只能沿著內(nèi)部主機發(fā)起的連接線路來訪問發(fā)起連接的主機,即通過逆向連接的方式來訪問內(nèi)部特定的節(jié)點,因此需要兩節(jié)點一起從內(nèi)部發(fā)起連接,并通過服務(wù)器進行中介,才能實現(xiàn)直接通訊。
若以上兩種情況皆不成功的話,那么就可以判斷出兩個節(jié)點之間存在不具有UDP穿透技術(shù)的NAT和設(shè)備以及別的因素,造成兩節(jié)點之間不能直接通訊。本文作者使用服務(wù)器數(shù)據(jù)轉(zhuǎn)發(fā)的方法,來保證對等任務(wù)的成功運行。在運用混合式對等網(wǎng)絡(luò)結(jié)構(gòu)的情況下,只需對等網(wǎng)絡(luò)能夠被節(jié)點順利連接就說明節(jié)點和服務(wù)器之間的通訊是正常的。
如果兩節(jié)點之間想建立通訊時,例如Peer1想聯(lián)系Peer2時,Peer1只需要把數(shù)據(jù)發(fā)送給中心服務(wù)器,然后由中心服務(wù)器轉(zhuǎn)發(fā)給Peer2就可以了,然而在通訊過程中服務(wù)器都需要參與,會進一步加大服務(wù)器的負(fù)擔(dān),所以應(yīng)盡量減少使用。其實這種服務(wù)器數(shù)據(jù)轉(zhuǎn)發(fā)的方式在現(xiàn)實生活中已很少采用,因目前UDP穿透技術(shù)很多的NAT設(shè)備都支持。
4 對等網(wǎng)絡(luò)平臺應(yīng)用
4.1 應(yīng)用構(gòu)架
醫(yī)學(xué)影像服務(wù)系統(tǒng)應(yīng)用架構(gòu)。
由圖3醫(yī)學(xué)影像服務(wù)系統(tǒng)應(yīng)用架構(gòu)可知,對等網(wǎng)絡(luò)通訊平臺是集圖像檢索服務(wù)、DICOM傳輸服務(wù)與影像會診服務(wù)等醫(yī)學(xué)影像服務(wù)為基礎(chǔ)的平臺,它是以應(yīng)用程序接口的方式為其他影像服務(wù)程序提供通訊管理與節(jié)點管理的功能,并負(fù)責(zé)連接管理網(wǎng)絡(luò)與物理網(wǎng)絡(luò)中的節(jié)點計算機,以便實現(xiàn)其他醫(yī)學(xué)影像對等網(wǎng)絡(luò)的應(yīng)用。
4. 2 應(yīng)用實例
筆者以醫(yī)學(xué)影像對等網(wǎng)絡(luò)通訊平臺為基礎(chǔ),建立了醫(yī)學(xué)影像遠(yuǎn)程會診系統(tǒng)(簡稱會診系統(tǒng))。在醫(yī)學(xué)影像遠(yuǎn)程會診系統(tǒng)中,當(dāng)會診的用戶連接到網(wǎng)絡(luò)時,中心服務(wù)器將自動下載在線用戶列表,使得用戶可以清晰的看到在線用戶的狀態(tài),若需要在線會診時,依據(jù)點對點通訊連接的建立方式,有其中的一個會診用戶發(fā)出請求,經(jīng)由服務(wù)器輔助建立起兩個節(jié)點間的直接會診通訊。
在會診系統(tǒng)中通過醫(yī)學(xué)影像對等網(wǎng)絡(luò)通訊平臺,實現(xiàn)了視頻對話、雙向語音、電子教鞭、DICOM影像同步顯示與操作等會診功能,從而使得會診參與的雙方雖然處在不同的位置也能感受到現(xiàn)場影像討論的效果。
5 結(jié)束語
文中通過建立醫(yī)學(xué)影像對等網(wǎng)絡(luò)通訊平臺,針對點對點直接通訊與節(jié)點管理兩個方面提出了具體的解決方案,通過會診系統(tǒng)的成功使用可知,在實現(xiàn)其他對等任務(wù)方面醫(yī)學(xué)影像對等網(wǎng)絡(luò)通訊平臺提供了很大的方便,它也可當(dāng)作其他對等應(yīng)用的基礎(chǔ)平臺。
評論