摘要:互聯網技術考試固定多播路由設計方案:固定多播包括兩部分內容,一是多播路由器和主機之間通過組成員管理協議(如MLD) 來構建和維護組成員關系,二是多播路由器之間通過多播路由協議(如PIM-SM)來構建和 維護多播轉發結構。
6.3.2 固定多播路由設計方案
固定多播包括兩部分內容,一是多播路由器和主機之間通過組成員管理協議(如MLD) 來構建和維護組成員關系,二是多播路由器之間通過多播路由協議(如PIM-SM)來構建和 維護多播轉發結構。
PIM-SMV2的設計可分為核心層和用戶層兩個部分。其中核心層的主要任務是根據 存儲在核心多播轉發高速緩沖區中的信息處理多播數據包的轉發。而所有的PIM協議 消息、MLD協議消息和內部控制消息都傳送到PIM用戶層;用戶層具有創建多播路由 表的全部信息,它通過使用Setsockopt()系統調用來更新核心中的MFC,以便核心進行 多播包的轉發。
PIM-SM系統實現模型如圖6-15所示。其中,用戶層的實現基于多個功能模塊,包括處理多播路由表(MRT)、虛擬接口表、處理PIM消息及MLD消息、內部控制消息處理、定 時和核心層接口等。同時,根據處理結果來修改和更新多播路由表,同時通過SetsockoptO 和Getsockopt()系統調用把相關的改變反映到核心中去。

核心層的實現基于多個功能模塊,包括PIM包的輸入處理模塊、多播包轉發模塊和支持 用戶空間套接字屬性設置模塊。
MLD協議是一個不對稱的協議,它可分為兩部分:多播地址偵聽者部分和多播路由器 部分。其協議實現也按照功能分為偵聽者端MLD部分和多播路由器端MLD部分分別實現。本節所描述的部分就是指路由器端的MLD部分。
路由器锎MLD協議主要分為MLD初始化、接收MLD消息和發送MLD消息3部分功能。
路由器端MLD協議的消息處理流程圖如圖6-16所示。

對于路由器端的MLD部分,其協議消息處理的實現主要浠要5個函數:初始化MLD (iniimld〉、讀 MLD 消息(read_mld)、接收 MLD 消息(receive_mld)、處理 MLD 消息(acccpt_mld)和發送MLD查詢消息(send_mld),另外還有對特定的多播偵聽者狀態的杳詢。 內核主要參與有關套接U的處理,例如初始化和接收發送MLD協議。
初始化MLD--主要完成MLD套接字的創建和緩沖空間的分配,在偵聽時內核自動加 載在套接口上査詢MLDv2套接字讀、接收和處理MLD消息--這部分的目的是保證上層的MLD協議和內核的交互,接收MLD消息是先從套接口讀取.判斷消息長度和類型的合理性。然后對于合法的MLD消息 調用aCCept_mld6進行處理,根據上文所述的不聞的消息類型來調用不同的處理函數來處理 MLD消息。其中值得注意的是對于消息類型為0的消息,這表明它是通過MLD套接字隊列 傳遞的非MLD消息,要調用相應的函數轉到內部控制消息的內核處理。
發送MLD査詢消息--主要完成不同類型數據包的構建,并且通過調用函數發送各種 消息包。按照所需要發送的消息,嚴格執行協議規定的MLD消息要求構建消息類型、編碼、校驗和、相應延遲、源地址和目的地址等,然后從相應的MLD套接口發送消息。
返回目錄:
編輯特別推薦:
通信工程師備考資料免費領取
去領取
專注在線職業教育25年