網絡基礎--ARP協議介紹

1、ARP作用

??ARP( Address Resolution Protocol,地址解析協議)是將 IP 地址解析為以太網 MAC 地址(或稱物理地址)的協議。在局域網中,當主機或其它網絡設備有數據要發送給另一個主機或設備時,它必須知道對方的網絡層地址(即 IP 地址)。但是僅僅有 IP 地址是不夠的,因為 IP 數據報文必須封裝成幀才能通過物理網絡發送,因此發送站還必須有接收站的物理地址,所以需要一個從 IP 地址到物理地址的映射。ARP 就是實現這個功能的協議。

2、ARP報文結構

??ARP報文分為ARP請求和ARP應答報文,報文格式如下圖所示:
在這里插入圖片描述

  • 硬件類型:表示硬件地址的類型。它的值為 1 表示以太網地址;
  • 協議類型:表示要映射的協議地址類型。它的值為 0x0800 即表示 IP 地址;
  • 硬件地址長度和協議地址長度分別指出硬件地址和協議地址的長度,以字節為單位。對于以太網上 IP 地址的 ARP 請求或應答來說,它們的值分別為 6 和 4;
  • 操作類型( OP): 1 表示 ARP 請求, 2 表示 ARP 應答;
  • 發送端 MAC 地址:發送方設備的硬件地址;
  • 發送端 IP 地址:發送方設備的 IP 地址;
  • 目標 MAC 地址:接收方設備的硬件地址。
  • 目標 IP 地址:接收方設備的 IP 地址。

3、 ARP地址解析過程

??假設主機A和B在同一個網段,主機A要向主機B發送信息。如下圖所示,具體的地址解析過程如下:
在這里插入圖片描述

  • 主機 A 首先查看自己的 ARP 表,確定其中是否包含有主機 B 對應的 ARP 表項。如果找到了對應的 MAC 地址,則主機 A 直接利用 ARP 表中的 MAC 地址,對 IP 數據包進行幀封裝,并將數據包發送給主機 B。
  • 如果主機 A 在 ARP 表中找不到對應的 MAC 地址,則將緩存該數據報文,然后以廣播方式發送一個 ARP 請求報文。 ARP 請求報文中的發送端 IP 地址和發送端 MAC 地址為主機 A 的 IP地址和 MAC 地址,目標 IP 地址和目標 MAC 地址為主機 B 的 IP 地址和全 0 的 MAC 地址。由于 ARP 請求報文以廣播方式發送,該網段上的所有主機都可以接收到該請求,但只有被請求的主機(即主機 B)會對該請求進行處理。
  • 主機 B 比較自己的 IP 地址和 ARP 請求報文中的目標 IP 地址,當兩者相同時進行如下處理:將 ARP 請求報文中的發送端(即主機 A)的 IP 地址和 MAC 地址存入自己的 ARP 表中。之后以單播方式發送 ARP 響應報文給主機 A,其中包含了自己的 MAC 地址。
  • 主機 A 收到 ARP 響應報文后,將主機 B 的 MAC 地址加入到自己的 ARP 表中以用于后續報文的轉發,同時將 IP 數據包進行封裝后發送出去。
  • 當主機 A 和主機 B 不在同一網段時,主機 A 就會先向網關發出 ARP 請求, ARP 請求報文中的目標IP 地址為網關的 IP 地址。當主機 A 從收到的響應報文中獲得網關的 MAC 地址后,將報文封裝并發給網關。如果網關沒有主機 B 的 ARP 表項,網關會廣播 ARP 請求,目標 IP 地址為主機 B 的 IP 地址,當網關從收到的響應報文中獲得主機 B 的 MAC 地址后,就可以將報文發給主機 B;如果網關已經有主機 B 的 ARP 表項,網關直接把報文發給主機 B。

4、ARP表

??設備通過 ARP 解析到目的 MAC 地址后,將會在自己的 ARP 表中增加 IP 地址到 MAC 地址的映射表項,以用于后續到同一目的地報文的轉發。ARP 表項分為動態 ARP 表項和靜態 ARP 表項。

  • 動態ARP表項
    動態 ARP 表項由 ARP 協議通過 ARP 報文自動生成和維護,可以被老化,可以被新的 ARP 報文更新,可以被靜態 ARP 表項覆蓋。當到達老化時間、接口 down 時會刪除相應的動態 ARP 表項。
  • 靜態ARP表項
    靜態 ARP 表項通過手工配置和維護,不會被老化,不會被動態 ARP 表項覆蓋。配置靜態 ARP 表項可以增加通信的安全性。靜態 ARP 表項可以限制和指定 IP 地址的設備通信時只使用指定的 MAC 地址,此時攻擊報文無法修改此表項的 IP 地址和 MAC 地址的映射關系,從而保護了本設備和指定設備間的正常通信。

靜態 ARP 表項分為長靜態 ARP 表項和短靜態 ARP 表項。
? 在配置長靜態 ARP 表項時,除了配置 IP 地址和 MAC 地址項外,還必須配置該 ARP 表項所在 VLAN 和出接口。長靜態 ARP 表項可以直接用于報文轉發。
? 在配置短靜態 ARP 表項時,只需要配置 IP 地址和 MAC 地址項。如果出接口是三層以太網接口,短靜態 ARP 表項可以直接用于報文轉發;如果出接口是 VLAN 接口,短靜態 ARP 表項不能直接用于報文轉發,當要發送 IP 數據包時,先發送 ARP 請求報文,如果收到的響應報文中的源 IP 地址和源 MAC 地址與所配置的 IP 地址和 MAC 地址相同,則將接收 ARP 響應報文的接口加入該靜態 ARP 表項中,之后就可以用于 IP 數據包的轉發。

5、 免費ARP簡介

免費 ARP 報文是一種特殊的 ARP 報文,該報文中攜帶的發送端 IP 地址和目標 IP 地址都是本機 IP地址,報文源 MAC 地址是本機 MAC 地址,報文的目的 MAC 地址是廣播地址。設備通過對外發送免費 ARP 報文來實現以下功能:

  • 確定其它設備的 IP 地址是否與本機的 IP 地址沖突。當其它設備收到免費 ARP 報文后,如果發現報文中的 IP 地址和自己的 IP 地址相同,則給發送免費 ARP 報文的設備返回一個 ARP 應答,告知該設備 IP 地址沖突。
  • 設備改變了硬件地址,通過發送免費 ARP 報文通知其它設備更新 ARP 表項。使能了免費 ARP 報文學習功能后,設備會根據收到的免費 ARP 報文中攜帶的信息(源 IP 地址、源 MAC 地址)對自身維護的 ARP 表進行修改。設備先判斷 ARP 表中是否存在與此免費 ARP 報文源 IP 地址對應的 ARP 表項:
  • 如果沒有對應的 ARP 表項,設備會根據該免費 ARP 報文中攜帶的信息新建 ARP 表項;
  • 如果存在對應的 ARP表項, 設備會根據該免費 ARP報文中攜帶的信息更新對應的 ARP表項。
    關閉免費 ARP 報文學習功能后,設備不會根據收到的免費 ARP 報文來新建 ARP 表項,但是會更新已存在的對應 ARP 表項。如果用戶不希望通過免費 ARP 報文來新建 ARP 表項,可以關閉免費ARP 報文學習功能,以節省 ARP 表項資源。

參考資料:H3C設備ARP配置

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

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

相關文章

Java鷹眼軌跡服務 輕騎小程序 運動健康與社交案例

Java地圖專題課 基本API BMapGLLib 地圖找房案例 MongoDB 百度地圖鷹眼軌跡服務 鷹眼軌跡服務概述 鷹眼是一套軌跡管理服務,提供各端SDK和API供開發者便捷接入,追蹤所管理的車輛/人員等運動物體。 基于鷹眼提供的接口和云端服務,開發者可以迅…

前后端分離------后端創建筆記(05)用戶列表查詢接口(下)

本文章轉載于【SpringBootVue】全網最簡單但實用的前后端分離項目實戰筆記 - 前端_大菜007的博客-CSDN博客 僅用于學習和討論,如有侵權請聯系 源碼:https://gitee.com/green_vegetables/x-admin-project.git 素材:https://pan.baidu.com/s/…

Java通過文件流和文件地址下載文件

通過文件流下載文件 如何使用 MultipartFile 進行文件上傳、下載到本地,并返回保存路徑呢: import org.springframework.web.multipart.MultipartFile;import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOExcep…

Redis_緩存2_緩存刪除和淘汰策略

14.5 緩存數據的刪除和替換 14.5.1 過期數據 可以使用ttl查看key的狀態。已過期的數據,redis并未馬上刪除。優先去執行讀寫數據操作,刪除操作延后執行。 14.5.2 刪除策略 redis中每一個value對應一個內存地址,在expires,一個內…

BC117 小樂樂走臺階(附完整代碼)

描述 小樂樂上課需要走n階臺階,因為他腿比較長,所以每次可以選擇走一階或者走兩階,那么他一共有多少種走法? 輸入描述 輸入包含一個整數n (1 ≤ n ≤ 30) 輸出描述 輸出一個整數,即小樂樂可以走的方法數。 思路&a…

分享個試卷去筆跡什么軟件,幾個步驟輕松擦除

試卷擦去筆跡是一項非常關鍵的技能,它可以幫助你更好地管理你的筆記和文件。不管是小伙伴們想重新測試試卷或者是將試卷輸出為電子版,都可以實現的。在這篇文章中,我將分享一些方法和軟件,幫助你更好地進行試卷擦除。有需要的小伙…

個人博客系統測試報告

文章目錄 一、功能測試1.編寫測試用例2.總結測試后發現的BUG 二、UI自動化測試0.搭建測試環境1. 創建公共類2.注冊頁面UI自動化測試用例編寫3.登錄頁面UI自動化測試用例編寫4.用戶博客列表頁面自動化測試5. 修改個信息頁面6. 文章編輯頁面7. 設置密保問題發現bug 8. 所有用戶文…

Stable Diffusion +EbSynth應用實踐和經驗分享

Ebsynth應用 1.安裝ffmpeg 2.安裝pip install transparent-background,下載模型https://www.mediafire.com/file/gjvux7ys4to9b4v/latest.pth/file 放到C:\Users\自己的用戶名.transparent-background\加一個ckpt_base.pth文件 3.秋葉安裝ebsynth插件,重啟webui 填寫項目基本…

Redis 持久化及集群架構

Redis 持久化及集群架構 本篇技術博文將深入探討 Redis 持久化機制的原理、配置和使用方式。我們將介紹兩種常用的持久化方式:RDB 持久化和 AOF 持久化。您將了解到它們的工作原理、優缺點以及如何根據需求選擇合適的持久化方式。 通過深入學習 Redis 持久化及集群…

Rest 優雅的url請求處理風格及注意事項

😀前言 本篇博文是關于Rest 風格請求的應用和注意事項,希望能夠幫助到您😊 🏠個人主頁:晨犀主頁 🧑個人簡介:大家好,我是晨犀,希望我的文章可以幫助到大家,您…

應急響應-Webshell

文章目錄 一、Webshell概述什么是WebshellWebshell分類基于編程語言基于文件大小/提供的功能多少 Webshell 檢測方法 二、常規處置方法三、技術指南1、初步預判2、 Webshell排查3、Web日志分析(查找攻擊路徑及失陷原因)4、系統排查4.1 Windows4.2 Linux …

CSS中的position屬性有哪些值,并分別描述它們的作用。

聚沙成塔每天進步一點點 ? 專欄簡介? static? relative? absolute? fixed? sticky? 寫在最后 ? 專欄簡介 前端入門之旅:探索Web開發的奇妙世界 記得點擊上方或者右側鏈接訂閱本專欄哦 幾何帶你啟航前端之旅 歡迎來到前端入門之旅!這個專欄是為那…

通達OA SQL注入漏洞【CVE-2023-4166】

通達OA SQL注入漏洞【CVE-2023-4166】 一、產品簡介二、漏洞概述三、影響范圍四、復現環境POC小龍POC檢測工具: 五、修復建議 免責聲明:請勿利用文章內的相關技術從事非法測試,由于傳播、利用此文所提供的信息或者工具而造成的任何直接或者間接的后果及損…

C/C++ 標準模版庫STL(持續更新版)

標準模版庫STL <algorithm> 算法庫 max, min 用于找出一組值中的最大值和最小值 swap 用于交換兩個變量的值 sort 用于對一個范圍內的元素進行排序 lower_bound, upper_bound 用于在已排序的容器中查找元素的下界和上界 unique(a,an)-a 用于在一個范圍內刪除相鄰重…

新的 Python URL 解析漏洞可能導致命令執行攻擊

Python URL 解析函數中的一個高嚴重性安全漏洞已被披露&#xff0c;該漏洞可繞過 blocklist 實現的域或協議過濾方法&#xff0c;導致任意文件讀取和命令執行。 CERT 協調中心&#xff08;CERT/CC&#xff09;在周五的一份公告中說&#xff1a;當整個 URL 都以空白字符開頭時&…

在 docker 中快速啟動 Apache Hive

介紹 在偽分布式模式下&#xff0c;在Docker容器內運行Apache Hive&#xff0c;可以提供以下功能&#xff1a;快速啟動/調試/為Hive準備測試環境。 快速開始 1. 拉取鏡像 從DockerHub&#xff1a;https://hub.docker.com/r/apache/hive/tags中拉取鏡像。目前發布了3個鏡像&…

gitlab修改遠程倉庫地址

目錄 背景&#xff1a; 解決&#xff1a; 1.刪除本地倉庫關聯的遠程地址&#xff0c;添加新的遠程倉庫地址 2.直接修改本地倉庫關聯的遠程倉庫地址 3.打開.git隱藏文件修改遠程倉庫地址 4.拉取代碼報錯(git host key verification failed) 背景&#xff1a; 公司搬家&#…

數字圖像處理 - 圖像處理結合機器學習的應用示例

在本文中,特別關注樹葉分類機器學習技術的實現。我們的目標是演示如何利用機器學習算法來分析一系列葉子照片,從而實現準確分類并提供對植物領域有價值的算法。 圖像處理中機器學習的本質 機器學習使計算機能夠學習模式并根據視覺數據進行預測,徹底改變了圖像處理領域。在葉…

image has dependent child images

問題&#xff1a;很多none的鏡像無法被刪除 解決過程&#xff1a; 1、通過 docker image prune -f 提示可刪除為 0 2、直接進行刪除報錯&#xff1a; docker rmi 8f5116cbc201Error response from daemon: conflict: unable to delete 8f5116cbc201 (cannot be forced) - im…

銀河麒麟安裝php7.1.33

銀河麒麟V10兼容CentOS 8 安裝過程與CentOS類似。 TencentOS3.1安裝PHPNginxredis測試系統_樂大師的博客-CSDN博客 可以參考之前我寫的文章。 不過有2個細節不同&#xff0c;下面說下。 問題1&#xff1a;編譯錯誤提示“error:off_t undefined” 解決方法&#xff1a; 編…