🇬🇧️ English: Subnet Mask

本篇筆記由 Justin 原創。
看完這篇筆記之後,你可能 Get 到的姿勢點:
* 子網掩碼到底是什麼 * IP/數字 到底如何表示網段

定義

什麼是子網

我們在一個IP區段中劃分出幾個小的網絡,每一個小網絡對應一個網關,這些小網絡就是子網。
舉個例子,你家小區的IP區間在 204.80.0.1204.80.255.255 之內,你的 IP 是 204.80.30.40
现在你想要 和一个 IP地址为 234.56.78.90 的 主机发起 点对点的 视频通话,你发出了请求。

网络传输示意图

网络传输示意图

但是因爲你們在一個網段裏面,你的請求不能直接到達他那裏,因此你的請求其實被定向到了一個叫做 網關 的巨大交換機,姑且稱爲網關 A。然後網關 A通過一種 神奇的方法 得到了你的目標IP的網關地址,和 網關 B 取得聯繫,然後 網關 B 和你的目標通訊,你的請求就成功到達了。 這種神奇的方法包括通過子網掩碼判斷網段。

我們現在再理以下數據包大致經過的路徑。

請關注數據包頭部四個地址的變化與不變

請關注數據包頭部四個地址的變化與不變

可以看到,源IP和目標IP始終不變,而每台機器收到的MAC地址和目標MAC地址都是根據機器的物理MAC 變化的。

什麼是子網掩碼

子網掩碼 (Subnet Mask), 顧名思義是 遮掩一部分 IP地址 來表示子網的網段的。
從上面第一張圖片可以看出來,兩個子網都各自有明確的區劃。比如說204.80.30.40所在的子網,他的區劃是 204.80.0.1204.80.255.255。那麼 我們說 204.80.30.40 可以劃分爲兩個部分,

  1. 前半段 204.80 是他的網絡號,這個主機所在的網段所有主機IP的前兩段都是這個數字
  2. 後半段 30.40 是他的機器號,在這個子網中 30.40 對應有且只有這一臺機器

但是如果將 開始 IP 和 結束 IP 分別儲存,太浪費空間了。我們可以將 這個網段儲存爲 204.80.0.0 - 255.255.0.0。這個時候,255.255.0.0 就是子網掩碼,用於標識子網的區間。 被 255.255 遮住的是 網絡號, 沒被遮住的是 主機號

好像一切都明了了,但是上面一段話顯然還存在兩個問題:

  • 例子中的主機範圍是從 0.0255.255 , 剛好覆蓋了兩個 IP 段。如果說主機號是從 0.310.90,對應剛好 90 臺機器(即網段範圍是 204.80.0.31204.80.0.90),子關掩碼該怎麼表示,如果說表示爲 255.255.255.0 , 那 204.80.0.21 並不在網段內也給你表示進去了,顯然不對;那該如何表示呢?
  • 上文說 這樣的儲存節省了時間,但是儲存 204.80.0.1 - 204.80.255.255204.80.0.0 - 255.255.0.0 佔用的空間其實是相同的,那爲什麼說他節省空間呢?

這兩個問題會分別在下面兩個二級標題得到回答。

下面两个两级标题以及英文内容会在不久的将来出现。

計算方法

后缀表示法