IP地址是所有網絡初級課程里最先涉及到的技術點,對于IP地址的合理規劃是網絡設計的重要環節,必須拿捏。
IP地址規劃的好壞,影響到網絡路由協議算法的效率,影響到網絡的性能,影響到網絡的擴展,影響到網絡的管理,也必將直接影響到網絡應用的進一步發展。
今天和你分享一篇文章,把IP地址相關的原理給你講透,基本盤搞扎實了,一切都好說了。
01
數據如何傳輸到目的地?
有很多小白粉絲問過這么一個問題:為什么沒有配置 IP 地址就無法上網?IP 協議又是啥?
這要從 TCP/IP 協議說起,互聯網使用的是 TCP/IP 協議,其中 IP 協議又是最重要的協議之一。
IP 協議是基于 IP 地址將數據包發送給目的主機,能夠讓互聯網上任何兩臺主機進行通信。
IP 協議位于 OSI 參考模型的第三層,即網絡層。
網絡層的主要作用是實現終端節點之間的通信。這種終端節點之間的通信,也叫點對點通信。
主機:配置有 IP 地址,不進行路由控制的設備。
路由器:既有 IP 地址又具有路由控制功能的設備。
節點:主機和路由器的統稱。
數據如何傳輸到目的地?
數據鏈路層實現兩個直連設備之間的數據傳輸,網絡層的 IP 協議實現沒有直連的兩個網絡之間的數據傳輸。
以旅行為例,小美要去一個很遠的地方旅行,先計劃要乘坐的高鐵、地鐵、公交車,并且購買相應車票,再制定一個詳細行程表,記錄乘車時間。
高鐵票、地鐵票只能在一個區間內移動,就像網絡上的數據鏈路。出發點就像源 MAC 地址,目的地就像目的 MAC 地址,整個行程表的作用就相當于網絡層,出發點就像源 IP 地址,目的地就像目的 IP 地址。
小美如果只有行程表,沒有車票,就無法乘坐交通工具到達目的地。相反,小美只有車票,不知道坐什么車,在哪里換乘,恐怕也到不了目的地。
只有兩者兼備,既有某個區間的車票又有整個旅行的行程表,才能保證到達目的地。網絡中也需要數據鏈路層和網絡層協同工作,才能實現最終目的地址的通信。
02
IP 地址的基礎知識
在 TCP/IP 通信中使用 IP 地址識別主機和路由器。IP 地址是邏輯地址,需要手工配置或自動獲取,為了保證正常通信,每個設備必須配置 IP 地址。
01?IP 地址的定義
IP 地址由 32 位二進制數組成。為了方便記錄,將 32 位的 IP 地址分為 4 組,每 8 位為一組,每組以“ . ”隔開,再將每組數轉換為十進制數。
IP 地址一共有多少個?
將 IP 地址的32位二進制進行計算,得出約 43 億個 IP 地址。
實際上,網絡的發展超乎想象,互聯網上的設備遠超 43 億, 2019 年 11 月 25 日全球的 IPv4 地址已經徹底耗盡,但是直到現在大家仍然還在用 IPv4 ,并沒有因為地址沒了而無法上網。是因為除了 IPv6 之外,我們使用 NAT 技術緩解了地址不足的問題。
02?IP 地址的組成
IP 地址由網絡號(網段地址)和主機號(主機地址)兩部分組成。
網絡號是設備所在區域的一種標識,網絡號相同的設備位于同一個網段內,網絡號不同的設備通過路由器實現通信。主機號是在同一個網段中不同設備的標識,不允許同一個網段內出現重復的主機號。
路由器是根據目的 IP 地址的網絡號進行路由。
那么 IP 地址哪幾位是網絡號?哪幾位是主機號?早期是以分類地址區分,現在是以子網掩碼區分。
03?IP 地址的分類
IP 地址分為四類,分別是 A 類、 B 類、 C 類、 D 類(還有一個保留的 E 類)。
A 類地址
A 類 IP 地址是首位以“ 0 ”開頭的地址。從第 1 位到第 8 位是它的網絡號,網絡號的范圍是?0 ~ 127 。其中 0 和 127 被保留,因此有 126 個可用的 A 類地址。
后 24 位是主機號,一個 A 類地址的主機地址數量就是 2 的 24 次方,即 16777216 個主機地址。
B 類地址
B 類 IP 地址是前兩位以“ 10 ”開頭的地址。從第 1 位到第 16 位是它的網絡號,網絡號的范圍是 128.0 ~ 191.255 。其中 128.0 和 191.255 屬于保留地址,因此有 16382 個可用的 B 類地址。
后 16 位是主機號,一個 B 類地址的主機地址的數量就是 2 的 16 次方,即 65536 個主機地址。
C 類地址
C 類 IP 地址是前三位以“ 110 ”開頭的地址。從第 1 位到第 24 位是它的網絡號,網絡號的范圍是 192.0.0 ~ 223.255.255 。
其中 192.0.0 和 223.255.255 屬于保留地址,因此有 2097150 個可用的 C 類地址。
后 8 位是主機號,一個 C 類地址的主機地址的數量就是 2 的 8 次方,即 256 個主機地址。
D 類地址
D 類 IP 地址是前四位以“ 1110 ”開頭的地址。從第 1 位到第 32 位是它的網絡號,網絡號的范圍是 224.0.0.0 ~ 239.255.255.255 。D 類地址沒有主機號,用于組播。
網段地址和廣播地址
當主機號全為 0 時,表示的是網段信息,非主機地址。當主機號全為 1 時是廣播地址,也不是主機地址。因此在分配 IP 地址過程中,需要排除這兩個地址。
例如一個 C 類地址 192.168.1.0/24 最多只有 254 個可用主機地址,而不是 256 個。
04?廣播地址
IP 地址中的主機號全部為 1 的就是廣播地址,它是向同一個網段中的所有主機發送數據包。例如一個 B 類主機地址 172.20.1.100?的廣播地址是 172.20.255.255 。
05?IP 組播
組播用于將包發送給特定組內的所有主機。
組播使用 D 類地址。因此 IP 地址前四位是“ 1110 ”開頭的,就是組播地址。剩下的 28 位就是組播的組編號。
組播的地址范圍是 224.0.0.0 ~ 239.255.255.255 ,其中 224.0.0.0 ~ 224.0.0.255 既可以在同一個網段內實現組播,又可以跨網段給全網所有組員發送組播包。
06?子網掩碼
早期網絡地址采用固定網絡位長度的方式,使 IPv4 地址遭到大量浪費。如今網段地址的長度可變,同時也需要一種標識來獲取網段地址,以便路由器對數據包進行轉發,這種識別碼就是子網掩碼。
子網掩碼用 32 位的二進制表示, IP 地址的網段地址部分設置為 1 , IP 地址的主機地址部分設置為 0 。換句話說, IP 地址有多少位網段地址,子網掩碼就有多少位取 1 ,其余都取 0 。
為了方便記錄,每 8 位為一組,以“ . ”隔開,再轉換為十進制數。
例如:201.20.100.25 的子網掩碼是 255.255.255.0?,算出它的網段地址。
將子網掩碼和 IP 地址進行與( AND )運算,可得到這個 IP 地址的網段地址。
與( AND )運算
IP 地址和子網掩碼的二進制數,分別進行計算。只有當 IP 地址和掩碼都是 1 時,運算結果為 1 。其余情況計算結果都為 0 。
IP 地址的另一種表示方式是在每個 IP 地址后面追加網絡號的位數用“?/?”隔開。例如:
201.20.100.25/255.255.255.0?可表示為 201.20.100.25/24 。
07?CIDR 與 VLSM
解決 IP 地址浪費問題,除了使用子網掩碼,還使用了 CIDR 和 VLSM 技術。
CIDR ,即無類域間路由,采用任意長度分割 IP 地址的網絡號和主機號。它有兩個作用:
把多個網段聚合到一起,生成一個更大的網段;
匯總路由表 IP 地址,分擔路由表壓力。
VLSM ,即可變長子網掩碼,它可以對 A 、 B 、 C 類地址再進行子網劃分,以達到充分利用 IP 地址的目的。
假如一家企業有 100 臺電腦,按以前的辦法,只能分配一個 C 類地址 222.222.222.0?。但是 VLSM 可以在一個 C 類地址上劃分出多個子網地址,再分配其中一個容納主機數量與稍大于企業需求數量的子網地址給企業,這樣就可以實現 IP 地址的合理使用。
計算容納 100 臺電腦的子網:使用主機號的位數計算出子網的主機地址數量。當主機號有 7 位時,有 126 個可用主機地址,可容納 100 臺電腦。
計算子網地址:C 類地址 222.222.222.0?,網絡號長度為 32 - 7 = 25 位,子網掩碼為 255.255.255.128 。可分配 222.222.222.0/25 使用, 222.222.222.128/25 是節省出來的未分配的子網地址。
CIDR 和 VLSM 的區別
CIDR 是主機號向網絡號借位,目的是把幾個網絡匯總成一個大的網絡,增加子網主機數量;
VLSM 是網絡號向主機號借位,目的是把一個標準的網絡劃分成幾個子網,減少子網主機數量。
08?公網地址與私有地址
IP 地址分為公網地址和私有地址。公網地址是在互聯網上使用的,私有地址是在局域網中使用的。
公網地址由 Internet NIC 負責分配,通過它直接訪問互聯網。
私有地址是一段保留的 IP 地址。只在局域網中使用,無法在互聯網上使用。但是私有地址可以通過 NAT 技術,將私有地址轉換為公網地址接入互聯網。
公網 IP 地址在互聯網范圍內是唯一的,私有 IP 地址只要在同一個局域網內唯一即可。在不同局域網內出現相同的私有 IP 不會影響使用。
編輯:黃飛
?
評論