成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

TCP/IP協議簇中ARP協議

網絡 通信技術
數據鏈路層的以太網的協議中,每一個數據包都有一個MAC地址頭么?我們知道每一塊以太網卡都有一個MAC地址,這個地址是唯一的,那么IP包是如何知道這個MAC地址的?這就是ARP協議的工作。

[[355450]]

 1、ARP協議簡介

在《IP協議》中我們講解了IP地址相關內容,IP協議中包含了目的IP地址和源IP地址,但是當一臺主機把以太網數據幀發送到位于同一局域網上的另一臺主機時,是根據48bit的以太網地址來確定目的接口的。設備驅動程序從不檢查IP數據報中的目的IP地址。

還記得數據鏈路層的以太網的協議中,每一個數據包都有一個MAC地址頭么?我們知道每一塊以太網卡都有一個MAC地址,這個地址是唯一的,那么IP包是如何知道這個MAC地址的?這就是ARP協議的工作。

在OSI模型中ARP協議屬于鏈路層;而在TCP/IP模型中,ARP協議屬于網絡層。ARP協議數據哪一層,不同的資料有不同的說法,這里不作重點討論。

ARP(地址解析)協議是一種解析協議,本來主機是完全不知道這個IP對應的是哪個主機的哪個接口,當主機要發送一個IP包的時候,會首先查一下自己的ARP高速緩存(就是一個IP-MAC地址對應表緩存),如果查詢的IP-MAC值存不存在,那么主機就向網絡發送一個ARP協議廣播包,這個廣播包里面就有待查詢的IP地址,而直接收到這份廣播的包的所有主機都會查詢自己的IP地址,如果收到廣播包的某一個主機發現自己符合條件,那么就準備好一個包含自己的MAC地址的ARP包傳送給發送ARP廣播的主機,而廣播主機拿到ARP包后會更新自己的ARP緩存(就是存放IP-MAC對應表的地方)。發送廣播的主機就會用新的ARP緩存數據準備好數據鏈路層的的數據包發送工作。

2、ARP協議結構

之前的文章《以太網數據包結構》可以看出圖表示ARP協議的數據結構。

這里先看一下典型的ARP包的組成結構。

前面12個字節是MAC地址,在《以太網數據包結構》文章中講解過,接下來是幀類型,其中0806表示是ARP協議幀。接下來,就是ARP數據包部分了,第一個硬件類型字段表示發送方想要知道的硬件接口類型硬件,對于以太網MAC地址,它的值應該為1。協議類型字段表示要映射的協議地址類型,它的值為0x0800時,即表示要映射為IP地址,可以看出,該值與以太網數據幀頭中類型字段的值使用相同的一組值。

接下來的兩個單字節長度的字段,稱為硬件地址長度和協議地址長度,它們分別指出硬件地址和協議地址的長度,長度單位為字節。對于以太網上ARP請求或應答來說,它們的值分別為6和4,代表MAC地址的長度和IP地址的長度。在ARP協議包中留出硬件地址長度字段和協議地址長度字段可以使得ARP協議在任何網絡中被使用,而不僅僅只在以太網中。

操作字段op指出ARP數據包的類型,它們可以是ARP請求(值為1)、ARP應答(值為2)、RARP請求(值為3)和RARP應答(值為4),這里我們只關心前兩個類型。RARP為逆地址解析協議,這里簡單說一下,RARP用于主機啟動時獲得自己的IP地址。這個過程很簡單:主機啟動時,廣播發送一個RARP請求數據包,數據包中包含了自身的MAC地址,然后等待響應。網絡中另一臺主機必須設置為監聽RARP請求狀態,并在收到請求后為該主機分配一個IP地址并返回RARP應答給主機,一旦收到應答,主機就有了IP地址,就可以在后續中使用了。

接下來的四個字段是發送端的以太網MAC地址、發送端的IP地址、目的端的以太網MAC地址和目的端的IP地址。

關于PAD填充字節,請看《以太網數據包結構》有講解。

注意:在以太網的數據幀頭部中和ARP數據包中都有發送端的以太網MAC地址。對于一個ARP請求包來說,除接收方以太網地址外的所有字段都應該被填充相應的值。當接收方主機收到一份給自己的ARP請求報文后,它就把自己的硬件地址填進去,然后將該請求數據包的源主機信息和目的主機信息交換位置,并把操作字段op置為2,最后把該新構建的數據包發送回去,這就是ARP應答。

3、wireshark抓包分析

假設查詢IP為192.168.0.103的MAC地址,使用如下命令

  1. arp -a 192.168.0.103 

抓包分析

這里分享下wireshark的抓包文件

鏈接:https://pan.baidu.com/s/1AWPj85Jb4nmLY8h2yJucUA 提取碼:bxjq

4、ARP協議分類

ARP數據包的種類有兩種:

一是ARP請求包,它是通過以太網廣播的方式發送的,用于向具有某個IP地址的主機發送請求,希望該主機返回其MAC地址;

二是ARP應答包,收到ARP請求的主機會比對該數據包中的IP地址與自己的IP地址是否符合,若是,則該主機向源主機返回一個ARP應答包,向源主機報告自己的MAC地址。源主機通過提取ARP應答包中的相關字段來更新ARP緩存表。

一個典型的arp緩存信息如下,在任意一個系統里面用“arp-a”命令:

都會得到這樣的結果。這樣的高速緩存是有時限的,一般是20分鐘(伯克利系統的衍生系統)。

5、ARP協議應用

基礎知識:路由下有兩個設備,他們相互知道對方IP和MAC,但是他們不能直接通訊,需要路由做轉發,如果兩個設備直接用網線連起來,就是直接通訊。

舉個栗子

路由下有兩個設備,首先一點:每個設備(包括路由),都有自己的ARP緩存表。設備A向局域網下設備B通訊(A設備知道B設備的IP)

情況1:A知道B的MAC地址,也就是在自己的ARP緩存表有設備B,直接封包,交給路由就好。

情況2:A不知道B的MAC地址,也就是在自己的ARP緩存表沒有設備B,此時比較不幸,發送數據需要延時發送,首先設備A會向網關(就是路由)ARP請求包(以太網目的地址是FF-FF-FF-FF-FF-FF),這時候分情況A和B。

情況A:路由知道設備B的MAC,也就是自己的ARP緩存表有設備B,把自己的知道的設備B的IP和MAC返給設備A,設備A更新一下,自己的ARP緩存表,按情況1處理。

情況B:路由不知道設備B的MAC,路由就在自己的局域網發送,ARP請求包,去問設備B的MAC。得到之后,再發送給A。A得到MAC地址后按照情況1處理。

上述情況說明,想要網絡設備第一次就通訊流暢,必須要局域網內的設備都知道自己的MAC地址,在網絡設備開發中我們一般在網絡設備首次接入網絡后,首先向局域網廣播自己的地址信息,稱為無回報(gratuitous)ARP請求,這樣的一個ARP數據包將告訴其他主機關于自己的信息,其他主機根據各自收到的ARP包更新自己的ARP表項。上文中提到的伯克利系統的衍生系統,ARP的緩存表一般存儲20分鐘,如果不及時更新,主機會刪除“離線”設備的ARP表,因為主機ARP緩存表內存有限,不可能存儲無限的ARP表信息。針對這種情況,我們開發網絡設備,需要每隔一段時間廣播一下自己的地址信息,表示自己“還活著”。但是不能太過頻繁發送,頻繁發送會被部分型號的路由認為是病毒。

6、ARP攻擊

ARP協議有一個很大的漏洞,如果網絡中的所有用戶都規規矩矩,按照上述流程使用ARP就不會存在任何問題。但如果有惡意的設備收到一個ARP請求包(ARP請求包是廣播形式發送的,局域網所有主機都可以收到),它不管包中的IP地址是否和自己相同,都會產生一個ARP應答包,告訴請求的用戶:我這臺主機的MAC地址就是你請求的目的IP地址匹配的MAC地址。另一方面,由于發送ARP請求的源主機不具備任何容錯、認證功能(ARP協議未提供任何機制實現這些功能),這樣它便會輕易地相信這條ARP應答,并把它加入到了自己的ARP緩存表中。這樣做的后果可想而知,源主機在以后都會將具有該目的P地址的數據包發送到那個惡意的主機上。這樣,它能輕松地實現數據的竊聽,這也就是我們常常聽說的ARP攻擊的基本原理。

當PC1發送ARP協議詢問PC2的MAC地址時,由于是廣播的,PC3也收到了這個ARP請求包,PC3把不屬于自己的廣播包接收,同時回應一個虛假的回應包,告訴PC1我就是PC2。這樣PC1會收到兩個回應包(一個正確的IP2-MAC2,一個虛假的IP2-MAC3),但是PC1并不知道到底哪個是真的,所以PC1會做出判斷,并且判斷后到達的為真,那么怎么讓虛假的回應包后到達呢,PC3可以連續不斷的發送這樣的回應包,總會把哪個正確的回應包覆蓋掉。

而后PC1會建立IP2-MAC3這樣一條ARP緩存條目,以后當PC1給PC2發送信息的時候,PC1依據OSI模型從上至下在網絡層給數據封裝目的IP為IP2的包頭,在鏈路層通過查詢ARP緩存表封裝目的MAC為MAC3的數據幀,送至交換機,根據查詢CAM表,發現MAC3對應的接口為Port3,就這樣把信息交付到了PC3,完成了一次ARP攻擊。

如果ARP攻擊嚴重的話,惡意的網絡設備只要在網絡內閱讀送上門的所有廣播的ARP請求數據包,就能偷聽到網內所有地址信息,進而監聽多臺網絡設備。

防止辦法:

我們可以使用靜態ARP緩存表防止ARP攻擊,但是缺點是違背了ARP協議的動態地址解析原則。

本文轉載自微信公眾號「知曉編程」,可以通過以下二維碼關注。轉載本文請聯系知曉編程公眾號。

 

責任編輯:武曉燕 來源: 知曉編程
相關推薦

2010-06-18 15:31:21

TCP IP協議簇

2014-06-11 13:25:14

IPARPRARP

2023-09-05 09:58:27

2010-06-08 13:50:40

TCP IP協議族

2010-09-08 15:34:27

TCP IP協議棧

2010-06-12 17:07:17

TCP IP協議

2014-11-21 09:16:23

TCPIP

2010-06-12 15:54:09

TCP IP協議

2010-06-18 14:37:20

TCP IP協議

2010-09-08 15:11:36

TCP IP協議棧

2010-06-08 13:32:19

TCP IP協議基礎

2010-06-08 14:23:47

TCP IP協議概念

2010-06-17 17:57:32

ARP協議

2014-10-15 09:14:24

IP

2017-08-16 11:00:38

TCPIP協議

2019-09-18 20:07:06

AndroidTCP協議

2019-09-30 09:28:26

LinuxTCPIP

2010-06-08 15:10:08

2010-06-09 16:28:50

TCP IP傳輸協議

2010-09-17 16:38:41

TCP IP協議
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品免费| 99久久夜色精品国产亚洲96 | 黄色大片在线视频 | 99久久久久 | 久久久精品一区 | 中文字幕在线一区 | 91在线影院 | 欧美男人天堂 | 黄网站在线播放 | 精品国产一区二区三区观看不卡 | 亚洲在线一区二区三区 | 欧美日韩不卡 | 久久99视频 | 亚洲三级国产 | 亚洲精选一区二区 | 国产一区二区三区四区区 | 国产精品国产成人国产三级 | 91精品国产综合久久久久久丝袜 | 视频二区| 成人免费视屏 | 久久欧美高清二区三区 | 国产精品久久久久久久久污网站 | 午夜一区二区三区在线观看 | 北条麻妃99精品青青久久 | 色综合色综合色综合 | 国产精品视频999 | 午夜精品久久久 | 国产精品久久在线 | 久久逼逼 | 亚洲一区二区高清 | 亚洲女人天堂成人av在线 | 国产精品久久久久久久久久东京 | 日韩理论电影在线观看 | 欧美三级成人理伦 | 视频一区在线 | 涩涩视频网站在线观看 | 一级a性色生活片久久毛片 一级特黄a大片 | 啪啪综合网 | 亚洲成人综合网站 | 国产1区2区 | 精品欧美一区二区三区精品久久 |