計算機網路 不同網段內主機如何通訊

2021-09-20 09:29:52 字數 2931 閱讀 3697

學習計算機網路如果只是被動的接受知識的話,不但枯燥,效率低下,而且理解也不夠深。這裡我推薦一款網路**軟體cisco packet tracer。這款軟體最有價值的地方在於使用者可以通過軟體來模擬真實的網路,能夠零成本搭建一套計算機網路。我們可以邊學網路邊用這個軟體來進行**,驗證所學知識。

下面是軟體主介面的截圖 :

讓我們一步一步來學習,主機之間的通訊過程。開始之前,大家應該建立乙個分層的思想,這中思想貫穿了整個計算機體系,是乙個非常重要的思想。我們在學習一層的時候,請務必不要糾結於它的底層的原理,只要知道在做什麼,會用就行!!!

1. 假設我們有如下的乙個子網:

三個主機通過乙個hub進行連線,我們知道hub是第一層(物理層)裝置,所以它只具備無腦廣播的功能。

此時,子網內的任何乙個兩個主機之間的通訊都是通過廣播的方式來進行,而且一次只能允許一台主機傳送訊息(衝突域),否則同一條線路可能同時傳輸兩個訊號,會相互干擾。這種通訊方式效率非常低,因此hub現在已經很少使用了。

2. 把上圖中的hub換成switch:

switch是第二層網路裝置(資料鏈路層),它具備了資料單播的能力,因為switch具有自學習能力(其實就是維護乙個mac-address-table),儲存了跟它連線的裝置的mac位址與埠的對映關係(注意,這裡的埠跟tcp協議的埠不是一回事)。

資料鏈路層的資料報格式如下:

它包含了目標mac和源mac。當資料報從一台主機(mac位址為x)傳送另一台主機(mac位址為y)時,資料報先傳送交換機上,交換機在mac-address-table更新x和埠的對映。然後查詢y是否在表中,如果存在則將資料**到該埠;如果不存在則廣播到所有埠上,y主機收到以後返回乙個資料報到交換機,交換機更新y的對映關係。這樣下次x再給y傳送資料的時候,就不需要廣播了。

如果乙個網段內主機非常多,這個表可能會是tb級別的,不易擴充套件和維護。那我們可以採用這樣乙個辦法,那就是將多個主機組成乙個子網,這個子網共用乙個邏輯位址(其實就是ip位址),子網的網路裝置只需要維護子網內的主機就行了。然後將許多子網連線起來組成乙個更大的子網,這樣可以一直擴充套件下去,理論上就可以容納無窮多台主機了。如下圖:

有了ip位址以後,我們邊可以將資料報先傳送到目標主機所在的子網,剩下的可以依據上面的原理就可以傳送到目標主機了。

注:先看看ip資料報的大概格式。可以看到資料格式跟資料的流動方式密切相關的。資料從主機a的應用層依次往下進行封裝,在後再路由器先解封,在重新封裝,最後發到目標主機進行解封,所以才有了上面的資料格式 

3. 在同一子網中,兩個主機要通過ip位址進行通訊,過程是怎樣的呢?

ping命令為例,當我們用pc0 ping pc1時,資料報傳送過程如下圖所示:

總結一下,每次同一子網內主機之間要通訊之前,源主機都要查詢目標ip是否在自己的mac-ip對映表中,如果不存在就要通過arp協議來尋找目標主機的mac位址,找到目標主機的mac之後,源主機會將目標主機的mac-ip新增到對映表中,然後就可以開始點對點傳送資料了。

下面來看看不同網段之間主機之間的通訊過程。

假設我們有如下的網路拓撲結構:

我們要跟目標主機通訊,就必須知道目標主機的ip和mac位址。如果源主機與目標主機不屬於同一子網,那麼目標mac位址為預設閘道器的mac位址。隨後資料被傳送到預設閘道器,傳送的方式參考上面同一子網內主機的通訊(因為預設閘道器與源主機必定是在同乙個子網中的)。預設閘道器收到後,將目標mac位址設定為下一跳的路由器的mac位址(找不到下一跳的mac位址就使用arp協議,廣播到所有子網裝置)。在這一過程中目標ip和源ip始終不變,只有目的mac位址不斷變化。

為什麼要同時使用mac位址和ip位址?

不同的位址作用於不同的層,mac作用於資料鏈路層,ip作用於網路層;資料報中,「mac位址包在ip位址之外面」 ,每當乙個資料報被解析時,總是mac位址先被解析到。如果資料報的mac位址跟當前裝置的mac位址不符,則直接丟棄,反之會繼續向上層傳送,這樣能夠提高效率。所以可以這樣理解,ip位址是邏輯位址,它可以計算網路的最短路徑,為資料報指明了下乙個應該去的裝置,將下乙個裝置的mac位址設為目的mac位址,從而使得該資料報能夠被送到那個路由器。

總結起來可以這麼理解,ip位址為資料報去向指明了方向,下乙個站是**;而mac位址有點類似於乙個跑腿的,能夠將資料報運送到指定的裝置。因此,可以看到在整個傳輸過程中目的ip始終不變,應為它表明了資料報的終點,每次到達乙個路由器,都會計算出下一步怎麼走最優,一旦找到了下乙個目標路由器,則將目的mac設為那個路由器的mac,至於怎麼到達,就不是ip位址需要操心的了,而是由資料鏈路層和物理層負責。

計算機網路學習筆記之《不同網路的連線》

閘道器 不同網段的網路通訊通過閘道器,閘道器既可以用於 廣域網互連,也可以用於 區域網互連。閘道器是一種充當轉換重任的 計算機系統 或裝置。使用在不同的 通訊協議 資料格式或語言,甚至 體系結構 完全不同的兩種系統之間,閘道器是乙個翻譯器。與 網橋只是簡單地傳達資訊不同,閘道器對收到的資訊要重新打包...

計算機網路9 計算機網路效能

1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位時間 ...

計算機網路 計算機網路的效能

目錄 1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位...