久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2182|回復: 0
收起左側

目前幾種常見穿NAT的方法分析

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

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕日韩一区 | 国产高清一区 | 成人在线一级片 | 日韩成人免费在线视频 | 天堂久久天堂综合色 | 日本精品一区二区三区在线观看视频 | 久久久久国产一区二区三区四区 | 国际精品久久 | 国产成人综合在线 | 久草在线免费资源 | 久久人人网 | av片在线观看网站 | 精品日韩| 欧美日韩中 | 日本成人一区二区 | 亚洲性人人天天夜夜摸 | 日韩在线三级 | 国产精品欧美一区二区三区不卡 | www.国产一区 | 波多野结衣一区二区 | 国产精品一区二区av | 亚洲精品一区二区 | 一级大片网站 | 天堂免费看片 | 成人一级黄色毛片 | www成人免费视频 | 久久极品| 亚洲 成人 在线 | 精品乱码一区二区三四区视频 | 亚洲一区二区中文字幕 | 国产区视频在线观看 | 黑人久久久 | 久久久久国产精品人 | 亚洲精选一区二区 | 中国美女撒尿txxxxx视频 | 欧美日韩久久精品 | 国产成人一区二区三区精 | 亚洲首页 | 亚洲久草视频 | 日韩一区二区三区精品 | www国产成人 |