『壹』 linux網橋驅動與二層對數據包分發
網橋為實現不同埠間的數據包復制,起到轉發作用。它能夠讀取解析數據包的MAC地址,從而在埠間高效轉發。MAC地址學習與更新功能使網橋避免向所有埠發送數據包,提升效率。網橋功能包括MAC學習與報文轉發。在Linux內核中,網橋通過特定的數據結構和函數實現,包括掛載協議類型的packet_type結構體,以及初始化、添加設備和埠的特定函數。數據結構方面,包含網路設備net_device、私有數據net_bridge、網橋埠net_bridge_port、單播轉發資料庫條目net_bridge_fdb_entry與組播轉發資料庫條目net_bridge_mdb_entry。代碼實現方面,包括初始化、添加網橋設備與埠設備的過程,以及數據包處理邏輯。數據包處理流程涉及vlan處理、網橋設備接收數據包、轉發決策與數據包最終流向。在處理多播數據包時,IGMP協議及其版本、組播IP與MAC地址關聯、IGMP Snooping功能等概念被應用。Linux網橋驅動通過代碼實現上述功能,滿足數據包在二層網路中的高效分發。