1 子網概述
1.1 從兩級 IP 地址到三級 IP 地址
在 ARPANET 的早期,IP 地址的設計確實不夠合理:
- IP 地址空間的利用率有時很低
- 給每一個物理網絡分配一個網絡號會使路由表變得太大因而使網絡性能變壞
- 兩級的 IP 地址不夠靈活
所謂兩級的IP地址指的是如下網絡號與主機號兩級
三級 IP 地址:
- 從 1985 年起在 IP 地址中又增加了一個“子網號字段”,使兩級的 IP 地址變成爲三級的 IP 地址
- 這種做法叫做劃分子網 (subnetting) ,劃分子網已成爲互聯網的正式標準協議
劃分子網的基本思路:
- 劃分子網純屬一個單位內部的事情。單位對外仍然表現爲沒有劃分子網的網絡
- 從主機號借用若干個位作爲子網號 subnet-id,而主機號 host-id 也就相應減少了若干個位
- IP地址 ::= {<網絡號>, <子網號>, <主機號>} 如下圖
- 凡是從其他網絡發送給本單位某個主機的 IP 數據報,仍然是根據 IP 數據報的目的網絡號 net-id,先找到連接在本單位網絡上的路由器,然後此路由器在收到 IP 數據報後,再按目的網絡號 net-id 和子網號 subnet-id 找到目的子網,最後就將 IP 數據報直接交付目的主機
1.2 子網掩碼
- 子網掩碼就是用來計算某個IP地址所屬網段的工具,通過與目標IP地址進行與
AND
運算,得到的結果就是子網號 - 從一個 IP 數據報的首部並無法判斷源主機或目的主機所連接的網絡是否進行了子網劃分,子網掩碼是一個網絡或一個子網的重要屬性
- 路由器在和相鄰路由器交換路由信息時,必須把自己所在網絡(或子網)的子網掩碼告訴相鄰路由器,路由器的路由表中的每一個項目,除了要給出目的網絡地址外,還必須同時給出該網絡的子網掩碼,若一個路由器連接在兩個子網上,就擁有兩個網絡地址和兩個子網掩碼
2 例題:按要求確定子網和子網掩碼
2.1 題幹
- 已分配了一個C類地址:
192.168.5.0
,假設需要20個子網,毎個子網有5臺主機試確定各子網地址和子網掩碼。
2.2 劃分過程
- 對於這個問題,我們首先要確定的是,要從C類地址中的8位主機號中分出多少位來交給子網號使用,現在需要20個子網,若分出4位作爲子網號,則 不夠,若分出5位作爲子網號,則 ,去掉全爲0和全爲1的子網,那麼可分配的子網號有 個,可以滿足要求,即 ,最後選擇分出5位來交給子網號使用
- 檢測剩餘的位數能否滿足對每個子網中主機個數的要求,由1可知可用於主機號分配的位數只有 位,即 每個子網中可以提供8臺主機,而 (+2是因爲主機號中全爲0和全爲1的主機號是不能分配的),所以得出主機號爲3位是可以滿足要求的
- 選擇5位作爲子網號後,子網掩碼的最後8位爲
11111000
,十進制爲248
,從而推出子網掩碼爲255.255.255.248
- 接下來看看哪些子網地址是可用的,可以看出子網地址可在8、16、24、32、…、240共30個地址中任意選擇20個來使用
- 爲了避免網絡和子網號混淆,所以我們一般不使用子網號全爲0的情況,即
192.168.5.0
是不使用的,那麼第一個可使用的子網號爲192.168.5.00001000
,全十進制表示爲192.168.5.8
,第二個可使用的子網號爲192.168.5.00010000
,全十進制爲192.168.5.16
,依次類推 - 爲了避免子網號和廣播地址混淆,所以全爲1的子網號也不使用,即不使用
192.168.5.11111000
,那麼最後一個可使用的子網號爲192.168.5.11110000
,全十進制爲192.168.5.240
- 所以所有可以使用的子網個數爲 個,每個子網內可使用的主機號爲 個