什么是子網掩碼? 子網掩碼(subnet mask)又叫網絡掩碼、地址掩碼、子網絡遮罩,它用來指明一個IP地址的哪些位標識的是主機所在的子網,以及哪些位標識的是主機的位掩碼。子網掩碼不能單獨存在,它必須結合IP地址一起使用。 子網掩碼是一個32位地址,用于屏蔽IP地址的一部分以區別網絡標識和主機標識,并說明該IP地址是在局域網上,還是在廣域網上。 子網掩碼是在IPv4地址資源緊缺的背景下為了解決lP地址分配而產生的虛擬lP技術,通過子網掩碼將A、B、C三類地址劃分為若干子網,從而顯著提高了IP地址的分配效率,有效解決了IP地址資源緊張的局面。另一方面,在企業內網中為了更好地管理網絡,網管人員也利用子網掩碼的作用,人為地將一個較大的企業內部網絡劃分為更多個小規模的子網,再利用三層交換機的路由功能實現子網互聯,從而有效解決了網絡廣播風暴和網絡病毒等諸多網絡管理方面的問題。 在大多數的網絡教科書中,一般都將子網掩碼的作用描述為通過邏輯運算,將IP地址劃分為網絡標識(Net.ID)和主機標識(Host.ID),只有網絡標識相同的兩臺主機在無路由的情況下才能相互通信。 根據RFC950定義,子網掩碼是一個32位的2進制數, 其對應網絡地址的所有位都置為1,對應于主機地址的所有位置都為0。子網掩碼告知路由器,地址的哪一部分是網絡地址,哪一部分是主機地址,使路由器正確判斷任意IP地址是否是本網段的,從而正確地進行路由。網絡上,數據從一個地方傳到另外一個地方,是依靠IP尋址。從邏輯上來講,是兩步的。第一步,從IP中找到所屬的網絡,好比是去找這個人是哪個小區的;第二步,再從IP 中找到主機在這個網絡中的位置,好比是在小區里面找到這個人。 子網掩碼的設定必須遵循一定的規則。與二進制IP地址相同,子網掩碼由1和0組成,且1和0分別連續。子網掩碼的長度也是32位,左邊是網絡位,用二進制數字“1”表示,1的數目等于網絡位的長度;右邊是主機位,用二進制數字“0”表示,0的數目等于主機位的長度。這樣做的目的是為了讓掩碼與IP地址做按位與運算時用0遮住原主機數,而不改變原網絡段數字,而且很容易通過0的位數確定子網的主機數(2的主機位數次方-2,因為主機號全為1時表示該網絡廣播地址,全為0時表示該網絡的網絡號,這是兩個特殊地址)。通過子網掩碼,才能表明一臺主機所在的子網與其他子網的關系,使網絡正常工作。 子網掩碼只能是255和0嗎? 在實際項目中,我們通常會遇到這樣的ip地址。 ip地址:192.168.1.1 子網掩碼:255.255.255.0 ip地址:192.168.1.2 子網掩碼:255.255.255.0 我們可以直接的判斷,他們是同屬于一個網段的ip地址。 那么對于下面這樣的呢? ip地址:192.168.1.1 子網掩碼:255.255.255.0 ip地址:192.168.1.2 子網掩碼:255.255.0.0 這兩個ip地址雖然在不看掩碼的情況下,比較像,但他們并不是同一個網段內的。 這個可以從子網掩碼來判斷, 192.168.1.1 255.255.255.0是屬于192.168.1.0網段的。 而192.168.1.2 255.255.0.0是屬于192.168.0.0網段。 |