文章目錄
- 一、 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表,此類比較麻煩而且會影響網絡性能。
動態映射:指使用協議來獲取相對應的物理地址,之所以用動態這個詞是因為這個過程是自動完成的,一般應用程序的用戶或系統管理員不必關心。已經設計出用于實現動態映射協議的有ARP 和 RARP(逆地址解析協議)兩種,如下圖所示
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 最小時間為:9610ns = 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軟件對以太網通信進行抓包。