STUN的工作過程

2021-10-25 08:18:39 字數 1399 閱讀 1174

客戶端位於nat後面, stun server位於公網中。 具體的ip和埠如下:

nat的對映後的ip和埠號為:ip_n 和 port_n

step1:驗證客戶端是否在nat後面

從客戶端傳送乙個udp包到 ip_s1 + port_s1, stun收到後會把 ip_n+port_n 儲存到udp包中作為對客戶端請求的響應。然後把這個響應傳送到 ip_n+port_n。

無論客戶端前面的nat是什麼型別,客戶端都應該能夠收到這個響應。 如果沒有收到,要麼是stun server不存在(或者你寫錯了位址或埠), 要麼是你的nat拒絕一切udp包從外部進入。

當客戶端收到響應資料時,我們就能從中得到 ip_n+port_n, 也就是說我們從這一步能夠得到nat的外網位址和埠號。

如果相同,說明client具有公網位址,它沒有在nat後面。

如果不同,說明client在nat後面,我們還要進行更多驗證。

step2:驗證我們的nat是不是 full cone nat

從客戶端傳送乙個udp包到 ip_s1 + port_s1,請求stun server使用  ip_s2 + port_s2 對我們的請求進行響應。

如果能收到響應資料: 說明nat是 full cone nat, 因為nat來者不拒,不對資料進行任何過濾。

如果未收到響應資料:  我還需要進一步驗證nat的型別

step3:驗證我們的nat是對稱nat還是cone nat

從客戶端傳送乙個udp包到 ip_s2 + port_s2, stun收到後會把 ip_n+port_n 儲存到udp包中作為對客戶端請求的響應。然後把這個響應傳送到 ip_n+port_n。

這個測試中,我們關心的是upd包中的資料, 如果包中的 port_n 與 step1中的 port_n是相同的,那麼我們就可以肯定,這是個乙個cone nat,如果不同那麼就說明是個對稱nat,stun server無法解決這類nat穿透問題~~

step4:區分 restict cone nat和 port restrict cone nat

從客戶端傳送乙個udp包到 ip_s1 + port_s1, 要求 stun server 用 ip_s1 + port_s2 返回響應給client。

如果client能收到:說明是 restrict cone nat

如果收不到: 說明時 port restrict cone nat

DHCP工作過程

dhcp服務的工作過程 如果在區域網中部署了dhcp伺服器,並且客戶端設定為自動獲得ip位址。這樣當dhcp客戶端第一次登入網路的時候,也就是客戶端發現本機上沒有任何ip資料設定,它會向網路發出乙個dhcp discover封包。因為客戶端還不知道自己屬於哪乙個網路,所以封包的 位址會為 0.0.0...

FTP 工作過程

1 ftp伺服器執行ftpd守護程序,等待使用者的ftp請求。2 使用者執行ftp命令,請求ftp伺服器為其服務。例 ftp 202.119.2.197 3 ftpd守護程序收到使用者的ftp請求後,派生出子程序ftp與使用者程序ftp互動,建立檔案傳輸控制連線,使用tcp埠21。4 使用者輸入ft...

ping工作過程

dos 命令,一般用於檢測網路通與不通 也叫時延,其值越大,速度越慢 ping packet internet grope 網際網路包探索器,用於測試網路連線量的程式。ping 發 送乙個 icmp 回聲請求訊息給目的地並報告是否收到所希望的 icmp 回聲應答。它是用來檢查網路是否通暢或者網路連線...