網關子網掩碼


今天在網上看見一個子網掩碼網關的介紹,本人感覺講的很清楚,在此記錄下便於以后查找。原文地址:https://blog.csdn.net/u013568373/article/details/92063406

子網掩碼
 

一、前言

網絡把主機連接起來,而互聯網是把多種不同的網絡連接起來,因此互聯網是網絡的網絡。

理解互聯網中有多個網絡而非只有一個網絡對於理解子網掩碼有很大的幫助。

換句話說,互聯網是由許多小型網絡構成的,每個網絡上都有許多主機,這樣便構成了一個有層次的結構。IP地址在設計時就考慮到地址分配的層次特點,將每個IP地址都分割成網絡號和主機號兩部分,以便於IP地址的尋址操作。

剛才我們也說了,IP地址是以網絡號主機號來標示網絡上的主機的。

我們把網絡號相同的主機稱之為本地網絡,網絡號不相同的主機稱之為遠程網絡主機。

本地網絡中的主機可以直接相互通信,遠程網絡中的主機要相互通信必須通過本地網關(Gateway)來傳遞轉發數據。

 

二、子網掩碼概念

子網掩碼 (subnet mask) 又叫網絡掩碼、地址掩碼、子網絡遮罩,它是一種用來指明一個 IP 地址的哪些位標識的是主機所在的子網,以及哪些位標識的是主機的位掩碼。子網掩碼不能單獨存在,它必須結合 IP 地址一起使用。

它的主要作用有兩個,一是用於屏蔽IP地址的一部分以區別網絡標識和主機標識,並說明該IP地址是在局域網上,還是在遠程網上。二是用於將一個大的IP網絡划分為若干小的子網絡。

Windows操作系統下,win + R 鍵運行 cmd 打開命令行,之后輸入 ipconfig 指令查看我們自己主機所在網絡的子網掩碼與網關。

在這里插入圖片描述

 

三、子網掩碼構成

同 IP 地址一樣,子網掩碼是由長度為 32 位二進制數組成的一個地址。子網掩碼 32 位與IP 地址 32 位相對應,IP 地址如果某位是網絡地址,則子網掩碼為1,否則為0。

比如:11111111.11111111.11111111.00000000

網絡號的長度為 24(前三個字節),主機號長度為 8 (最后一個字節)

 

四、子網掩碼表示方法

1. 點分十進制表示法:

二進制轉換十進制,每8位用點號隔開

比如,將二進制的子網掩碼 11111111.11111111.11111111.00000000 轉換為十進制,即為 255.255.255.0

2. CIDR斜線記法:

IP地址/n

例子1 :192.168.1.100/24,其子網掩碼表示為255.255.255.0,二進制表示為11111111.11111111.11111111.00000000

例子2 :172.16.198.12/20,其子網掩碼表示為255.255.240.0,二進制表示為11111111.11111111.11110000.00000000

運營商ISP常用這樣的方法給客戶分配IP地址。

n 為 1 到 32 的數字,表示子網掩碼中網絡號的長度,通過 n 的個數確定子網的主機數=2^(32-n)-2(減去 2 的原因:主機位全為0時表示本網絡的網絡地址,主機位全為1時表示本網絡的廣播地址,這是兩個特殊地址,不能被用戶使用)。

 

五、使用子網掩碼的意義

雖然在前文我們已經提及了子網掩碼的兩個作用,但是我相信還會有很多人跟我一樣在最開始接觸這個概念的時候,對於子網掩碼的作用處於一個很懵b的狀態。現在我們再來討論一下為啥要有子網掩碼這么個東西。

根據前面的敘述,我們已經知道了,子網掩碼可以分離出IP地址中的網絡地址和主機地址,那為什么要分離呢?因為兩台主機要通信,首先要判斷是否處於同一網段,即網絡地址是否相同。如果相同,那么可以把數據包直接發送到目標主機,否則就需要路由網關將數據包轉發送到目的地。

這就是我一開始為什么要說,網絡將主機聯系起來,而互聯網將不同的網絡聯系起來,互聯網是一種網絡的網絡。兩個主機之間的通信過程需要區分是否在同一個網絡當中。

可以這么簡單的理解:
 
A 主機要與 B 主機通信,A 和 B 各自的 IP 地址與 A 主機的子網掩碼進行與運算,我們來觀察得出的結果:
 
1、結果如果相同,則說明這兩台主機是處於同一個網段,這樣 A 可以通過 ARP 廣播發現 B 的 MAC 地址,B 也可以發現 A 的 MAC 地址來實現正常通信。
 
2、如果結果不同,ARP 廣播會在本地網關終結,這時候 A 會把發給 B 的數據包先發給本地網關,網關再根據 B 主機的 IP 地址來查詢路由表,再將數據包繼續傳遞轉發,最終送達到目的地 B。

還沒完全搞懂?沒事,接着看下面這個圖
在這里插入圖片描述
假如有這么四台主機,根據我們之前討論的,不難看出

主機 A 與主機 B 處在同一個網絡中,該網絡的網絡地址為 192.168.1.0 ,網關地址為 192.168.1.1

而主機 C 與主機 D 處在同一個網絡中,該網絡的網絡地址為 192.168.2.0 ,網關地址為 192.168.2.1

所以 A 與 B,C 與 D,都可以直接相互通信(都是屬於各自同一網段,不用經過路由器),但是 A 與 C,A 與 D,B 與 C,B 與 D 它們之間不屬於同一網段,所以它們通信是要經過本地網關,然后路由器根據對方IP地址,在路由表中查找恰好有匹配到對方IP地址的直連路由,於是從另一邊網關接口轉發出去實現互連。

 

六、子網掩碼的分類

1.默認子網掩碼

即未划分子網,對應的網絡號的位都置 1 ,主機號都置 0 。

未做子網划分的IP地址:網絡號+主機號

A類網絡缺省子網掩碼: 255.0.0.0,用CIDR表示為/8

B類網絡缺省子網掩碼: 255.255.0.0,用CIDR表示為/16

C類網絡缺省子網掩碼: 255.255.255.0,用CIDR表示為/24

2.自定義子網掩碼

將一個網絡划分子網后,把原本的主機號位置的一部分給了子網號,余下的才是給了子網的主機號。其形式如下:

做子網划分后的IP地址:網絡號+子網號+子網主機號

如:192.168.1.100/25,其子網掩碼表示:255.255.255.128

意思就是將192.168.1.0這個網段的主機位的最高1位划分為了子網。

 

六、子網掩碼與 IP 地址的關系

上面我們也說到了,通過觀察兩個 IP 地址與子網掩碼做與運算的結果是否相同,可以得出兩個 IP地址是否在一個網絡中的結論。所以子網掩碼可以用來判斷任意兩台主機的IP地址是否屬於同一網絡,就是拿雙方主機的IP地址和自己主機的子網掩碼做與運算,如結果為同一網絡,就可以直接通信。

 
網關
 

在上面介紹子網掩碼時,曾多起提及網關,那么網關到底是什么呢?

網關實質上是一個網絡通向其他網絡的 IP 地址。

比如有網絡 A 和網絡 B,

網絡 A 的 IP 地址范圍為 192.168.1.1~192.168.1.254,子網掩碼為 255.255.255.0
網絡 B 的 IP 地址范圍為 192.168.2.1~192.168.2.254,子網掩碼為 255.255.255.0

在沒有路由器的情況下,兩個網絡之間是不能進行 TCP/IP 通信的,即使是兩個網絡連接在同一台交換機(或集線器)上,TCP/IP 協議也會根據子網掩碼 (255.255.255.0) 判定兩個網絡中的主機是否處在不同的網絡里。而要實現這兩個網絡之間的通信,則必須通過網關。

如果網絡 A 中的主機發現數據包的目的主機不在本地網絡中,就把數據包轉發給它自己的網關,再由網關轉發給網絡 B 的網關,網絡 B 的網關再轉發給網絡 B 的某個主機。

所以說,只有設置好網關的 IP 地址,TCP/IP 協議才能實現不同網絡之間的相互通信。那么這個 IP 地址是哪台機器的 IP 地址呢?網關的 IP 地址是具有路由功能的設備的 IP 地址,具有路由功能的設備最典型的就是路由器,路由器接口使用的IP地址就是網關的地址,它可以是本網段中任何一個地址,不過通常使用該網段的第一個可用的地址或最后一個可用的地址,這是為了盡可能避免和本網段中的主機地址沖突。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM