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