深入理解LVS篇:網絡通信原理(二)局域網間通訊之ARP協議


上一篇文章我簡單講述了一個數據報文是如何在局域網中轉發的,簡單的回顧一下流程:

  • 主機封裝數據報文,其中包含請求體源IP目標IP源MAC地址等信息。
  • 報文經過交換機,交換機將報文發送給路由器進行解析。
  • 路由器將報文的目標IP與路由表中的子網掩碼進行邏輯與運算,得到目標網段,並根據匹配的目標網段的路由網關進行轉發。

在文章的末尾我還說了,如果在交換機中已經記錄了當前局域網中所有設備的映射,那麼報文是不會經過路由器進行轉發的,那麼交換機是如何做到的呢?我們來了解一個協議–ARP協議

什麼是ARP協議

首先,ARP協議是三層網絡協議,也就是基於網絡層的協議。在網絡層協議中,數據的報文將僅關注IP地址MAC地址這些信息,LVS其實也是基於三層網絡協議的(其實是僞三層,因爲LVS會偷窺數據包的握手信息)。

大白話來講,ARP協議就是用來廣播統一局域網段內機器的IPMAC信息的。

ARP協議的工作流程

還是以之前的局域網絡拓撲爲例:
在這裏插入圖片描述
如果主機10想要和11進行通訊,會經歷以下幾個步驟:

  • 創建一個ARP協議格式的報文,報文的目標MAC地址全爲F,目標IP爲11。
  • 報文發送至交換機,交換機發現是一個ARP協議的報文,會將此報文通過自己記錄的端口進行廣播。
  • 11和12兩臺主機都接收到ARP報文,12發現目標IP與自己本機IP不符,將此報文丟棄;11發現與本機IP一致,將自己的MAC地址也封裝成ARP協議的報文,發送給交換機。
  • 主機10收到報文,將11的MAC地址緩存到本地的ARP列表中。

這裏需要說明的一點是,在第三步中,主機11將自己的MAC地址封裝成ARP協議報文,其實是一個將原來的報文進行替換的過程,如下圖:
在這裏插入圖片描述
交換機在這些報文一來二去的通訊過程中,會記錄自己的端口與所連主機的映射關係:
在這裏插入圖片描述
比如上圖的交換機連接了3臺主機,對應的端口分別爲1,5,7。主機第一次通過交換機發送報文的時候,交換機會把端口對應的主機的MAC地址記錄下來,如此通訊多次後,交換機內部就能具備能夠告知各個主機節點去路的能力。由於交換機僅記錄MAC地址,所有交換機屬於二層協議的設備。

下一篇文章我們將跨入互聯網通訊,探明互聯網中的兩臺主機是如何進行通訊的,並介紹NATDRTUN等知識。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章