計算機網絡三張表(ARP表、MAC表、路由表)總結

參考:

網絡三張表: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 地址。

路由表:計算機的操作系統會維護一個路由表,用于確定數據包的轉發路徑,可以根據網絡配置自動生成直連路由和默認路由,也可以由用戶手動添加靜態路由。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/66943.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66943.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66943.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Nomoto 船舶模型】

【Nomoto 船舶模型】 1. Nomoto 船舶模型簡介2. 來源及發展歷程3. 構建 一階模型Nomoto 船舶模型3.1 C 實現3.2 Python 實現3.3 說明 5. 參數辨識方法5.1 基于最小二乘法的參數辨識5.2 數學推導5.3 Python 實現5.4 說明 4. 結論參考文獻 1. Nomoto 船舶模型簡介 Nomoto 模型是…

差分進化算法 (Differential Evolution) 算法詳解及案例分析

差分進化算法 (Differential Evolution) 算法詳解及案例分析 目錄 差分進化算法 (Differential Evolution) 算法詳解及案例分析1. 引言2. 差分進化算法 (DE) 算法原理2.1 基本概念2.2 算法步驟3. 差分進化算法的優勢與局限性3.1 優勢3.2 局限性4. 案例分析4.1 案例1: 單目標優化…

深入理解GPT底層原理--從n-gram到RNN到LSTM/GRU到Transformer/GPT的進化

從簡單的RNN到復雜的LSTM/GRU,再到引入注意力機制,研究者們一直在努力解決序列建模的核心問題。每一步的進展都為下一步的突破奠定了基礎,最終孕育出了革命性的Transformer架構和GPT大模型。 1. 從n-gram到循環神經網絡(RNN)的誕生 1.1 N-gram 模型 在深度學習興起之前,處理…

【JWT】jwt實現HS、RS、ES、ED簽名與驗簽

JWT 實現 HS、RS、ES 和 ED 簽名與驗簽 簽名方式算法密鑰類型簽名要點驗簽要點HSHMAC-SHA256對稱密鑰- 使用 crypto/hmac 和對稱密鑰生成 HMAC 簽名- 將 header.payload 作為數據輸入- 使用同一密鑰重新計算 HMAC 簽名- 比較計算結果與接收到的簽名是否一致RSRSA-SHA256公鑰 …

地址欄信息location

獲取信息 頁面跳轉 location.href當前地址欄信息 location.assign()設置跳轉新的頁面 location.replace() location.reload()刷新頁面

程序員轉型測試:解鎖漏洞挖掘新旅程

前言:哈嘍,大家好,今天給大家分享一篇文章!并提供具體代碼幫助大家深入理解,徹底掌握!創作不易,如果能幫助到大家或者給大家一些靈感和啟發,歡迎收藏關注哦 💕 目錄 程序…

StarRocks常用命令

目錄 1、StarRocks 集群管理&配置命令 2、StarRocks 常用操作命令 3、StarRocks 數據導入和導出 1、StarRocks 集群管理&配置命令 查詢 FE 節點信息 SHOW frontends; SHOW PROC /frontends; mysql -h192.168.1.250 -P9030 -uroot -p -e "SHOW PROC /dbs;"…

08-ArcGIS For JavaScript-通過Mesh繪制幾何體(Cylinder,Circle,Box,Pyramid)

目錄 概述代碼實現1、Mesh.createBox2、createPyramid3、Mesh.createSphere4、Mesh.createCylinder 完整代碼 概述 對于三維場景而言,二位的點、線、面,三維的圓、立方體、圓柱等都是比較常見的三維對象,在ArcGIS For JavaScript中我們知道點…

Linux中page、buffer_head、bio的關系

在Linux中,page、buffer_head、bio這三個概念緊密相關,共同構成了塊設備I/O和內存管理的重要部分,它們的聯系主要體現在以下方面: page與buffer_head 基于page構建:buffer_head通常是基于page來構建的,一…

直線擬合例子 ,嶺回歸擬合直線

目錄 直線擬合,算出離群點 嶺回歸擬合直線: 直線擬合,算出離群點 import cv2 import numpy as np# 輸入的點 points np.array([[51, 149],[122, 374],[225, 376],[340, 382],[463, 391],[535, 298],[596, 400],[689, 406],[821, 407] ], dtypenp.float32)# 使用…

SpringCloud兩種注冊中心

SpringCloud 基本概念 系統架構 我們之前做的所有的項目都屬于單體架構,下面我們將要學習更適合大型項目的分布式架構 單體架構: 將業務的所有功能幾種在一個項目中開發,打成一個包部署。 優點:架構簡單、部署成本低 缺點&am…

SpringAI 搭建智能體(二):搭建客服系統智能體

在現代人工智能應用中,智能體(Agent) 是一個重要的概念,它的核心能力是自主性與靈活性。一個智能體不僅能夠理解用戶的需求,還能拆解任務、調用工具完成具體操作,并在復雜場景中高效運行。在本篇博客中&…

SVN客戶端使用手冊

目錄 一、簡介 二、SVN的安裝與卸載 1. 安裝(公司內部一般會提供安裝包和漢化包,直接到公司內部網盤下載即可,如果找不到可以看下面的教程) 2. 查看SVN版本 ?編輯 3. SVN卸載 三、SVN的基本操作 1. 檢出 2. 清除認證數據 3. 提交…

HTML 文本格式化詳解

在網頁開發中,文本內容的呈現方式直接影響用戶的閱讀體驗。HTML 提供了多種文本格式化元素,可以幫助我們更好地控制文本的顯示效果。本文將詳細介紹 HTML 中的文本格式化元素及其使用方法,幫助你輕松實現網頁文本的美化。 什么是 HTML 文本格…

衡量算法性能的量級標準:算法復雜度

今天開始數據結構的學習!作為一大重點,拿出態度很重要,想要真實掌握,博客筆記自然少不了!重點全部上色!避免疏忽 下面我們從0基礎開始學習今天的第一節!不用擔心看不懂,拒絕枯燥的理…

Spring Boot Starter介紹

前言 大概10來年以前,當時springboot剛剛出現并沒有流行,當時的Java開發者們開發Web應用主要是使用spring整合springmvc或者struts、iBatis、hibernate等開發框架來進行開發。項目里一般有許多xml文件配置,其中配置了很多項目中需要用到的Be…

Java面試題2025-Spring

講師:鄧澎波 Spring面試專題 1.Spring應該很熟悉吧?來介紹下你的Spring的理解 1.1 Spring的發展歷程 先介紹Spring是怎么來的,發展中有哪些核心的節點,當前的最新版本是什么等 通過上圖可以比較清晰的看到Spring的各個時間版本對…

Linux 切換到 Root 用戶的方式及差異詳解

在 Linux 系統中,切換到 root 用戶進行管理和操作是常見需求。不同的切換方法會影響環境變量、工作目錄以及加載的配置文件。本文將介紹幾種常用的切換方式及它們的特點。 切換到 Root 用戶的主要方式 1. sudo su 這是通過 sudo 提權后調用 su 切換到 root 用戶的…

虹科分享 | 汽車NVH小課堂之聽音辨故障

隨著車主開始關注汽車抖動異響問題,如何根據故障現象快速診斷異響來源,成了汽修人的必修課。 一個比較常用的方法就是靠“聽”——“聽音辨故障”。那今天,虹科Pico也整理了幾個不同類型的異響聲音,一起來聽聽看你能答對幾個吧 汽…

淺談Redis

2007 年,一位程序員和朋友一起創建了一個網站。為了解決這個網站的負載問題,他自己定制了一個數據庫。于2009 年開發,稱之為Redis。這位意大利程序員是薩爾瓦托勒桑菲利波(Salvatore Sanfilippo),他被稱為Redis之父,更…