可能大家會常常聽到全球 IP(外網)和私有 IP(內網),他們的區別是什麼呢?今天這篇文章來簡單講講這究竟是怎麼回事。網絡
咱們都知道,IPv4中的IP地址的數量是有限的,每次把一部分地址分配出去,那麼就意味着可以用來分配的IP地址就更少了,並且隨着如今手機,電腦等的快速發展,若是每一個手機或者電腦都要求一個IP地址,那麼顯然IP地址是不夠用的。ide
爲了解決這個問題,咱們能夠採起這樣的策略:例如對於一個公司來講,每一個公司都會有一個屬於本身公司的內網(也能夠稱之爲局域網)。代理
假如咱們給這個公司A分配了一個IP=192.168.1.1。咱們把這個IP做爲這個公司內網的網關吧。blog
在公司A的內網裏面有3臺電腦,若是這三臺電腦要上網的話,咱們須要給他分配一個IP,那麼咱們必定須要去申請3個IP地址來使用嗎?路由
答否。咱們不必定須要去申請3個IP的,在咱們這個內網裏,咱們能夠指定本身的規則,例如,咱們能夠給這三臺電腦隨便分配三個IP(請注意,這三個IP不是去申請的,並且我本身隨意給它分配的)。分別分配電腦A = 192.168.1.2 電腦B = 192.168.1.3 電腦C = 192.168.1.4it
假如電腦A想要訪問百度,百度的IP咱們假設爲:172.168.30.3io
咱們都知道,電腦A的IP是咱們虛構的,實際上可能並不存在這樣一個IP,若是用電腦A的IP去訪問百度,那確定行不通。class
咱們也知道,因爲百度和電腦A不在一個局域網內,因此A要訪問百度,那麼必須得通過網關。而網關的這個IP地址,是真實存在的,是能夠訪問百度的。百度
爲了讓 A 能夠訪問百度,那麼咱們能夠採起這樣的方法:讓網關去幫助 A 訪問,而後百度把結果傳遞給網關,而網關再把結果傳遞給 A,這樣不就能夠解決了?路由器
不過電腦A, B, C均可能拜託網關去幫忙訪問百度,而百度返回的結果 的目的IP都是網關的IP=192.168.1.1。那麼網關該如何進行區分這結果是A的,B的仍是C的呢?
咱們去訪問百度的時候,不是須要指定一個端口嗎?只要咱們把 A的IP + 端口 映射成 網關的IP+端口,不就能夠惟一肯定身份了?
例如A用端口60去訪問百度,網關把 A的IP+端口60 映射成 網關的IP+端口80 不就能夠了?
百度把結果返回給網關的80端口以後,網關再經過映射表,就能夠把結果返回給 A的60端口 了。
若是B也是用60端口去訪問百度的話,也是同樣,能夠把它映射到90端口。
這種方法地址的映射轉換,咱們也稱之爲網絡地址轉換。英文爲 Network Address Translation,簡稱NAT。
而像A, B, C這樣的IP地址咱們也稱之爲內網IP,即私有IP;而像網關,百度這樣的IP咱們稱之爲外網IP,即全球IP。如今知道外網IP和內網IP了吧?
一、對於全球IP,顯然每一個IP都是惟一的,而對於私有IP,同一個局域網內,也得是惟一的,但在兩個不一樣的局域網中,是能夠有相同的私有IP的。
二、局域網內主機之間的通訊,是不須要進行地址轉換的,而若是須要訪問外網,才須要進行地址轉換。
實際上,咱們也能夠把這種地址轉換稱之爲一種代理。網關就至關於一個代理,把局域網內的主機的一些信息都給隱藏了起來。百度並不知道是主機A訪問它,他只知道是網關訪問了它。
講到這裏,也差很少結束了。有收穫的小夥伴加個雞腿犒勞一下?(點底部廣告 or 轉發分享)。這篇文章具體細節沒展開,算是大概講解了NAT。
集線器、交換機與路由器有什麼區別
TCP流量控制機制
5分鐘讀懂擁塞控制