子網掩碼
子網掩碼(subnet mask)又叫網絡掩碼、地址掩碼、子網絡遮罩,它是一種用來指明一個IP地址的哪些位標識的是主機所在的子網,以及哪些位標識的是主機的位掩碼。
例:我們常用的內網IP地址:192.168.0.100,默認子網掩碼:255.255.255.0,指明前3個字節是網絡位,第4個字節是主機位。兩者可以寫成:192.168.0.100/24 (前3個字節,每個字節是8位)
IP地址是以網絡號和主機號來標示網絡上的主機的,我們把網絡號相同的主機稱之為本地網絡,網絡號不相同的主機稱之為遠程網絡主機,本地網絡中的主機可以直接相互通信;遠程網絡中的主機要相互通信必須通過本地網關(Gateway)來傳遞轉發數據。
為什么要使用子網掩碼?
兩台主機通信,要先判斷是否處於同一網段,如果相同,那么可以把數據包直接發送到目標主機,否則就需要路由網關將數據包轉發送到目的地。
A主機要與B主機通信,A和B各自的IP地址與A主機的子網掩碼進行And與運算,看得出的結果:
1、結果如果相同,則說明這兩台主機是處於同一個網段,這樣A可以通過ARP廣播發現B的MAC地址,B也可以發現A的MAC地址來實現正常通信。
2、如果結果不同,ARP廣播會在本地網關終結,這時候A會把發給B的數據包先發給本地網關,網關再根據B主機的IP地址來查詢路由表,再將數據包繼續傳遞轉發,最終送達到目的地B。
子網掩碼和IP地址的邏輯與運算
運算規則:0&0=0;0&1=0;1&0=0;1&1=1;例:
IP地址:192.168.1.120
子網掩碼:255.255.255.0
11000000 10101000 00000001 01111000
11111111 11111111 11111111 00000000
———————————————————
11000000 10101000 00000001 00000000
即計算出來的網段是192.168.1.0
為什么要划分子網?
比如我們使用192.168.0的網段,該網段最大能容納253個主機(主機ID位0特指這個網段,主機ID位1指廣播地址即該網段所有主機,還有一個網關地址如192.168.0.254,所以256-3=253),而我們只有50台主機,如果不划分子網的話,就會造成地址浪費,降低性能。子網划分的好處:
1.避免地址產生浪費
2.降低廣播風暴問題
3.降低網絡擁塞,減輕路由器的壓力。
子網划分的計算方法
原理:借位計算。
①將一個大的子網拆分成多個小的子網
②借用主機位,變為網絡位
③調整划分的網絡子網掩碼
④獲得每個子網的主機范圍

/24 代表255.255.255.0
/25 代表255.255.255.128
解釋:向主機ID借一位,255.255.255.0000 0000 ===》255.255.255.1000 0000
依次類推:
/26 代表255.255.255.192,255.255.255.0000 0000 ===》255.255.255.1100 0000 借兩位
/27 代表255.255.255.224,255.255.255.0000 0000 ===》255.255.255.1110 0000 借三位
/28 代表255.255.255.240
/29 代表255.255.255.248
/30 代表255.255.255.252
/31 代表255.255.255.254
/32 代表255.255.255.255
選定的子網掩碼會創建幾個子網?
2^x個,x為子網掩碼借用的主機位數。
每個子網能包含幾台主機?
2^y-2個,y為剩余的主機位數,-2是將主機位全為0或1的兩個去掉。
計算子網的步長(增量)
如 /26 是255.255.255.192,子網的步長即為256-192=64
實例1:
將192.168.0.*的網段划分為4個子網
因為4=2^2,所以要向主機ID借2位,也就是/26
子網的步長=256-192=64,所以合法的子網為0 64 128 192

實例2:
公司有5個部門,分別有5、10、12、20、50台電腦,使用10.10.1.*/24網段,請划分子網。
設部門為ABCDE,各部門分配子網能包含的主機數(暫不減2):
A:5+2=7<8 = 2^3 需要借8-3=5位,即/29
B:10+2=12<16 = 2^4 需要借8-4=4位,即/28
C:12+2=14<16 = 2^4 需要借8-4=4位,即/28
D:20+2=22<32 = 2^5 需要借8-5=3位,即/27
E:50+2=22<64 = 2^6 需要借8-6=2位,即/26

解析:
A部門的廣播地址10.10.1.7===>10.10.1.0000 0111,因為主機ID的前5位被借去做網絡ID了,所以其主機ID即為111,當主機位全為1時,是該網段的廣播地址,所以10.10.1.7為廣播地址。
