IPv4地址與子網掩碼(二)

在網絡中,經常有這樣的場景,如果兩個網卡

位於同一物理局域網絡上,那麼它們就可以直接在MAC層互相通信。

此時,就有一個問題,運行在底層的通信軟件,“如何”知道兩個網卡是位於同一網絡中?關鍵就是在子網掩碼(Subnet Mast),這是一種特殊的位模式,在目前的IPv4網絡中,任何使用TCP/IP協議的網卡,都必須定義子網掩碼

子網掩碼是一個特殊的位模式,其IPv4地址的網絡號全部為1

我們常用的IPv4地址有三類—A、B、C類,都有其自己的默認子網掩碼。n表示網絡部分,h表示地址部分。


IPv4地址與子網掩碼(二)

三類地址的默認子網掩碼


可以看到,子網掩碼識別的是IP地址中的網絡部分

一般來講,一個擁有許多物理網絡的單位,可將所屬的物理網絡劃分為若干個子網(subnet)。因為劃分子網是一個單位內部的事,因此本單位以外的網絡看不見這個網絡具體是由多少個子網組成,該單位對外部仍是表現為一個網絡。

劃分子網的方法是從網絡的主機號借用若干位作為子網號(subnet-id),同時主機號也會相應的減少同樣的位數,於是原本兩級的IP地址在劃分子網的單位內部就變為三級IP地址網絡號子網號主機號

對於劃分了子網的網絡,外部其他網絡發送給本單位某個主機的IP數據報後,首先還是根據IP數據報的

目的網絡號找到連接在本單位網絡上的路由器。路由器接收到IP數據報以後,再按照網絡號和子網號找到目的子網,進而再把IP數據報交給目的主機

我們舉個例子,假設某家公司擁有一個B類的IP地址,網絡地址是145.13.0.0,其網絡號是145.13

那麼,根據網絡協議,凡目的地址為145.13.x.x的IP數據報都會被髮送到該網絡上的路由器。


IPv4地址與子網掩碼(二)

B類網絡


現把B類網絡145.13.0.0劃分為3個子網,子網號佔用8位,那麼主機號就剩下8位。該網絡所劃分的三個子網分別為145.13.3.0、145.13.7.0和145.13.21.0。

劃分子網後,該網絡對外部表現仍為一個網絡,其網絡地址依舊是145.13.0.0,但網絡145.13.0.0上的路由器接收到外來的數據報後,會根據數據包的目的地址把它轉發到相應的子網。

IPv4地址與子網掩碼(二)

劃分三個子網的B類網絡


那麼,對於該網絡的路由器,在接收到帶有目的IP地址的數據報,是如何判斷出目的主機所在的子網的?

IP數據報和IP地址本身,其攜帶的信息裡並不包含數據報源主機或目的主機所連接的網絡是否進行了子網劃分。對於路由器來說,為了找到目的主機所在的子網,也要使用子網掩碼

以IP地址145.13.7.35為目的主機地址,按照三級IP地址去理解,目的主機的網絡位為145.13子網位為7主機位為35。


IPv4地址與子網掩碼(二)

兩級IP地址和三級IP地址


可以看出,子網號為145.13.7。路由器要使用子網掩碼,根據三級IP地址的結構和子網掩碼的使用規範,子網掩碼中的1對應目的IP的子網號0對應主機位,也就是說,32位IPv4,前24位都是1,後8位是0,用二進制表示就是
11111111111111111111111100000000,換算成十進制為255.255.255.0

路由器會把子網掩碼和目的主機地址進行與(AND)運算,然後便能得出目的主機所在的子網的網絡地址。

與(AND)運算是一種邏輯運算,符號為&。在二進制中,運算規則為1&0=0,0&0=0,1&1=1


IPv4地址與子網掩碼(二)

路由器計算子網地址


路由器是根據路由表來工作的,按照因特網的標準規定,路由器的路由表中必須有子網掩碼這一欄。路由器在和相鄰路由器交換路由信息時,必須要把自己所在網絡或子網的子網掩碼傳遞到相鄰路由器。

在路由器的路由表中的每一個項目,除了要給出

目的網絡地址,還必須同時給出網絡的子網掩碼。若一個路由器連接在兩個子網上,就擁有兩個網絡地址和兩個子網掩碼。

若是網絡沒有專門劃分子網,路由器的路由表中子網掩碼那一欄使用的就是前文說過的默認子網掩碼

但是,由於IPv4地址空間日益消耗,並且路由表中的項目數隨著網絡的增多也越來越長,在IPv6沒有出來的那段時間,在原先子網掩碼的概念上引出了新的辦法。

一個是變長子網掩碼VLSM(Variable Length Subnet Mask),在一個劃分了子網的網絡中可同時使用幾個不同的子網掩碼。

另外一個是無分類域間路由選擇CIDR(Class Inter-Domain Routing),CIDR消除了傳統的A類、B類和C類地址以及子網劃分的概念,可以在IP地址的網絡部分和主機部分的任何邊界設置邊界

,大大拓展了IPv4地址的使用效率。

目前的網絡中,特別是對IPv4地址的使用上,CIDR佔據了主要地位。

IPv4地址與子網掩碼(二)


分享到:


相關文章: