成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

只有 32 位的 IPv4,為何依然夠用?

開發 開發工具
正好 2019 年了,決定再挖個大的新坑,準備開始寫一些那些多年不變的基礎技術,算法、數據結構、網絡協議、設計模式、操作系統有時間都會寫。先挖坑,挖完慢慢填,我盡量寫的有趣一些,希望大家能夠看下去。

[[256893]]

一、前言

我一直在強調,打好基礎怎么變都不慌,但是一直也沒有重點分享過這些基礎技術。正好 2019 年了,決定再挖個大的新坑,準備開始寫一些那些多年不變的基礎技術,算法、數據結構、網絡協議、設計模式、操作系統有時間都會寫。先挖坑,挖完慢慢填,我盡量寫的有趣一些,希望大家能夠看下去。

今天就來講講網絡協議中的 CIDR(無類型域間選路),先來說說 CIDR 的背景。

二、CIDR 的背景

2.1 IPv4 和 IPv6

現存所有的網絡設備硬件中,網卡是設備上網必備的硬件條件,網卡雖然有唯一(相對唯一)的 Mac 地址去標識,但是依然需要分配一個 IP 地址。有了 IP 地址,才能讓世界知道你的位置。

簡單來說,IP 地址是一個網卡在網絡世界的通訊地址,這就相當于現實世界中,我們在網購時填的收貨地址。可以幫助別人,從世界的任何位置,找到我們。

現存的 IP 協議有兩套,就是我們常說的 IPv4 和 IPv6。IPv4 由于最初設計的"缺陷",長度只有 32 位,大約只能提供 40 億個地址。早期設計時,可能也想不到互聯網會發展到現在這個地步,隨便一個設備都需要聯網。

這就造成了 IPv4 地址很快就不夠用了,尤其是這樣 32 位地址中,還被分為了 A、B、C、D、E 這五類地址,拋開一些特殊的 IP 地址,可供使用的就更少了。由此可見 IPv4 在當初設計時,是有多么奢侈。

 

隨后 IPv6 就被設計出來。我們知道當容量不夠的時候,擴容是一條短期正確,但是長期來看依然是存在隱患的事情,無論擴大到多少,如果沒有合理的規劃,用完其實也是遲早的事情。

IPv6 的長度增加到 128 位,可以提供更多的地址,但是 IPv4 和 IPv6 相互之間并不兼容,導致遷移困難。如今 IPv6 已經慢慢在被一些大廠所使用,例如在淘寶 App 的啟動頁底部,就可以看到 IPv6 的標識。即便如此,在未來很長的一段時間內,依然會保持兩個協議并行支持。

IPv6 并不是本文的重點,再說回到 IPv4 的地址過少這個硬傷上。雖然地址確實不夠用,但是設備需要聯網確實是強需求,這也是必須要解決的問題,聯網就需要 IP 地址,是不是感覺進入死循環了。

IPv4 這種 A、B、C 類為主要的分類的 IP 數量,到底少到什么地步呢?這里看一張表就知道了。

 

能夠感受到 IPv4 的尷尬了嗎?C 類地址能夠包含的***主機數量,是在太少了,現在隨便一個網吧可能就不夠用了,而 B 類地址包含的***主機數量又太多了,大量用不到的地址,很容易造成地址的浪費。有句老話怎么說的,旱的旱死,澇的澇死。

于是就出現了一個折中的方案,那就是我們本文要聊的 CIDR,中文名為無類型域間選路。

2.2 子網的劃分

現在還不到說 CIDR 的時候(就是不愛寫這種基礎技術,想寫清楚會發現有太多需要前置交代)。在說 CIDR 之前,還有個背景需要交代,那就是子網。

互聯網這個大網,中間被分割成一個個子網,而子網下又被進一步分割。

從我們上面的 IP 分類圖中,可以看出,一個 IP 地址的 32 位中,還被分為兩類,分別是網絡號和主機號,將主機號都置為 0,得到的就是網絡地址。

 

可以看出,這樣很明顯的兩級劃分,也被稱為兩級 IP 地址。而 IP 地址的利用率有時很低,這種兩級劃分的方式就顯得不那么靈活,于是就出現了子網。

 

子網其實就在之前的兩級 IP 地址中,又加了一層子網號,將其變成三級結構。雖然增加了子網號,但是 IP 地址的長度依然是 32 位,網絡號肯定是無法變更的,所以這里的子網就只能從主機號想辦法。此時的子網號,其實就是從主機號中借位,這樣就等于是減少了主機數,將其分割到不同的子網中。

涉及到子網,還有一個重要的概念,就是子網掩碼。子網掩碼,就是為了區分識別對 IP 地址劃分的子網的。子網掩碼很簡單,它就是將網絡號和子網號,對應的位全部置為 1,將主機號對應的位都置為 0,這就是子網掩碼了。

這三個信息中,只要知道 IP 地址和子網掩碼,自然就可以推算出對應的網絡地址。這也正是我們前面說的子網的概念,其實是將一個大的網絡,在其內部分割成一個個小的子網,但是在網 絡的外層來看,還是一個大的網絡,他們都是通過網絡地址來通信的。

例子一:

 

例子二:

 

從上面的兩個例子中,可以看出,相同的 IP 地址,不同的子網掩碼,可以得出相同的網絡地址,但是他們卻是被劃分在不同的子網當中的。

三、無類型域間選路(CIDR)

3.1 什么是 CIDR

通過子網掩碼去劃分的子網,是借走的主機號,這是有損耗的。例如借走兩位主機號,原則上可以劃分四個子網(11、10、01、00),但是其中全 0 和全 1 是不使用的,所以就只剩下兩個了。使用 CIDR 是沒有這個問題的,它可以使用全 0 和全 1,不會造成浪費。

終于可以說到 CIDR 了。

CIDR 中文全稱是無分類域間路由,是英文 Classless Inter-Domain Routing 的縮寫。CIDR 打破了原先設計的 A、B、C 類地址的概念,將 32 位 IP 地址保持兩分的結構,就是依然保持前面是網絡號,后面是主機號。

這樣如何區分呢?CIDR 會在 IP 地址的后面,用斜線分割一個網絡前綴占位數的標識。

 

例如:10.100.120.2/24,斜線后面有一個數字 24,這種地址的表示形式,就是 CIDR。這里的 24 表示,32 位的 IP 地址中,前 24 位是網絡號,后 8 位是主機號。

這一組 CIDR,包含的信息可就多了,還是拿 10.100.120.2/24 來舉例。

將主機號,所有的位都置為 1,就是廣播地址,例如:10.100.120.255,如果發送這個地址,10.100.120 網絡里面的機器都可以收到。

將 24 位網絡號都置為 1,8 位主機號置為 0,得到的就是子網掩碼,255.255.255.0。

CIDR 除了表示一個 IP 地址,還相當于給出了一個 CIDR 子網的地址范圍。將主機號,從全 0 到全 1 的范圍,就是當前子網的所能包含的***地址數。

3.2 容易算錯的 CIDR

再來回憶一下 IP 地址的格式,32 位中以 8 位為一個單位,用 . 進行分割。所以比較常見的 /24、/16 這種就比較容易區分,不需要將十進制轉換成二進制,就可以明顯看出來,那些是網路號,那些是主機號,

家庭 WiFi 中,一般不會超過 256 個設備,所以 /24 也就夠用了,例如 192.168.1.117/24。

 

如果遇上不是 8 的整數倍 CIDR,有時候我們就容易算錯。

我們來看一下 16.158.165.20/22 這個 CIDR,求一下這個網絡的起始 IP 地址、子網掩碼和廣播地址。

你要是上來就寫 16.158.165.1、255.255.255.0、16.158.165.255,那你就錯了。

首先看到 /22 不是 8 的整數倍,肉眼不好區分,我們轉成二進制就清晰了。

 

遇到不好算的 CIDR,換成二進制再看看,一切都清晰了。

3.3 CIDR 應用

前面說到,互聯網就是被切分成一個個子網下存在的,一個個子網往下還可以繼續切分,但是對外就是一個整體。所以 CIDR 這種方式,/x 這個數值越小,說明當前子網下的主機數量越多。反之可以通過增加 /x 來繼續進行子網的劃分。

例如從 /16 變為 /20,右移了四位,等于又切分出來 16 個子網。

舉個例子,有一個 CIDR 地址塊,201.0.68.0/22,然后我們可以怎么切分?拆分成二進制就清晰了。

 

要是有心,我們還可以繼續往下切分,但是正常我們為了保證子網可用,一般也會保持一個子網下的主機數不會太少。

四、小結時刻

CIDR 這種分割子網的規則,其實設計的很巧妙,只要向右移位網絡前綴所占的位數,就可以繼續分割子網。就算以后全面升級了 IPv6 后,我個人認為應該也不會拋棄 CIDR 這種方式。

CIDR 這種分割子網的計算方法,你明白了嗎?留一道思考題吧,已知 16.158.165.20/20 這個 CIDR,計算子網掩碼、網絡地址、廣播地址嗎?

【本文為51CTO專欄作者“張旸”的原創稿件,轉載請通過微信公眾號聯系作者獲取授權】

 

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2018-09-28 09:24:19

IPv4IPv6IP地址

2018-02-02 06:34:13

IPv6IPv4網絡

2018-11-23 09:11:18

IPV4IPV6頭部

2014-09-22 17:24:34

CIDRNATIP

2019-09-23 11:03:55

IPv6IPv4網絡

2010-05-26 17:53:38

IPv4 to IPv

2022-02-15 14:12:46

IPv4IPv6過渡技術

2010-05-04 09:56:54

IPv4黑市IPv6

2010-06-07 15:25:58

IPv4與IPv6

2013-11-20 09:22:44

IPv4過渡IPv6

2010-06-08 17:38:17

IPv4與IPv6翻譯策略

2010-05-26 17:57:15

IPv6報頭

2018-08-15 09:21:31

IPv6IPv4協議

2010-06-09 17:07:46

IPv6與IPv4

2018-12-14 10:20:57

IPv6IPv4障礙

2010-12-30 12:14:40

2019-02-13 14:51:29

2020-05-12 09:01:30

IPv6IPv4網絡協議

2022-05-30 19:30:39

IPv4IPv6

2013-07-24 09:56:48

IPv4IPv6
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品在线一区 | 久久久久久蜜桃一区二区 | 国产精品欧美一区二区 | 91欧美| 黄色在线免费播放 | 欧美精品久久久久久久久久 | 日韩av在线一区二区三区 | 国产欧美在线视频 | 91国产视频在线 | 亚洲欧美在线免费观看 | 2021天天干夜夜爽 | 国产高清免费 | av网站观看| 婷婷99| 日韩欧美在线一区 | 日本高清视频在线播放 | 国产精品美女一区二区 | 国产午夜精品视频 | 91久久精品国产免费一区 | 久久久91精品国产一区二区三区 | 欧美精品一区二区蜜桃 | 久久久久久久久久久蜜桃 | 欧美视频成人 | 成人不卡| 亚洲欧美一区二区三区国产精品 | 国产午夜在线观看 | 久久精品国产99国产 | 激情 一区 | 欧美精品一区二区三区四区 | 懂色av一区二区三区在线播放 | 97免费在线观看视频 | 日韩一区二区在线观看 | 高清亚洲| 久久精品网 | 九九福利 | 一区二区成人 | 国产网站在线 | 九九导航| av官网在线| 美日韩中文字幕 | 亚洲乱码一区二区 |