楔子:
以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。
三 通過子網掩碼計算網路地址
計算方法
計算過程是這樣的:
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地址 | 子網掩碼 | 網路地址 | ||
1 | 192.168.0.1 | 255.255.255.0 | 192.168.0.0 | 192.168.0.200 | 255.255.255.0 | 192.168.0.0 | Y |
2 | 192.168.0.1 | 255.255.255.0 | 192.168.0.0 | 192.168.1.200 | 255.255.255.0 | 192.168.1.0 | N |
3 | 192.168.0.1 | 255.255.255.192 | 192.168.0.0 | 192.168.0.200 | 225.225.225.192 | 192.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伺服器再返回給客戶機。
五. 附錄
未在文中說到的相關知識點:
《計算機網路七層結構模型: 開放式系統互聯通訊參考模型(簡稱為OSI模型)》
《ARP協議處理詳細過程-交換機工作原理-及廣播風暴問題分析》
工具:
《eNSP(Enterprise Network Simulation Platform) 》
一款由華為提供的免費的、可擴充套件的、圖形化操作的網路模擬工具平臺,主要對企業網路由器、交換機進行軟體模擬,完美呈現真實裝置實景,支援大型網路模擬,讓廣大使用者有機會在沒有真實裝置的情況下能夠模擬演練,學習網路技術。
PS:沒想到對整個網路體系知識的學習、整理、歸納、排版竟然花去了 1 天多的時間。
轉載請註明:http://www.cnblogs.com/iceJava/p/5372033.html