日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

写给非网工的CCNA教程(2)第一个协议--ARP协议

發布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 写给非网工的CCNA教程(2)第一个协议--ARP协议 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? 在上文中,我們提到了IP地址和MAC地址都是用來唯一標識網絡中的設備的。在以太網中,通信的每臺設備都得有一個IP地址和一個MAC地址。IP地址屬于OSI七層模型中的第3層網絡層的概念,MAC地址則是第2層數據鏈路層的概念。

? ? MAC地址是設備出廠時候就自帶,而IP地址是需要我們手動去配置的。當然也可以是從服務器動態獲取,這涉及到DHCP的知識,本系列中所有的IP地址都是手動配置的。

? ? 如下圖所示,是Windows下一塊網卡的配置信息。

? ??

1 TCP/IP協議族與OSI模型

? ? 本文是講述TCP/IP協議族中的第一個協議--ARP協議,那么什么是TCP/IP協議族呢?其實TCP/IP協議族,可不止是TCP協議和IP協議這兩種,而是一組協議。

? ? 并且這些協議是分層的,如下圖:物理層、網絡層、傳輸層、應用層。每層完成不同的功能,且與其他層是獨立的。

? ? 通常我們會把TCP/IP協議族與OSI七層模型作比較,如下圖所示。可以看到TCP/IP協議族分為四層,而OSI模型為七層,兩者之間的映射關系如下圖。

? ? ?在下圖中,我們還舉例不同層級的一些常用協議,可以看到本文討論的ARP協議位于網絡層,OSI模型的第三層。? ?

?

2 初識ARP

? ? 在網絡(沒有特殊說明,我們都以以太網代表網絡)通信中,我們往往只知道對方的IP地址,并不知道對方的MAC地址。這樣在通過真正的底層網絡(以太網)發送數據時,根本沒法封裝二層的報頭。

? ? 而我們的底層網絡(以太網)它可不認識IP地址,在它眼里只有二層報頭,只認MAC地址,IP地址什么的,對它而言都是透明的。

? ? 為了解決這個問題,就引入了ARP協議,該協議的設計初衷,就是通過它,可以找到以太網中某臺設備IP地址對應的MAC地址。當然了,如果不是以太網,也有類似的協議,去解決這個問題,比如ATM網絡對應的協議就是ATM-ARP。

?

3 ARP數據包

(1)ARP與OSI模型

? ? ARP的數據包是被直接封裝在以太網幀頭上的,以太網用0x0806來表示ARP協議,如下圖所示。

? ? 如上圖,Frame 1: 這是wireshark抓包軟件自己加上去的,在網絡傳輸中沒有這個,傳輸的是【Ethernet II + ARP】這部分。?

(2)關于Ethernet II

? ? 任何底層的傳輸技術都會有自己的數據格式,比如USB、比如Wi-Fi、比如本文的Ethernet(以太網)。對于以太網而言,它的數據格式就是上圖所看到的Ethernet II。

? ? Ethernet II分為兩部分:Ethernet II Header + Payload,上圖中的Payload就是我們的ARP協議。

? ? Header是由三個部分組成,Destination(目的MAC地址)+ Source(源MAC地址)+ Type(載荷的類型,本文載荷類型為ARP,用0x0806表示)。

(3)ARP數據包

? ? ARP的數據包主要是兩種類型:Request和Reply,如下圖所示。


?

4 ARP如何解決IP地址到MAC地址的映射關系

? ? 舉個例子,我有臺電腦A【IP:10.74.97.116/24,MAC:54:ee:75:ce:dd:6e】,需要去訪問另一臺電腦B【IP:10.74.97.125/24】,但是我并不知道它的MAC地址,只知道它與我在同一個網段(不同網段的情形,后面有文章會寫道)。

(1)ARP請求

? ? 因此A會發送ARP請求到整個網絡內所有設備,即廣播,封包如下圖所示。

? ? Ethernet II中,源MAC為A的MAC【54:ee:75:ce:dd:6e】,目的MAC為廣播地址【FF:FF:FF:FF:FF:FF】。

? ? ARP中,Sender IP為A的IP【10.74.97.116】,Target IP為B的IP【10.74.97.125】,Sender MAC為A的MAC【54:ee:75:ce:dd:6e】;Target MAC是本次請求目的,目前不知,用【00:00:00:00:00:00】代替。

(2)ARP響應

? ? 在網絡中的所有設備都會收到,但是只有B的IP是10.4.97.126,因此只有B才會回復才廣播ARP請求,封包如下圖所示。

? ? Ethernet II中,源MAC為B的MAC【00:50:56:89:0a:1b】,目的MAC為A的MAC【54:ee:75:ce:dd:6e】。

? ? ARP中,Sender IP為B的IP【10.74.97.125】,Target IP為A的IP【10.74.97.116】,Sender MAC為為B的MAC【00:50:56:89:0a:1b】;Target MAC為A的MAC【54:ee:75:ce:dd:6e】。

(3)ARP表

? ? ?當A收到B的回復后,就把B的IP地址和MAC地址映射關系寫到一個表中記錄下來,這個表就是ARP表,在Windwos下可以通過命令arp -a查看(Linux下通過arp -n查看),如下圖所示。

[C:\~]$ arp -aInterface: 10.74.97.116 --- 0x5Internet Address Physical Address Type10.74.97.125 00-50-56-89-0a-1b dynamic 10.74.97.127 ff-ff-ff-ff-ff-ff static 224.0.0.2 01-00-5e-00-00-02 static 224.0.0.22 01-00-5e-00-00-16 static 224.0.0.251 01-00-5e-00-00-fb static 239.255.255.250 01-00-5e-7f-ff-fa static

? ? 當后續A還要與B通信時,我們就不用再發ARP請求包了,直接查找ARP表。不過這些記錄不是永遠存在ARP表中的,都有一個時間,默認時5分鐘,時間到了以后,該條ARP表項就會被刪除。下次再訪問,由于ARP表里沒有,因此又得從ARP廣播請求開始。

(4)ARP各個字段解釋?

字段解釋舉例
Hardware Type表示底層網絡的類型例如以太網
Protocol Type表示網絡層協議可以是IPv4或IPv6
Hardware size表示底層網絡地址的長度比如以太網MAC地址長度為6個字節
Protocol表示網絡層協議地址的長度比如IPv4協議地址長度為4個字節
Opcode表示ARP包的類型比如Request、Reply
Sender MAC Address發送方的MAC地址?
Sender IP address發送方IP地址?
Target MAC address要查詢的MAC地址?
Target IP address目標方的IP地址?

?

5 gratuitousARP

? ? 免費ARP是一張特殊的ARP Reply報文,作用是用來做地址重復檢測(DAD)的,數據包格式如下圖所示。

? ? 從上圖,可知gratutious ARP包的Sender MAC和Target MAC相同、Sender IP和Target IP相同。其中相同IP就是我們需要作DAD的IP。

? ? 做DAD檢測的一方,會把需要DAD檢測的IP放到Sender IP和Target IP字段里面,然后廣播出去,如果網絡中此IP被人使用,那么它會響應此gratutious ARP包,并且是廣播回復的。從下圖可以看到回復的報文格式。

? ? 如果在指定的時間內,DAD檢測方沒有收到任何回復,那么就認為此IP沒有被人使用,自己就可以用了。

總結

以上是生活随笔為你收集整理的写给非网工的CCNA教程(2)第一个协议--ARP协议的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。