二层数据帧转发过程
數據鏈路層使用數據幀來轉發數據。借用百度百科的圖片。
如果是BPDU(橋協議數據單元),則交給CPU處理;如果緩存存滿則丟棄數據幀
丟棄數據幀有以下4種情況:
- 緩存存滿
- CRC校驗錯誤
- 過小,小于64字節
- 過長,大于1518字節
交換機中有一張名為MAC地址表的表,當交換機收到一個數據幀后,他會首先記錄這個數據幀的源端口和源MAC地址的映射。
如果這個MAC地址表已經存在這個映射項,則更新這個映像的老化時間,如果沒有,則保存這個映射項。
然后判斷這個數據幀屬于廣播還是單播,如果是廣播幀則向所有端口(除了接收該數據幀的端口)轉發數據幀;如果是單播幀則查找MAC地址表,根據MAC地址表中存在對應映射項進行數據轉發,如果沒有,交換機就會廣播這個數據幀,有對應接收者回消息時,它便會記住對應的MAC地址與端口的映射,以便下次的轉發。
最初的學習也就是因此的來(所以往往第一個數據幀的延遲會比較大)
如果配置了組播的話,就要看看有沒有IGMP Snooping,如果開啟了這個功能就會把組播數據發送到對應端口,如果沒有就發送到所有端口;
補充:
- IGMP(Internet Group Management Protocol,互聯網組管理協議):是TCP/IP協議族中負責IP組播成員管理的協議,用來在IP主機和與其直接相連的組播路由器之間建立、維護組播組成成員關系。
- IGMP偵聽運行在數據鏈路層,是二層以太網交換機上的組播約束機制,用于管理和控制組播組。
- access端口:將VLAN的信息剝離,發出去
- trunk端口:比較PVID和將要發送的VLAN信息,如果兩者相等則剝離VLAN信息在發送;如果不想等則直接發送。
- Hybrid端口:
- 判斷該VLAN在本端口的屬性(看該端口對那些VLAN是Untag,那些VLAN是Tag)
- 如果是Untag則剝離Vlan信息在發送,如果是Tag則直接發送
補充:
PVID(port-base vlan ID):端口的虛擬局域網ID號,關系到端口收發數據幀時候的VLAN TAG標記。
包括隊列重組、Tos重設、端口限速等功能
QoS對數據包處理:
如有錯誤請指正,感謝指正,我會及時修改。
總結
- 上一篇: 关于Android 4.4(华为)调用系
- 下一篇: 微服务的设计模式,你用了几个