理解三層轉發原理
三層轉發原理就好比在一個村莊,村長要找一個人A,他手裡有一個筆記本,
這個筆記本記錄了村裡人最近的住址情況,由於村大,村裡人的情況會經常變動,並且由於筆記本記錄容量的限制,
村長會在一定的時間之後重新記錄村民的住址情況,當不清楚這個人位置的時候,就通過大喇叭廣播訊息,
讓查詢的這個人過來告訴自己他的位置,當然村長也會在廣播的時候告訴要找的那個人自己現在的位置,讓他過來找自己;
此時會出現兩種情況:(1),村長知道A他家在什麼位置;(2),村長忘記A住在什麼位置;
對於情況(1),村長可以直接查詢去A的住址去找他;
對於情況(2),村長可以通過大喇叭廣播的方式廣播要找的這個人;
於是他在大喇叭上喊這個人,讓他來他現在的位置,村民接收到廣播訊息後,會知道村長的位置,默默記錄下來,
然後跑過去,告訴村長自己現在住的地方,村長知道了之後也會在他的筆記本上記錄A的住址資訊或者更新A的住址資訊;
其實明瞭的理解就是有五臺PC,A,B,C,D,E,他們直接是通過交換機連線的,分別連線交換機的1-5埠,
現在A要找裝置C,如果A以及交換機的MAC表象裡有A以及E的IP資訊,則直接就識別將報文資訊通過交換機轉發過去了。
但是若沒有,A就會傳送一個ARP請求報文,請求E的IP與MAC的對應關係,交換機接收到A的報文以後,發現沒有裝置A的IP和MAC對應的關係,
此時交換機就會學習A的對應關係,並且發現A要找的E裝置的資訊自己也沒有,於是通過2-5埠,廣播問B-E裝置哪一個的是A要找的裝置,
B-E裝置接收到交換機的廣播訊息後發現是ARP廣播請求,就會將自己的IP和MAC資訊記錄在目的IP和目的MAC的資訊中,回覆給交換機,
交換機接收到這些裝置發回的報文以後,也會學習這些裝置的報文資訊,並且查詢到E的資訊正好是A要找的裝置,於是將E的資訊傳送給
這個筆記本記錄了村裡人最近的住址情況,由於村大,村裡人的情況會經常變動,並且由於筆記本記錄容量的限制,
村長會在一定的時間之後重新記錄村民的住址情況,當不清楚這個人位置的時候,就通過大喇叭廣播訊息,
讓查詢的這個人過來告訴自己他的位置,當然村長也會在廣播的時候告訴要找的那個人自己現在的位置,讓他過來找自己;
此時會出現兩種情況:(1),村長知道A他家在什麼位置;(2),村長忘記A住在什麼位置;
對於情況(1),村長可以直接查詢去A的住址去找他;
對於情況(2),村長可以通過大喇叭廣播的方式廣播要找的這個人;
於是他在大喇叭上喊這個人,讓他來他現在的位置,村民接收到廣播訊息後,會知道村長的位置,默默記錄下來,
然後跑過去,告訴村長自己現在住的地方,村長知道了之後也會在他的筆記本上記錄A的住址資訊或者更新A的住址資訊;
其實明瞭的理解就是有五臺PC,A,B,C,D,E,他們直接是通過交換機連線的,分別連線交換機的1-5埠,
現在A要找裝置C,如果A以及交換機的MAC表象裡有A以及E的IP資訊,則直接就識別將報文資訊通過交換機轉發過去了。
但是若沒有,A就會傳送一個ARP請求報文,請求E的IP與MAC的對應關係,交換機接收到A的報文以後,發現沒有裝置A的IP和MAC對應的關係,
此時交換機就會學習A的對應關係,並且發現A要找的E裝置的資訊自己也沒有,於是通過2-5埠,廣播問B-E裝置哪一個的是A要找的裝置,
B-E裝置接收到交換機的廣播訊息後發現是ARP廣播請求,就會將自己的IP和MAC資訊記錄在目的IP和目的MAC的資訊中,回覆給交換機,
交換機接收到這些裝置發回的報文以後,也會學習這些裝置的報文資訊,並且查詢到E的資訊正好是A要找的裝置,於是將E的資訊傳送給
裝置A,這樣就完成了學習過程,等下次在老化時間之內A在找裝置E的時候,交換機就會通過查詢相應的嚇一跳的地址,直接找到裝置E,並將報文資訊直接傳送給它;
二層的學習是直接解析報文,將學習到的報文裡面的mac和埠的對應關係寫入mac表中,等下次再傳送報文的時候,檢視mac表,若有此mac表項,則直接將報文從相應的埠傳送出去。
三層的依據是ip地址,找到嚇一跳的ip的原則就是最長匹配原則。
相關文章
- 理解.NET中的CLR原理(三) (轉)
- 理解PHP底層原理(一)PHP
- 初步理解 JavaScript 底層原理JavaScript
- 三層架構理解架構
- 【轉】交換機開發(三)—— 深入分析三層網路交換機的原理和設計
- Runtime底層原理探究(三) --- 訊息轉發機制(動態方法解析)
- CTMediator 原理解析(三)
- 深入理解 MySQL 索引底層原理MySql索引
- iOS 開發:『Runtime』詳解(三)Category 底層原理iOSGo
- 三層,你真的理解了嗎?
- Runtime底層原理探究(一) --- 訊息轉發機制(快速轉發)
- 持久層Mybatis3底層原始碼分析,原理解析MyBatisS3原始碼
- 【轉】交換機開發(二)—— 三層交換機報文轉發過程
- DG的ASYNC與SYNC深層原理解析
- 理解 Android Binder 機制(三):Java層AndroidJava
- .Net三層架構 (轉)架構
- 【得物技術】深入理解synchronzied底層原理
- 層次分析法(AHP)計算原理解釋
- 輾轉相除法原理解析
- [轉]物理data guard原理的理解
- 三層switch轉一層switch的處理方法
- Java中 i=i++ 問題底層原理解析Java
- PHP 底層的執行機制與原理解析PHP
- Java集合詳解(三):HashMap原理解析JavaHashMap
- 純CSS畫三角原理解析CSS
- 本地開發、兩層開發、三層開發與分散式開發分散式
- 理解.NET中的CLR原理(二) (轉)
- 二層、三層交換機和四層交換機的區別(轉)
- 用Servlet開發企業級三層Web應用(一) (轉)ServletWeb
- 三層交換機技術解析(轉)
- 阿里大佬帶你,深入理解執行緒池底層原理阿里執行緒
- 深入理解Java中的底層阻塞原理及實現Java
- Java集合詳解(三):LinkedList原理解析Java
- 用三張圖理解深度學習的工作原理深度學習
- RocketMQ架構原理解析(三):訊息索引MQ架構索引
- Mybatis底層原理學習(三):查詢結果集的處理原理MyBatis
- 玩轉Koa -- koa-bodyparser原理解析
- 玩轉Koa — koa-bodyparser原理解析