這裡不討論繁瑣的概念,主要討論一下,乙個區域網怎樣利用乙個ip位址和公網互聯。
涉及兩個難點問題:
1.區域網中的一台主機 a(192.168.1.110)如何與外網伺服器(20.173.12.22)通訊?
2.伺服器的返回資料報,是如何找到內網的客戶端電腦a,並將資料傳給電腦a上執行的程式p呢?
區域網中的主機a,想要訪問外網伺服器時,是通過nat,將位址轉換成外網位址。然後與伺服器通訊的。
這樣問題自然就來了
答案:通過埠來區分。
埠號是從0~65535的乙個數字,每個區域網內的電腦在發出請求時,要帶上自己的埠號,這樣就可以區分了。帶自己的埠,就是為了伺服器在返回訊息時,知道要給誰。
問題又來了:
答案:會重複。允許重複。
答案:區域網內的電腦發的請求,帶的是區域網內部的"ip+埠號",在向外發請求時,nat會重新給乙個ip和埠號。這個ip就是整個區域網共用的ip,而埠則是臨時生成乙個,給這個請求。nat裝置內部,記錄這個轉換的對映表。到時候,可以根據這張表,來倒推原來的請求的內網ip和埠。雖然埠一樣,但是ip不一樣,是可以區分清楚的。
比如用谷歌瀏覽器,和ie瀏覽器訪問同乙個**?
區域網內的主機發請求時,會帶上自己的 ip+埠,走到nat時,會將ip替換成公網ip,並重新分配乙個埠給這個請求。當有了這個新的ip+埠之後,就可以訪問外網伺服器。伺服器返回訊息時,返回到nat,nat根據ip+埠找到當時區域網內的ip和埠,併發送到區域網內的目標機器上,並發給對應的程式。
比如,區域網內有70000臺電腦,大於65535了。
答:不錯。這個時候,埠就不夠了。一般情況下,是需要另乙個公網ip的。這個時候,如果電腦的同乙個程式,比方說大家都登陸qq,傳送請求時,源埠都是4000,傳送到nat時,大家都用同乙個ip,埠都一樣,需要重新給埠時,就不夠用了。
不過,如果可以實現分時復用的話,應該還是可以的。
區域網對映到公網 natapp實現
在開發時可能會有這樣的需求 需要將自己開發的機器上的應用提供到公網上進行訪問,但是並不想通過註冊網域名稱 搭建伺服器等等一系列繁瑣的操作來實現。到註冊頁面 註冊步驟很簡單,只需要填該填的資訊就對了,要記住使用的手機號和密碼,方便下次使用。2 實名制 實名認證後的介面如下 3 購買免費隧道 這裡寫的是...
Linux將公網ip對映到區域網ip
測試環境如下 monitor msc1 公網ip 103.6.164.128 eth0 內網ip 192.168.0.57 eth0 內網ip 192.168.0.16 eth1 通過訪問monitor的外網位址的20003埠,訪問到msc1的20003埠 1.設定monitor伺服器允許ip ec...
從區域網獲取公網IP的實現
從區域網獲取公網ip的實現 從區域網獲取公網ip,應該有很多種方法,比如直接進路由器看,開花生殼這樣的服務,或者有一些 提供測試你公網ip位址等等很多,但是去獲取這個ip,都需要你手動去獲取這個ip,這樣很麻煩,我就在想,有沒有用程式的方法去從內網獲取公網ip?我是乙個新手,所以首選就是google...