IPv4,子網掩碼,默認網關

在網上查找了相關的資料,發現都說的都比較晦澀難懂。這篇文檔從總體的網絡通信流程,以通俗易懂地方式來解釋這些網絡詞彙,好比,如何判斷兩臺主機是否在同一個網段下,以及何時會用到默認網關。本文內容是根據本身查閱資料和理解,若是有什麼不對的地方,還請指出。(本文最後會列出所參考的文獻資料)windows

 

一個簡單的通訊流程

首先先介紹一下在局域網下通訊的一個基本流程。 在Windows電腦上,若是你打開你網絡的IPV4屬性,你會看到你有兩種選擇IP的方式。服務器

 

自動獲取IP地址 會幫你自動設置IP值,子網掩碼 和 默認網關,所以大部分人都是用的自動獲取IP值。而手動設置IP則須要你可以正確的設置這些值。網絡

 

 當一臺計算機須要和另外一臺計算機通信時,計算機須要根據 本機子網掩碼目標IP地址 計算出目標IP所在的網段,而後再根據 本機IP本機的子網掩碼 得出本機所在的網段。若是兩個網段相同,那麼兩臺計算機是局域網,而後則開始通訊;若是不一樣,也就意味着目標IP是一個遠程地址,這時候本機會把數據發送給默認網關,而後默認網關處理接下來的通訊。tcp

 

例如,以下的一個網絡結構:spa

一臺局域網下有以下兩臺主機code

主機1  IP地址:192.168.137.5  子網掩碼:255.255.255.0  默認網關:192.168.137.1

主機2  IP地址:192.168.137.10  子網掩碼:255.255.255.0  默認網關:192.168.137.1

路由器的地址: 192.168.137.1 blog

 

假如:主機1要與主機2通信,ip

首先用 主機1 子網掩碼 和 主機2 IP 計算出網段(網段:也被稱爲 網絡地址)資源

主機2 IP地址     192.168.137.10     11000000.10101000.10001001.00001010

主機1子網掩碼     255.255.255.0      111111111.111111111.111111111.00000000
===========================================================
按位與&                             11000000.10101000.10001001.00000000
                                   192.168.137.0

而後用 主機1子網掩碼 和 主機1IP 計算出本身所在的網絡地址路由

主機2 IP地址     192.168.137.5      11000000.10101000.10001001.00000110

主機1子網掩碼     255.255.255.0      111111111.111111111.111111111.00000000
===========================================================
按位與&                             11000000.10101000.10001001.00000000
                                   192.168.137.0

兩個網段都是 192.168.137.0 ,所以主機1和主機2是處在同一個局域網內的,因此接下來的通訊是主機1廣播ARP尋址包,查找主機2的MAC地址。

 

 

再假設一個 主機3,主機3是一臺服務器,該服務器不與主機1在同一個局域網內。

主機3  IP地址:104.233.232.39  子網掩碼:255.255.255.224  默認網關:104.233.232.62

若是主機1訪問主機3上的資源,首先用 主機1的子網掩碼主機3的IP 計算一下網絡地址。

主機3 IP地址     104.233.232.39     1101000.11101001.11101000.00100111

主機1子網掩碼     255.255.255.0      111111111.111111111.111111111.00000000

 ===========================================================

                                   1101000.11101001.11101000.00000000

                                 = 104.233.232.0

 104.233.232.0 和主機1所在的網段明顯不一樣,此時 主機1 會將請求發送給默認網關 192.168.137.1 ,也就是路由器的地址。而後路由器負責接下來的通訊。當路由器找到主機3後,反饋給主機1。此後,主機1和主機3的通訊,都要走路由器過。

 

上面簡單的歸納了一下網絡通信的流程,接下來進一步的分析一下這些概念。

IP地址 和 子網掩碼

IP地址和子網掩碼是緊密相連的,只有IP地址是沒法得出這個IP地址所在的 網絡地址 的,要計算處IP地址所在的 網絡地址 就要用 子網掩碼。局域網內,只有相同 網絡地址 的計算機才能相互通信。 就好比:公司的電話系統,例:459 001,459 002 ....等,電話號碼前都有一個區號好比459。 而IP中的 網絡地址 就至關於這裏的區號,只不過IP中的 網絡地址 長度是不固定的,必需要IP地址和子網掩碼進行 按位與 計算,才能得出 網絡地址 值。

好比我有一個IP地址:104.160.41.50,子網掩碼爲:255.255.248.0

接下來要計算出網絡地址,廣播地址,和 主機號

網絡地址:IP地址與子網掩碼 進行邏輯與(&)運算。

IP地址     104.160.41.50      1101000.10100000.00101001.00110010

子網掩碼    255.255.248.0     11111111.11111111.11111000.00000000
===========================================================
邏輯與&運算                   1101000.10100000.00101000.00000000
                   網絡地址 = 104.160.40.0

 

廣播地址:子網掩碼取反後,與 網絡地址 進行邏輯或(|)運算

子網掩碼     255.255.248.0     11111111.11111111.11111000.00000000
取反~       0.0.7.255         00000000.00000000.00000111.11111111

網絡地址    104.160.40.0      1101000.10100000.00101000.00000000
===========================================================
邏輯或|運算                   1101000.10100000.00101111.11111111 
                   廣播地址 = 104.160.47.255

主機號:子網掩碼取反後,與 IP地址 進行邏輯與(&)運算

子網掩碼     255.255.248.0     11111111.11111111.11111000.00000000
取反~       0.0.7.255         00000000.00000000.00000111.11111111

IP地址     104.160.41.50      1101000.10100000.00101001.00110010
=========================================================== 
邏輯與&運算                    00000000.00000000.00000001.00110010
                     主機號 = 0.0.1.50

 

 

默認網關

網關能夠理解爲一個網絡節點,它負責不一樣 網絡地址(aka. 網段) 之間的通訊。 通常狀況下(家用網絡環境 或 較小的網絡環境),默認網關 就是咱們的路由器設備。

在前面的基本案例中,也提到了,當一個主機發現它所訪問的目標主機不在同一個網段內時,主機就會發送數據包默認網關,讓默認網關進行下一步的查找,查到了就反饋給主機。

 

 

 

本文就先介紹到這裏了,在結束本文以前,給你們出一個思考題。

主機A  IP:192.168.10.5  子網掩碼:255.255.255.254  默認網關:192.168.10.1

主機B  IP:192.168.10.7  子網掩碼:255.255.255.0      默認網關:192.168.10.1

問題:請問主機A與主機B能相互通信嗎?

 

 

本文參考文獻:

1. Default gateway 

2. Understand TCP/IP addressing and subnetting basics

3. Subnetwork

相關文章
相關標籤/搜索