由於經常需要在數台設備間交換數據,前段時間把hub(10M)換成了交換機(100M),今天抓包的時候發現電腦接着交換機的時候不能像以前接着hub一樣可以抓所有的包了,結果一查才知道交換機有學習功能,看來工作時間一長,一些基本概念都忘記了。又查了一下,溫故而知新,還是孔子說得對啊!
A:交換機
一、交換機數據轉發原理
基於MAC地址表
1. 學習,當S收到一個數據幀時,先查看幀中的源MAC地址,然后對比MAC地址表,如果沒有就添加這個條目。
2. 轉發,S根據MAC地址表單播轉發數據幀,轉發時先查看幀中目標MAC地址,然后對比MAC地址表,根據表中對應的端口號將數據轉發到相應的端口。
3. 如果目標MAC地址不在MAC地址表中,S就向除源端口外所有的端口廣播該幀。
4. 老化時間是300s,超時后刪除。
二、交換機的交換方式:
1. 快速轉發,不進行幀的存儲和校驗,建立通信信道直接轉發數據。優點:由於不需要存儲,延遲非常小、交換非常快。缺點:不保存數據包,無法檢查數據包是否有誤。沒有緩存,不能將不同速率的輸入/輸出端口直接接通,容易丟包。
2. 存儲轉發,完整存儲收到的幀,進行校驗后轉發。優點:對數據包進行錯誤檢測,有效地改善網絡性能。支持不同速度端口間的轉換,保持高低速端口間的協同工作。缺點:數據處理延時大。
3. 分段過濾,介於以上兩者之間,檢查數據包的長度是否夠64B,如果小於,說明是假包,則丟棄該包;如果大於,則發送該包。優點:比存儲轉發快,比快速轉發慢。缺點:沒有校驗。
B、HUB
集線器屬於純硬件網絡底層設備,基本上不具有類似於交換機的"智能記憶"能力和"學習"能力。沒有具備交換機所具有的MAC地址表,所以它發送數據時都是沒有針對性的,而是采用廣播方式發送。也就是說當它要向某節點發送數據時,不是直接把數據發送到目的節點,而是把數據包發送到與集線器相連的所有節點。