欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 目前幾種常見(jiàn)穿NAT的方法分析 [打印本頁(yè)]

作者: 51黑tt    時(shí)間: 2016-3-5 18:50
標(biāo)題: 目前幾種常見(jiàn)穿NAT的方法分析
目前幾種常見(jiàn)穿NAT的方法分析 收藏
        NAT的出現(xiàn)在一定程度上解決了發(fā)展中國(guó)家網(wǎng)絡(luò)地址資源不足的情況,然而,這種解決方法也帶來(lái)了一些問(wèn)題,尤其是對(duì)網(wǎng)絡(luò)要求十分苛刻的流媒體傳輸方面,這些問(wèn)題變得尤為突出(什么是NAT請(qǐng)參考BOLG的另外一篇文章),在一個(gè)帶有NAT結(jié)構(gòu)的網(wǎng)絡(luò)環(huán)境中,不能實(shí)現(xiàn)P2P(peer to peer也就是點(diǎn)對(duì)點(diǎn))的數(shù)據(jù)傳輸是VOIP的一個(gè)硬傷,而如何穿過(guò)這些NAT,實(shí)現(xiàn)數(shù)據(jù)的點(diǎn)對(duì)點(diǎn)傳輸也成了VOIP開(kāi)發(fā)人員不得不面對(duì)的一個(gè)頭疼問(wèn)題.
       目前,解決NAT問(wèn)題的方法大體有四種(按照我的個(gè)人觀點(diǎn),不同意的請(qǐng)拍磚):修改設(shè)備、輔助探測(cè)、設(shè)備支持和流中轉(zhuǎn)。下面我來(lái)分別說(shuō)明。
       (1)修改設(shè)備。這種方法也就是通過(guò)修改防火墻、router等方法,對(duì)在有NAT情況下,實(shí)現(xiàn)P2P的數(shù)據(jù)傳輸方式。優(yōu)點(diǎn)很明顯,不用對(duì)UA做任何修改,缺點(diǎn)也同樣突出:不可能指望所有的防火墻或者router都支持。這種方法不牽扯到技術(shù)方面的東西,更多的工作交了防火墻或者router開(kāi)發(fā)人員,我不想多說(shuō)。
       (2)輔助探測(cè)。和第一種方法相比較,這種方法不需要對(duì)防火墻或者router做任何修改,但UAC需要做一些配合,才能完成NAT的穿越。STUN是這種穿越方式的典型代表。STUN是RFC為了解決NAT而做出的一個(gè)標(biāo)準(zhǔn)(你可以在RFC下載到相關(guān)文擋,在我的開(kāi)發(fā)資源里面有連接),符合這個(gè)標(biāo)準(zhǔn)的UAC和服務(wù)器,依靠他們之間的一些信息交換,可以確定出UAC在公網(wǎng)的IP地址和端口,從而達(dá)到穿越NAT實(shí)現(xiàn)P2P的目的。STUN不需要修改網(wǎng)絡(luò)的任何部分,也可以在多層NAT下,實(shí)現(xiàn)P2P(注:并不是真正意義上的P2P),是一種很可靠的NAT解決方法,因此,STUN在NAT的初期得到了迅速的發(fā)展,你可以找到很多支持STUN的UAC和server資源。STUN的缺點(diǎn)也是顯而易見(jiàn)的:首先,他需要UAC支持。其次用這種方法必須要得到服務(wù)器的支持并且要求UAC不停的向一個(gè)公網(wǎng)IP發(fā)送數(shù)據(jù)包以維持端口(keep alive)。而這幾個(gè)都不是STUN的硬傷,真正置STUN于死地的是一種叫對(duì)稱NAT的NAT類型,對(duì)于這種NAT類型,STUN 無(wú)能為力。在NAT的早期,這種對(duì)稱NAT是很少的,然而,隨著對(duì)網(wǎng)絡(luò)安全要求的提高,目前生產(chǎn)的NAT幾乎全是對(duì)稱NAT,這也就等同于宣布STUN的死亡。
      (3)設(shè)備支持。這種方法和第一種有些類似,但是區(qū)別也是很大的,我用這種方法的典型實(shí)例:UPNP來(lái)說(shuō)明。UPNP是微軟和Intel力推的一種標(biāo)準(zhǔn)(顯然這兩個(gè)家伙大家都不喜歡,但這并不意味著它們的東西不好),你可以認(rèn)為這種標(biāo)準(zhǔn)是另一種USB標(biāo)準(zhǔn),只要你符合這種標(biāo)準(zhǔn),你生產(chǎn)的USB設(shè)備可以被世界上任何一天USB設(shè)備使用(我不想討論主從的問(wèn)題)。而UPNP是網(wǎng)絡(luò)設(shè)備的USB標(biāo)準(zhǔn),只要你生產(chǎn)的設(shè)備符合UPNP標(biāo)準(zhǔn),那么它就變成了可以連接到網(wǎng)絡(luò)上的,通過(guò)網(wǎng)絡(luò)控制的USB設(shè)備,你用就可以,而不需要關(guān)心如何用,怎么用。
      第一次看到UPNP的協(xié)議文擋的時(shí)候,我就對(duì)自己說(shuō):這是個(gè)好東西。尤其是當(dāng)我看到,目前絕大部分(近期生產(chǎn))網(wǎng)絡(luò)設(shè)備都支持UPNP的時(shí)候,我就更加堅(jiān)信了我的觀點(diǎn)。
     事實(shí)上,我們穿越NAT所需要用的只是UPNP協(xié)議族中的一個(gè):WANIPCONNECT SERVICE,也就是互連網(wǎng)接入服務(wù)(請(qǐng)?jiān)试S我這么翻譯,雖然這么有點(diǎn)不恰當(dāng),但是更加通俗)。你可以理解為USB設(shè)備有N多,而我們用的是U盤一樣。通過(guò)這個(gè)協(xié)議,你可以控制互連網(wǎng)接入設(shè)備(通常是router),來(lái)做一些特殊操作,打開(kāi)一個(gè)IP地址影射來(lái)實(shí)現(xiàn)P2P。這個(gè)過(guò)程很簡(jiǎn)單,只是發(fā)幾個(gè)符合要求的數(shù)據(jù)包給UPNP服務(wù)設(shè)備,但功能卻很強(qiáng)大,的確很迷人。(你可以在開(kāi)發(fā)資源里面找到UPNP的相關(guān)連接)
     UPNP的優(yōu)點(diǎn)如上所說(shuō),不需要在累述,但缺點(diǎn)也是有的:1、他需要UAC支持,完成對(duì)UPNP設(shè)備的控制,令人高興的是,這不是很難。2、這種方法不支持多層NAT嵌套。3、總會(huì)碰到不支持UPNP或者號(hào)稱支持,實(shí)際上卻不支持的UPNP設(shè)備。
     (4)流中轉(zhuǎn)。流中轉(zhuǎn)是依靠一個(gè)公網(wǎng)服務(wù)器對(duì)兩個(gè)UAC的RTP流進(jìn)行中轉(zhuǎn)的方式解決NAT問(wèn)題(注意:只是解決,而不是實(shí)現(xiàn)P2P),在這種方式下,UAC不需要做任何修改(或者很少修改),并且可以穿越所有的NAT。典型的是outbound。也就是具有公網(wǎng)IP的一臺(tái)RTP流轉(zhuǎn)發(fā)服務(wù)器。如果outbound server和sip server 沒(méi)有合成到一個(gè)程序中,那么你必須首先把信令發(fā)送給outbound server,其它的你不需要再關(guān)心。如果是已經(jīng)合成了一個(gè),那你可以象在公網(wǎng)中一樣使用你的UAC,不必再考慮NAT的問(wèn)題(舒服吧)。
      流轉(zhuǎn)發(fā)(outbound)方式簡(jiǎn)單,可靠。它使你不再需要考慮NAT的任何東西,可以穿越所有NAT,并且UAC不需要做任何修改,目前網(wǎng)絡(luò)上有很多SERVER都是工作在這種方式下。但是它的代價(jià)也是昂貴的:它不能實(shí)現(xiàn)P2P。這在兩個(gè)UAC距離服務(wù)器很遠(yuǎn)的情況下,會(huì)有高的網(wǎng)絡(luò)延時(shí)和高的丟包率,而這種環(huán)境下的語(yǔ)音或者視頻效果,可能是你不能忍受的。
      由于我水平有限,我所知道的NAT解決方案就這四種。如果你問(wèn)我:xxx方式(比如ICE)怎么沒(méi)有的時(shí)候,請(qǐng)您先考慮下這種方法是不是上面方法中的一種或幾種的組合(比如汽車是一種交通工具,船也是一種,而我并不認(rèn)為你把汽車和船弄到了一起就是種新的交通工具),當(dāng)您知道有別的好的NAT解決方案的時(shí)候,麻煩您通知我下,在此謝過(guò)






歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1