如果你現(xiàn)在正在看我的這篇文章,那說明你已經(jīng)連接上了互聯(lián)網(wǎng)。說到互聯(lián)網(wǎng),你一定聽說IP地址這個概念,你知道IP地址是做什么的嗎?與之而來的還有公網(wǎng)IP,私網(wǎng)IP,你知道有什么區(qū)別嗎?
一、計(jì)算機(jī)之間點(diǎn)對點(diǎn)的交流
正常情況下,你和我都有一臺電腦,但是一臺電腦所能做的事情是有限的,可能兩臺電腦之間為了做更多的事情,需要數(shù)據(jù)交互,我們可以通過U盤作為媒介,進(jìn)行數(shù)據(jù)交換,但這樣效率實(shí)在是太慢了,于是,為了提高效率,有人想到了一個好辦法,我們在兩臺電腦之間插上數(shù)據(jù)線,通過數(shù)據(jù)線進(jìn)行數(shù)據(jù)交互
有了這根數(shù)據(jù)線,或者叫網(wǎng)線,這個兩臺電腦就能進(jìn)行數(shù)據(jù)交互了,但是,如果不止有兩臺電腦呢?有多臺電腦的情況下,又該這么牽網(wǎng)線呢?
你發(fā)現(xiàn)了,如果每一臺機(jī)器為了和其他機(jī)器通訊,那就得和那臺機(jī)器建立連接,如果隨著機(jī)器越來越多,那網(wǎng)線數(shù)目會是多么復(fù)雜,這肯定是無法接收的。
二、交換機(jī)
為了解決計(jì)算機(jī)之間點(diǎn)對點(diǎn)交流的復(fù)雜性,我們引入的交換機(jī)的概念
有了交換機(jī)之后,由交換機(jī)去分發(fā)來自每臺機(jī)器的數(shù)據(jù)。
這時候又有新的問題,在點(diǎn)對點(diǎn)的數(shù)據(jù)連接上,兩臺電腦如果想進(jìn)行數(shù)據(jù)交互,只需從眾多的數(shù)據(jù)線中找到對應(yīng)的主機(jī)的數(shù)據(jù)線,但現(xiàn)在都發(fā)給交換機(jī)了。交換機(jī)應(yīng)該怎么去分發(fā)數(shù)據(jù)呢?這就像應(yīng)該沒有填清楚具體地址的包裹一樣,交換機(jī)就像快遞公司,你給了快遞公司,沒給地址,那快遞公司就不知道應(yīng)該把包裹發(fā)給誰??爝f公司只要有快遞的地址就知道該把包裹發(fā)哪兒,交換機(jī)也一樣,我們可以為每一臺機(jī)器分配一個IP地址。
有了IP地址之后,只需在發(fā)送的數(shù)據(jù)包里面加上對應(yīng)主機(jī)的IP地址,那交換機(jī)就能根據(jù)具體的IP地址把數(shù)據(jù)發(fā)送到對應(yīng)的機(jī)器。
三、局域網(wǎng)到廣域網(wǎng)
通過交換機(jī),我們可以讓連接到交換機(jī)的計(jì)算機(jī)進(jìn)行數(shù)據(jù)交流,假如這幾臺機(jī)器是你學(xué)校的電腦,你的學(xué)校想和隔壁學(xué)校進(jìn)行業(yè)務(wù)合作,就需要彼此的電腦也進(jìn)行數(shù)據(jù)交流,正好隔壁的電腦也是用的交換機(jī)進(jìn)行數(shù)據(jù)交流,于是我們只要把兩個學(xué)校的交換機(jī)連接,那兩邊的電腦就能相互訪問了。
通過連接兩臺交換機(jī),讓兩邊的電腦能數(shù)據(jù)交流,之后如果還要加更多的局域網(wǎng),那在把彼此的交換機(jī)進(jìn)行連接
隨著局域網(wǎng)的交換機(jī)優(yōu)越來越多,交換機(jī)也像之前計(jì)算機(jī)之間點(diǎn)對點(diǎn)的連接那樣復(fù)雜,于是在交換機(jī)之間又放入新的交換機(jī)。
就是這樣,交換機(jī)越來越多,直到覆蓋全世界,你只需進(jìn)入其中任意一個節(jié)點(diǎn),就能訪問到全世界任意一條同樣連接到網(wǎng)絡(luò)的節(jié)點(diǎn),這就構(gòu)成了廣域網(wǎng)。你可以理解為:
廣域網(wǎng)就是無數(shù)的局域網(wǎng)的結(jié)合。
很明顯,搭建這些網(wǎng)絡(luò)肯定都是需要一筆不小的資金,搭建這些網(wǎng)絡(luò)的公司被稱為ISP互聯(lián)網(wǎng)服務(wù)供應(yīng)商,大家所熟悉的移動,電信和聯(lián)通就是ISP供應(yīng)商,他們通過為用戶提供網(wǎng)絡(luò)賺取費(fèi)用。
四、IPV4
互聯(lián)網(wǎng)的每一臺機(jī)器都是需要一個IP地址才能彼此訪問的,那首先我們得來聊聊IP地址的構(gòu)成。IP地址一般說的是IPV4的IP地址,它是由32位構(gòu)成,那IP地址能用的組合就是2的32次方,大于等于42.28億。
為了方便記憶和輸入,將每8個二進(jìn)制分為一組,共4組,在轉(zhuǎn)換為10進(jìn)制
同時,還會對IP地址進(jìn)行分類,一些地址作為特殊用途
最后真正可用的地址可能還沒有42億個。已知全球一共有70多億的人口,雖然不是每個人都會訪問互聯(lián)網(wǎng),但是有很多人并不止一臺設(shè)備,一個人可能有多臺手機(jī),電腦等等,如果要給每臺設(shè)備都去分配一個IP,那這42億的IP地址夠用嗎?完全不夠。
五、NAT網(wǎng)絡(luò)地址轉(zhuǎn)換
為了解決IP不夠用的問題我們使用了一項(xiàng)新的技術(shù),NAT網(wǎng)絡(luò)地址轉(zhuǎn)換。假如有五臺計(jì)算機(jī),他們的IP地址是192.168.0.1----192.168.0.5,他們接入了同一臺交換機(jī),或者叫路由器,他們接入的這臺交換機(jī)的廣域網(wǎng)IP是6.6.6.6
如果這五臺機(jī)器要向一臺8.8.8.8的服務(wù)器發(fā)送數(shù)據(jù),那NAT就會把這幾臺計(jì)算機(jī)原有的IP轉(zhuǎn)換成6.6.6.6的IP向8.8.8.8發(fā)送數(shù)據(jù),實(shí)現(xiàn)5臺設(shè)備共用一個IP的效果。
如果8.8.8.8這個交換機(jī)下面也掛載了很多設(shè)備,那這五臺服務(wù)器都是按照8.8.8.8這個機(jī)器發(fā)送的,那有怎么發(fā)送到8.8.8.8下面掛載的具體設(shè)備呢?
六、端口映射
為了解決上面的問題,我們引入了一個新的概念,端口映射。我們可以在IP地址的后面加上一個端口,如圖
比如192.168.0.1和6.6.6.6的1000端口綁定,另一邊的192.168.0.1和8.8.8.8的500端口綁定,這樣,如果6.6.6.6下掛載的機(jī)器想訪問8.8.8.8下掛載的機(jī)器,只需要加上對應(yīng)的端口就行了。
七、公網(wǎng)IP和私有IP
你如果打開cmd,輸入ipconfig查看IP地址
你會看的IP地址是192.168開頭的,為什么?剛剛提到,IP地址是不夠用的,但為了使大多數(shù)的機(jī)器都能上網(wǎng),我們通常是多臺機(jī)器共用一個公網(wǎng)IP,你去百度搜索IP查詢,
就能看見你當(dāng)前設(shè)備所掛載的公網(wǎng)IP了?,F(xiàn)在知道為什么很多IP都是192.168開頭的了吧?因?yàn)檫@是掛載到了一個小的中轉(zhuǎn)設(shè)備下的C類私有IP,在這個私類IP下依賴轉(zhuǎn)換器的公網(wǎng)IP上網(wǎng)。
打個比方:公網(wǎng)IP就是你小區(qū)的名稱,私網(wǎng)IP就是你住的樓層單元,假設(shè)全國小區(qū)名字都不重復(fù),那根據(jù)小區(qū)名字,就可以找到你的大概位置,這就相當(dāng)于根據(jù)公網(wǎng)IP定位到你具體的局域網(wǎng),但是為了知道你具體位置,那還需要知道你是這個小區(qū)幾單元幾號,小區(qū)的幾單元幾號這玩意兒每個小區(qū)都有,這就相當(dāng)于私網(wǎng)IP,很多機(jī)器的私網(wǎng)IP都是重復(fù)的。