TCP IP具體解釋學習筆記 位址解析協議ARP

2021-09-09 03:36:21 字數 3250 閱讀 3146

一 概述

我們知道,ip協議是用來在不同的物理網路之間資料傳輸的。要在不同的網路之間資料傳輸,至少須要將ip協議所用的位址轉換成特定網路所使用的實體地址。

一般來說。就是將ipv4位址轉換為mac位址。要想與乙個特定的裝置進行資料交換,光知道它的ip位址是不夠的。還須要知道它的實體地址。

而位址解析協議(arp)就是來完畢這個工作的,它能將ipv4位址轉換為裝置的硬體位址。須要注意的是。arp僅僅能轉換ipv4的位址。ipv6須要使用另外的協議進行轉換。

另外須要說明的是,網路層和資料鏈路層位址並非由同乙個組織進行分配的。

對於硬體位址來說。是由生產它的廠家進行分配的。而且一旦生產出來,實體地址永遠不會改變。

而ip位址是由使用者或者管理員分配的。而且是能夠更改的。我們知道ip資料報是封裝在資料鏈路層的幀裡的。

當乙個包括ip資料報得乙太網幀資料在乙個區域網內傳輸時。是通過48bit的乙太網位址(硬體位址)來決定目的port的。

arp提供動態的位址解析。就是說,解析的過程是自己主動的、自適應的,當實體地址改變(可是ip位址沒變)的時候,比方更換網絡卡,arp仍然可以正確的通過ip位址找到相應的網絡卡。而不須要進行額外的配置。

二 乙個樣例

當我們使用網路的時候。比方開啟瀏覽器,瀏覽乙個網頁,我們使用的主機須要推斷如何與我們感興趣的站點server主機建立連線。第乙個須要推斷的就是server主機是處於本地還是非本地。換句話說。是在同乙個區域網還是處於另外的網路。

假設處於同乙個區域網。僅僅須要arp協議就可以訪問。否則,須要通過路由器進行連線。

當兩台主機處於同一網段,或者說處於同一區域網。那麼用arp能夠直接進行訪問(direct delivery)。我們通過乙個樣例來說明直接訪問要經歷哪些步驟。

比方我們在瀏覽器裡輸入將會發生下面步驟:

1.應用程式(瀏覽器)獲取目的ip位址,這裡是10.0.0.1。

2.應用程式請求tcp協議建立與10.0.0.1的連線

3.tcp傳送連線請求給10.0.0.1。

4.我們這裡如果10.0.0.1和本地主機處於同一區域網,因此請求連線資料能夠直接傳送而不用經過路由器。

5.這個時候,須要找到10.0.0.1相應的主機。就必須將該ip位址轉換為相應的實體地址。這就是arp的作用。arp使用廣播的方式資料傳輸,假設區域網不支援廣播。那麼須要用到更加複雜的協議,當然,這樣的情況非常少見。

6.arp給每乙個連線在這個區域網的主機傳送arp請求資料。arp請求資料裡面包括目的ip位址,也就是10.0.0.1。該請求的意思是,假設你的ip位址是10.0.0.1,那麼把你的mac位址發給我。

7.如上圖所看到的,本地主機廣播arp請求給全部主機,僅僅有具有目的ip位址的主機會做出應答。應答資料中包含了自身的mac位址。

應答不再採用廣播方式,而是單播給傳送請求的主機。與此同一時候,全部收到arp請求的主機,都能在請求資料中得到傳送請求的主機的ip位址和相應的mac位址。他們會將其存在自己的快取中,以供興許使用。

8.收到應答後。tcp的連線請求資訊如今就行傳送了,由於如今可以找到目的主機在哪兒了。

9.傳送資料至目的主機。

點對點鏈路(ppp)不使用arp。在設定這些鏈路時,必須告知核心鏈路每一端的ip位址。因此像乙太網這種硬體位址並不涉及。

三 arp快速快取

arp高效執行的關鍵是因為每乙個主機上都有乙個arp快速快取。這個快速快取存放了近期ip位址到硬體位址之間的對映記錄。

快速快取中每一項記錄的生存時間一般位20分鐘,開始時間從被建立時開始。

四 arp幀格式

在乙太網上解析ip位址時。arp請求和應答分組的格式如上圖所看到的。一開始的14位元組是乙太網頭部,在上一章介紹資料鏈路層時討論過。

剩餘的部分是由arp協議所定義的。arp資料部分的前8個位元組是通用的,後面的部分是特定的。這裡是針對ip位址和乙太網實體地址的轉換。其實,除此之外,arp還能夠用於其它型別的網路。假設換了其它型別。這裡的傳送方和接收方的硬體位址和ip位址都要做出對應的更改。所以說這個部分是特定的,而前面的hard type欄位到op欄位8個位元組是通用的。不管轉換什麼樣的網路型別,都是這8位元組。

在乙太網幀頭部的兩個部分各自是目的位址欄位和源位址字段,在傳送arp請求時,目的位址欄位要填充為全1,也就是廣播位址。

型別或長度字段(length/type)為0x0806,表示這是arp協議資料。

hard type欄位表示硬體位址型別,值為1表示乙太網位址。prot type表示要解析的協議位址型別,值為0x0800表示ipv4位址。hard size欄位和prot size欄位分別表示硬體位址和協議位址的長度,這裡各自是6和4.相應的時mac位址6位元組。ip位址4位元組。op欄位指出4種操作型別。1表示arp請求。2表示arp應答,3表示rarp請求,4表示rarp應答。rarp是arp的逆協議。如今已經非常少用到了。接下來的各自是傳送端的硬體位址、協議位址,目的端的硬體位址、協議位址。

大概就是這樣了。

五 arp**(proxy arp)

**arp就是通過使用乙個主機(一般是乙個特定配置的路由器),來作為指定的裝置對還有一裝置的arp請求作出應答。 舉個樣例

pc1和pc2儘管屬於不同的廣播域。但它們處於同一網段中,因此pc1會向pc2發出arp請求廣播包。請求獲得pc2的mac位址。因為路由器不會**廣播包,因此arp請求僅僅能到達路由器,不能到達pc2。當在路由器上啟用arp**後,路由器會檢視arp請求。發現ip位址172.16.20.100屬於它連線的還有乙個網路,因此路由器用自己的介面mac位址替換pc2的mac位址,向pc1傳送了乙個arp應答。

pc1收到arp應答後。會覺得pc2的mac位址就是00-00-0c-94-36-ab。不會感知arp**的存在。

正是因為這個原因,**arp用的不多,而且假設可能,盡可能避免使用它。

六 gratuitous arp 和位址衝突檢測(acd)

(1)這樣能夠讓主機知道自身的ip位址有沒有已經被其它主機占用。

顯然,假設已經被其它主機占用的話。返回的mac位址和自身mac位址不一致。

(2)假設主機剛好更換了網絡卡,那麼使用gratuitous arp就能讓廣播域中其它的主機更新正確的ip位址到mac位址對映。由於其它主機的arp快取中儲存的可能是更換網絡卡之前的mac位址,因此須要更新。

TCP IP具體解釋學習筆記 TCP的超時與重傳

tcp之所以能夠安全的將資料在傳輸中的安全性,是因為它每次給對方傳送資料,都會等待對方給個確認,當長時間收不到這個確認,傳送端就會重發這個資料。要測超時時間,tcp必須要傳送乙個特別序號的位元組和接收包括該位元組的確認之間的rtt,可是,確認本身就是有延時的,所以一般有一種簡單的測量超時時間的公式 ...

TCP IP資料報結構具體解釋

tcp ip 資料報 結構 具體解釋 網路 協議 一般來說,網路程式設計我們僅僅須要呼叫一些封裝好的函式或者元件就能完畢大部分的工作,可是一些特殊的情況下,就須要深入的理解 網路資料報的結構,以及協議分析。如 網路監控,故障排查等 ip包是不安全的,可是它是網際網路的基礎,在各方面都有廣泛的應用。由...

TCP IP資料報結構具體解釋

tcp ip 資料報 結構 具體解釋 網路 協議 一般來說,網路程式設計我們僅僅須要呼叫一些封裝好的函式或者元件就能完畢大部分的工作,可是一些特殊的情況下,就須要深入的理解 網路資料報的結構,以及協議分析。如 網路監控,故障排查等 ip包是不安全的,可是它是網際網路的基礎,在各方面都有廣泛的應用。由...