計算機網路之ip、子網掩碼、網路號、主機號等概念解析

qq_37584164發表於2019-04-07

在工作中談論到計算機網路時,有幾個經常出現的術語,比如:ip、子網掩碼、網段等等。之前對這些概念的理解都比較模糊,只知其大概意思,隨著工作中遇到的網路問題越來越多,有必要詳細理解一下計算機網路的基礎知識了。這篇文章就先介紹幾個計算機網路領域的專業術語。

IP地址

ip這個詞是計算機網路中出現頻率最高的了,甚至只要使用過電腦的人都知道這個詞。IP地址全程是網際網路協議地址(英文:Internet Protocol Address)。IP地址就是給網路中的每臺計算機都分配了一個地址,這個IP地址就是該計算機在網路中的身份id,通過ip就可以快速地定位到需要的那臺計算機。

按照規定,IP是一個32為的二進位制數,為了表示方便,通常將一個ip按照每8位一組轉換成十進位制數,然後每組中間用符號"."表示,這種表示方法稱為“點分十進位制表示法”。

  • ip地址的組成

    IP地址 = 網路地址 + 主機地址 (又稱:網路號和主機號)

    或者,

    IP地址 = 網路地址 + 子網地址 + 主機地址

最初設計的時候,IP地址只是由網路地址和主機地址兩部分組成,IP地址的32位中,前面一些連續位稱為網路號,用於表示該裝置位於哪個網路,後面的其餘位稱為主機地址,用於在該網路中唯一標識一臺主機。

基於以上的設計,IPv4地址按照網路號和主機號的長度不同分為五大類,通過ip中的最左邊幾位二進位制數來區分,0開頭的為A類,10開頭的為B類,110開頭的為C類,1110開頭的為D類,1111開頭的為E類,如圖所示:
在這裡插入圖片描述
所以,如果按照這種劃分方式得到的IPv4地址空間為:
在這裡插入圖片描述
然而實際上這種分類方式的缺陷是顯而易見的,例如:A類地址的網路號少主機號多,C類地址的網路號多而主機號少,這就會造成IP地址資源利用率低下的問題。於是後來就出現了“IP地址 = 網路地址 + 子網地址 + 主機地址”的劃分方式,也就是在原來的基礎上又將主機號分成了子網號+主機號,這種方式被稱為子網定址。

子網是從每類的網路地址的主機部分拿出一定數量的位數,用該位數標識子網號,從而將每類的IP網路進一步分成更小的網路。

在出現子網之前,通過判斷一個ip是A類、B類或者C類地址就可以直接從IP中獲取到網路號,但是增加了子網後,如何判斷一個ip中的子網部分和主機號部分呢?這就出現了子網掩碼的概念。

子網掩碼

子網掩碼(subnet mask)就是用來從一臺主機的ip地址中獲取其網路資訊、子網資訊和主機號的。子網掩碼跟ip的長度相同。子網掩碼不能單獨存在,他必須結合ip地址一起使用。

子網掩碼跟ip的長度相同,也是由32為二進位制陣列成,不同的是,**子網掩碼必須是由左邊連續的若干個1和右邊其餘若干個連續的0組成。簡單說就是子網掩碼的左邊若干位全部是1,剩下的右邊所有為都是0 **。

那麼是如何通過子網掩碼來獲取一個ip中對應的網路號和主機號的呢?將ip地址與子網掩碼按位與得到的結果就是該ip對應的網路地址/子網識別符號,這個識別符號就確定了一臺主機位於哪個網路中。下面舉個例子:

例如,已知有一個ip為:192.168.10.2,它對應的子網掩碼為255.255.255.240,求該ip對應的網路號/子網號,和主機號。

將ip地址轉換成二進位制為:11000000.10101000.00001010.00000010,將子網掩碼也轉換成二進位制:11111111.11111111.11111111.11110000,然後將這兩個二進位制數按位與運算,結果為: 11000000.10101000.00001010.00000000,將這個結果轉換成十進位制就是192.168.10.0,所以這個ip對應的網路地址就是192.168.10.0。

  • 子網掩碼的ip表示法

    有時候將ip和子網掩碼都寫出來這種方法寫起來太麻煩了,所以就出現了ip表示法。例如我們在修改一些網路配置時,經常看到這種寫法:192.168.10.2/28。這就是ip表示法,他即表明了ip地址,也表明了該ip對應的子網掩碼。其中:192.168.10.2就是指ip地址,/28 是指子網掩碼的前28位為1,其餘為是0,即子網掩碼為:11111111.11111111.11111111.11110000。

小結一下

這裡我認為最為主要的也是比較難理解的一個概念就是子網掩碼,那麼這裡就來總結一下子網掩碼到底是幹什麼的。本來按照最開始的設計“ip = 網路地址 + 主機號”,將ip分為五大類,我們通過給定ip的前幾位就可以判斷這個ip屬於哪一類,進而就可以知道這個ip的哪些位是網路地址,哪些位是主機地址。例如:已知一個ip:192.168.43.247,轉換成二進位制:11000000.10101000.00101011.11110111,因為是110打頭的所以是C類地址,我們又知道C類地址的前24為是網路號,後8為是主機號,所以該ip對應的網路號就是192.168.43.0,而主機號就是247。但是由於這種設計使用起來有缺陷,所以人們又發明了一個叫子網的東西,有了子網以後,我們就不能單單通過一個IP屬於哪一類來判斷哪些位是網路地址了,於是人們又發明了子網掩碼,用來標識一個ip的哪些位是網路地址。具體操作就是將ip與子網掩碼按位與運算的結果就是網路地址。

相關文章