內網穿透

標籤: 暫無標籤

122

更新時間: 2013-09-04

廣告

內網穿透即NAT穿透,網路連接時術語,計算機是區域網內時,外網與內網的計算機節點需要連接通信,有時就會出現不支持內網穿透。

內網穿透 -什麼是內網

  所謂內網就是內部建立的局域網路或辦公網路。舉個例:一家公司或一個家庭有多台計算機,他們利用不同網路布局將這一台或多台計算機或其它設備連接起來構成一個局部的辦公或者資源共享網路,我們就稱它為內部網路,也叫內網。所謂外網就是通過一個網關或網橋與其它網路系統連接,相對於自己的內網來說,連接的其它網路系統就稱為外部網路,也叫外網。舉例說明:當一家公司或一個家庭的所有電腦網路想要與公司或家庭以外的網路連接(比如連接互連網),相對於這家公司或家庭,其它網路(或互連網)就稱為外網!
內網穿透 -什麼是內網穿透

  內網穿透即NAT穿透,網路連接時術語,計算機是區域網內時,外網與內網的計算機節點需要連接通信,有時就會出現不支持內網穿透。
  就是說映射埠,能讓外網的電腦找到處於內網的電腦,提高下載速度。
  不管是內網穿透還是其他類型的網路穿透,都是網路穿透的統一方法來研究和解決。在百科詞條
  NAT穿越,nat穿透中有關於網路穿透的詳細信息。
內網穿透 -如何內網穿透

  埠映射,其實就是常說的NAT地址轉換的一種,其功能就是把在公網的地址轉翻譯成私有地址, 採用路由方式的ADSL寬頻路由器擁有一個動態或固定的公網IP,ADSL直接接在HUB或交換機上,所有的電腦共享上網。
內網穿透 -實現內網穿透

  利用P2P點對點技術實現,需解決的兩個問題。
  1.實現內網之間機器的網路通信。
  2.需要解決UDP出現的數據傳輸不穩定問題。
  假設一台在NAT211.133.*后的192.168.1.77:8000要向NAT211.134.*后的192.168.1.88:9000發送數據,假設你向211.134.*這個IP地址的9000埠直接發送數據包,則數據包在到達NAT211.134.*之後,會被當做無效非法的數據包被丟棄,NAT在此時相當於一個防火牆,會對沒有建立起有效SESSION的數據包進行拒絕轉遞。當然,你也不能直接用內網地址192.168.1.88進行發送數據包,這就好比你在廣州要打電話到上海的某個地方,如果你不加區號,直接撥打區域內電話是件很愚蠢的事。
  首先我們要認識NAT設備,NAT英文全拼是Network Address Translator(網路地址轉換器),說白了就是凡是經過NAT發出去的數據包,都會通過一定的埠轉換(而非使用原埠)再發出去,也就是說內網和外網之間的通信不是直接由內網機器與外網NAT進行,而是利用內網對外網的NAT建立起SESSION與外網NAT的SESSION進行。
  根據SESSION的不同,NAT主要分成兩種:SymmetricNAPT以及CONE NAPT。簡單的說,Symmetric NAPT是屬於動態埠映射的NAT,而CONE NAPT是屬於靜態埠映射的NAT。而市場上目前大多屬於後者,CONE的英文意思錐,意思就是一個埠可以對外部多台NAT設備通信。這個也正是我們做點對點穿透的基本,是我們所希望的,否則現在的大部分點對點軟體將無法正常使用。
  像上面的例子,NAT211.133.*和NAT211.134.*之間需要進行通信,但開始不能直接就發數據包,我們需要一個中間人,這個就是外部索引伺服器(我們假設是211.135.*:7000),當NAT211.133.*向211.135.*:7000發送數據包,211.135.*:7000是可以正常接收到數據,因為它是屬於對外型開放的服務埠。當211.135.*:7000收到數據包后可以獲知NAT211.133.*對外通信的臨時SESSION信息(這個臨時的埠,假設是6000會過期,具體的時間不同,但我個人的測試是每30秒發送一個心跳包keep住連接以保證埠維持住通信連接不斷開),索引伺服器此時應將此信息保存起來。而同時,NAT211.134.*也在時刻向索引伺服器發送心跳包,索引伺服器就向NAT211.134.*發送一個通知,讓它向NAT211.133.*:6000發送探測包(這個數據包最好多發幾個),NAT211.133.*在收到通知包之後再向索引伺服器發送反饋包,說明自己已經向NAT211.133.*:6000發送了探測包,索引伺服器在接收到反饋包之後再向NAT211.133.*轉發反饋包,NAT211.133.*在接收到數據包之後再向原本要請求的NAT211.134.*發送數據包,此時連接已經打通,實現穿透,NAT211.134.*會將信息轉發給192.168.1.88的9000埠。
  對於Symmetric NAPT的情況,網上有人說可以通過探測埠的方式,不過成功率並不高,我建議可用伺服器進行中轉。另外,最好在數據包發送前先檢測是否進行的是同個NAT的情況,也就是內網發內網,如果是,直接發送即可,而無需通過外網再繞回來。
  其次關於第二點,解決UDP傳輸的不穩定問題,其實這裡涉及到另一個方面的知識,就是滑動窗口的東西,可以開一個緩衝區用於循環接收數據以及重組,另外加上超時重發機制以及確認發送機制,有點像TCP的傳輸原理,不過如果處理的好,效率絕對比採用TCP的方式要高。
內網穿透 -相關應用

  目前國內的網路人公司的網路人遠程控制軟體,可實現內網穿透。同時採用U盾安全加密,並具有完全隱藏監控、遠程開機、關機、遠程控制、快速上傳下載、修改文件、語音文字聊天、遠程開啟攝像頭(可將視頻內容錄像)的功能,是家長控制小孩、企業控制員工的理想選擇,保證小孩健康上網和實時監控員工做好工作的必備工具!
  德國的——TeamViewer團隊共享軟體,也都應用了這一技術.

廣告