1. 程式人生 > >子網掩碼在IP地址中的重要意義

子網掩碼在IP地址中的重要意義

      筆者近日在閱讀《TCP/IP協議卷1》時,閱讀到有關子網掩碼的知識,書本上所講難以理解,於是查閱網上資料和自己思考得出一些結論。

      首先,什麼是子網掩碼?對於一個B類IP地址而言,一共有32bit,前面16bit代表的是網路號,之後16bit代表的是主機號。子網掩碼格式為前16bit為網路號,後面16bit為子網號和主機號。這兩者有什麼關聯呢?

      然後,要清楚子網的概念,IP地址是通過網路號和主機號來表示網路上的主機的,只有同一網路號下的主機才能“直接”互連,但對於一個網路號來說,它有2的16次方個主機號,有時顯得不太靈活,於是引入了子網的概念,目的就是把一個網路號下的主機群體再分為許許多多的小群體。

       子網掩碼的通常格式中前面24bit往往全是1,也就是111111111111111111111111xxxxxxxx,後面的x表示的是不確定,讀者可以開啟自己的電腦,進入命令列輸入ipconfig(windows,如果是linux系統請輸入ifconfig),觀察主機的子網掩碼,往往是255.255.255.0,這個有什麼實際的含義呢?如果你的ip地址為113.147.1.22,子網掩碼為255.255.255.0的話,也就是說,該子網中有256-2個ip可用(後解釋為何-2),對於這樣一個子網掩碼11111111111111111111111100000000,子網號只佔了8bit,也就是說沒有將這個網段再細分出子網,注意,這裡是再,因為該子網掩碼中第三個8bit全為1,這裡實際上已經表示了113.147這個網路號分為了256段,也就是113.147.0-113.147.255已經被分成了子網。那麼如果你的子網掩碼為255.255.255.192時,子網掩碼錶現為二進位制為11111111111111111111111111xxxxxx,也就是將網路分為256*4個子網,那麼這裡針對113.147.1的網段ip,他們的256個ip又被分為了4份,也就是113.147.1.0-113.147.1.63,113.147.1.64-113.147.1.127,113.147.1.128-113.147.1.191,113.147.1.192-113.147.1.255,對於這些子網它們的第一個ip作為該子網的網路地址,最後一個ip為廣播地址,這也是為什麼上面的子網要-2個ip的原因。

       當你理解了子網掩碼的意義時,你會發現,其實子網掩碼的前面16bit基本一直是1,後面的16bit才是決定將一個網段怎麼分的關鍵,例如C類IP,前面24bit決定網路號,後面8bit決定主機號,但是子網掩碼仍然為255.255.255.x,你會發現和B類地址的子網掩碼幾乎一樣,說到底,子網掩碼限制了一個子網的主機個數,將一個網段分為幾個子網,完成需要。

      這裡強調一下C類和B類IP唯一的不同就是24位和16位網路號的區別,但是如果把網路號和主機號這個概念淡化,子網掩碼作用就可以很清晰地觀察出來了,就是分段,如果子網掩碼32bit全為0,那麼這個網段的主機數量為2的32次方,而當為正常的255.255.255.0時就將2的32次方分為了2的24次方個2的8次方。

      最後強調一下,如果有概念上的錯誤,希望讀者能夠指出來,筆者會盡快改正,這個感悟畢竟是自己想出來的,可能有一些概念上的錯誤,希望大家理解