《計算機網路微課堂》實驗8 IPv4地址

peterjxl發表於2024-06-02

下面我們來進行一個模擬實驗,本模擬實驗的內容來驗證分類 IP 地址的作用,以及對路由器的功能進行初步瞭解。

首先我們來構建一個簡單的網路拓撲,拖動兩臺主機到邏輯工作空間,我們選擇自動連線型別,將這兩臺主機互聯起來。

接下來我們需要給這兩臺主機各自配置一個 IP 地址,先給左邊的主機進行配置。假如我們配置一個 C 類的 IP 地址具體為 192.168.0.1,子網掩碼採用模擬軟體自動配置的就可以了,因為我們暫時還沒有介紹過子網掩碼的概念。

我們來具體看一下我們所分配的 IP 地址,從第一個位元組就可以看出這是一個 C 類的 IP 地址,也就是 192 就是可以看出這是一個 C 類的。

那麼我們知道 C 類的 IP 地址以後,我們就知道它前三個位元組是表示 C 類網路的網路號的,後面這一個位元組是用來表示這臺主機的,那麼這個值的取值範圍是 0~255,但是 0,其實和 192.168.0.0 一起是表示具體的 C 類網路的,所以在網路上最小的用來標識主機的 IP 地址就是 192.168.0.1。

而這值如果取到了 255,那是表示 192.168.0 這個 C 類網路上所有的主機,所以那是一個廣播地址。

因此主機編號這個部分最小的數值取 1,最大的取 254,這裡我們給左邊這臺主機配置為 1,而右邊這臺主機的話可以從剩下的 2~254 裡面隨便挑一個就可以了。

下面我們給右邊這臺主機也配置一個 IP 地址,我們為了讓右邊主機和左邊主機可以直接通訊,因為他們是直接互聯的,沒有用其他裝置連也沒有用路由器連。所以為了讓他們可以直接進行通訊的話,那麼我們必須把右邊這臺主機的這個和左邊這臺主機的 IP 地址使他們的網路號部分相等,也就是讓他們屬於同一個網路裡面。所以右邊這臺主機的 IP 地址的網路號部分也是 192.168.0,而主機號部分剛才我們說了取值是 1 ~ 254 裡面選一個,左邊這臺主機分配的 1,那麼剩下的就是 2 ~ 254 裡面選一個,我們就選 2 就可以了,子網掩碼我們採用預設的就可以了。

接下來我們就驗證一下這兩臺計算機是否可以通訊了,我們用這個左邊的主機去 ping 一下右邊這臺主機,看看是否能夠 ping 通。PING 然後空格右邊主機的 IP 地址是 192.168.0.2。我們聽一下看到回答的第 1 個響應,第 2 個響應第 3 個第 4 個,也就是說我們左邊主機依次發了 4 個詢問請求,那麼右邊的主機收到後每收到 1 個會回給 1 個響應給左邊的主機,那麼發了 4 個請求回來,4 個響應,也表示它們倆之間是可以互通的。

C:\>ping 192.168.0.2

Pinging 192.168.0.2 with 32 bytes of data:

Reply from 192.168.0.2: bytes=32 time<1ms TTL=128
Reply from 192.168.0.2: bytes=32 time<1ms TTL=128
Reply from 192.168.0.2: bytes=32 time<1ms TTL=128
Reply from 192.168.0.2: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.0.2:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms


如果我們將右邊的主機的 IP 地址重新配置一下,使得左右兩臺主機他們 IP 地址的網路號部分不相同,也就是說他們屬於不同的網路,那麼我們再來看看他們是否可以這樣直接的就可以通訊了。現在我們就來更改一下右邊這臺主機之前所配置的 IP 地址,我們把之前配置的 IP 地址和子網掩碼全部給它刪除了,然後我們給它設定一個新的 IP 地址,比如說 172.16.0.1,那子網掩碼採用預設子網掩碼就可以了,那麼這個 IP 地址我們透過第一個位元組的 172,10 進位制的值,我們就可以快速的分辨出來它是一個 B 類的網路,它的網路號是 172.16,後面點 0.1 就是這臺主機的主機編號。

總之我們知道現在的話左邊這個主機是 192.168.0.1,右邊主機臺 IP 地址指的是 172.16.0.1,他們倆已經不在一個網路上了。我們來驗證一下這個時候他們倆之間是否可以通訊,我們把這臺主機點開,也就是在桌面上把它的命令列方式給它開啟,這是我們之前就已經開啟的。我們 ping 一下 172.16.0.1。我們可以看到正在 ping 第一次的請求沒有收到響應而超時了,第二次的請求也沒有收到響應,也超時了,第 3 次也超時了,第 4 次也超時了,也就是發 4 次詢問都沒有收到響應,這就證明了這兩臺主機現在雖然這麼直連了,但是由於他們 IP 地址配置的不在同一個網路中,所以他們其實是不能通訊的,因此這相當於兩個不同網路的互聯,所以直接這麼連是不行的。

C:\>ping 172.16.0.1

Pinging 172.16.0.1 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 172.16.0.1:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),


我們把這條直連線給它刪除掉,好然後把滑鼠狀態再切換回來,那麼這兩個不同網路的互聯,我們需要新增一個三層的裝置,也就是路由器,我們直接拖一個路由器上來就可以了。然後我們選擇自動連線,我們使用了一個路由器,這是一個網路層的裝置,網路層的互聯裝置,將兩個屬於不同網路的主機直接給它互聯起來了。那麼我們需要給路由器的兩個介面配置一個 IP 地址,比如說千兆的乙太網的它 0 號口,我們在配置裡面這兒可以看到這個介面,我們可以給它配置一個 IP 地址,那麼這個介面和我們主機的介面,其實它們相當於是在同一個網路中的,所以路由器的介面,它的 IP 地址的網路編號部分應該和我們這臺主機的 IP 地址的網路編號部分相等,也就是應該是 192.168.0 這一部分是不能動的,相等的,那麼剩下的在給大家分配一個,那麼這臺主機由於它的主機編號是 1,而這個介面的話,我們可以從 2~254 裡面挑一個,一般我們會挑最大的 IP 地址,主機編號 254,子網掩碼採用預設的就可以了。另外我們看到這是紅色的,這個介面的現在是關閉的,我們要點選右邊的埠狀態開啟,它就變成綠色指示燈了。

同理我們要為路由器的右邊這個埠設定一個 IP 地址,也就是一號埠,我們選到它那麼和左邊配置的道理是一樣的,這個右邊的介面,它的右邊主機的 IP 地址,它們應該是網路號部分相同的,因為它們處在從一個網路上,所以右邊這個主機的 IP 地址是 172.16 這是,它的網路號部分這一部分不能動,剩下的話還有兩個十進位制的值都是作為主機號的,那麼主機上我們用的是 0,然後是 1,那麼我們取最大的網路上可以取最大的主機編號,那麼第三個位元組就是 255,最後一個是 254。注意一下,最後不能填 255,如果填 255 的話,相當於是 172.16 網路上,然後它的主機號填成了兩個 255,那就相當於是廣播地址了。

那子網掩碼的我們採用預設的就可以了,我們忘了開啟這個埠了,我們再把它開啟一下,那麼下面我們再來看看這兩臺主機能不能通,那麼我們仍然用左邊那臺主機來 ping 一下右邊這臺主機還是。我們這樣 ping 一下,我們之前就是 ping 172.16.0.1,也就這臺主機的 IP 地址我們聽一下。看第一次 ping 超時了,第一次詢問請求沒有按照時間回來超時了,第二次也超時了,第 3 次還是超時啊,第 4 次也是超時,想一想這是為什麼呢?其實是因為左邊這臺主機他要給右邊這臺主機傳送詢問報文,那麼他首先會判斷,也就是他首先會判斷我們這兒給定的 172.16.0.1 IP 地址,透過這個 IP 地址他自身會去判斷和自己是不是在同一個網路中,那麼當他判斷出來 172.16.0.1 和自己的 192.168.0.1,這兩個 IP 地址其實他們不在同一個網路中,那麼這個時候我們的左邊主機他就知道他的資料包不可能直接傳送到目的地,他需要把這個資料包交給一個路由器幫他去轉發。


那麼由於這個路由器我們沒有告訴它說這個資料包你應該交給誰,也就這個路由器我們沒指定給它,所以它這個時候就沒有辦法把這個資料包轉發出去了。所以那麼我們再重新給它配置一下我們點主機,然後把之前的命令列介面給它關掉。再回到 IP 配置的介面,我們可以看到這個地方有一個預設閘道器,預設閘道器其實就是我們之前說的計算機主機要把資料包轉發出去,他發現資料包的目的 IP 地址,你自己根本不在同一個網路,那麼他就會把這個資料包必然需要交給一臺路由器幫他轉發出去,而這個路由器我們一般稱為是預設路由器,但是由於歷史的原因,預設錄用期的概念最早它把它稱為預設閘道器,所以很多軟體包括我們的 Windows 系統都稱為是預設閘道器,並沒有把它稱為是預設路由器。

這裡知道一下就可以了,所以我們這裡面應該給他指定也就是給這臺主機,雖然我們給他配的 IP,但我們還要告訴他,如果你這個資料包你要傳送的資料包,他所到達的那個地方目標主機和你自身不在同一個網路,你要透過哪一臺路由器把它送出去?那麼由於這臺主機和這臺路由器的 0 號埠,他們在同一個網路,所以我們其實相當於是把路由器的 0 號埠的配置的 IP 地址告訴這臺主機,也就是預設閘道器這個地方,我們要設定一個 IP,這個 IP 就是路由器的埠 0 的我們之間配置的 IP 地址,我記得我們配的是 192.168.0.254。

同理在我們右邊這臺主機上我們也沒有指定,如果他要傳送一個資料包,那個資料包的目的 IP 地址實際上與主機不在同一個網路,那麼它肯定也要交給一個預設的路由器或叫預設閘道器,幫他轉發,這個路由器就是我們現在看的路由器,那麼應該指定他的一號埠的 IP 地址。那麼我們把右邊這一臺計算機的 IP 配置介面開啟,預設閘道器店裡面我們就要填寫這臺路由器的埠一的我們之前配置過的 IP 地址,我記得應該是 172.16.255.254。下面我們就來再次看一下左邊和右邊能不能 ping通,我們還是用左邊來 ping 就可以了。

再來 ping 一下,第 1 個請求超時了,但是我們看到第 2 個、第 3 個、第 4 個都正常回來了,也就是說我們這邊左邊的主機依次傳送了 4 個請求報文,那麼他每收到 1 個應該給我們回來 1 個,只不過我們看到第一個超時講一講這是什麼原因?其實是因為是這樣子的,我們在 ping 的過程中,當這個資料包我們要 ping 它的話,到達路由器,路由器要去轉發,轉發的時候這裡面還存在一個問題,就是路由器要首先知道右邊主機它的介面的 MAC 地址,也就我們之前講過的要先發一個 ARP 廣播請求,把取回來以後才能再次把詢問報文轉發到這,然後他收到以後再給一個響應回來,那麼這個時候路由器再透過查錶轉發,把單波響應傳回來,那麼這樣的一個過程使得我們的 ping 的應用程式,它認為這是一個超時的。

為什麼之後就可以沒有超時?是因為路由器,準備轉發請求給右邊這臺主機的話,不用再進行 AIP 的廣播請求了,因為之前已經請求過了已經知道了主機的 MAC 地址,所以就不會超時了。

C:\>ping 172.16.0.1

Pinging 172.16.0.1 with 32 bytes of data:

Request timed out.
Reply from 172.16.0.1: bytes=32 time<1ms TTL=127
Reply from 172.16.0.1: bytes=32 time<1ms TTL=127
Reply from 172.16.0.1: bytes=32 time<1ms TTL=127

Ping statistics for 172.16.0.1:
    Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

我們可以驗證一下,我們再 ping 一次,應該是很快的 4 個響應就會回來

C:\>ping 172.16.0.1

Pinging 172.16.0.1 with 32 bytes of data:

Reply from 192.168.0.254: Destination host unreachable.
Reply from 192.168.0.254: Destination host unreachable.
Reply from 192.168.0.254: Destination host unreachable.
Reply from 192.168.0.254: Destination host unreachable.

Ping statistics for 172.16.0.1:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

到這裡相信您對分類 IP 地址有了更深入的理解,並且對路由器的作用有了初步的認識。給您留一個作業,我們之前將右邊的主機的 IP 地址修改為了一個 B 類的,IP 地址,將路由器的埠 1 的 IP 地址也做了相應的修改,只得左邊的主機可以對右邊的主機進行 ping ping 通。那麼我們的作業是請您將右邊這臺主機的 IP 地址改為一個 A 類的 IP 地址,那相應的對路由器的埠 1 的 IP 地址也要做修改,我們實現的目標是使得左邊的主機可以 ping 通右邊的主機,也就是說這兩臺主機可以實現他們之間的通訊。

相關文章