以太網常用協議——ARP協議

文章目錄

    • 一、 ARP協議與MAC層
      • 1.TCP/IP協議
      • 2. MAC地址
      • 3. ARP映射
      • 4. ARP請求和ARP應答
    • 二、以太網幀格式
    • 三、ARP協議
      • 1. 以太網ARP通信測試:

以太網使用的協議很多,常用的有ARP、UDP等。
再介紹具體協議之前需要先知道一些基本的概念:

一、 ARP協議與MAC層

Q:ARP協議是是什么?它和MAC層的關系是什么。
A:
1.ARP (Address Resolution Protocol)即地址解析協議,是根據 IP 地址(邏輯地址)獲取 MAC 地址的一種 TCP/IP 協議
2.在以太網中,一個主機和另一個主機進行通信,必須要知道目的主機的 MAC 地址(物理地址),而目的 MAC 地址的獲取由 ARP 協議完成。
3.在以太網通信中,數據是以“幀”的格式進行傳輸的,幀格式里面包含目的主機的MAC 地址。因此在通信前需要先獲得目的 MAC 地址,而 ARP 協議正是實現了此功能
4.在獲取到目的 MAC地址之后,將目的MAC地址更新至ARP緩存表中,稱為ARP映射。下次通信時,可以直接從 ARP 緩存表中獲取,而不用重新通過 ARP 獲取 MAC 地址。但一般 ARP緩存表會有過期時間,過期后需要重新通過 ARP 協議進行獲取。

接下來介紹一下上面這段話中的一些專有名詞

1.TCP/IP協議

TCP/IP 是網絡使用中最基本的通信協議,雖然從名字看上去 TCP/IP 包括兩個協議,TCP 和 IP,但 TCP/IP實際上是一組協議,它包括上百個各種功能的協議,如:TCP、IP、ARP、UDP 等。
而 TCP 協議和 IP協議是保證數據完整傳輸的兩個重要的協議,因此 TCP/IP 協議用來表示 Internet 協議簇。
TCP/IP協議不僅可以運行在以太網上,也可以運行在FDDI(光纖分布式數據接口)和WLAN(無線局域網)上。反過來,以太網的高層協議不僅可以是TCP/IP協議,也可以是IPX協議(互聯網分組交換協議)等,只不過以太網+TCP/IP 成為 IT 行業中應用最普遍的技術。

2. MAC地址

MAC地址在網絡中表示網卡的 ID,每個網卡有且僅有一個 MAC 地址。
格式:MAC地址通常由12個十六進制字符組成,分為6對,用冒號或連字符分隔,例如00:1A:2B:3C:4D:5E。

3. ARP映射

將 IP 地址和 MAC 地址映射起來,分為靜態映射動態映射
如下圖ARP映射表,左邊是IP地址,右邊是MAC地址,實現映射。
在這里插入圖片描述

靜態映射: 指手動創建一張 ARP 表,把 IP 地址和 MAC 地址關聯起來。手動綁定之后,源主機在通信 之前,就可以直接從 ARP 表中直接找到 IP 地址對應的 MAC 地址,但這樣做有一定的局限性,因為 MAC地址可能會變化,比如:
1) 機器可能更換 NIC(網絡適配器),結果變成一個新的物理地址;
2)在某些局域網中,每當計算機加電時,他的物理地址都要改變一次。
3) 移動電腦可以從一個物理網絡轉移到另一個物理網絡,這樣會改變物理地址。
要避免這些問題出現,必須定期維護更新ARP表,此類比較麻煩而且會影響網絡性能。

動態映射:指使用協議來獲取相對應的物理地址,之所以用動態這個詞是因為這個過程是自動完成的,一般應用程序的用戶或系統管理員不必關心。已經設計出用于實現動態映射協議的有ARPRARP(逆地址解析協議)兩種,如下圖所示
ARP :把 IP 地址映射為物理地址
RARP :把物理地址映射為 IP 地址。(這里不重點講述)在這里插入圖片描述

4. ARP請求和ARP應答

ARP請求:源主機發起查詢目的 MAC 地址的報文稱為 ARP 請求
ARP應答:目的主機響應源主機并發送包含本地 MAC 地址的報文稱為 ARP 應答
在這里插入圖片描述
由于發送的目的 MAC 地址為廣播地址,所以此時局域網中的所有主機都會進行接收并處理這個 ARP 請求報文,然后進行驗證,查看接收方的 IP 地址是不是自己的地址。是則返回 ARP 應答報文,不是則不響應。

在這里插入圖片描述
主機 A 將收到的 ARP 應答報文中的目的 MAC 地址解析出來,將目的 MAC 地址和目的 IP 地址更新至 ARP 緩存表中。當再次和主機 B 通信時,可以直接從 ARP 緩存表中獲取,而不用重新發起 ARP 請求報文。
ARP 緩存表中的表項有過期時間(一般為 20 分鐘),過期之后,需要重新發起 ARP 請求以獲取目的 MAC 地址。

介紹ARP協議之前,先了解一下以太網的幀格式

二、以太網幀格式

ARP 協議通過以太網進行傳輸,那么必須也要按照以太網所規定的格式進行傳輸,那先來介紹一下太網的幀格式,隨后再詳細介紹 ARP 協議的具體格式。

我們知道串口通信單次只傳輸一個字節,而以太網通信是以數據包的形式傳輸,其單包數據量達到幾十,甚至成百上千個字節。下圖為以太網通過 ARP 傳輸單包數據的格式。
在這里插入圖片描述
以太網 MAC 幀格式:
在這里插入圖片描述
在這里插入圖片描述

注意:以太網相鄰兩幀之間的時間間隔,即幀間隙(IFG,Interpacket Gap)。
幀間隙的時間就是網絡設備和組件在接收一幀之后,需要短暫的時間來恢復并為接收下一幀做準備的時間,IFG 的最小值是 96 bit time,即在媒介中發送 96 位原始數據所需要的時間,在不同媒介中 IFG的最小值是不一樣的。
不管10M/100M/1000M的以太網,兩幀之間最少要有 96bit time,IFG 的最少間隔時間計算方法如下:
10Mbit/s 最小時間為:96100ns = 9600ns;
100Mbit/s 最小時間為:96
10ns = 960ns;
1000Mbit/s 最小時間為:96*1ns = 96ns。

三、ARP協議

ARP 協議屬于 TCP/IP 協議簇的一種,ARP 協議位于以太網 MAC幀格式的數據段,ARP 數據包格式如下圖所示。
在這里插入圖片描述
在這里插入圖片描述

1. 以太網ARP通信測試:

主機和fpga參數如下:
在這里插入圖片描述
1:上位機發送ARP請求,FPGA產生ARP應答
在這里插入圖片描述
在這里插入圖片描述
2:FPGA發出ARP請求,上位機產生ARP應答
在這里插入圖片描述
在這里插入圖片描述
Q:上位機可以通過win的命令:arp-a查看fpga的IP 和 MACY的映射,那如何查看fpga接收到的上位機信息呢?
A:這里使用wireshark軟件對以太網通信進行抓包。
在這里插入圖片描述

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

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

相關文章

COB顯示屏與GOB顯示屏封裝方式有哪些不同?

很多用戶因為使用場景的特殊性,所以會選擇防護能力更強的COB顯示屏或者是GOB顯示屏,兩種產品從名稱上看只是有一個字母的懸殊,其實使用的工藝截然不同,GOB顯示屏通常是在SMD顯示屏的基礎上進行升級,而COB顯示屏則是完全…

獨立開發者系列(15)——git的使用

上一篇14文章觸發了敏感話題,直接未過審核,看來技術博客也有敏感點。 大部分情況下,獨立項目是你一個人開發,但是當你接的項目比較大的時候,你需要其他人的幫忙,這個時候你要把代碼分享給別人。因為如果你…

【分布式數據倉庫Hive】Hive的安裝配置及測試

目錄 一、數據庫MySQL安裝 1. 檢查操作系統是否有MySQL安裝殘留 2. 刪除殘留的MySQL安裝(使用yum) 3. 安裝MySQL依賴包、客戶端和服務器 4. MySQL登錄賬戶root設置密碼,密碼值自定義,這里是‘abc1234’ 5. 啟動MySQL服務 6…

maven設置阿里云鏡像源(加速)

一、settings.xml介紹 settings.xml是maven的全局配置文件,maven的配置文件存在三個地方 項目中的pom.xml,這個是pom.xml所在項目的局部配置文件用戶配置:${user.home}/.m2/settings.xml全局配置:${M2_HOME}/conf/settings.xml 優…

YOLOV10訓練集制作+Train+Val記錄

代碼地址:THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection (github.com) 一、數據制作 在這篇文章有講過如何制作數據集及代碼實現 YOLOV9訓練集制作TrainVal記錄_yolov9 train yaml-CSDN博客 二、配置文件 (1)代碼結構…

“私域流量:解鎖電商新機遇,共創數字化未來“

一、私域流量的戰略意義再探 步入數字化浪潮的深處,流量已成為企業成長不可或缺的血液。與廣泛但難以掌控的公域流量相比,私域流量以其獨特的專屬性和復用潛力,為企業鋪設了通往深度用戶關系的橋梁。它不僅賦能企業實現精準營銷,…

國產跨平臺高性能遠程控制軟件 RayLink,暢享高清流暢遠程辦公

不管是手機還是電腦,出色的硬件是好用的基礎。而其中的軟件工具,也是提高效率、減輕負擔的好東西。 免費的軟件工具眾多,當然付費工具也不少。大家可能會覺得正版軟件很貴,但國內軟件代理商的價格其實很實惠。 本次為大家介紹一…

CF1375D Replace by MEX 題解

題目大意 令 m e x mex mex 為序列中最小的沒有出現的數。 給你一個長度為 n n n 的序列 a a a,你可以進行不超過 2 n 2\times n 2n 次操作,使得序列 a a a 單調不降。每次操作你可以選定一個位置 p p p,并將 a p a_p ap? 賦值為 …

一文看盡AI繪畫工具 Stable Diffusion發展史,AI繪畫究竟發展到什么地步了?!

01、引言 Stable Diffusion 在短短兩年內發布了多個版本。最著名的版本是 1.5 和 SDXL。不過,還有許多其他版本值得一提。讓我們一起來探索穩定擴散模型的起源和發展。 閑話少說,我們直接開始吧! 02、缺失的SD V1.0版本 Stable Diffusion…

材質相關內容整理 -ThreeJs

在Three.js中,材質是用來定義3D對象外觀的關鍵部分。Three.js支持多種材質文件和類型,每種材質都有其特定的用途和優勢。下面簡單整理了一下目前Three.js支持的材質文件和類型。 一、Three.js支持的材質文件類型 JPEG (.jpg) 和 PNG (.png) 用途&#x…

iphone新機官網驗機流程

若您想購買新款iPhone并在官方網站上驗證機器的真實性,可以按照以下流程進行: 打開蘋果官方網站(https://www.apple.com)。在導航欄中選擇“iPhone”選項,進入iPhone的產品頁面。在頁面中找到您想要購買的新款iPhone&…

C語言快速學習筆記

學習網站:C 語言教程 | 菜鳥教程 (runoob.com)C 語言教程 | 菜鳥教程 (runoob.com)C 語言教程 | 菜鳥教程 (runoob.com) 這個網站知識完整,講解清晰。 在線C語言編程工具:菜鳥教程在線編輯器 (runoob.com) 國外學習網站:C語言介…

【機器學習】機器學習的重要方法——線性回歸算法深度探索與未來展望

歡迎來到 破曉的歷程博客 引言 在數據科學日益重要的今天,線性回歸算法以其簡單、直觀和強大的預測能力,成為了眾多領域中的基礎工具。本文將詳細介紹線性回歸的基本概念、核心算法,并通過五個具體的使用示例來展示其應用,同時探…

使用conda創建虛擬環境,并將虛擬環境加載到jupyter notebook中【已解決】

使用conda創建虛擬環境,并將虛擬環境加載到jupyter notebook中【已解決】

免費分享:2000-2021年全國分省250mNDVI數據集(附下載方法)

NDVI (Normalized Difference Vegetation Index)歸一化植被指數,又稱標準化植被指數。是目前應用最廣泛的植被指數,與植被的分布呈線性相關,是植被生長狀態和空間分布的最佳指示因子,也是遙感估算植被覆蓋度(FVC,Fract…

深入學習 Kafka(2)- Partition 和 Topic

1. Partition的作用 Topic是邏輯的概念,Partition是物理的概念: Partition 對一個 Topic 的消息進行物理上的分離,讓消息可以分布在不同的實體機器上,可以提升系統吞吐量和并行處理能力。每個Partition可以有多個副本&#xff08…

交換機06_vlantrunk

一、虛擬局域網vlan 目的:劃分廣播域 思科設備如何去配置vlan 創建vlan設置對應的接口模式將接口加入vlan全局模式配置vlan vlan 2 設置接口模式(目前需要將接口加入對應vlan,一般用于連接PC) en conf t int f0/0 switchport m…

SAP S/4 FICO批量創建銀行主數據(銀行主數據/賬戶主數據)開發說明書(包括測試樣例、程序代碼僅作參考,不保證一定可以運行)

開發通用說明 新增程序——批導工具處理邏輯如下:自定義批導程序():點擊“執行”按鈕若數據錯誤或重復,先檢查導入的銀行賬號是否已在系統中存在,若已存在則狀態顯示為紅燈,并在消息反饋列提示“該銀行已經存在”。查重后若銀行賬戶為新增賬戶,但導入模板提供的數據有缺…

Spring Boot中獲取請求參數的幾種方式詳解

Spring Boot中獲取請求參數的幾種方式詳解 在Web開發中,處理HTTP請求是一項基本且核心的任務。Spring Boot作為目前最流行的Java Web開發框架之一,提供了多種簡便的方式來獲取和處理請求參數。本文將深入探討在Spring Boot中獲取請求參數的幾種方式&…

學會python——用python編寫一個計算機程序(python實例十六)

目錄 1.認識Python 2.環境與工具 2.1 python環境 2.2 Visual Studio Code編譯 3.編寫計算器程序 3.1 代碼構思 3.2 代碼實例 3.3 運行結果 4.總結 1.認識Python Python 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。 Python 的設計具有很強的可讀…