說到mac位址表,就不得不說一下交換機的工作原理了,因為交換機是根據mac位址表**資料幀的。在交換機中有一張記錄著區域網主機mac位址與交換機介面的對應關係的表,交換機就是根據這張表負責將資料幀傳輸到指定的主機上的。
交換機的工作原理
交換機在接收到資料幀以後,首先、會記錄資料幀中的源mac位址和對應的介面到mac表中,接著、會檢查自己的mac表中是否有資料幀中目標mac位址的資訊,如果有則會根據mac表中記錄的對應介面將資料幀傳送出去(也就是單播),如果沒有,則會將該資料幀從非接受介面傳送出去(也就是廣播)。
如下圖:詳細講解交換機傳輸資料幀的過程:
1)主機a會將乙個源mac位址為自己,目標mac位址為主機b的資料幀傳送給交換機。
2)交換機收到此資料幀後,首先將資料幀中的源mac位址和對應的介面(介面為f 0/1) 記錄到mac位址表中。
3)然後交換機會檢查自己的mac位址表中是否有資料幀中的目標mac位址的資訊,如果有,則從mac位址表中記錄的介面傳送出去,如果沒有,則會將此資料幀從非接收介面的所有介面傳送出去(也就是除了f 0/1介面)。
4)這時,區域網的所有主機都會收到此資料幀,但是只有主機b收到此資料幀時會響應這個廣播,並回應乙個資料幀,此資料幀中包括主機b的mac位址。
5)當交換機收到主機b回應的資料幀後,也會記錄資料幀中的源mac位址(也就是主機b的mac位址),這時,再當主機a和主機b通訊時,交換機根據mac位址表中的記錄,實現單播了。
多交換機互聯
1)主機a將乙個源mac位址為自己,目標mac位址主機c的資料幀傳送給交換機
2)交換機1收到此資料幀後,會學習源mac位址,並檢查mac位址表,發現沒有目標mac位址的記錄,則會將資料幀廣播出去,主機b和交換機2都會收到此資料幀。
3)交換機2收到此資料幀後也會將資料幀中的源mac位址和對應的介面記錄到mac位址表中,並檢查自己的mac位址表,發現沒有目標mac位址的記錄,則會廣播此資料幀。
4)主機c收到資料幀後,會響應這個資料幀,並回覆乙個源mac位址為自己的資料幀,這時交換機1和交換機2都會將主機c的mac位址記錄到自己的mac位址表中,並且以單播的形式將此資料幀傳送給主機a。
5)這時,主機a和主機c通訊就是一單播的形式傳輸資料幀了,主機b和主機c通訊如上述過程一樣,因此交換機2的mac位址表中記錄著主機a和主機b的mac位址都對應介面f 0/1。
上面我們講解了交換機的工作原理,知道交換機是通過mac位址通訊的,但是我們是如何獲得目標主機的mac位址呢?這時我們就需要使用arp協議了,在每台主機中都有一張arp表,它記錄著主機的ip位址和mac位址的對應關係。
如下圖:詳細講解arp的工作原理。
1)如果主機a想傳送資料給主機b,主機a首先會檢查自己的arp快取表,檢視是否有主機b的ip位址和mac位址的對應關係,如果有,則會將主機b的mac位址作為源mac位址封裝到資料幀中。如果沒有,主機a則會傳送乙個arp請求資訊,請求的目標ip位址是主機b的ip位址,目標mac位址是mac位址的廣播幀(即ff-ff-ff-ff-ff-ff),源ip位址和mac位址是主機a的ip位址和mac位址。
2)當交換機接受到此資料幀之後,發現此資料幀是廣播幀,因此,會將此資料幀從非接收的所有介面傳送出去。
3)當主機b接受到此資料幀後,會校對ip位址是否是自己的,並將主機a的 ip 位址和 mac 位址的對應關係記錄到自己的arp快取表中,同時會傳送乙個arp應答,其中包括自己的mac位址。
4)主機a在收到這個回應的資料幀之後,在自己的arp快取表中記錄主機b的 ip 位址和 mac 位址的對應關係。而此時交換機已經學習到了主機a和主機b的mac位址了。
路由器負責不同網路之間的通訊,它是當今網路中的重要裝置,可以說沒有路由器就沒有當今的網際網路。在路由器中也有一張表,這張表叫路由表,記錄著到不同網段的資訊。路由表中的資訊分為直連路由和非直連路由。
路由表中記錄的條目有的需要手動新增(稱為靜態路由),有的測試動態獲取的(稱為動態路由)。直連路由屬於靜態路由。
路由器是工作在網路層的,在網路層可以識別邏輯位址。當路由器的某個介面收到乙個包時,路由器會讀取包中相應的目標的邏輯位址的網路部分,然後在路由表中進行查詢。如果在路由表中找到目標位址的路由條目,則把包**到路由器的相應介面,如果在路由表中沒有找到目標位址的路由條目,那麼,如果路由配置預設路由,就科舉預設路由的配置**到路由器的相應介面;如果沒有配置預設路由,則將該包丟棄,並返回不可到達的資訊。這就是資料路由的過程。
如下圖:詳細介紹路由器的工作原理
1)hosta在網路層將來自上層的報文封裝成ip資料報,其中源ip位址為自己,目標ip位址是hostb,hosta會用本機配置的24位子網掩碼與目標位址進行「與」運算,得出目標位址與本機不是同一網段,因此傳送hostb的資料報需要經過閘道器路由a的**。
2)hosta通過arp請求獲取閘道器路由a的e0口的mac位址,並在鏈路層將路由器e0介面的mac位址封裝成目標mac位址,源mac位址是自己。
3)路由器a從e0可接收到資料幀,把資料鏈路層的封裝去掉,並檢查路由表中是否有目標ip位址網段(即192.168.2.2的網段)相匹配的的項,根據路由表中記錄到192.168.2.0網段的資料請傳送給下一跳位址10.1.1.2,因此資料在路由器a的e1口重新封裝,此時,源mac位址是路由器a的e1介面的mac位址,封裝的目標mac位址則是路由器2的e1介面的mac位址。
4)路由b從e1口接收到資料幀,同樣會把資料鏈路層的封裝去掉,對目標ip位址進行檢測,並與路由表進行匹配,此時發現目標位址的網段正好是自己e0口的直連網段,路由器b通過arp廣播,獲知hostb的mac位址,此時資料報在路由器b的e0介面再次封裝,源mac位址是路由器b的e0介面的mac位址,目標mac位址是hostb的mac位址。封裝完成後直接從路由器的e0介面傳送給hostb。
5)此時hostb才會收到來自hosta傳送的資料。
總結:路由表負責記錄乙個網路到另乙個網路的路徑,因此路由器是根據路由表工作的。
RIB表與FIB表 ARP表與FDB表
1.rib與fib的區別 rib 路由表 fib 資訊表 fib表更多是出現在需要快速 的路由器上,這種路由器上的路由表條目通常都達成千上萬條,如果按照傳統的檢索路由表進行 的方式,其 效率很低,fib表作為路由表的一種精簡形式出現,通常只記錄常用的表項。當需要選路時,先檢索fib表,如果找不到再檢...
RIB表與FIB表 ARP表與FDB表
source 1.rib與fib的區別 rib 路由表 fib 資訊表 fib表更多是出現在需要快速 的路由器上,這種路由器上的路由表條目通常都達成千上萬條,如果按照傳統的檢索路由表進行 的方式,其 效率很低,fib表作為路由表的一種精簡形式出現,通常只記錄常用的表項。當需要選路時,先檢索fib表,...
RIB表和FIB表 ARP表和FDB表
1.rib與fib的區別 rib 路由表 fib 資訊表 fib表更多是出現在需要快速 的路由器上,這種路由器上的路由表條目通常都達成千上萬條,如果按照傳統的檢索路由表進行 的方式,其 效率很低,fib表作為路由表的一種精簡形式出現,通常只記錄常用的表項。當需要選路時,先檢索fib表,如果找不到再檢...