999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

P2P即時通信系統關鍵技術研究及應用

2017-09-29 21:01:07徐文莉熊燕李燕
軟件導刊 2017年9期

徐文莉 熊燕 李燕

摘 要:P2P技術因其非中心化、身份對等、可擴展性等優勢,在即時通信領域受到重視。基于P2P的即時通信系統,廣泛應用于個人通信、商務洽談、企業管理等領域。為完善系統功能,提高開發效率,對在.NET平臺下建立完全對等的P2P拓撲結構,實現局域網通信關鍵技術及應用方式進行了研究。利用PNRP協議編程實現了對等節點的發現,通過對DirectShow的封裝高效完成了音視頻數據的采集與壓縮,在TCP/UDP協議及多線程技術支持下實現了數據有效傳輸。實際應用表明,系統架構設計合理,關鍵技術應用可行。

關鍵詞:即時通信;對等網絡;TCP/UDP;PNRP;DirectShow

DOI:10.11907/rjdk.172275

中圖分類號:TP319 文獻標識碼:A 文章編號:1672-7800(2017)009-0151-03

Abstract:Due to its advantages of non-centrality, identity equivalence, scalability, P2P technology has gradually attracted more attention in the field of instant messaging. Instant messaging system has been widely applied in certain areas based on P2P technology, such as personal communication, business negotiation, enterprise management and so on. With the purpose of improving systems function and enhancing development efficiency, some key technologies and application methods of establishing completely equivalent P2P topology in .NET platform are under research and analysis. By programming with PNRP protocol, peer node discovery is realized. The work of collecting and compressing audio and video data with packaged DirectShow is finished as well. In the end, data effective transmission is solved with the support of TCP/UDP protocol and multithread technology. It can be proved that systems architecture is reasonable, and the application of key technology is feasible and effective.

Key Words:instant messaging; P2P; TCP/UDP; PNRP; DirectShow

0 引言

即時通信系統的發展,滿足了人們對信息交流實時性、多樣性、有效性需求。其中,P2P即時通信系統利用P2P技術及網絡通信技術,以計算機網絡為載體,以弱化或消除服務器分工為前提,以實現交互雙方便捷有效的文字、圖像、音視頻信息通信為目的,在計算機網絡與通信領域受到廣泛關注,主流產品包括MSN、騰訊QQ、Skype等。

局域網即時通信系統具有輕型、高效、便利、易管理等特點,較多服務于校園網、企業網領域,例如建設多人視頻會議平臺、網絡教學平臺、企業內部服務平臺等,這些系統大多依賴服務端的管理或協調功能運作[1]。本文討論的即時通信系統是基于.NET平臺開發的一種無服務器的完全對等型P2P通信應用軟件,重點分析了系統功能實現過程中的對等節點發現、音視頻數據采集及傳輸、網絡消息管理等解決方案。

1 即時通信系統架構及功能

1.1 系統架構選擇

P2P架構系統優勢是對等和分布。隨著P2P技術的發展,絕大多數即時通信系統功能實現都建立在P2P方式架構之上。使用P2P方式架構的系統可分為單純型P2P及混合型P2P兩大類,區別在于是否依賴于專用服務器[2]。

以騰訊QQ為代表的傳統即時通信軟件數據傳輸采用P2P技術,具有集中式P2P網絡拓撲結構,客戶端通信需要索引服務器的協調配合。而以Skype為代表的P2P VoIP軟件,則是從連接建立到數據傳輸過程中都采用P2P實現,建立混合式P2P網絡拓撲結構,通信節點根據計算能力不同設立不同的分工。兩者都屬于混合型P2P系統,需要服務器完成分發或存儲,同時還要解決網絡中地址的轉換(NAT)問題[3]。

PNRP協議的出現,更好地支持了單純型P2P系統發展,為開發P2P應用程序提供了新的解決途徑[4]。單純型P2P系統所有節點都是對等的,任何一個節點只要安裝了同一個P2P應用軟件,就可和其它安裝此軟件的節點直接通信,節點的管理機制更加簡化。但由于PNRP全局云基于IPv6協議,因此,在IPv6尚未完全普及的今天,PNRP協議較多應用在本地云系統中[2]。考慮到網絡復雜性控制,本文選擇建立單純型P2P局域網即時通信系統。

1.2 系統功能分析

單純型P2P系統可分為登錄模塊、通信模塊、消息存儲與管理模塊及可擴展模塊,見圖1。

相關模塊的實現及對應的關鍵技術支持密不可分,各模塊具體功能如下:endprint

(1)登錄模塊:實現對等節點的注冊與注銷。對等節點通過登錄模塊,以IP地址及端口為唯一標識,加入或退出網絡拓撲,同時完成用戶在線狀態的實時更新,在通信列表中能查看到在線用戶信息。對初次登錄節點生成新的本地存檔文件,用于保存通信記錄。重新登錄時,更新該文件相關數據。

(2)通信模塊:包含文本、音頻、視頻3種通信方式,是系統的核心模塊,分為音視頻處理框架和即時通信協議兩部分。音視頻處理框架集成了音視頻采集、音視頻編解碼、音視頻分流控制、音視頻數據流網絡擁塞控制等技術模塊,能夠完成音視頻數據流的采集、編碼、分流等基本處理流程。即時通信協議則負責為音視頻數據協商傳輸通道,在協商好的傳輸通道上建立對應連接,從而為音視頻數據的順暢傳輸提供保障。

(3)消息存儲與管理模塊:用本地XML文檔存儲用戶信息及通信消息[5]。該文檔的作用類似于日志文件,記載通信數據,可用于通信記錄查詢、用戶行為分析等功能。

(4)可擴展模塊:包括消息群發、文件傳輸、圖像截取、音視頻錄制等,可擴展系統功能。

2 關鍵技術分析

2.1 PNRP協議編程

PNRP是微軟公司設計的基于IPv4和IPv6的點對點協議,提供了安全靈活的動態名稱注冊和名稱解析[6]。系統登錄模塊本質就是完成局域網中對等節點名稱的注冊與解析,可基于.NET平臺的PNRP協議編程實現。

.NET平臺的System.Net.PeerToPeer及System.Net.PeerToPeer.Collaboration命名空間包含了實現PNRP的類。對等節點名稱注冊及名稱解析是完成PNRP資源發現的關鍵,處理流程如圖2所示。

2.1.1 名稱注冊

用戶登錄過程即對應名稱注冊。將對等名稱發布到云中,以便其它對等節點解析,主要涉及到PeerName類、PeerNameRegistration類,前者用于構建對等名稱實例對象,后者用于完成對等名稱實例注冊。其中,設定Peer端點所有連接本機的PNRP群及注冊PNRP Peer Name到PNRP Cloud中的代碼為:

peerNameRegistration.Cloud = Cloud. Available; //設定Cloud的屬性值

peerNameRegistration.Start(); //調用Start()方法完成注冊

2.1.2 名稱解析

名稱解析是利用對等名稱獲取注冊到云中的對等節點的IP地址和端口過程。完成名稱解析,則完成了通信節點定位,可通過PeerNameResolver類的Resolve方法實現:

PeerNameRecordCollection recColl = myRes.Resolve(myPeer)

由于P2P網絡允許參與其中的各個對等用戶自主加入和退出,為實現在線對等節點信息實時更新,需要使用多線程編程技術完成名稱實時解析,主要涉及到委托回調機制。

2.2 DirectShow與音視頻信息處理

音視頻信息處理框架設計能有效保證系統功能的多樣化,DirectShow技術為音視頻信息處理提供了高效的解決方法[7]。

2.2.1 .NET對DirectShow封裝

為使C#開發者能方便使用DirectShow,.NET對DirectShow系統框架設計了C#開源封裝。利用DirectX.Capture(基于DirectShow.Net的類庫)及DShowNET(DirectShow的組件封裝類)實現DirectShow的各種功能[7]。

2.2.2 音視頻信息處理

根據實際應用需求,用戶可完成純文本/語音通信或音視頻實時通信,需要分開建立文本、音頻及視頻傳輸模塊,音視頻模塊的數據處理流程基本類似[8]。音視頻處理模塊的Filter Graph鏈路、各功能塊Filter及數據流處理流程見圖3。

過濾器圖表提供了音視頻數據的轉換輸出流程[9]。源過濾器負責采集原始數據,經由轉換過濾器處理數據并生成輸出流,通過提交過濾器接收數據,將數據提交給外設呈現。DirectX.Capture類庫通過Filters類構建音視頻的源Filter、音視頻壓縮Filter,通過Capture類實現音視頻數據的相關處理[10]。

由源過濾器到轉換過濾器的實現,主要包括音視頻設備的識別、基本屬性的設置、數據采集、音視頻壓縮Filter的創建等過程。

(1)數據采集。Capture類定義了Start()和Stop()方法,實現數據采集的開始與停止控制。利用創建的過濾器圖表管理器(Filter Graph Manager)可引出ImediaControl接口,該接口是DirectShow的常用接口,用于控制媒體流在FilterGraph中的流動,從而實現對應的Start()及Stop()方法,來開啟或停止音視頻數據的采集。另外視頻幀圖像的獲取,可以利用Sample Grabber過濾器的一個接口IsampeGrabberCB來實現。

(2)創建音視頻壓縮Filter。音視頻壓縮的實現過程是安裝需要的音視頻編解碼器,DirectX.Capture可枚舉出相應的壓縮Filter,由AudioCompressor和VideoCompressor屬性分別記錄對應設定值。這兩個屬性通過DirectShow的IBaseFilter接口定義,用來實現數據壓縮的處理[11]。音頻壓縮采用G.729標準,視頻壓縮采用H.264壓縮標準。

從音視頻壓縮Filter的定義方式可看出,壓縮標準的選擇需要在數據采集前就完成設定,否則系統內部的FilterGraph會因改變而重建,可能造成有效數據的丟失。endprint

(3)DirectShow音視頻同步播放控制。由于視頻比音頻的數據量大,音頻數據比視頻數據傳輸速率快這一特性,使得音視頻同步成為音視頻通信的關鍵技術。DirectShow通過給媒體數據加蓋時間戳來實現音頻和視頻的同步播放,但局域網中音視頻的采集方式具有間隔均勻(采樣頻率決定)、實時性等特點,可適當簡化數據同步控制環節。

2.3 傳輸層技術應用

P2P即時通信系統中,通信節點間可直接發送文本消息或進行音、視頻實時通信。區分各類數據信息的關鍵在于對應數據類型的定義不同,數據的通信交互流程基本原理是相同的。

對比TCP協議及UDP協議各自優勢,選擇采用UDP方式收發通信消息,監聽控制則選用TCP協議來保證可靠傳輸。在有效接收文本消息的同時,將數據保存在XML文檔中。

2.3.1 文本信息傳輸

用戶可利用UdpClient對象負責發送和接收消息。在System.Net.Sockets命名空間下的UdpClient類對基礎Socket進行封裝,提供發送和接收UDP數據報的方法。在發送線程中,利用UdpClient對象的Send方法,將UDP數據報發送到位于指定遠程結點的主機;在接收線程中,利用該對象的Receive方法來獲取從遠程主機發送的UDP數據報。UDP方式不需要建立連接,可以在任何時候直接向網絡中的任意主機發送UDP數據。

2.3.2 音視頻數據實時傳輸

在建立網絡傳輸通路時,需要分別創建音視頻數據的Socket連接,對應的數據傳輸也是分離的。利用DirectShow技術,在構建Filter Graph前,將Socket相關操作都放入音視頻的接收/發送Filter中,可簡化設計流程。

3 結語

本文對.NET平臺下實現單純型P2P即時通信系統的關鍵技術進行了研究,包括P2P網絡技術、PNRP名稱解析協議及基于DirectShow技術的音視頻處理等,為P2P應用軟件開發提供了一種有效的解決方法。由于條件限制,系統功能還有待進一步完善,例如消息存儲與管理功能中,可考慮采用數據緩存機制,減少XML文檔讀寫頻率,對于音視頻數據可添加錄制、保存功能等。另外,僅討論了局域網的P2P通信,對位于不同子網的對等節點通信還需進一步研究與探討。

參考文獻:

[1] 張鵬.P2P技術在即時通信中的應用及安全策略[J].信息通信,2015(1):178-179.

[2] 鄭阿奇.Visual C#網絡編程[M].北京:電子工業出版社,2012:134-145.

[3] 張春紅,裘曉峰,弭偉,等.P2P技術全面解析[M].北京:人民郵電出版社,2010:150-152.

[4] 段明瑋,王振,周弟偉.基于PNRP的P2P技術實現方案[J].科技研究,2012(11):109-110.

[5] 祝遠緩.基于P2P的即時通信系統的研究[D].長春:東北師范大學,2012.

[6] 范先龍,郭傳雄,遲學斌.一種基于Windows Peer to Peer網絡的VoIP系統及其實現[J].計算機應用研究,2006,11(4):220-223.

[7] 崔龍衛.基于P2P的音視頻通訊系統的研究與設計[D].武漢:武漢理工大學,2011.

[8] 雷文禮,任新成,張棟,等.基于DirectShow的網絡視頻點播系統的設計與實現[J].現代電子技術,2015,38(7):31-33.

[9] 王新蕾,劉乃豐,夏濟海.基于DirectShow的視頻處理Filter組件設計與實現[J].現代電子技術,2016,39(13):46-50.

[10] 方文驍,張在琛.基于.NET框架的網絡視頻處理[J].計算機工程,2011(37):359-361.

[11] 孟月華,鄧基園.DirectShow技術的應用研究與開發[J].計算機系統應用,2013,22(6):196-199.

(責任編輯:杜能鋼)endprint

主站蜘蛛池模板: 在线看免费无码av天堂的| 五月天综合网亚洲综合天堂网| a欧美在线| 亚洲Av综合日韩精品久久久| 日韩精品一区二区三区swag| 99无码中文字幕视频| 亚洲美女一区| 免费观看男人免费桶女人视频| 成人免费一级片| 中日韩欧亚无码视频| 亚洲成aⅴ人在线观看| 亚洲欧洲日韩久久狠狠爱| 在线无码av一区二区三区| 日韩精品久久久久久久电影蜜臀| 扒开粉嫩的小缝隙喷白浆视频| 亚洲aⅴ天堂| 国产无码高清视频不卡| 黄色a一级视频| 呦系列视频一区二区三区| 香蕉精品在线| 最新国产精品第1页| 欧洲日本亚洲中文字幕| 毛片三级在线观看| 中文字幕亚洲专区第19页| 九九久久精品国产av片囯产区| 人与鲁专区| 中文字幕人妻无码系列第三区| 亚洲毛片网站| 成人午夜久久| 超清无码一区二区三区| 97成人在线视频| 国产拍揄自揄精品视频网站| 国产成人AV男人的天堂| 欧美精品H在线播放| 片在线无码观看| 四虎精品黑人视频| 色噜噜在线观看| 免费无遮挡AV| 美女国产在线| 97久久免费视频| 成人福利在线观看| 色婷婷电影网| 中国一级特黄视频| 91成人在线观看| 国产成人精品男人的天堂| 婷婷成人综合| 强乱中文字幕在线播放不卡| 激情爆乳一区二区| 97人人做人人爽香蕉精品| 91欧美在线| 欧美全免费aaaaaa特黄在线| 97在线公开视频| 欧美成人综合视频| 日韩美女福利视频| 亚洲最黄视频| 国产高清免费午夜在线视频| 青青草综合网| 四虎永久免费在线| 久久综合激情网| 特级毛片8级毛片免费观看| 国产成人禁片在线观看| 亚洲成人在线网| 成人福利在线视频| 日本午夜视频在线观看| 国产精品亚欧美一区二区三区 | 国产你懂得| 成人综合在线观看| 特级做a爰片毛片免费69| 国产福利小视频在线播放观看| 欧美精品成人一区二区视频一| 亚洲香蕉伊综合在人在线| 潮喷在线无码白浆| 国产精品视频第一专区| 亚洲天堂在线免费| 亚洲天堂网在线视频| 亚洲AⅤ波多系列中文字幕| 久久国产精品影院| 日韩毛片免费| 国产成人精品无码一区二| 亚洲视频免费播放| 不卡无码h在线观看| 亚洲人视频在线观看|