每一台主機都有乙個arp快取記憶體(arp cache),用於儲存本局城網上其它所有主機和路由器的ip位址到mac位址的對映關係。
每當一台主機a要向本區域網中的另一台主機b傳送資料報時,主機a就先從自己的arp快取記憶體中根據主機b的ip位址查詢其mac位址。如果找到主機b的對映記錄,就把主機b的mac位址封裝到mac幀中。
如果沒找到,主機a就通過arp協議獲得主機b的mac位址,並把主機b的對映記錄寫入自己的arp快取記憶體中。
主機a可以通過arp得到主機b的mac位址。當主機b也要向主機a傳送資料時,理論 上也可以通過arp得到主機a的mac位址,在主機a發給主機b的arp請求報文中已經包含了主機a的ip位址和mac位址。因此,主機b可以利用這個arp請求報文直接得到主機a的mac位址,而不需要通過執行一次arp,這樣就減少了網路上的arp廣播報文數量。
接下來主機a再次向主機b傳送資料時,就可以從arp快取記憶體中直接找到主機b的mac位址,而不用再次執行arp。可見arp快取記憶體對於提高傳送效率,減少網路流量非常有用。
需要說明的是,網路中的主機可隨時離開網路,也可以更換網絡卡,這些情況都會導致儲存在arp快取記憶體的對映關係失效。為了防止主機使用失效的對映關係進行封裝資料,對arp快取記憶體中的每一條對映關係都設定一乙個生存時間。主機自動刪除超過生存時間的對映關係,並重新執行arp更新arp快取記憶體。
搭建合適的拓撲,並配置ip位址
在主機pc0和主機pc1的命令列中輸入「apr -a」命令檢視其arp快取記憶體,
結果如圖所示,arp 快取中無任何資訊。
把packet tracer 模擬器切換到「simulation」模式,分別以主機a和主機b作為源位址和目的地建立乙個簡單pdu,觀察報文傳送效果。可以發現主機a傳送了乙個arp廣播報文,其他所有主機都可以收到,如圖所示。
」從報文中看出,目的ip位址是192.168.2.目的mac未知,以零填充,源ip位址192.168.1.1源mac位址為0009.7ce1.a082。這個arp請求報文所對應的資料幀如圖所示,目的mac位址是乙個全1的廣播幀,值為fffffffffff,說明該幀要廣播到整個區域網中。其他主機收到廣播報文後發現自己並不是pc0所要請求的目的主機,因此丟棄報文。只有主機pc1做出了回應(因為a傳送的資料報的目的ip位址是主機b的ip位址)。主機pc1傳送的arp響應報文如圖所示。主機pc1在arp響應報文中寫入了自己的mac位址。
通訊結束後再次檢視主機pc0和主機pc1的arp快取,可以看到主機a和主機b的arp快取記憶體中都已經儲存了對方的ip位址和mac位址的對映關係。
需要注意的是,arp是用於解決同乙個區域網上的主機或路由器的ip位址和硬體位址的對映問題。如果所要找的裝置和源主機不在同乙個區域網上,那麼就要通過arp先找到乙個位於本區域網上的某個路由器的硬體位址,然後把資料報傳送給這個路由器,由這個路由器把資料報**給下一乙個網路。
iOS中的HTTP協議 如何使用GET和POST
一 url 基本介紹 url中常見的協議 超文字傳輸協議,訪問的是遠端的網路資源,格式是http 2 file 訪問的是本地計算機上的資源,格式是file 不用加主機位址 3 mailto 訪問的是電子郵箱位址,格式是mailto 4 ftp 訪問的是共享主機的檔案資源,格式是ftp 二 http協...
論git中使用https和ssh協議的區別
sheldon cui s blog 2017 09 08 git,https,ssh,心得 git可以使用四種主要的協議來傳輸資料 本地協議 local http 協議,ssh secure shell 協議及 git 協議。其中,本地協議由於目前大都是進行遠端開發和共享 所以一般不常用,而git...
c 練習題 圓類的定義和使用
6 14 圓類的定義與使用 拷貝建構函式 40分 本題要求完成乙個圓類的定義,設計適當的函式 包括建構函式 拷貝建構函式以及析構函式,從而可以通過測試程式輸出樣例中的結果。圓周率取值3.14 定義乙個圓類 class circle includeusing namespace std 請在這裡填寫答...