黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

STUN協(xié)議簡(jiǎn)介

系統(tǒng) 3440 0

STUN簡(jiǎn)要

STUN (Simple Traversal of UDP over NATs, NAT 的UDP簡(jiǎn)單穿越 是一種網(wǎng)絡(luò)協(xié)議 它同意位于NAT(或多重NAT)后的client找出自己的公網(wǎng)地址。查出自己位于哪種類(lèi)型的NAT之后以及NAT為某一個(gè)本地port所綁定的Internet端port 。這些信息被用來(lái)在兩個(gè)同一時(shí)候處于NAT 路由器之后的主機(jī)之間建立UDP通信。該協(xié)議由RFC 3489定義。

???? 一旦client得知了Internet端的UDPport。通信就能夠開(kāi)始了。假設(shè)NAT是全然圓錐型的,那么兩方中的不論什么一方都能夠發(fā)起通信。假設(shè)NAT是受限圓錐型或port受限圓錐型,兩方必須一起開(kāi)始傳輸。

???? 須要注意的是。要使用STUN RFC中描寫(xiě)敘述的技術(shù)并不一定須要使用STUN協(xié)議——還能夠另外設(shè)計(jì)一個(gè)協(xié)議并把同樣的功能集成到執(zhí)行該協(xié)議的server上。

????? SIP之類(lèi)的協(xié)議是使用UDP分組在Internet上傳輸音頻和/或視頻數(shù)據(jù)的

不幸的是,因?yàn)橥ㄐ诺膬蓚€(gè)末端往往位于NAT之后,因此用傳統(tǒng)的方法是無(wú)法建立連接的。這也就是STUN發(fā)揮作用的地方。

????? STUN是一個(gè)客戶(hù)機(jī)-server協(xié)議 。一個(gè)VoIP電話(huà)或軟件包可能會(huì)包含一個(gè)STUNclient。這個(gè)client會(huì)向STUNserver發(fā)送請(qǐng)求,之后。server就會(huì)向STUNclient報(bào)告NAT路由器的公網(wǎng)IP地址以及NAT為同意傳入流量傳回內(nèi)網(wǎng)而開(kāi)通的port。

????? 以上的響應(yīng)同一時(shí)候還使得STUNclient可以確定正在使用的NAT類(lèi)型—— 由于不同的NAT類(lèi)型處理傳入的UDP分組的方式是不同的

四種主要類(lèi)型中有三種是可以使用的 :全然圓錐型NAT、受限圓錐型NAT和port受限圓錐型NAT——但大型公司網(wǎng)絡(luò)中常常採(cǎi)用的 對(duì)稱(chēng)型NAT(又稱(chēng)為雙向NAT)則不能使用

?

?????? Simple Traversal of User Datagram Protocol (UDP) Through Network

Address Translators (NATs) (STUN)

????? STUN,是為了實(shí)現(xiàn)透明的穿透NAT,而定義的一套協(xié)議 它使本地的內(nèi)網(wǎng)的機(jī)器。具有取得,可以得知它的NAT網(wǎng)關(guān)的IP,NAT類(lèi)型的能力

?

????? 為什么須要STUN:

由于NAT盡管攻克了IP地址稀少的問(wèn)題,可是也帶來(lái)了非常多的問(wèn)題。比方全部P2P應(yīng)用,像文件SHARE。 多媒體 ,和在線游戲等等.

????? 要想穿透NAT,首先知道NAT的一些特性:

NAT分為4種(加上防火墻的話(huà),多幾種情況):

?

?1.全然透明NAT(Full Cone NAT):

????? 從同樣內(nèi)部主機(jī)(IN IPX) +port(IN PORTX)發(fā)送的數(shù)據(jù)MAPING為同樣的IP(OUT IP X)和port(OUT PORT X)發(fā)送帶外網(wǎng).而且從還有一個(gè)server(Y)。假設(shè)直連到MAPING的IP(OUT IP X)和port(OUT PORT X )上,數(shù)據(jù)將會(huì)被轉(zhuǎn)發(fā)到內(nèi)部主機(jī)上. (IN IPX), (IN PORTX).

也就是說(shuō)進(jìn)內(nèi)部網(wǎng)的數(shù)據(jù)包的SPORT,SPORT不受限制

2.受限NAT(Restricted Cone),

??? 從同樣內(nèi)部主機(jī)(IN IPX) +port(IN PORTX)發(fā)送的數(shù)據(jù)MAPING為同樣的IP(X)和port發(fā)送帶外網(wǎng).和全然NAT不同的是。僅僅有當(dāng)為X時(shí),外部機(jī)器的的請(qǐng)求就被轉(zhuǎn)發(fā)到主機(jī)(IN IPX) +port(IN PORTX)。

也就是說(shuō)進(jìn)內(nèi)部網(wǎng)的數(shù)據(jù)包的,SPORT不受限制,SIP受限制,僅僅能為NAT MAP數(shù)據(jù)的IP

3,port受限NAT(Port Restricted Cone)

???? 和受限NAT不同的是。僅僅有當(dāng)外部主動(dòng)請(qǐng)求的的源IP和port,等于內(nèi)部網(wǎng)發(fā)送的請(qǐng)求的目的IP和port。

4.對(duì)稱(chēng)NAT

???? 假設(shè)發(fā)送的包的目的IP AND PORT,那么MAPPING IP AND PORT,將同樣。

內(nèi)部網(wǎng)同一臺(tái)機(jī)器,同一個(gè)port假設(shè)目的地址不同,那么MAPPING的port也不同。所以?xún)H僅有他主動(dòng)連的server才可能知道他的MAPPING后port。別的server假設(shè)想連他僅僅能靠推測(cè)port。

總結(jié):前面3重NAT。MAPING PORT 和 IP,是依據(jù)發(fā)送包的的內(nèi)部網(wǎng)的IP和port決定的。假設(shè)數(shù)據(jù)的內(nèi)網(wǎng)IP和port同樣,那么MAPPING后的port和地址是固定。這個(gè)功能為我們的穿越提供了非常好條件。

第4種NAT,打洞后的MAPPING 地址和port將變地不可靠。非常難穿越

注意SERVERA,和SERVERB是兩個(gè)公網(wǎng)地址。而不是兩臺(tái)機(jī)器.

?

?

STUN協(xié)議 (淺析樣例分析)

主要功能是檢測(cè)是否位于NAT后面。假設(shè)位于NAT后面。經(jīng)過(guò)NAT轉(zhuǎn)換后的地址和port是什么,另外能夠檢測(cè)NAT的類(lèi)型。

???? 基本思想

???? 在私網(wǎng)內(nèi)部安裝一個(gè)STUN client。在公網(wǎng)上安裝一個(gè)STUN Server 。STUN協(xié)議定義了一些消息格式,大體上分成Request/Response,client向server發(fā)送 request,server發(fā)送response給client。

怎樣檢測(cè)STUN client是否在NAT后面呢?原理非常easy,Server在收到client的UDP包以后,Server將接收到該包的地址和port利用udp傳回來(lái)給 client。client把這些地址和port與本機(jī)的ip地址和port進(jìn)行比較。假設(shè)不同,說(shuō)明在NAT后面。否則就位于NAT前面。

為了檢測(cè)不同類(lèi)型的 NAT,STUN協(xié)議定義了一些消息屬性。要求Server有不同的動(dòng)作,比方發(fā)送響應(yīng)的時(shí)候使用不同的IP地址和port,或者改變port等等。 STUN協(xié)議 對(duì)NAT可能有效,可是對(duì)防火墻就無(wú)能為力了。由于防火墻可能不會(huì)打開(kāi)UDPport

???? NAT分類(lèi)

STUN協(xié)議將NAT粗略分為4種類(lèi)型,即Full Cone、Restricted Cone、Port Restricted Cone和Symmetric。舉個(gè)實(shí)際樣例來(lái)說(shuō)明這四種NAT的差別:

A機(jī)器在私網(wǎng)(192.168.0.4)

NATserver(210.21.12.140)

B機(jī)器在公網(wǎng)(210.15.27.166)

C機(jī)器在公網(wǎng)(210.15.27.140)

如今,A機(jī)器連接過(guò)B機(jī)器,如果是 A(192.168.0.4:5000)-> NAT(轉(zhuǎn)換后210.21.12.140:8000)-> B(210.15.27.166:2000)。

同一時(shí)候A從來(lái)沒(méi)有和C通信過(guò)。

則對(duì)于不同類(lèi)型的NAT,有下列不同的結(jié)果:

Full Cone NAT:C發(fā)數(shù)據(jù)到210.21.12.140:8000。NAT會(huì)將數(shù)據(jù)包送到A(192.168.0.4:5000)。由于NAT上已經(jīng)有了192.168.0.4:5000到210.21.12.140:8000的映射。

Restricted Cone:C無(wú)法和A通信。由于A從來(lái)沒(méi)有和C通信過(guò),NAT將拒絕C試圖與A連接的動(dòng)作。但B能夠通過(guò)210.21.12.140:8000與A的 192.168.0.4:5000通信。且這里B能夠使用不論什么port與A通信。如:210.15.27.166:2001 -> 210.21.12.140:8000,NAT會(huì)送到A的5000port上。

Port Restricted Cone:C無(wú)法與A通信,由于A從來(lái)沒(méi)有和C通信過(guò)。而B(niǎo)也僅僅能用它的210.15.27.166:2000與A的192.168.0.4:5000通信。由于A也從來(lái)沒(méi)有和B的其它port通信過(guò)。該類(lèi)型NAT是port受限的。

????? Symmetric NAT: 上面3種類(lèi)型,統(tǒng)稱(chēng)為Cone NAT。有一個(gè)共同點(diǎn):僅僅要是從同一個(gè)內(nèi)部地址和port出來(lái)的包,NAT都將它轉(zhuǎn)換成同一個(gè)外部地址和port 可是Symmetric有點(diǎn)不同,詳細(xì)表如今: 僅僅要是從同一個(gè)內(nèi)部地址和port出來(lái),且到同一個(gè)外部目標(biāo)地址和port,則NAT也都將它轉(zhuǎn)換成同一個(gè)外部地址和port。但假設(shè)從同一個(gè)內(nèi)部地址和port出來(lái)。是 到還有一個(gè)外部目標(biāo)地址和port,則NAT將使用不同的映射。轉(zhuǎn)換成不同的port(外部地址僅僅有一個(gè),故不變)。 并且和Port Restricted Cone一樣,僅僅有以前收到過(guò)內(nèi)部地址發(fā)來(lái)包的外部地址,才干通過(guò)NAT映射后的地址向該內(nèi)部地址發(fā)包。

現(xiàn)針對(duì)Symmetric NAT舉例說(shuō)明:

A機(jī)器連接過(guò)B機(jī)器,假使是 A(192.168.0.4:5000)-> NAT(轉(zhuǎn)換后210.21.12.140:8000)-> B(210.15.27.166:2000)

假設(shè)此時(shí)A機(jī)器(192.168.0.4:5000)還想連接C機(jī)器 (210.15.27.140:2000),則NAT上產(chǎn)生一個(gè)新的映射,相應(yīng)的轉(zhuǎn)換可能為A(192.168.0.4:5000)-> NAT(轉(zhuǎn)換后210.21.12.140:8001)-> C(210.15.27.140:2000)。此時(shí)。B僅僅能用它的210.15.27.166:2000通過(guò)NAT的210.21.12.140: 8000與A的192.168.0.4:5000通信, C也僅僅能用它的210.15.27.140:2000通過(guò)NAT的210.21.12.140:8001與A的192.168.0.4:5000通信,而 B或者C的其它port則均不能和A的192.168.0.4:5000通信。

?

?


STUN 的簡(jiǎn)單操作過(guò)程:

發(fā)送請(qǐng)求。請(qǐng)求分為兩種

1.Binding Requests, sent over UDP,

?用來(lái)發(fā)現(xiàn)NAT的公網(wǎng)地址,和MAPPING后的port

?2.??Binding Response,

server產(chǎn)生Binding Response。并把得到的MAPPINGIP 和port。返回到client, client比較MAPPING地址是否和本機(jī)地址同樣。假設(shè)是說(shuō)明是本機(jī)也是公網(wǎng),否則推斷NAT的類(lèi)型(推斷方法:client uses additional STUN Binding Requests)

3.Binding Error。

4.Shared Secret Requests, sent over TLS [2] over TCP.

這個(gè)請(qǐng)求要求server返回一暫時(shí)username和password。用來(lái)下一步的Binding Requests/ Response,用來(lái)驗(yàn)證信息的完整性

5.Shared Secret Response,

6 Shared Secret Error Response。

?


STUN 信息結(jié)構(gòu)

STUN 由以后數(shù)據(jù)結(jié)構(gòu)構(gòu)成:STUN頭+STUN有效載荷

STUN頭結(jié)構(gòu)例如以下: 存儲(chǔ)的值都是以網(wǎng)絡(luò)順序存放

字段??? 類(lèi)型??

STUN message type??? Short int??? 消息類(lèi)型

Length??? Short int??? 有效載荷長(zhǎng)度,不包括頭長(zhǎng)度

transaction ID??? octet[16]??? 連接的ID值,檢查Request,和Response

STUN的有效載荷

SHUN的有效載荷是一些STUN的屬性構(gòu)成,屬性的類(lèi)型由信息的類(lèi)型來(lái)決定。

STUN的屬性是定義好了的,屬性列表(attribute)例如以下:

MAPPED-ADDRESS??? 必選??? 用在Binding Response,(添入MAPING IP 和PORT)

RESPONSEADDRESS??? 可選??? 用在Binding Request,指定Response,發(fā)送到哪里

假設(shè)沒(méi)有指定。Response發(fā)送到MAPING IP 和 PORT

CHANGE-REQUEST??? 可選??? 用在Binding Request。用來(lái)決定。CLIENT的NAT類(lèi)型是

制NAT,還是port限制NAT,(命令server從不同的源port/IP,Response請(qǐng)求)

CHANGED-ADDRESS??? 可選??? 用在Binding Responses告訴Client改變的port和IP

SOURCE-ADDRESS??? 必選??? 僅僅用在Binding Responses。標(biāo)記信息的源PORT HE IP

USERNAME??? 可選??? Shared Secret Response/ Binding Requests

PASSWORD,??? 必選??? SharedSecret Response

ESSAGEINTEGRITY??? 可選??? 用在Binding Responses, Binding Request記錄信息的完整性

ERROR-CODE??????? Binding Error Response and Shared Secret Error Response.

UNKNOWN-ATTRIBUTES??????

REFLECTED-FROM??????? Binding Responses.可追溯性和預(yù)防DDOS

?通過(guò)這些方法和過(guò)程

?

STUN協(xié)議簡(jiǎn)介


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論