基于主機(jī)的跨網(wǎng)段IP多播技術(shù)

一踱侣、多播技術(shù)簡介和問題的提出

多播(Multicasting)也叫做組播或多址廣播粪小,是當(dāng)前網(wǎng)絡(luò)技術(shù)中的一個熱門話題,它所提供的一對多和多對多的數(shù)據(jù)傳輸技術(shù)在很多領(lǐng)域有著越來越廣泛的應(yīng)用抡句,例如多媒體網(wǎng)絡(luò)教學(xué)探膊、視頻會議、網(wǎng)絡(luò)游戲等待榔。

盡管目前多播技術(shù)在局域網(wǎng)中已經(jīng)得到了很好的應(yīng)用逞壁,但是在Internet上,多播的使用受到一定的限制锐锣‰绱常跨越不同網(wǎng)段的多播應(yīng)用牽涉到比較復(fù)雜的問題,其中最重要的一點是多播數(shù)據(jù)的轉(zhuǎn)發(fā)取決于路由器雕憔,路由器利用IGMP協(xié)議以及與其他路由器之間的通信來決定是否向它的下游路由器或與它直接相連的網(wǎng)段轉(zhuǎn)發(fā)多播數(shù)據(jù)包姿骏,同時數(shù)據(jù)的轉(zhuǎn)發(fā)還要取決于路由器接口上配置的TTL閾值。而目前的情況是仍然有很多路由器上面的配置并不支持轉(zhuǎn)發(fā)多播數(shù)據(jù)包斤彼,這就使得多播數(shù)據(jù)無法通過該路由器在不同網(wǎng)段之間傳輸分瘦,多播程序也就無法正常的工作蘸泻。造成這種狀況的原因有技術(shù)上的(例如多播路由協(xié)議還不成熟,還處于不斷的改進(jìn)中)嘲玫,也有其他方面的悦施。

要從根本上解決這一問題,只有依賴于多播技術(shù)的進(jìn)一步發(fā)展以及ISP改變路由器的配置去团。但是在當(dāng)前情況下可以采取一些較為簡便的替代方案臨時的解決這個問題歼争,其中的一種方案就是基于主機(jī)的跨網(wǎng)段多播(Host-BasedMulticast Solution),也稱為應(yīng)用程序級的多播渗勘。簡單的說,就是在主機(jī)端的應(yīng)用程序中計算所有多播成員的位置信息并按照一定的方法構(gòu)造和優(yōu)化網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)俩莽,當(dāng)發(fā)送多播數(shù)據(jù)時旺坠,對于那些無法直接接收多播數(shù)據(jù)的成員使用單播代替多播來進(jìn)行發(fā)送,以避開路由器的影響扮超。這種方法實際上就是以多播和單播的混和使用來模擬原來純粹的多播應(yīng)用


二取刃、系統(tǒng)的總體設(shè)計基本思路

在整個多播組中的所有節(jié)點(成員)可分為三類:一個特殊的成員,稱之為中心節(jié)點出刷,對應(yīng)于應(yīng)用中主要的數(shù)據(jù)源節(jié)點璧疗;多個的中繼節(jié)點,與中心節(jié)點之間采用單播進(jìn)行數(shù)據(jù)轉(zhuǎn)送馁龟,再通過多播轉(zhuǎn)發(fā)給其他節(jié)點崩侠;除了中心節(jié)點和中繼節(jié)點以外的其余節(jié)點就是普通節(jié)點,它們通過多播從中心節(jié)點或中繼節(jié)點接收數(shù)據(jù)坷檩。

為了降低控制的復(fù)雜程度却音,系統(tǒng)采用了集中控制方式,也就是只在中心結(jié)點上構(gòu)造和管理整個拓?fù)浣Y(jié)構(gòu)矢炼,在其他成員上并不保存拓?fù)湫畔⑾灯啊C總€成員在登錄時連接到中心節(jié)點上,并報告各自的相關(guān)信息句灌,供中心節(jié)點計算和構(gòu)造拓?fù)浣Y(jié)構(gòu)夷陋。這種控制方式可以避免在各成員之間傳遞拓?fù)湫畔⒁约靶畔⒌耐降膯栴},從而降低系統(tǒng)的復(fù)雜程度胰锌。

在傳輸數(shù)據(jù)時最大限度的利用多播骗绕,將所有節(jié)點分成多個多播小組,組內(nèi)的任一個成員發(fā)送的多播數(shù)據(jù)是可以被組里其他成員接收到的资昧。一般情況下爹谭,一個多播小組是由處于同一子網(wǎng)下的成員構(gòu)成的。每個多播小組都使用相同的一個多播地址榛搔。由于每個小組處于不同的多播傳播域诺凡,因此使用相同的地址并不會引起沖突东揣。從這樣的每個多播小組中按一定的規(guī)則(到中心節(jié)點的延時最短)選出一個成員作為中繼節(jié)點。中繼節(jié)點使用單播接收從中心節(jié)點傳送過來的數(shù)據(jù)腹泌,然后再使用多播轉(zhuǎn)發(fā)給它所在的小組的每一個成員嘶卧,也就是說中繼節(jié)點肩負(fù)著轉(zhuǎn)發(fā)數(shù)據(jù)的任務(wù)。

由于在中心結(jié)點和各個中繼節(jié)點之間是使用單播方式進(jìn)行數(shù)據(jù)傳輸凉袱,為了提高傳輸性能芥吟,對中心節(jié)點和所有中繼節(jié)點之間的拓?fù)浣Y(jié)構(gòu)進(jìn)行優(yōu)化。

有關(guān)優(yōu)化的設(shè)計思路如下:設(shè)置一個延時閾值(該閾值可以根據(jù)所傳輸數(shù)據(jù)的要求動態(tài)改變)专甩,當(dāng)一個中繼節(jié)點到中心節(jié)點的延時小于該閾值時就直接從中心節(jié)點接收單播數(shù)據(jù)钟鸵。若是一個中繼節(jié)點到中心節(jié)點的延時超過了該閾值,那么它就要檢測它到其他標(biāo)準(zhǔn)中繼節(jié)點(指那些到中心節(jié)點的延時沒超過閾值的中繼節(jié)點)的延時涤躲,選取其中延時最小的一個中繼節(jié)點來作為它和中心節(jié)點之間的中轉(zhuǎn)站棺耍。

中繼節(jié)點必須負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)發(fā),因此有比較重要的地位种樱∶膳郏基于系統(tǒng)的可靠性考慮,中心結(jié)點要保持與中繼節(jié)點的控制通信嫩挤。中心節(jié)點及時的了解中繼節(jié)點的狀態(tài)害幅,在一個中繼節(jié)點崩潰后迅速的作出反應(yīng),用另外的節(jié)點來代替它岂昭,從而確保系統(tǒng)能繼續(xù)正常工作以现。

實際數(shù)據(jù)傳輸時,并不是每個中繼節(jié)點都需要使用多播轉(zhuǎn)發(fā)數(shù)據(jù)约啊,而是根據(jù)整個組的拓?fù)淝闆r來決定叼风。只有當(dāng)一個中繼節(jié)點所在的多播小組中還有其他普通節(jié)點時,這個中繼節(jié)點才進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)棍苹,這樣可以避免不必要的數(shù)據(jù)發(fā)送造成網(wǎng)絡(luò)性能下降无宿。

當(dāng)成員分布較為集中,也就是每個多播組中含有較多成員的情況下枢里,可以比較好的利用多播的優(yōu)勢孽鸡,這時系統(tǒng)的數(shù)據(jù)傳輸效率也就比較好。若是成員分布較為分散栏豺,就需要比較多的使用單播傳送彬碱,這樣就會降低系統(tǒng)的數(shù)據(jù)傳輸效率。在最壞的情況下奥洼,即任何兩個節(jié)點都不處在同一個多播組中巷疼,這時整個系統(tǒng)就退化成完全的單播傳送。


三灵奖、系統(tǒng)總體結(jié)構(gòu)

系統(tǒng)主要分為運行在中心結(jié)點和非中心節(jié)點(包括中繼節(jié)點和普通節(jié)點)上的兩個部分嚼沿。由于中心節(jié)點還負(fù)責(zé)整個拓?fù)浣Y(jié)構(gòu)的建立和維護(hù)估盘,因此它上面運行的部分較為復(fù)雜,而非中心節(jié)點上需要進(jìn)行的處理較少骡尽,因此也就相對較為簡單遣妥。中心節(jié)點部分主要可以分為四個模塊:數(shù)據(jù)通信模塊,控制通信模塊攀细,組成員管理模塊和拓?fù)浣Y(jié)構(gòu)管理模塊箫踩。由于非中心節(jié)點不需要了解和管理拓?fù)湫畔ⅲ虼朔侵行墓?jié)點部分只包括三個模塊:管理模塊谭贪,數(shù)據(jù)通信模塊和控制通信模塊境钟。


來源:http://doc.qkzz.net/article/81e82117-9ee7-42a1-bda1-d8adc28b3a34.htm

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末卷拘,一起剝皮案震驚了整個濱河市叁扫,隨后出現(xiàn)的幾起案子掘托,更是在濱河造成了極大的恐慌辟狈,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仪或,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)凑阶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來衷快,“玉大人宙橱,你說我怎么就攤上這事≌喊危” “怎么了师郑?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長调窍。 經(jīng)常有香客問我宝冕,道長,這世上最難降的妖魔是什么邓萨? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任地梨,我火速辦了婚禮,結(jié)果婚禮上缔恳,老公的妹妹穿的比我還像新娘宝剖。我一直安慰自己,他們只是感情好歉甚,可當(dāng)我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布万细。 她就那樣靜靜地躺著,像睡著了一般纸泄。 火紅的嫁衣襯著肌膚如雪赖钞。 梳的紋絲不亂的頭發(fā)上腰素,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機(jī)與錄音仁烹,去河邊找鬼耸弄。 笑死,一個胖子當(dāng)著我的面吹牛卓缰,可吹牛的內(nèi)容都是我干的计呈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼征唬,長吁一口氣:“原來是場噩夢啊……” “哼捌显!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起总寒,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤扶歪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后摄闸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體善镰,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年年枕,在試婚紗的時候發(fā)現(xiàn)自己被綠了炫欺。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡熏兄,死狀恐怖品洛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情摩桶,我是刑警寧澤桥状,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站硝清,受9級特大地震影響辅斟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜芦拿,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一砾肺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧防嗡,春花似錦变汪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春番官,著一層夾襖步出監(jiān)牢的瞬間庐完,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工徘熔, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留门躯,地道東北人。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓酷师,卻偏偏與公主長得像讶凉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子山孔,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容