交換技術——MAC地址表、ARP緩存表以及路由表
原文鏈接
MAC地址表詳解
說到MAC地址表,就不得不說一下交換機的工作原理了,因為交換機是根據MAC地址表轉發數據幀的。在交換機中有一張記錄著區域網主機MAC地址與交換機介面的對應關係的表,交換機就是根據這張表負責將數據幀傳輸到指定的主機上的。
交換機的工作原理:
交換機在接收到數據幀以後,
首先,會記錄數據幀中的源MAC地址和對應的介面到MAC表中。
接著,會檢查自己的MAC表中是否有數據幀中目標MAC地址的信息,如果有,則會根據MAC表中記錄的對應介面將數據幀發送出去(也就是單播),如果沒有,則會將該數據幀從非接受介面發送出去(也就是廣播)。
如下圖:詳細講解交換機傳輸數據幀的過程
1)PC1會將一個源MAC地址為自己,目標MAC地址為PC2的數據幀發送給交換機。
2)交換機收到此數據幀後,首先將數據幀中的源MAC地址和對應的介面(介面為E0/0/2) 記錄到MAC地址表中。
3)然後交換機會檢查自己的MAC地址表中是否有數據幀中的目標MAC地址的信息,如果有,則從MAC地址表中記錄的介面發送出去,如果沒有,則會將此數據幀從非接收介面的所有介面發送出去(也就是除了E0/0/2介面)。
4)這時,區域網的所有主機都會收到此數據幀,但是只有PC2收到此數據幀時會響應這個廣播,並回應一個數據幀,此數據幀中包括PC1的MAC地址。
5)當交換機收到主PC2回應的數據幀後,也會記錄數據幀中的源MAC地址(也就是PC2的MAC地址),這時,再當PC1和PC2通信時,交換機根據MAC地址表中的記錄,實現單播了。
如下圖:當區域網存在多個交換機互聯的時候,交換機的MAC地址表是怎麼記錄的呢?
1)PC1將一個源MAC地址為自己,目標MAC地址PC3的數據幀發送給交換機
2)交換機1收到此數據幀後,會學習源MAC地址,並檢查MAC地址表,發現沒有目標MAC地址的記錄,則會將數據幀廣播出去,PC2和交換機2都會收到此數據幀。
3)交換機2收到此數據幀後也會將數據幀中的源MAC地址和對應的介面記錄到MAC地址表中,並檢查自己的MAC地址表,發現沒有目標MAC地址的記錄,則會廣播此數據幀。
4)PC3收到數據幀後,會響應這個數據幀,並回復一個源MAC地址為自己的數據幀,這時交換機1和交換機2都會將PC3的MAC地址記錄到自己的MAC地址表中,並且以單播的形式將此數據幀發送給PC1。
5)這時,PC1和PC2通信就是一單播的形式傳輸數據幀了,PC2和PC3通信如上述過程一樣,因此交換機2的MAC地址表中記錄著PC1和PC2的MAC地址都對應介面E0/0/3。
總結:從上面的兩幅圖可以看出,交換機具有動態學習源MAC地址的功能,並且交換機的一個介面可以對應多個MAC地址,但是一個MAC地址只能對應一個介面。
注意:交換機動態學習的MAC地址默認只有300S的有效期,如果300S內記錄的MAC地址沒有通信,則會刪除此記錄。
ARP緩存表詳解
上面我們講解了交換機的工作原理,知道交換機是通過MAC地址通信的,但是我們是如何獲得目標主機的MAC地址呢?這時我們就需要使用ARP協議了,在每台主機中都有一張ARP表,它記錄著主機的IP地址和MAC地址的對應關係。
ARP協議:ARP協議是工作在網路層的協議,它負責將IP地址解析為MAC地址。
如下圖:詳細講解ARP的工作原理
1)如果PC1想發送數據給PC2,PC1首先會檢查自己的ARP緩存表,查看是否有PC2的IP地址和MAC地址的對應關係,如果有,則會將PC2的MAC地址作為目的MAC地址封裝到數據幀中。如果沒有,PC1則會發送一個ARP請求信息,請求的目標IP地址是PC2的IP地址,目標MAC地址是MAC地址的廣播幀(即FF-FF-FF-FF-FF-FF),源IP地址和MAC地址是PC1的IP地址和MAC地址。
2)當交換機接受到此數據幀之後,發現此數據幀是廣播幀,因此,會將此數據幀從非接收的所有介面發送出去。
3)當PC2接受到此數據幀後,會校對IP地址是否是自己的,並將主機A的IP地址和MAC地址的對應關係記錄到自己的ARP緩存表中,同時會發送一個ARP應答,其中包括自己的MAC地址。
4)PC1在收到這個回應的數據幀之後,在自己的ARP緩存表中記錄主機B的IP地址和MAC地址的對應關係。而此時交換機已經學習到了PC1和PC2的MAC地址了。
路由表詳解
路由器負責不同網路之間的通信,它是當今網路中的重要設備,可以說沒有路由器就沒有當今的互聯網。在路由器中也有一張表,這張表叫路由表,記錄著到不同網段的信息。路由表中的信息分為直連路由和非直連路由。
直連路由:是直接連接在路由器介面的網段,由路由器自動生成。
非直連路由:就是不是直接連接在路由器介面上的網段,此記錄需要手動添加或者是使用動態路由。
路由表中記錄的條目有的需要手動添加(稱為靜態路由),有的是動態獲取的(稱為動態路由)。直連路由屬於靜態路由。
路由器是工作在網路層的,在網路層可以識別邏輯地址。
工作原理:
1.當路由器的某個介面收到一個包時,路由器會讀取包中相應的目標的邏輯地址的網路部分,然後在路由表中進行查找。
2. 如果在路由表中找到目標地址的路由條目,則把包轉發到路由器的相應介面。
3.如果在路由表中沒有找到目標地址的路由條目,那麼,如果路由配置默認路由,就按照默認路由的配置轉發到路由器的相應介面;如果沒有配置默認路由,則將該包丟棄,並返回不可到達的信息。這就是數據路由的過程。
如下圖:詳細介紹路由器的工作原理
1)PC1在網路層將來自上層的報文封裝成IP數據包,其中源IP地址為自己,目標IP地址是PC2,PC1會用本機配置的24位子網掩碼與目標地址進行「與」運算,得出目標地址與本機不是同一網段,因此發送PC2的數據包需要經過網關AR1的轉發。
2)PC1通過ARP請求獲取網關AR1的G0/0/1口的MAC地址,並在鏈路層將路由器G0/0/1介面的MAC地址封裝成目標MAC地址,源MAC地址是自己。
3)路由器AR1從G0/0/1可接收到數據幀,把數據鏈路層的封裝去掉,並檢查路由表中是否有目標IP地址網段(即192.168.2.2的網段)相匹配的的項,根據路由表中記錄到192.168.2.0網段的數據請發送給下一跳地址10.1.1.2,因此數據在路由器AR1的G0/0/0口重新封裝,此時,源MAC地址是路由器AR1的G0/0/0介面的MAC地址,封裝的目標MAC地址則是AR2的G0/0/0介面的MAC地址。
4)路由AR2從G0/0/0口接收到數據幀,同樣會把數據鏈路層的封裝去掉,對目標IP地址進行檢測,並與路由表進行匹配,此時發現目標地址的網段正好是自己G0/0/1口的直連網段,路由器AR2通過ARP廣播,獲知PC2的MAC地址,此時數據包在路由器AR2的G0/0/1介面再次封裝,源MAC地址是路由器B的G0/0/1介面的MAC地址,目標MAC地址是PC2的MAC地址。封裝完成後直接從路由器的G0/0/1介面發送給PC2。
5)此時PC2才會收到來自PC1發送的數據。
總結:路由表負責記錄一個網路到另一個網路的路徑,因此路由器是根據路由表工作的。
推薦閱讀:
※設計中UI設計師究竟能幹什麼?UI有關的工作職能及設計軟體
※【探究】黑客的襲擊導致虧損4500億美元這件事的影響有多大?
※如何看待 《巴啦啦小魔仙之魔法的考驗》豆瓣評分偏低?
※比起范冰冰的情感,她最值得我們關注的是這一點
※電腦蟲是什麼蟲?專家稱2038年再度來襲!