计算机网络学习--交换机和路由器转发数据原理
轉自知乎:
作者:網工Fox
鏈接:https://www.zhihu.com/question/20099434/answer/1861866418
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
?
二層轉發原理
交換機有多個網絡端口,它通過識別數據幀的目標 MAC 地址,根據 MAC 地址表決定從哪個端口發送數據。MAC 地址表不需要在交換機上手工設置,而是可以自動生成的。
交換機是如何添加、更新、刪除 MAC 地址表條目的?在初始狀態下,交換機的 MAC 地址表是空的,不包含任何條目。當交換機的某個端口接收到一個數據幀時,它就會將這個數據幀的源 MAC 地址、接收數據幀的端口號作為一個條目保存在自己的 MAC 地址表中,同時在接收到這個數據幀時重置這個條目的老化計時器時間。這就是交換機自動添加 MAC 地址表條目的方式。
在新增這一條 MAC 地址條目后,如果交換機再次從同一個端口收到相同 MAC 地址為源 MAC 地址的數據幀時,交換機就會更新這個條目的老化計時器,確保活躍的的條目不會老化。但是如果在老化時間內都沒收到匹配這個條目的數據幀,交換機就會將這個老化的條目從自己的 MAC 地址表中刪除。
還可以手動在交換機的 MAC 地址表中添加靜態條目。靜態添加的 MAC 地址條目優先動態學習的條目進行轉發,而且靜態條目沒有老化時間,會一直保存在交換機的 MAC 地址表中。
如何使用 MAC 地址表條目進行轉發?當交換機的某個端口收到一個單播數據幀時,它會查看這個數據幀的二層頭部信息,并進行兩個操作。一個操作是根據源 MAC 地址和端口信息添加或更新 MAC 地址表。另一個操作是查看數據幀的目的 MAC 地址,并根據數據幀的目的 MAC 地址查找自己的 MAC 地址表。在查找 MAC 地址表后,交換機會根據查找結果對數據幀進行處理,這里有 3 中情況:
單播:主機一對一的發送數據。單播地址是主機的 MAC 地址。 廣播:向局域網內所有設備發送數據。只有全 1 的 MAC 地址為廣播 MAC 地址,即 FF-FF-FF-FF-FF-FF 。 泛洪:將某個端口收到的數據從除該端口之外的所有端口發送出去。泛洪操作廣播的是普通數據幀而不是廣播幀。
三層轉發原理
路由器有多個端口,分別連接不同的數據鏈路。它通過識別目的 IP 地址的網絡號,再根據路由表進行轉發,路由表中有匹配的路由條目才會轉發,無匹配的路由條目則直接丟棄。路由條目既可以手動設置靜態路由,也可以通過路由協議自動生成動態路由。
路由器如何進行三層轉發?當一臺路由器收到一個數據包時,會執行如下步驟:
通過解封裝,查看網絡層頭部信息的目的 IP 地址。
查找匹配的路由條目,就需要將數據包的目的 IP 地址與各個路由條目的網段地址先進行二進制與( AND )運算,再將運算結果與路由條目的網段地址進行比較,若一致則該條目與目的 IP 地址相匹配。最后,與所有路由條目完成運算和比較,可得到一條或多條相匹配的路由條目。也可能沒有匹配的路由條目,那么丟棄數據包。
如果路由表中有多條路由條目都匹配數據包的目的 IP 地址,則路由器會選擇掩碼長度最長的路由條目,這種匹配方式稱為最長匹配原則。
例如:10.1.3.10 的網絡地址與 10.1.3.0/16 和 10.1.3.0/24 兩項都匹配,這時應該選擇匹配度最長的 10.1.3.0/24 。
路由條目中包含下一跳和出接口。當路由器找到相應的路由條目后,它就會根據對應的下一跳和出接口,將數據包從出接口發送數據給下一跳設備。
ARP
只要確定了 IP 地址,就可以向這個目標地址發送 IP 數據報文。但是在進行實際通信時,還要知道每個 IP 地址所對應的 MAC 地址。
地址解析協議,簡稱 ARP 協議。是根據目的設備的 IP 地址來查詢對應 MAC 地址的協議。
ARP 的工作原理
當主機 A 向同一個網段內的主機 C 發送數據,但是不知道主機 C 的 MAC 地址。
二層交換機不查看 IP 地址,根據目的 MAC 地址將報文除接收端口外的所有端口發送。
當主機 A 在發送 ARP 廣播請求報文時,二層交換機已經有主機 A 的 MAC 地址表條目。當收到主機 C 發送的單播 ARP 響應報文時,二層交換機將報文從相應端口發送出去。并將主機 C 的 MAC 地址和對應端口記錄到 MAC 地址表中。
當主機 A 向不同網段的主機 C 發送數據,但是不知道主機 C 的 MAC 地址。
當主機 C 向主機 A 發送回復報文時,同主機 A 向主機 C 發送數據的步驟一致
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的计算机网络学习--交换机和路由器转发数据原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器人学习--F1TENTH弗吉尼亚大学
- 下一篇: 机器人学习--网友资料系列 激光SLAM