1、IP地址
- 網絡地址
IP地址由網絡號(包括子網號)和主機號組成,網絡地址的主機號為全0,網絡地址代表著整個網絡。
- 廣播地址
廣播地址通常稱為直接廣播地址,是為了區分受限廣播地址。
廣播地址與網絡地址的主機號正好相反,廣播地址中,主機號為全1。當向某個網絡的廣播地址發送消息時,該網絡內的所有主機都能收到該廣播消息。
- 組播地址
D類地址就是組播地址。
先回憶下A,B,C,D類地址吧:
A類地址以0開頭,第一個字節作為網絡號,地址范圍為:0.0.0.0~127.255.255.255;(modified @2016.05.31)
B類地址以10開頭,前兩個字節作為網絡號,地址范圍是:128.0.0.0~191.255.255.255;
C類地址以110開頭,前三個字節作為網絡號,地址范圍是:192.0.0.0~223.255.255.255。
D類地址以1110開頭,地址范圍是224.0.0.0~239.255.255.255,D類地址作為組播地址(一對多的通信);
E類地址以1111開頭,地址范圍是240.0.0.0~255.255.255.255,E類地址為保留地址,供以后使用。
注:只有A,B,C有網絡號和主機號之分,D類地址和E類地址沒有劃分網絡號和主機號。
- 255.255.255.255
該IP地址指的是受限的廣播地址。受限廣播地址與一般廣播地址(直接廣播地址)的區別在于,受限廣播地址只能用于本地網絡,路由器不會轉發以受限廣播地址為目的地址的分組;一般廣播地址既可在本地廣播,也可跨網段廣播。例如:主機192.168.1.1/30上的直接廣播數據包后,另外一個網段192.168.1.5/30也能收到該數據報;若發送受限廣播數據報,則不能收到。
注:一般的廣播地址(直接廣播地址)能夠通過某些路由器(當然不是所有的路由器),而受限的廣播地址不能通過路由器。
- 0.0.0.0
常用于尋找自己的IP地址,例如在我們的RARP,BOOTP和DHCP協議中,若某個未知IP地址的無盤機想要知道自己的IP地址,它就以255.255.255.255為目的地址,向本地范圍(具體而言是被各個路由器屏蔽的范圍內)的服務器發送IP請求分組。
- 回環地址
127.0.0.0/8被用作回環地址,回環地址表示本機的地址,常用于對本機的測試,用的最多的是127.0.0.1。
- A、B、C類私有地址
私有地址(private address)也叫專用地址,它們不會在全球使用,只具有本地意義。
A類私有地址:10.0.0.0/8,范圍是:10.0.0.0~10.255.255.255
B類私有地址:172.16.0.0/12,范圍是:172.16.0.0~172.31.255.255
C類私有地址:192.168.0.0/16,范圍是:192.168.0.0~192.168.255.255
2、子網掩碼及網絡劃分
隨著互連網應用的不斷擴大,原先的IPv4的弊端也逐漸暴露出來,即網絡號占位太多,而主機號位太少,所以其能提供的主機地址也越來越稀缺,目前除了使用NAT在企業內部利用保留地址自行分配以外,通常都對一個高類別的IP地址進行再劃分,以形成多個子網,提供給不同規模的用戶群使用。
這里主要是為了在網絡分段情況下有效地利用IP地址,通過對主機號的高位部分取作為子網號,從通常的網絡位界限中擴展或壓縮子網掩碼,用來創建某類地址的更多子網。但創建更多的子網時,在每個子網上的可用主機地址數目會比原先減少。
什么是子網掩碼?
子網掩碼是標志兩個IP地址是否同屬于一個子網的,也是32位二進制地址,其每一個為1代表該位是網絡位,為0代表主機位。它和IP地址一樣也是使用點式十進制來表示的。如果兩個IP地址在子網掩碼的按位與的計算下所得結果相同,即表明它們共屬于同一子網中。
在計算子網掩碼時,我們要注意IP地址中的保留地址,即" 0"地址和廣播地址,它們是指主機地址或網絡地址全為" 0"或" 1"時的IP地址,它們代表著本網絡地址和廣播地址,一般是不能被計算在內的。
子網掩碼的計算:
對于無須再劃分成子網的IP地址來說,其子網掩碼非常簡單,即按照其定義即可寫出:如某B類IP地址為 10.12.3.0,無須再分割子網,則該IP地址的子網掩碼255.255.0.0。如果它是一個C類地址,則其子網掩碼為 255.255.255.0。其它類推,不再詳述。下面我們關鍵要介紹的是一個IP地址,還需要將其高位主機位再作為劃分出的子網網絡號,剩下的是每個子網的主機號,這時該如何進行每個子網的掩碼計算。
下面總結一下有關子網掩碼和網絡劃分常見的面試考題:
- 利用子網數來計算
在求子網掩碼之前必須先搞清楚要劃分的子網數目,以及每個子網內的所需主機數目。
- 將子網數目轉化為二進制來表示;
如欲將B類IP地址168.195.0.0劃分成27個子網:27=11011;
- 取得該二進制的位數,為N;
該二進制為五位數,N = 5
- 取得該IP地址的類子網掩碼,將其主機地址部分的的前N位置1即得出該IP地址劃分子網的子網掩碼。
將B類地址的子網掩碼255.255.0.0的主機地址前5位置 1,得到 255.255.248.0
- 利用主機數來計算
如欲將B類IP地址168.195.0.0劃分成若干子網,每個子網內有主機700臺:
- 將主機數目轉化為二進制來表示;
700=1010111100
- 如果主機數小于或等于254(注意去掉保留的兩個IP地址),則取得該主機的二進制位數,為N,這里肯定 N<8。如果大于254,則 N>8,這就是說主機地址將占據不止8位;
該二進制為十位數,N=10;
- 使用255.255.255.255來將該類IP地址的主機地址位數全部置1,然后從后向前的將N位全部置為 0,即為子網掩碼值。
將該B類地址的子網掩碼255.255.0.0的主機地址全部置1,得到255.255.255.255,然后再從后向前將后 10位置0,即為:11111111.11111111.11111100.00000000,即255.255.252.0。這就是該欲劃分成主機為700臺的B類IP地址 168.195.0.0的子網掩碼。
- 還有一種題型,要你根據每個網絡的主機數量進行子網地址的規劃和計算子網掩碼。這也可按上述原則進行計算。
比如一個子網有10臺主機,那么對于這個子網需要的IP地址是:
10+1+1+1=13
注意:加的第一個1是指這個網絡連接時所需的網關地址,接著的兩個1分別是指網絡地址和廣播地址。
因為13小于16(16等于2的4次方),所以主機位為4位。而256-16=240,所以該子網掩碼為255.255.255.240。
如果一個子網有14臺主機,不少人常犯的錯誤是:依然分配具有16個地址空間的子網,而忘記了給網關分配地址。這樣就錯誤了,因為14+1+1+1=17,17大于16,所以我們只能分配具有32個地址(32等于2的5次方)空間的子網。這時子網掩碼為:255.255.255.224。