詳解本地主機如何與外部互聯網通信

1、基礎瞭解

我們自己的計算機一般都在路由器的內網當中,ip都是由路由器分配的私有內網ip。我們打開cmd,在命令行中輸入ipconfig一般顯示的都是192.168.X.X。像這種就是路由器給我們分配的私有ip。192.168.0.0 到192.168.255.255是私有地址,常用的私有地址還有172.16.0.0到172.31.255.255,10.0.0.0到10.255.255.255等等,這些私有地址是用於局域網的。路由器是連接公網和死網的橋樑,說白了就是專門用於私網地址和公網地址的轉換(當然我指的是一般家庭用的路由器,真正的路由器是用於大型網絡的節點,價格相當昂貴,功能比較複雜,例如思科,junip,華爲,華三,這裏就不詳細說明了)。

2、下面舉個小例子說明我們的計算機是如何與外部公網通信的。

我們的機器一般都在路由器的內網當中,IP地址基本上都是192.168.x.x系列,我們並沒有公網IP,那麼如何訪問外網呢?我們打開瀏覽器訪問Google,Google與我們主機之間如何通信?假設我們主機IP爲192.168.0.100,路由器LAN IP爲192.168.0.1,WAN IP爲211.22.145.234(這是一個公網IP,全球唯一),Google服務器IP爲74.125.204.101。詳細通信流程如下。

主機構建HTTP請求數據包,目標IP爲74.125.204.101,目標端口80,源IP爲192.168.0.100,源端口隨機生成,假定爲5000。 主機檢查目標IP地址,發現不在一個網段,數據包丟給默認網關(192.168.0.1)。 路由器LAN口收到數據包,構建NAT映射,隨機生成端口,假定爲5500,這樣映射就是 :5500 -> 192.168.0.100:5000。WAN(ip:211.22.145.234)口收到的數據包,如果目標端口是5500,則轉發給內網IP爲192.168.0.100的機器的5000端口。 路由器修改數據包的源端口爲5500,源IP地址爲211.22.145.234,使用WAN口將數據包發送出去。 Google服務器收到請求,構建響應HTTP數據包,目標IP地址211.22.145.234,目標端口爲5500。 路由器WAN口收到數據包,目標端口爲5500,查詢NAT表,發現對應的機器是192.168.0.100:5000,所以修改目標IP爲192.168.0.100,目標端口爲5000。並通過LAN口發送給主機。 主機接收到數據包,完成這一次通信。

發佈了31 篇原創文章 · 獲贊 11 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章