視頻通訊 IP組播技術

在Internet上,多媒體業務諸如:流媒體,視頻會議和視頻點播等,正在成爲信息傳送的重要組成部分。點對點傳輸的單播方式不能適應這一類業務傳輸特性--單點發送多點接收,因爲服務器必須爲每一個接收者提供一個相同內容的IP報文拷貝,同時網絡上也重複地傳輸相同內容的報文,佔用了大量資源。在這種情況下組播(multicast)應運而生,它的出現解決了一個主機向特定的多個接收者發送消息的方法。1989年,IETF通過RFC1112,定義了Internet上的組播方式。
主機組的成員可以動態變化,主機有權選擇加入或者退出某個主機組。主機可以加入多個主機組,也可以向自己沒有加入的主機組發送數據。主機組有兩種:永久組和臨時組。永久組的IP地址是周知的,由Internet管理機構分配,是保留地址。臨時組的地址則使用除永久組地址外的非保留D類地址。
IP組播分組在互聯網上的轉發由支持組播的路由器來處理。主機發出的IP組播分組在本子網內被所有主機組成員接收,同時與該子網直接相連的組播路由器會把組播報文 轉發到所有包含該主機組成員的網絡上。組播報文傳遞的範圍由報文的生存期值(TTL, Time-to-Live)決定,如果TTL值等於或者小於設置的路由器端口TTL門限值(TTL Threshold),路由器將不再轉發該報文。
單個數據流可以發送到多個客戶端的組播能力已成爲大多數多媒體應用的傳輸手段。組播技術利用一個IP地址使IP數據報文 發送到用戶組。IP組播採用了特殊定義的目的IP地址和目的MAC地址。IGMP爲客戶端提供加入和離開組播組的方式。CGMP使路由器爲交換機配置組播 轉發表,並告訴交換機當前的組播成員。指派路由器根據對網絡中的組播成員的分佈和使用的不同採用密集模式DM或稀疏模式SM組播路由協議來構造組播的分佈 樹,而這個分佈樹將在源子網和組播組之間確定一條唯一路徑以提高數據傳輸效率。
IP組播技術需要三層交換機,或路由器支持,通常應用於專用網絡,如:教育網、**網以及企業內部網等,使用IP組播技術可以極大的降低數據發送方的帶寬要求,最大的好處是可以讓數據接收方的數量成千上萬,而不會造成網絡的阻塞。
AnyChatPlatform Core SDK V4.0新增了對IP組播技術的支持,下面介紹如何使用相關的API接口,典型的加入多播組,並向多播組發送數據的代碼如下:

1.//設置本地組播策略
2.DWORD dwMultiCastPolitic = 1;
3.BRAC_SetSDKOption(BRAC_SO_NETWORK_MULTICASTPOLITIC,(constchar*)&dwMultiCastPolitic,sizeof(DWORD));
4.
5.//加入多播組
6.DWORD dwFlags = BRAC_MCFLAGS_JOINGROUP | BRAC_MCFLAGS_SENDDATA |BRAC_MCFLAGS_RECVDATA;
7.BRAC_MultiCastControl("224.2.3.4",9810, "",5, dwFlags);

上面的代碼中“dwFlags”標誌指示加入多播組“224.2.3.4:9810”,本地的數據通過該多播組進行傳輸,同時,自己也從該多播組接收其它用戶的音視頻數據。

當需要本地發送組播數據時,設置本地組播策略是必須的,因爲系統默認是採用服務器所配置的網絡數據傳輸策略(AnyChatCoreServer.ini中的“RoutingPolicy”配置項)進行數據發送,如不設置本地組播策略,則不會向組播地址發送數據,設置之後,可以將本地的數據發送多個組播地址和端口,如下面的代碼表示音視頻數據將向“224.2.3.4:9810”、“224.2.3.4:9812”兩個組播端口廣播數據:

1.//設置本地組播策略
2.DWORD dwMultiCastPolitic = 1;
3.BRAC_SetSDKOption(BRAC_SO_NETWORK_MULTICASTPOLITIC,(constchar*)&dwMultiCastPolitic,sizeof(DWORD));
4.
5.//加入多播組
6.DWORD dwFlags = BRAC_MCFLAGS_JOINGROUP | BRAC_MCFLAGS_SENDDATA;
7.BRAC_MultiCastControl("224.2.3.4",9810, "",5, dwFlags);
8.BRAC_MultiCastControl("224.2.3.4",9812, "",5, dwFlags);
當系統有多塊網卡,而需要向其中某一塊網卡連接的網絡進行組播時,可通過“BRAC_MultiCastControl”的第三個參數來指定即可,第三個參數是指定網卡的IP地址。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章