計算機網路: IP地址,子網掩碼,網段表示法,預設閘道器,DNS伺服器詳解

dog71520發表於2016-04-09

楔子:

  以Windows系統中IP地址設定介面為參考(如圖1), IP地址, 子網掩碼, 預設閘道器 和 DNS伺服器, 這些都是什麼意思呢?

    

 

  學習IP地址的相關知識時還會遇到網路地址,廣播地址,子網等概念,這些又是什麼意思呢 ?

 

                 

一 IP地址

概述

計算機要實現網路通訊,就必須要有一個用於快速定位的網路地址。IP地址就是計算機在網路中的唯一身份ID,與現實世界中快遞的配送需要有具體的住宅地址是一個道理。

ip地址以圓點分隔號的四個十進位制數字表示,每個數字從0到255,如某一臺主機的ip地址為:128.20.4.1

  IP地址的組成

IP地址 = 網路地址 + 主機地址(又稱:主機號和網路號組成)

想想,為什麼會有行政區劃的劃定(國家、省市區、街道等),為了更加高效的進行管理、定位;

相同的,我們通常將網路也可以分為很多的子網路,每個子網路有自己的網路地址,每個子網路由很多的計算機組成(當然也可以包含另外一個子網路)。

我們要找到指定的IP地址,只要先找到指定的網路地址,然後再該網路內找到對應的主機地址即可。

 

     IP地址是一個 4 * 8bit(1位元組)由 0/1 組成的數字串(IP4協議)

以文章開通 win7 截圖中 的 IP地址 192.168.1.168, 子網掩碼 255.255.255.0(下文有詳解) 為例,  這個地址中包含了很多含義:

      192.168.100.168(IP地址) = 192.168.1.0 (網路地址) + 0.0.0.168(主機地址

 

  網路地址、主機地址是怎麼計算出來的呢?我們需要先簡單學習下子網掩碼
 

二 子網掩碼(subnet mask)

  參照:《百度百科-子網掩碼

  IP中的網路地址和主機地址各是多少位表示呢?如果不指定,就不知道哪些位是網路號、哪些是主機號,這就需要通過子網掩碼來實現。

  概述

  子網掩碼又叫網路掩碼、地址掩碼、子網路遮罩,是一個 4 * 8bit(1位元組)由 0/1 組成的數字串。

  它的作用是遮蔽(遮住)IP地址的一部分以劃分成網路地址和主機地址兩部分,並說明該IP地址是在區域網上,還是在遠端網上。

  通過子網掩碼,可以把網路劃分成子網,即VLSM(可變長子網掩碼),也可以把小的網路歸併成大的網路即超網。

  子網掩碼不能單獨存在,它必須結合IP地址一起使用。

 

  子網掩碼的規則

    長度 為 4 * 8bit(1位元組),由 連續的1 以及 連續的0 兩部分組成,

       例如:11111111.11111111.11111111.00000000,對應十進位制:255.255.255.0

  假設,區域網中 計算機A 的IP地址為 192.168.1.1,子網掩碼為 255.255.255.0, 如下圖所示:

  

網路地址: IP 地址中被 連續的1 遮住的部分,即 11000000.10101000.00000001.00000000, 對應的網路地址:192.168.1.0

主機地址: IP 地址中被 連續的0 遮住的部分,即 00000000.00000000.00000000.00000001, 對應的網路地址:0.0.0.1

排除 該網路 兩個特殊地址:

  廣播地址:192.168.1.255  (主機號全為11111111)(廣播機制及型別見:http://baike.baidu.com/view/473043.htm)

  網路地址:192.168.1.0    (主機號全為00000000)

該子網最大的主機數:2的8次方 256 - 2

 

  其他資訊:

    A類地址來說,預設的子網掩碼是255.0.0.0;對於B類地址來說預設的子網掩碼是255.255.0.0;對於C類地址來說預設的子網掩碼是255.255.255.0。

                         

三 通過子網掩碼計算網路地址

  參考:《IP地址,子網掩碼,預設閘道器,DNS伺服器詳解

計算方法

計算過程是這樣的:

  1. 將IP地址和子網掩碼都換算成二進位制;

  2. 將兩者進行 "與運算",得到網路地址。

    計算過程:上下對齊,  1位1位的算, 1與1=1 , 其餘組合都為0 

          1 0 1 0

     與運算  1 0 1 1

     -------------------

     結果   1 0 1 0 

      
假設 IP地址為 192.168.1.168,子網掩碼為 255.255.255.0, 則網路地址換算步驟如下: 

  1)將IP地址和子網掩碼分別換算成二進位制   

    192.168.1.168 換算成二進位制為 11000000.10101000.00000001.10101000
    255.255.255.0 換算成二進位制為 11111111.11111111.11111111.00000000 
  

  2)將二者進行與運算 

         11000000.10101000.00000001.10101000 

    與運算  11111111·11111111·11111111·00000000 

        ----------------------------------------------------------------------------

         結果   11000000.10101000.00000001.00000000


  3) 將運算結果換算成十進位制: 192.168.1.0

 

立即實踐

以用網線直接將兩臺計算機連起來為例:

  

下面是幾種IP地址設定, 看看在不同設定下網路是通還是不通. 

 

實驗

編號

1號機器2號機器網路連通
IP地址子網掩碼網路地址IP地址子網掩碼網路地址
1192.168.0.1255.255.255.0192.168.0.0192.168.0.200255.255.255.0192.168.0.0Y
2192.168.0.1255.255.255.0192.168.0.0192.168.1.200255.255.255.0192.168.1.0N
3192.168.0.1255.255.255.192192.168.0.0192.168.0.200225.225.225.192192.168.0.192 

 

說明:第1種情況能通是因為這兩臺計算機處在同一網路192.168.0.0, 所以能通,而2,3種情況下兩臺計算機處在不同的網路,所以不通. 

網路地址的計算過程同上,不再贅述。

結論:

  用網線直接連線 或 通過 HUB(集線器)、普通交換機連結的計算機必須處於同一網路(網路地址) 並且主機地址必須不一樣 才能通訊。

  注意:同一網路不是指物理連線,而是指網路地址.

  舉個例子,兩臺計算機連結到相同路由器(簡單理解為同一個鏈路),如果他們設定的網路地址不一致,則他們也是不能通訊的。

 

  擴充套件:IP網段表示法

    舉例說明:192.168.0.0/24

    192.168.0.0: 網路地址

    24: 表示子網掩碼二進位制表示法中,連續的 1 的 個數,這裡為:11111111·11111111·11111111·00000000,即 255.255.255.0

  

四. 預設閘道器(地址)

  參考:《百度百科-閘道器

什麼是閘道器?

  (可以聯想下海關?什麼是海關?)

  連線兩個不同的網路的裝置都可以叫閘道器裝置;閘道器的作用就是實現兩個網路之間進行通訊與控制。

  閘道器裝置可以是 互動機(三層及以上才能跨網路)、路由器、啟用了路由協議的伺服器、代理伺服器、防火牆等

閘道器地址就是閘道器裝置的IP地址。

 

  假設我們有兩個網路:

  網路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

要實現這兩個網路之間的通訊,則必須通過閘道器。

如果網路A中的主機發現資料包的目的主機不在本地網路中,就把資料包轉發給它自己的閘道器,再由閘道器轉發給網路B的閘道器,網路B的閘道器再轉發給網路B的某個主機(如附圖所示)。網路A向網路B轉發資料包的過程。

   

    只有設定好閘道器的IP地址,TCP/IP協議才能實現不同網路之間的相互通訊。

 

預設閘道器 

一臺主機可以有多個閘道器。預設閘道器的意思是一臺主機如果找不到可用的閘道器,就把資料包發給預設指定的閘道器,由這個閘道器來處理資料包。現在主機使用的閘道器,一般指的是預設閘道器。

 

擴充套件:自動設定預設閘道器

自動設定就是利用DHCP(Dynamic Host Configuration Protocol, 動態主機配置協議)伺服器來自動給網路中的計算機分配IP地址、子網掩碼和預設閘道器 。

一旦網路的預設閘道器發生了變化時,只要更改了DHCP伺服器中預設閘道器的設定,那麼網路中所有的計算機均獲得了新的預設閘道器的IP地址。這種方法適用於網路規模較大、TCP/IP引數有可能變動的網路。

另外一種自動獲得閘道器的辦法是通過安裝代理伺服器軟體(如MS Proxy)的客戶端程式來自動獲得,其原理和方法和DHCP有相似之處。

     

  擴充套件說明

  問:在網上看到一些人提問:連線到相同(二層)交換機或集線器上的計算機,如果設定不同的網路地址,為什麼不能通訊。

  答:

    在 TCP/IP 協議中,網路層(通過IP地址識別通訊方)封包完成交給下一層資料鏈路層(通過MAC地址識別通訊方)時,需要通過 ARP 廣播 獲取目標 IP 對應的 MAC 地址。

  但因為 ARP 報文只能在相同網路地址內廣播,如果目標計算機與源計算機處於不同網路,則無法進行響應,因此源計算機無法完成鏈路層資料的封裝。

  ARP 協議相關資訊可見 這裡

 

五. DNS伺服器

  參考:《DNS原理及其解析過程

  域名與DNS

  我們訪問一個網站的時候,往往使用的是域名(相對IP來說更加語義清晰、更加容易記憶,例如 www.baidu.com)。

  域名是由一串用點分隔的名字組成的,通常包含組織名,而且始終包括兩到三個字母的字尾,以指明組織的型別或該域所在的國家或地區。

  然而計算機之間的通訊網路通訊是通過IP進行的, 因此需要將域名解析為對應的IP,DNS就是進行域名解析的伺服器。

DNS 維護著 域名(domain name)和IP地址 (IP address)的對照表表,以解析訊息的域名。

 

  DNS 查詢的過程如下圖所示

 

DNS 維護著 域名(domain name)和IP地址 (IP address)的對照表表,以解析訊息的域名。

1、在瀏覽器中輸入www.qq.com域名,作業系統會先檢查自己本地的hosts檔案是否有這個網址對映關係,如果有,就先呼叫這個IP地址對映,完成域名解析。 

2、如果hosts裡沒有這個域名的對映,則查詢本地DNS解析器快取,是否有這個網址對映關係,如果有,直接返回,完成域名解析。

3、如果hosts與本地DNS解析器快取都沒有相應的網址對映關係,首先會找TCP/ip引數中設定的首選DNS伺服器,在此我們叫它本地DNS伺服器,此伺服器收到查詢時,如果要查詢的域名,包含在本地配置區域資源中,則返回解析結果給客戶機,完成域名解析,此解析具有權威性。 

4、如果要查詢的域名,不由本地DNS伺服器區域解析,但該伺服器已快取了此網址對映關係,則呼叫這個IP地址對映,完成域名解析,此解析不具有權威性。 

5、如果本地DNS伺服器本地區域檔案與快取解析都失效,則根據本地DNS伺服器的設定(是否設定轉發器)進行查詢,如果未用轉發模式,本地DNS就把請求發至13臺根DNS,根DNS伺服器收到請求後會判斷這個域名(.com)是誰來授權管理,並會返回一個負責該頂級域名伺服器的一個IP。本地DNS伺服器收到IP資訊後,將會聯絡負責.com域的這臺伺服器。這臺負責.com域的伺服器收到請求後,如果自己無法解析,它就會找一個管理.com域的下一級DNS伺服器地址(qq.com)給本地DNS伺服器。當本地DNS伺服器收到這個地址後,就會找qq.com域伺服器,重複上面的動作,進行查詢,直至找到www.qq.com主機。 

6、如果用的是轉發模式,此DNS伺服器就會把請求轉發至上一級DNS伺服器,由上一級伺服器進行解析,上一級伺服器如果不能解析,或找根DNS或把轉請求轉至上上級,以此迴圈。不管是本地DNS伺服器用是是轉發,還是根提示,最後都是把結果返回給本地DNS伺服器,由此DNS伺服器再返回給客戶機。

 

五. 附錄

  未在文中說到的相關知識點:

  《IP地址分類(A/B/C/D/E/F類)

  《計算機網路七層結構模型: 開放式系統互聯通訊參考模型(簡稱為OSI模型)

  《TCP/IP 協議族

  《ARP協議的簡明工作流程》 

  《ARP協議處理詳細過程-交換機工作原理-及廣播風暴問題分析

  《交換機、路由器、閘道器的概念以及用途

  《交換機與路由器的區別,以及2層-7層交換機的區別

 

  工具:

  《eNSP(Enterprise Network Simulation Platform)

一款由華為提供的免費的、可擴充套件的、圖形化操作的網路模擬工具平臺,主要對企業網路由器、交換機進行軟體模擬,完美呈現真實裝置實景,支援大型網路模擬,讓廣大使用者有機會在沒有真實裝置的情況下能夠模擬演練,學習網路技術。 

  

PS:沒想到對整個網路體系知識的學習、整理、歸納、排版竟然花去了 1 天多的時間。

轉載請註明:http://www.cnblogs.com/iceJava/p/5372033.html

轉載於:https://www.cnblogs.com/iceJava/p/5372033.html

相關文章