參考:
網絡三張表:ARP表, MAC表, 路由表,實現你的網絡自由!!_mac表、arp表、路由表-CSDN博客
網絡中的三張表:ARP表、MAC表、路由表
首先要明確一件事,如果一個主機要發送數據,那么必然要先在該主機所在的局域網內流動起來:如果源ip和目標ip處于同一網段,那么就直接在局域網內發送即可,不必先去找到路由器;只有需要將數據發往外網時,才需要通過路由器,也就是說,如果源ip和目標ip不在同一網段,那么第一步就直接去找路由器即可。其實,不管是找另一臺主機還是路由器,首先都是處于一個局域網內,不管需不需要發往外網,都需要先經過當前局域網。
從一個局域網到另一個局域網
接下來分別看看這幾張表是干嘛的。
ARP 表
ARP表示例
ARP 表即 ARP 緩存表,是用于存儲 IP 地址和對應的 MAC 地址之間映射關系的表格。
ARP 表中的每個表項包含兩部分信息:IP 地址和對應的 MAC 地址。通常是一個關聯數組,以 IP 地址作為鍵,對應的 MAC 地址作為值,常見的實現方式包括數組、哈希表等。
我們在應用層進行socket編程時,會指定目標的ip和端口,這樣,運輸層和網絡層就會分別對端口和ip進行封裝,但是到了鏈路層,我們要封裝源MAC和目標MAC,源MAC可以本機獲取,不過我們并沒有指定目標MAC,因為局域網內的轉發依靠的是MAC地址,所以,必須要獲取目標主機的MAC地址,這種情況下,怎么才能知道目標主機的MAC地址呢?
PS:我們這里說的“主機”,可以直接當做網絡適配器,也就是網卡來看待,收發網絡數據的實體其實就是網卡,MAC地址的唯一性就是跟網卡對應的。
ARP 表中的作用就是解決 IP 地址和 MAC 地址之間的映射關系:在網絡通信過程中,當主機需要與其他設備通信時,會根據目標 IP 地址在 ARP 表中查找對應的 MAC 地址,然后使用該 MAC 地址進行數據包的發送。
當然,如果 ARP 表中沒有對應的 MAC 地址,則在局域網內通過發送 ARP 請求廣播來獲取。當主機 A 需要發送數據給主機 B 時,若主機 A 的 ARP 表中沒有主機 B 的 MAC 地址,它會發送一個 ARP 請求廣播包,該包內含有主機 A 自己的 IP 地址和 MAC 地址,以及目標主機 B 的 IP 地址。局域網內的其他主機都會接收到這個 ARP 請求包,但只有主機 B 會回復一個 ARP 應答包,其中包含了自己的 IP 地址和 MAC 地址。主機 A 收到 ARP 應答包后,將主機 B 的 IP 地址和 MAC 地址添加到自己的 ARP 表中。
ARP 表項會根據一定的策略進行更新和維護。例如,當主機發送 ARP 請求并收到應答后,會更新或添加相應的表項;如果一段時間內沒有使用某個表項,可能會將其刪除。
有了 ARP 表,主機可以在本地快速查找到目標設備的 MAC 地址,而不需要每次都發送 ARP 請求廣播,減少了網絡中的廣播流量,提高了數據傳輸的速度和網絡的整體效率。
ARP表、ARP協議以及ARP過程總結
ARP協議詳解 ------- 一看就懂-CSDN博客
ARP的工作過程(同網段和跨網段時ARP分別都如何工作的,以及二層和三層設備的MAC地址表,ARP表和路由表)_arp,主機與網關-CSDN博客
什么是ARP?
ARP協議是“Address Resolution Protocol”(地址解析協議)的縮寫。ARP的作用
在以太網環境中,數據的傳輸所依懶的是MAC地址而非IP地址,而將已知IP地址轉換為MAC地址的工作是由ARP協議來完成的。在局域網中,網絡中實際傳輸的是“幀”,幀里面是有目標主機的MAC地址的。在以太網中,一個主機和另一個主機進行直接通信,必須要知道目標主機的MAC地址。但這個目標MAC地址是如何獲得的呢?它就是通過地址解析協議獲得的。
所謂“地址解析”就是主機在發送幀前將目標IP地址轉換成目標MAC地址的過程。ARP協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。
ARP工作流程
假設主機A和B在同一個網段,主機A要向主機B發送信息,具體的地址解析過程如下:(1)
主機A首先查看自己的ARP表,確定其中是否包含有主機B對應的ARP表項。如果找到了對應的MAC地址,則主機A直接利用ARP表中的MAC地址,對IP數據包進行幀封裝,并將數據包發送給主機B。
(2)
如果主機A在ARP表中找不到對應的MAC地址,則將緩存該數據報文,然后以廣播方式發送一個ARP請求報文。
ARP請求報文中的發送端IP地址和發送端MAC地址為主機A的IP地址和MAC地址,目標IP地址和目標MAC地址為主機B的IP地址和全0的MAC地址。
由于ARP請求報文以廣播方式發送,該網段上的所有主機都可以接收到該請求,但只有被請求的主機(即主機B)會對該請求進行處理。
(3)
主機B比較自己IP地址和ARP請求報文中的 目標IP 地址,當兩者相同時進行如下處理:將ARP請求報文中的發送端(即主機A)的IP地址和MAC地址存入自己的ARP表中。
之后以單播方式發送ARP響應報文給主機A,其中包含了自己的MAC地址。
(4)
主機A收到ARP響應報文后,將主機B的MAC地址加入到自己的ARP表中以用于后續報文的轉發,同時將IP數據包進行封裝后發送出去。
抓包分析
圖中一對ARP請求和ARP應答
ARP請求報文
ARP應答報文
ARP表
設備通過ARP解析到目的MAC地址后,將會在自己的ARP表中增加IP地址到MAC地址的映射表項,以用于后續到同一目的地報文的轉發。
MAC表
MAC表示例
MAC 表即 MAC 地址表,是網絡設備中用于存儲 MAC 地址與接口對應關系的數據表。以下是關于 MAC 表的詳細介紹:
基本概念
在以太網等局域網環境中,每個網絡設備都有一個唯一的 MAC 地址,類似于設備的 “身份證號碼”。當設備之間進行通信時,數據包會根據目的 MAC 地址被發送到目標設備。而 MAC 表就是幫助網絡設備快速找到目標設備 MAC 地址對應的接口,從而實現數據的高效轉發。
建立過程
初始狀態:當交換機剛剛啟動時,它的 MAC 地址表是空的。
學習過程:當交換機從某個端口收到數據幀時,會讀取數據幀中封裝的源 MAC 地址信息,并將該 MAC 地址與接收數據幀的端口對應起來,記錄在 MAC 地址表中。如果收到的數據幀的目的 MAC 地址在 MAC 表中已經存在,交換機就會根據表中的對應關系,直接將數據幀從相應的端口轉發出去;如果目的 MAC 地址不在 MAC 表中,交換機就會將該數據幀向除了接收端口之外的所有端口進行轉發,這個過程稱為泛洪。隨著網絡中設備之間的通信不斷進行,交換機逐漸學習到更多設備的 MAC 地址和對應的端口,MAC 地址表也就不斷地完善。
作用
提高轉發效率:通過查找 MAC 地址表,交換機可以快速確定數據幀應該從哪個端口轉發出去,避免了對同一局域網中的所有設備都進行廣播,大大減少了網絡中的冗余流量,提高了數據傳輸的效率。
實現定向傳輸:使得交換機能夠根據數據幀中的目的 MAC 地址,準確地將數據幀發送到目標設備所在的端口,實現了數據的定向傳輸,保證了數據能夠正確地到達目標設備。
類型
靜態 MAC 表項:由網絡管理員手工配置,將特定的 MAC 地址與某個接口綁定在一起。這種配置方式可以保證某些重要的設備或用戶始終能夠通過固定的接口進行通信,增加了網絡的安全性和可控性。例如,在企業網絡中,為了防止非法用戶接入服務器,可以將服務器的 MAC 地址配置為靜態 MAC 表項。
動態 MAC 表項:由交換機通過自動學習的方式建立,即交換機在接收到數據幀時,根據源 MAC 地址和接收端口的對應關系自動生成 MAC 表項。動態 MAC 表項會隨著網絡中設備的連接和通信情況而不斷變化。
綜上所述,MAC表作為網絡設備的核心組件之一,對于提升網絡性能、保障網絡安全以及實現高效的網絡通信至關重要。
MAC 表主要存在于鏈路層設備上,如交換機、網橋等。以下是具體介紹:
交換機:
交換機是局域網中的核心設備之一,其主要工作在數據鏈路層。它通過記錄端口所連接設備的源 MAC 地址和端口對應關系來建立 MAC 地址表,從而實現數據幀的快速轉發。當交換機接收到一個數據包時,會查找數據包中的目標 MAC 地址,并在 MAC 地址表中查找相應的條目。如果找到了匹配,交換機就知道應該將數據包發送到與目標 MAC 地址關聯的相應物理端口;如果找不到匹配,交換機會將數據包廣播到所有連接的端口,以確保目標設備能夠接收到。通過維護 MAC 地址表,交換機可以提高局域網中數據包的傳輸效率,避免將數據包發送到不必要的端口,從而優化網絡性能。
網橋:
網橋也是一種常見的鏈路層設備,它的工作原理與交換機類似,也是通過學習來自不同物理端口的 MAC 地址,并在其內部維護一個 MAC 地址表來進行數據幀的轉發決策。當網橋接收到一個數據幀時,它會查找數據幀中的目標 MAC 地址,并檢查 MAC 地址表以確定應該將數據幀轉發到哪個物理端口。如果目標 MAC 地址在表中,網橋知道該數據幀只需在特定端口轉發;如果目標 MAC 地址不在表中,網橋會將數據幀廣播到所有其他端口,以確保目標設備能夠接收到。
總之,MAC表作為鏈路層設備的核心組件,對于提升網絡性能、保障網絡安全以及實現高效的網絡通信至關重要。
路由表
簡易路由表示例
可以看到,路由表的目標是網絡號,而不會管主機號,只有到了目標網絡之后,才會在目標局域網內根據目標ip去找到目標MAC,然后找到對應的主機。
一個局域網如果想要把數據發往另一個局域網,那么就需要經過若干級路由,在路由過程中,到達目標局域網之前,數據會通過存儲轉發等策略在不同路由器上一直向前發送。
路由表是路由器或其他聯網設備中存儲路由信息的電子表格或類數據庫,以下是關于它的詳細介紹:
基本概念
在計算機網絡中,路由表用于指導數據包的轉發路徑選擇,它記錄了去往不同目的 IP 地址或網絡的下一跳信息、出接口等關鍵內容,類似于人們出行時所依賴的地圖或導航系統。
主要作用
路徑決策:當路由器接收到一個數據包時,它會解析出數據包的目的 IP 地址,然后根據路由表中的信息,按照一定的規則和算法,如最長掩碼匹配原則,找到與目的 IP 地址最匹配的路由條目,從而確定數據包的轉發路徑。
數據轉發:通過查找路由表,路由器能夠將數據包準確地發送到下一個路由器或目標主機,確保數據包在網絡中的正確傳輸,實現不同網絡之間的通信。
常見類型
靜態路由表:由系統管理員手動配置,明確了數據包到達目的地所需經過的固定路徑,不會隨網絡結構的變化而自動改變。適用于網絡拓撲結構簡單、穩定,且無需頻繁調整路由的情況。
動態路由表:由路由器根據網絡系統的運行情況和路由協議自動學習和調整。路由器會定期交換路由信息,更新路由表,以適應網絡拓撲的變化,如鏈路故障、新設備的加入等。常見的動態路由協議有 RIP、OSPF、BGP 等。
主要內容
目的網絡/掩碼:也稱為路由前綴,用于標識 IP 包的目的地址或目的網絡。一個路由條目通常包含網絡地址和子網掩碼,兩者共同確定了目的主機或路由器所在的網段。
下一跳:指數據包從當前路由器轉發到下一個路由器的 IP 地址。當下一跳字段代表路由器時,其值為路由的 IP 地址;如果是直連網絡,則下一跳為對應的接口。
出接口:說明 IP 包將從該路由器的哪個接口轉發出去。
協議類型:表示該路由條目是通過何種路由協議學習到的,如直連路由、靜態路由、RIP、OSPF、BGP 等。
優先級:標識路由加入 IP 路由表的優先級,優先級值越小則路由越優。當存在多條到達同一目的地的路由時,路由器會優先選擇優先級高的路由。
開銷:路由的度量值,用于衡量到達目的地的路徑成本。不同的路由協議計算開銷的方法可能不同,一般來說,開銷越小的路徑越優先被選擇。
標志:用于標記路由的一些特殊屬性,如是否是迭代路由等。
應用場景
路由器:路由器是使用路由表的核心設備,它根據路由表中的信息將數據包從一個網絡轉發到另一個網絡,實現不同局域網、廣域網之間的通信。無論是企業級網絡、互聯網服務提供商的網絡,還是小型家庭或辦公室網絡中的路由器,都需要依靠路由表來正確地轉發數據包。
主機:除了路由器,普通主機也可以有路由表。例如,在 Windows 系統中,可以通過 “route print” 命令查看本地計算機上的路由表。主機的路由表用于決定本地計算機產生的數據包如何通過網絡接口發送到目標網絡或主機。
總之,路由表是網絡通信中不可或缺的一部分,無論是對于專業的網絡設備如路由器,還是普通的主機,都起著至關重要的作用。
總結?
通常交換機上只有MAC表
交換機上存在 MAC 表,用于記錄設備的 MAC 地址與端口的對應關系,以便在轉發數據時根據目的 MAC 地址快速找到對應的端口。
通常路由器上有ARP表和路由表
ARP 表:路由器在進行 IP 轉發時,可能需要通過 ARP 獲取下一跳網關的 MAC 地址,因此在處理 ARP 請求和響應時會短暫地使用 ARP 表來緩存相關信息。
路由表:是路由器的核心數據結構之一,用于存儲到達不同網絡的路徑信息,包括目的網絡地址、子網掩碼、下一跳地址、出接口等,以指導數據包的轉發。
通常計算機上主要有ARP表
MAC 表:網卡等網絡接口設備中會維護一個小型的 MAC 地址緩存表,用于記錄最近與之通信的設備的 MAC 地址,以提高通信效率,但這個表通常不是用戶可直接查看和管理的完整意義上的 MAC 表。
ARP 表:操作系統會維護一個 ARP 緩存表,用于存儲本地網絡中已知設備的 IP 地址與 MAC 地址的映射關系,當需要向某個 IP 地址發送數據時,首先會在 ARP 緩存表中查找對應的 MAC 地址。
路由表:計算機的操作系統會維護一個路由表,用于確定數據包的轉發路徑,可以根據網絡配置自動生成直連路由和默認路由,也可以由用戶手動添加靜態路由。
?