Matrix 是少數(shù)派的寫作社區(qū),我們主張分享真實(shí)的產(chǎn)品體驗(yàn),有實(shí)用價(jià)值的經(jīng)驗(yàn)與思考。我們會(huì)不定期挑選 Matrix 最優(yōu)質(zhì)的文章,展示來自用戶的最真實(shí)的體驗(yàn)和觀點(diǎn)。
文章代表作者個(gè)人觀點(diǎn),少數(shù)派僅對標(biāo)題和排版略作修改。
歡迎來到網(wǎng)絡(luò)世界,《小白也能看懂的網(wǎng)絡(luò)基礎(chǔ)》系列文章會(huì)從零開始幫助你構(gòu)建網(wǎng)絡(luò)的基礎(chǔ)知識(shí)。如果你完全沒有接觸過網(wǎng)絡(luò)相關(guān)的內(nèi)容,那我們是一樣的,在學(xué)習(xí)過程中我們肯定遇到了相同的問題!寫下這些文章一方面要記錄自己的學(xué)習(xí)歷程,另一方面也希望幫到同樣想要學(xué)習(xí)網(wǎng)絡(luò)基礎(chǔ)的小伙伴。
文章的部分內(nèi)容與素材是我從 YouTube 頻道 Network Direction 發(fā)布的系列視頻學(xué)習(xí)和搜集過來的,翻譯不易,部分內(nèi)容可能無法做到盡善盡美,甚至可能會(huì)有部分瑕疵,我會(huì)盡力讓文章內(nèi)容通俗易懂,覆蓋全面。若各位小伙伴發(fā)現(xiàn)任何問題,希望能夠留言或私信告訴我,在下不勝感激!當(dāng)然,我也會(huì)在第一時(shí)間進(jìn)行更正。
在往后的每一篇文章中,我都會(huì)把看到文章的小伙伴當(dāng)成是完全沒有網(wǎng)絡(luò)經(jīng)驗(yàn)的小白,我的目標(biāo)是和零基礎(chǔ)小白一起建立堅(jiān)實(shí)的網(wǎng)絡(luò)基礎(chǔ),網(wǎng)絡(luò)大神請略過此系列文章。
讓我們開始網(wǎng)絡(luò)之旅吧!
在前面的課程中,我們已經(jīng)見證了「地址」在網(wǎng)絡(luò)中的重要性,網(wǎng)絡(luò)設(shè)備需要地址,這也是他們能夠?qū)⑿畔?zhǔn)確無誤送達(dá)目的地的最根本的原因。說到地址,我們就不得不提一下 IP地址。
通過「IP地址」我們可以很輕松的找到一臺(tái)已經(jīng)接入網(wǎng)絡(luò)中的設(shè)備。同時(shí),我們不僅可以在本地網(wǎng)絡(luò)通過「IP地址」定位到另一臺(tái)設(shè)備。如果可以配合路由器,即便不在同一個(gè)網(wǎng)段的設(shè)備,我們依然能夠輕易找到。
這就是「IP地址」的神奇之處!但,你真的了解「IP地址」嗎?
IP 地址可以分成兩種不同的形式,分別為 IPv4 和 IPv6。它們看起來截然不同,同時(shí) IPv6 屬于比較新的 IP 技術(shù),暫未普及。而 IPv4 是我們最常見的地址形式,因此,本章節(jié)主要圍繞 IPv4 展開講解。
首先,IPv4 地址是一段由四組數(shù)字組成的整體,每組數(shù)字中間使用點(diǎn)來隔開,每組數(shù)字我們又稱其為八位字節(jié),原因是,我們把每組數(shù)字都以八位形式的二進(jìn)制來表示,例如 0 = 0000 0000、255 = 1111 1111 等而因?yàn)樗伤慕M數(shù)字組成,因此我們可以將其分成四組獨(dú)立的八位字節(jié)。例如下面這個(gè)IP地址,如果使用八位二進(jìn)制數(shù)來表示,則為:
IP 地址的四組數(shù)字均是由從 0~255 的數(shù)字組成,不可超過這個(gè)范圍,其二進(jìn)制數(shù)表示形式為:00000000~11111111。因此一個(gè)正確的 IP 地址除了可以使用阿拉伯?dāng)?shù)字表示,同樣可以采用二進(jìn)制數(shù)表示。
而 00000000~11111111 或 0~255 這個(gè)地址范圍,我們稱其為 IP 空間。由此可見,二進(jìn)制數(shù)據(jù)對于 IP 地址尋址的重要性,我們要學(xué)會(huì)簡單的十進(jìn)制與二進(jìn)制數(shù)字的轉(zhuǎn)換,這是為了方便后續(xù)的學(xué)習(xí)。
IP 地址可以代表 「兩個(gè)地址」 ,一個(gè)是 Host Address 也就是主機(jī)地址,另一個(gè)是 Network Address 也就是網(wǎng)絡(luò)地址,這是怎么回事兒呢?
這里,我們拿 172.16.0.1 這個(gè)IP地址舉例:其中 172.16 是網(wǎng)絡(luò)地址,而后面的 0.1 是主機(jī)地址,參考下圖可以理解各個(gè)部分的含義。
觀察上圖,我們可以發(fā)現(xiàn),左側(cè)以 172.16 開頭的主機(jī)在同一個(gè)網(wǎng)絡(luò)中,右側(cè)以 172.17 開頭的主機(jī)在另一個(gè)網(wǎng)絡(luò)中。這是兩個(gè)不同的網(wǎng)絡(luò),它們之間不能直接進(jìn)行溝通!但是在同一網(wǎng)絡(luò)中的設(shè)備可以進(jìn)行通信,如果你有新的設(shè)備加入,只需要將地址設(shè)置為 172.16 或 172.17 即可。如果想要實(shí)現(xiàn)兩個(gè)網(wǎng)段之間的通信,則需要借助路由器來實(shí)現(xiàn)。
你可能想知道,IP 地址的前兩個(gè)位置的數(shù)字是否總是代表網(wǎng)絡(luò)地址呢?答案是否定的,那么問題來了,我們該怎么知道哪一部分是網(wǎng)絡(luò)地址,哪一部分是主機(jī)地址呢?這個(gè)問題答案并不是固定的,它會(huì)根據(jù)實(shí)際情況進(jìn)行變化。所以,要想深入了解這兩個(gè)地址,我們就要從 IP 地址的歷史開始進(jìn)行追溯。
我們從 Internet 協(xié)議創(chuàng)立之初說起,在那個(gè)時(shí)候,IP地址的第一組數(shù)字第一個(gè)八位位組,始終代表網(wǎng)絡(luò)地址;而隨后的三個(gè)數(shù)字后三個(gè)八位位組,用于主機(jī)。
這意味著,我們最多只能擁有 0~255 即 256 個(gè)網(wǎng)絡(luò)空間,每個(gè)網(wǎng)絡(luò)空間可以擁有 1600 萬臺(tái)主機(jī),這種形式的劃分非常不合理!但因?yàn)?Internet 剛開始出現(xiàn)時(shí)并不是國際性的,只有很少的組織使用它,因此這樣劃分也沒有什么不妥。
隨著互聯(lián)網(wǎng)的飛速發(fā)展,各個(gè)國家、各個(gè)地區(qū)都需要使用到網(wǎng)絡(luò)空間,此時(shí),256 個(gè)網(wǎng)絡(luò)空間顯然是不夠的。因此在 1981 年時(shí),Internet 就引入了一種全新的方法,那就是將整個(gè) IP 空間從 A 到 E 劃分成了五個(gè)類別。
這其中 A、B 和 C 類應(yīng)用于設(shè)備尋址(也就是我們的電腦、打印機(jī)等設(shè)備可通過這類地址發(fā)現(xiàn)彼此);D 類用于組播(源主機(jī)分發(fā)信息到多臺(tái)其他機(jī)器);E 類屬于保留地址(特殊使用)。因此,A、B 和 C 類地址屬于我們現(xiàn)在需要考慮的部分。
A 類 IP 地址第一個(gè)八位位組是網(wǎng)絡(luò)空間,后三個(gè)八位位組是地址空間;雖然擁有很少的網(wǎng)絡(luò)空間,但是卻擁有龐大的主機(jī)空間。這里需要注意的是,A 類地址八位位組中的第一位始終為 0 固定位,剩下的 7 位可供給我們進(jìn)行分配,因此,我們只有 0~127 即 128 個(gè)網(wǎng)絡(luò)空間可供分配,網(wǎng)絡(luò)空間從 0.0.0.0 ~ 127.0.0.0。
另外,由于第一個(gè)八位位組以 0 和 127 開頭的網(wǎng)絡(luò)空間是要用作保留的,所以實(shí)際可供分配網(wǎng)絡(luò)空間為 126 個(gè),其網(wǎng)絡(luò)空間IP地址為 1.0.0.0 ~ 126.0.0.0。每個(gè)空間可供分配主機(jī)為16777216 臺(tái)(2的24次方=16777216)。
B 類網(wǎng)絡(luò)適用于中等數(shù)量主機(jī)的情況,前兩個(gè)八位位組用于網(wǎng)絡(luò)空間劃分,后面兩個(gè)則用于主機(jī)地址劃分,網(wǎng)絡(luò)的前兩個(gè)位始終為 1 和 0(10000000)即 128,可供我們設(shè)置的有 14 位,也就是 16384 個(gè)網(wǎng)絡(luò)空間(2 的 14 次方=16384),其網(wǎng)絡(luò)空間 IP 為 128.0.0.0 ~ 191.255.0.0,每個(gè)網(wǎng)絡(luò)空間可以擁有 65536 臺(tái)主機(jī)(2 的 16 次方=65536)。
C 類網(wǎng)絡(luò)屬于小型網(wǎng)絡(luò),這類網(wǎng)絡(luò)IP地址的前三個(gè)數(shù)字為網(wǎng)絡(luò)地址,最后一個(gè)是主機(jī)地址,且第一個(gè)八位位組的前三位固定位110(11000000)即 192,可供我們設(shè)置的有 21 位,也就是 2097152 個(gè)網(wǎng)絡(luò)空間(2的21次方),其網(wǎng)絡(luò)空間 IP 為 192.0.0.0~223.255.255.0,每個(gè)網(wǎng)絡(luò)空間可以有 256 ( 2 的 8 次方)臺(tái)主機(jī)。
A、B 和 C 類 IP 地址的網(wǎng)絡(luò)空間范圍:
A 類 IP 地址:0.0.0.0 ~ 127.0.0.0
B 類 IP 地址:128.0.0.0 ~ 191.255.0.0
C 類 IP 地址:192.0.0.0 ~ 223.255.255.0
請問下面的 IP 分別屬于第幾類 IP 地址,請將答案寫在 IP 地址后方。
9.4.3.47
203.42.62.1
103.88.77.22
151.10.13.55
222.127.16.4
請問下面的IP地址哪一部分是主機(jī)地址?哪一部分是網(wǎng)絡(luò)地址?
9.4.3.47
203.42.62.1
103.88.77.22
151.10.13.55
222.127.16.4
觀察上圖,若 172.16 網(wǎng)段中的 0.1 主機(jī)想要發(fā)送信息給同網(wǎng)段中的 0.2 主機(jī),0.1 主機(jī)首先就會(huì)查看 0.2 主機(jī)是否與自己在同一網(wǎng)段下,靠什么查看呢?
兩種方式,一種是查看八位位組是否一致;另一種是查看IP地址的前兩組數(shù)是否一致,若一致,則代表在同一網(wǎng)段,因此可以直接發(fā)送信息;
若172.16 網(wǎng)段中的 0.1 主機(jī)想要發(fā)送信息給 172.17 網(wǎng)段中的 0.2 主機(jī),同樣是根據(jù)上述方法檢測,此時(shí)發(fā)現(xiàn) 0.2 主機(jī)在另一網(wǎng)段,因此需要借助路由器來實(shí)現(xiàn)信息的交互。
這就是 IP 地址的運(yùn)行機(jī)制,你學(xué)會(huì)了嗎?
隨著互聯(lián)網(wǎng)的飛速發(fā)展,我們消耗 IP 的速度越來越快,IP 地址漸漸的又不夠用了,因此,在 1993 年,引入了一種新的方法,稱為無類別域間路由(Classless Inter-Domain Routing)簡稱 CIDR。
以前我們通過查看IP的前幾位來識(shí)別 IP 地址類別,知道該 IP 類別后,我們就直到了 IP 中的哪一部分用于網(wǎng)絡(luò),哪一部分用于主機(jī);但是現(xiàn)在,我們需要引入一種全新的概念——子網(wǎng)劃分。
子網(wǎng)掩碼同樣由 4 個(gè)八位位組組成,與 IP 地址如出一轍;如圖,255.255.0.0 就是 172.16.3.4 的子網(wǎng)掩碼。
子網(wǎng)掩碼的每一位都與 IP 地址對齊,例如 172 與第一個(gè) 255 對齊,16 與第二個(gè) 255 對齊,通過圖中我們可以發(fā)現(xiàn),子網(wǎng)掩碼設(shè)置為 255 的位,即為網(wǎng)絡(luò)地址,設(shè)置位 0 的位,即為主機(jī)地址。
此時(shí),我相信很多讀者突然恍然大明白了,原來我們在自己電腦上設(shè)置IP地址信息時(shí)的子網(wǎng)掩碼是這個(gè)意思呀,有了這樣一個(gè)概念,我們就可以通過子網(wǎng)掩碼很快的得知 IP 地址屬于哪一類網(wǎng)絡(luò)。
若子網(wǎng)掩碼設(shè)置為 255.0.0.0 則為 A 類網(wǎng)絡(luò);255.255.0.0 則為 B 類網(wǎng)絡(luò);255.255.255.0 則為 C 類網(wǎng)絡(luò),So Easy~
此時(shí),大家可能會(huì)說,就這?我們的問題是IP地址不夠用的問題,你這不是說了個(gè)寂寞嗎?僅僅能分辨 IP 地址類別有個(gè)卵用?
別急,接下來,咱們就看一下 CIDR 的真正強(qiáng)大之處。
將大型網(wǎng)絡(luò)分解為小型網(wǎng)路的能力,我們稱之為子網(wǎng)劃分,假設(shè)你擁有一個(gè) 172.16.0.0 的網(wǎng)絡(luò)空間,子網(wǎng)掩碼為 255.255.0.0,這意味著我們可以在該網(wǎng)絡(luò)空間布置 6.5 萬臺(tái)主機(jī),試問,有那個(gè)公司敢說自己的辦公室可以容得下這么多主機(jī)?即便有這么大的辦公室,也沒那么多員工啊?
假如我們只有幾間小辦公室,然后我們擁有 172.16.0.0 這個(gè)網(wǎng)絡(luò)空間,這意味著每個(gè)辦公室要?jiǎng)澐?65000 臺(tái)主機(jī),如果用不完會(huì)對網(wǎng)絡(luò)地址造成極大浪費(fèi)!
所以,我們需要通過修改子網(wǎng)掩碼來打破現(xiàn)在的這種網(wǎng)絡(luò)劃分結(jié)構(gòu),將原來的子網(wǎng)掩碼 255.255.0.0 修改為 255.255.255.0,如此一來,我們就擁有了 256 個(gè)不同的子網(wǎng),每個(gè)子網(wǎng)可以劃分 256 臺(tái)主機(jī)。
這里我們需要強(qiáng)調(diào)一下,同一子網(wǎng)中的設(shè)備必須位于同一 IP 網(wǎng)段中,否則它們將無法進(jìn)行通信;若同一子網(wǎng)中的設(shè)備被路由器隔開,即便是同一 IP 網(wǎng)段,同樣無法進(jìn)行通信。
如果,我們擁有一個(gè) B 類地址,172.16.0.0,子網(wǎng)掩碼為 255.255.0.0,我們使用子網(wǎng)劃分將子網(wǎng)掩碼設(shè)置為 255.255.240.0,請問:
問:我們此時(shí)擁有多少個(gè)子網(wǎng)空間?
答:16 個(gè),172.16.0.0 打開了八位位組的前 16 位,而【255.255.240.0】打開了八位位組的前 20 位,20-16=4 位,這是子網(wǎng)的另外 4 位,因此 2 的 4 次方=16,因此,我們此時(shí)擁有16個(gè)子網(wǎng)空間。分別為:
172.16.0.0
172.16.16.0
172.16.32.0
172.16.48.0
172.16.64.0
172.16.80.0
172.16.96.0
172.16.112.0
172.16.128.0
172.16.144.0
172.16.160.0
172.16.176.0
172.16.192.0
172.16.208.0
172.16.224.0
172.16.240.0
問:每個(gè)子網(wǎng)空間可以劃分多少 IP 地址?【例如:176.16.0.1 ~176.16.15.255】
答:每個(gè)子網(wǎng)有 16 * 256 = 4096 個(gè) IP 地址。
如果你能夠很快得出答案,祝賀你,你已經(jīng)掌握了子網(wǎng)劃分的技巧,并能夠清晰的了解每個(gè)部分的含義。為了方便我們快速得知子網(wǎng)劃分的個(gè)數(shù),我們可以使用【CIDR記錄法】來進(jìn)行記錄。
這里,我們拿 192.16.1.0 / 24 來舉例,這個(gè) /24 的意思,就是打開 IP 八位位組的前 24 為,即1111 1111.1111 1111.1111 1111.0000 0000,其子網(wǎng)掩碼就是 255.255.255.0,因此 /24 = 255.255.255.0。
了解了 CIDR 記錄法,我們來看一個(gè)小練習(xí),參考下圖
問:為什么網(wǎng)段 A 中的設(shè)備無法通過路由器與網(wǎng)段 B 進(jìn)行通信?
答:問題的重點(diǎn)在中間路由器所在的網(wǎng)段,通過 172.16.2.0/30 得知,八位位組的前30位都打開了,因此只留下 2 位允許劃分空間,根據(jù) 2 的 2 次方=4 可以確定該網(wǎng)段之劃分了 4 個(gè) IP 地址 172.16.2.0~172.16.2.3。右側(cè)的路由器 IP 為 172.16.2.20,很明顯不在正確范圍內(nèi)。
原文作者:Network Direction
聯(lián)系客服