1. 程式人生 > >二層交換 三層交換

二層交換 三層交換

閘道器:是下一站路由器的IP地址

,第三層網路層負責IP地址,第二層資料鏈接層則負責MAC地址。

1.資料轉發依靠的關鍵字不同,二層轉發主要依靠MAC地址,而三層轉發主要依靠IP地址。

2.資料交換的範圍不同,二層交換指在同一網段內的通訊,三層交換指跨網段的通訊。

3.在三層轉發的過程中,還要進行二層的封裝。也就是說,在轉發過程中二層幀頭中的(源、目的)MAC地址是要改變的。但是IP資料報中的源IP和目的IP地址是不會改變的。

MAC地址是網絡卡決定的,是固定的。

當PC與其他主機通訊時,首先判斷與自己是否在同一網段 
  若在同一網段,則傳送ARP廣播尋求目標IP地址的MAC地址

 
  若不在同一網段,則傳送ARP廣播尋求閘道器的MAC地址(前提是給PC配了閘道器)

 

二層交換機:接收到由自己的物理層送上來的二層資料幀時,根據源mac地址學習並寫入mac地址表中,根據目的mac地址查詢mac地址表決定是轉發還是廣播,這裡交換機查詢mac地址表和轉發都是由硬體ASIC晶片來完成,而且二層交換機沒有對資料幀做過任何封裝,解封裝動作(忽略物理層bit資料流還原成二層以太幀),並且沒有對資料幀做過任何改寫

路由器:工作在網路層,對接收到的資料幀必須解封裝,獲取三層資料,根據三層資料的目的ip,查詢路由表,封裝下一跳的mac等等一系列動作,相比二層交換機而言,路由器查詢路由表是通過基於軟體的cpu來查詢,比二層交換機查詢mac地址表用的ASIC硬體晶片慢,另外路由器還得對資料進行拆封,解封動作,而且還改寫了資料幀(只改寫二層資料幀的目的mac、源mac、FCS,不會改變三層資料包的內容)


 

路由器是工作在網路層的,在網路層可以識別邏輯地址。當路由器的某個介面收到一個包時,路由器會讀取包中相應的目標的邏輯地址的網路部分,然後在路由表中進行查詢。如果在路由表中找到目標地址的路由條目,則把包轉發到路由器的相應介面,如果在路由表中沒有找到目標地址的路由條目,那麼,如果路由配置預設路由,就科舉預設路由的配置轉發到路由器的相應介面;如果沒有配置預設路由,則將該包丟棄,並返回不可到達的資訊。這就是資料路由的過程。

如下圖:詳細介紹路由器的工作原理

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傳送的資料。

    總結:路由表負責記錄一個網路到另一個網路的路徑,因此路由器是根據路由表工作的。