ARP解析MAC位址的全過程(ARP的工作機制)

2021-06-18 13:45:28 字數 944 閱讀 4367

乙太網環境下,同乙個網段的主機之間需要互相知道對方的mac位址,才能訪問。

tcp/ip協議棧從上層到下層的封裝過程中,第三層封裝需要知道目的ip,第二層封裝需要知道目的mac。

目的ip一般由使用者手工輸入,或者由應用程式填充,也可以通過名稱解析系統解析得到,而目的mac就需要使用arp來解析

第一步:

上層應用產生資料,這裡用ftp協議為例,在ftp協議中定位了目的ip。

第二步:

那麼,封裝的過程如下:

三層到二層的封裝失敗,由於二層是乙太網,arp的工作機制便會產生arp request去解析目的mac,此時,源mac為資料發起者的mac,目的mac位址為ffff:ffff:ffff(代表所有mac)

第三步:

arp request到達本網段中的所有裝置上,因為目的為ffff:ffff:ffff,所以所有裝置都可以拆掉二層的封裝,然後解讀arp資料報中需要解析的目的ip。

第四步:

目的ip不正確的裝置直接忽略這個arp請求包,目的ip正確的裝置,會產生乙個arp reply去回應這個arp request。

此時,二層的源mac為被解析裝置的mac,目的為arp解析發起者的mac。

第五步:

資料的發起者接到arp reply後,將目的ip與目的mac的對應關係新增到自己的arp表中。

第六步:

之前未完成二層封裝的ftp資料,這時重新開始封裝二層頭部,此時,正確的目的mac就被封裝到了整個資料幀中。

只有完成了整個tcp/ip協議棧封裝的資料幀,才能正常的從主機上發出去。

這就是arp解析mac位址的整個過程。

DNS 解析全過程

首先,瀏覽器檢查自身快取中是否有該網域名稱對應的 ip 位址,若有則解析結束。如果瀏覽器中沒有命中,就回去檢查作業系統快取中有沒有對應的已解析過的結果。在 windows 中的 c盤的 hosts 檔案。如果這次也沒有命中,就會取請求本地網域名稱伺服器 ldns 來解析。一般來說,百分之80的網域名...

Mac搭建Git GitHub全過程

準備工作 第一步 安裝git 一開始我搜到的命令是 ruby e curl fssl 嘗試了一下,出現了兩個問題,乙個是連線不上 似乎是被gfw遮蔽了的關係 另乙個問題是ssl,折騰了半天也沒解決。後來搜尋到另外乙個安裝命令,試了一次就好了,雖然這個命令很少出現在搜尋出來的教程中。這樣一下子就安裝好...

ARP位址解析過程

arp位址解析過程 1 主機a首先檢視自己的arp表,確定其中是否包含有主機b對應的arp表項。如果找到了對應的mac位址,則主機a直接利用arp表中的mac位址,對ip資料報進行幀封裝,並將資料報傳送給主機b。2 如果主機a在arp表中找不到對應的mac位址,則將快取該資料報文,然後以廣播方式傳送...