首先,我分享一下百度經驗上面的講解:
- 區別一
- 路由器可以為局域網自動分配IP和虛擬撥號
- 交換機只是用來分配網絡數據的
- 區別二
- 路由器在網絡層,根據IP地址尋址,路由器還可以處理“TCP/IP”協議,交換機不行
- 區別三
- 交換機在數據鏈路層,根據MAC地址尋址
- 區別四
- 路由器可以把一個IP分給多個主機使用,對外IP相同
- 交換機可以把很多主機連接起來,對外的IP不同
- 區別五
- 路由器可以提供防火牆,交換機不提供這個功能
- 區別六
- 交換機是做擴大局域網接入點的,可以讓局域網連進更多的電腦
- 路由器是用來做網間連接,也就是用來連接不同的網絡的
交換機的轉發原理
交換機通電后會自動建立一個端口地址表,也叫MAC地址表它會記錄每個設備的MAC地址機和哪個端口連接的,它會有自動學習功能,一開始如果沒有地址,每次經過交換機的信息,它都會讀取並記錄下送信息過來的設備端口MAC地址,如果下次有其他設備送信息給該設備,就直接送達了。
最普遍的情況下,轉發原則是這樣的:交換機收到一個以太幀數據,它自己會比對交換機已經學習到的端口地址表,如果表里存在端口地址,直接在對應的端口轉發出去。如果表里不存在,則會向剩下的每個端口(除送信息過來的端口)廣播發送一條相同的信息。
- 交換機A和交換機B,現在如果從主機01發一個數據到主機03,設定的前提是,交換機A和B的地址表都是空白。
- 那么首先,從主機01發數據到交換機A,交換機A在收到數據以后,先識別出主機的MAC地址是01(假設是01因為每台設備都是16進制的唯一地址),端口號是1。
- 交換機A查找自己MAC地址表,發現沒有(如果有就直接轉發),交換機A向其他的所有端口廣播。
- 交換機B收到數據信息后,識別並學習源地址和過來的端口號。
- 交換機B查看地址表,發現沒有,記錄並向除了端口3以外的兩個端口發送廣播包。
- 最后的情況是,主機02會收到數據一次,不是自己的,丟棄數據;主機03收到數據一次,正好是自己的,接收數據;主機04也收到一次,丟棄。
路由器的工作原理
舉個例子:
- 主機A准備發數據給主機B。
- A將B的IP地址連同數據一起,以數據包形式發送給路由器R1。
- 路由器R1收到數據包后,先從數據中讀取到B的IP地址,然后根據路徑表計算發往B的最優路徑。
- 比如路徑為:R1->R2->R5->B;並將數據包發往路由器R2。
- 路由器2重復路由器1的工作,並將數據包轉發給路由器5。
- 路由器5同樣取出目的地址,發現目的地址就在自己的網段上,於是將該數據包直接交給主機B。
- 主機B收到主機A的信息,一次完整的通信宣告結束。
當作筆記記錄一下,參考了一些資料:
https://jingyan.baidu.com/article/7908e85cda65e1af481ad2c4.html
微信公眾號:第一監控