地調(diào)用的ILT切入點(diǎn),ILT模塊通過發(fā)送消息到目標(biāo)站點(diǎn)來處理上述消息請(qǐng)求;ILT模塊通過在本地調(diào)用ILT支持功能來響應(yīng)上述消息請(qǐng)求,所以ILT模塊對(duì)上述消息請(qǐng)求的響應(yīng)和處理是雙向的。通過ILT模塊實(shí)現(xiàn)了分布在不同單盤上的進(jìn)程間通信。
[0044]在本發(fā)明中,主控卡和每個(gè)線卡上分別設(shè)有一個(gè)IPC (Inter-ProcessCommunicat1n,進(jìn)程間通信)模塊,當(dāng)跨站點(diǎn)的消息請(qǐng)求的發(fā)送進(jìn)程與目標(biāo)進(jìn)程是不同操作系統(tǒng)任務(wù)時(shí),發(fā)送進(jìn)程對(duì)應(yīng)的ILT模塊調(diào)用IPC模塊將該消息發(fā)給目標(biāo)進(jìn)程對(duì)應(yīng)的IPC模塊,完成不同操作系統(tǒng)任務(wù)的進(jìn)程間的通信;可見不同操作系統(tǒng)任務(wù)的進(jìn)程間的消息請(qǐng)求的交互是基于ILT模塊的ILT體制的,而ILT機(jī)制的實(shí)現(xiàn)需要不同操作系統(tǒng)任務(wù)間的IPC模塊的的IPC體制支持,而各操作系統(tǒng)任務(wù)間具體采用何種IPC機(jī)制通信可以根據(jù)需要靈活實(shí)現(xiàn),IPC機(jī)制包括:Socket、TIPC(透明進(jìn)程間通信,Transparent Inter-processCommunicat1n)等。
[0045]本發(fā)明提供的一種路由器中分布式協(xié)議的實(shí)現(xiàn)方法包括以下步驟:
[0046]步驟A10、IGP路由協(xié)議的路徑管理模塊PM和鄰居管理模塊匪分別部署在路由器設(shè)備的主控卡和每個(gè)線卡中執(zhí)行,其中,路徑管理模塊PM維護(hù)鏈路狀態(tài)數(shù)據(jù)庫和以預(yù)設(shè)算法計(jì)算路由,并將路由計(jì)算的結(jié)果發(fā)送給路由管理模塊RTM對(duì)路由表進(jìn)行更新;鄰居管理模塊NM接收并處理與鄰居之間的會(huì)話建立消息與維護(hù)消息。
[0047]步驟A20、路徑管理模塊PM和鄰居管理模塊匪進(jìn)程間的互通消息發(fā)送給各自對(duì)應(yīng)的ILT模塊;
[0048]互通消息包括:路徑管理模塊PM和鄰居管理模塊匪之間的匪I接口關(guān)系注冊(cè)消息匪I_REGISTER和匪I接口注冊(cè)撤銷消息匪IJJNREGISTER ;接口和鄰居信息同步消息(例如:接口更新消息UPDATE_INTERFACE、接口激活消息ACTIVE_INTERFACE、接口去激活消息DEACTIVE_INTERFACE、鄰居合約檢查消息 CHK_NBR_C0NTACT、獲取接口 信息 GET_INTERACE_INF0、獲取鄰居信息GET_NBR_INF0等);以及HELLO包、0SPF/ISIS鏈路狀態(tài)維護(hù)消息包等,互通消息是業(yè)務(wù)接口消息,進(jìn)行業(yè)務(wù)信息的互通;
[0049]步驟A30、對(duì)應(yīng)ILT模塊對(duì)互通消息中目標(biāo)進(jìn)程所屬的OS(操作系統(tǒng),OperatingSystem)進(jìn)行檢測(cè);并根據(jù)檢測(cè)結(jié)果選擇調(diào)用ILT模塊的本地的消息處理函數(shù)或者發(fā)送給IPC模塊進(jìn)行處理,實(shí)現(xiàn)路徑管理模塊PM和鄰居管理模塊匪進(jìn)程間的通信。
[0050]可見,本發(fā)明是通過ILT模塊的ILT機(jī)制將互通消息發(fā)送到分布在主控卡的路徑管理模塊PM和不同線卡上的各鄰居管理模塊匪進(jìn)程,其中,ILT機(jī)制是利用分布在主控卡和不同線卡上的模塊進(jìn)程的位置信息作為引導(dǎo),將互通消息發(fā)送到目標(biāo)線卡上的遠(yuǎn)端模塊進(jìn)程,該模塊進(jìn)程的位置信息為:在每個(gè)ILT模塊的消息發(fā)送處理函數(shù)的入?yún)rocessid(分布式系統(tǒng)內(nèi)的進(jìn)程標(biāo)識(shí))中儲(chǔ)存的該模塊進(jìn)程的loCat1n_id(分布式系統(tǒng)架構(gòu)下部署時(shí)的進(jìn)程位置標(biāo)識(shí))信息。
[0051]如圖2所示,步驟A30具體包括以下步驟:
[0052]步驟A31、當(dāng)發(fā)送進(jìn)程的ILT模塊收到消息后,對(duì)互通消息中目標(biāo)進(jìn)程的locat1n_id信息進(jìn)行檢測(cè);
[0053]步驟A32、判斷發(fā)送進(jìn)程與目標(biāo)進(jìn)程是否在同一 OS任務(wù)中,如果是,執(zhí)行步驟A33;否則,執(zhí)行步驟A34;
[0054]步驟A33、在同一 OS任務(wù)中,直接調(diào)用消息接收處理函數(shù)進(jìn)行消息接收處理,然后執(zhí)行步驟A37 ;
[0055]步驟A34、不在同一 OS任務(wù)中(包括分布在不同的OS任務(wù)中和分布在不同類型的OS任務(wù)中),ILT模塊的IPS消息發(fā)送處理SEND_IPS函數(shù)調(diào)用一種可與IPC模塊進(jìn)行消息傳遞的方式,發(fā)送該消息給對(duì)應(yīng)的IPC模塊;
[0056]在本發(fā)明中,IPC模塊實(shí)現(xiàn)方式,可以是原過程調(diào)用,也可以是原始socket消息和TIPC消息;
[0057]步驟A35、發(fā)送進(jìn)程對(duì)應(yīng)的IPC模塊將該互通消息發(fā)送給目標(biāo)進(jìn)程對(duì)應(yīng)的IPC模塊;
[0058]步驟A36、目標(biāo)進(jìn)程對(duì)應(yīng)的IPC模塊將受到的互通消息經(jīng)其對(duì)應(yīng)的ILT模塊發(fā)送給目標(biāo)進(jìn)程,實(shí)現(xiàn)路徑管理模塊PM和各個(gè)鄰居管理模塊匪間消息跨越不同物理站點(diǎn)的傳遞,然后執(zhí)行步驟A37 ;
[0059]步驟A37、結(jié)束程序。
[0060]如圖3所示,具體說明路由器的分布式協(xié)議的實(shí)現(xiàn)過程。
[0061]A100、每個(gè)線卡上的鄰居管理模塊匪接收并處理與鄰居之間的會(huì)話建立與維護(hù)消息;
[0062]A200、路徑管理模塊PM和鄰居管理模塊匪通過調(diào)通ILT模塊處理響應(yīng)各類消息請(qǐng)求或接受各類消息請(qǐng)求;
[0063]A300、ILT模塊將目標(biāo)進(jìn)程與其不在同一操作系統(tǒng)任務(wù)中的消息請(qǐng)求發(fā)送給本地的IPC模塊或接收本地IPC模塊發(fā)送的消息請(qǐng)求;
[0064]A400、本地的IPC模塊將該消息請(qǐng)求發(fā)送給目標(biāo)進(jìn)程對(duì)應(yīng)的IPC模塊。
[0065]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【主權(quán)項(xiàng)】
1.一種路由器中分布式協(xié)議的實(shí)現(xiàn)系統(tǒng),包括主控卡和多個(gè)線卡,其特征在于,在主控卡上設(shè)置IGP路由協(xié)議的路徑管理模塊和路由管理模塊,在各個(gè)線卡上分別設(shè)置IGP路由協(xié)議的鄰居管理模塊和轉(zhuǎn)發(fā)表; 所述鄰居管理模塊收發(fā)處理與鄰居之間的信令包,并檢測(cè)鄰居狀態(tài)變化,將鄰居狀態(tài)變化檢測(cè)結(jié)果通過的NMI接口發(fā)送給所述路徑管理模塊; 所述路徑管理模塊維護(hù)鏈路狀態(tài)數(shù)據(jù)庫,同時(shí)根據(jù)所述鄰居管理模塊檢測(cè)結(jié)果和網(wǎng)絡(luò)拓?fù)湟灶A(yù)設(shè)算法計(jì)算路由,并將路由計(jì)算結(jié)果發(fā)送給所述路由管理模塊; 所述路由管理模塊內(nèi)設(shè)有路由表,路由管理模塊根據(jù)路由計(jì)算結(jié)果,更新所述路由表,并將所述路由表中的路由信息發(fā)送給各線卡上的所述轉(zhuǎn)發(fā)表。2.如權(quán)利要求1所述的一種路由器中分布式協(xié)議的實(shí)現(xiàn)系統(tǒng),其特征在于,所述主控卡和每個(gè)線卡上分別設(shè)有一個(gè)ILT模塊,所述ILT模塊接收對(duì)應(yīng)路徑管理模塊或鄰居管理模塊發(fā)送的消息,并通過調(diào)用本地的消息接收處理函數(shù)直接處理該消息;或者通過其所述ILT模塊的消息請(qǐng)求的響應(yīng)接口將該消息發(fā)送出去。3.如權(quán)利要求2所述的一種路由器中分布式協(xié)議的實(shí)現(xiàn)系統(tǒng),其特征在于,所述主控卡和每個(gè)線卡上分別設(shè)有一個(gè)IPC模塊,當(dāng)所述IPC模塊對(duì)應(yīng)的路徑管理模塊或鄰居管理模塊發(fā)送的消息為跨站點(diǎn)的消息請(qǐng)求時(shí),所述IPC模塊通過所述ILT模塊的消息請(qǐng)求的響應(yīng)接口接收該消息,并將該消息發(fā)給目標(biāo)進(jìn)程對(duì)應(yīng)的IPC模塊。4.如權(quán)利要求3所述的一種路由器中分布式協(xié)議的實(shí)現(xiàn)系統(tǒng),其特征在于,所述IPC模塊的實(shí)現(xiàn)方式為原過程調(diào)用、原始socket消息和TIPC消息。5.一種路由器中分布式協(xié)議的實(shí)現(xiàn)方法,其特征在于,包括以下步驟: 步驟A10、IGP路由協(xié)議的路徑管理模塊PM和鄰居管理模塊匪分別部署在路由器設(shè)備的主控卡和每個(gè)線卡中執(zhí)行; 步驟A20、路徑管理模塊PM和鄰居管理模塊匪進(jìn)程間的互通消息發(fā)送給各自對(duì)應(yīng)的ILT模塊; 步驟A30、對(duì)應(yīng)ILT模塊對(duì)互通消息中目標(biāo)進(jìn)程所屬的操作系統(tǒng)進(jìn)行檢測(cè);并根據(jù)檢測(cè)結(jié)果選擇調(diào)用ILT模塊的本地的消息處理函數(shù)或者發(fā)送給IPC模塊進(jìn)行處理,實(shí)現(xiàn)路徑管理模塊PM和鄰居管理模塊匪進(jìn)程間的通信。6.如權(quán)利要求5所述的方法,其特征在于,ILT模塊是利用分布在主控卡和不同線卡上的模塊進(jìn)程的位置信息作為引導(dǎo),將互通消息發(fā)送到目標(biāo)線卡上的遠(yuǎn)端模塊進(jìn)程; 所述模塊進(jìn)程的位置信息為:在每個(gè)ILT模塊的消息發(fā)送處理函數(shù)的入?yún)rocessed中儲(chǔ)存的該模塊進(jìn)程的locat1n_id信息。7.如權(quán)利要求6所述的方法,其特征在于,步驟A30具體包括以下步驟: 步驟A31、ILT模塊對(duì)互通消息中目標(biāo)進(jìn)程的1cat1njd信息進(jìn)行檢測(cè); 步驟A32、判斷發(fā)送進(jìn)程與目標(biāo)進(jìn)程是否在同一操作系統(tǒng)任務(wù)中,如果是,執(zhí)行步驟A33 ;否則,執(zhí)行步驟A34 ; 步驟A33、直接調(diào)用消息接收處理函數(shù)對(duì)消息進(jìn)行接收處理,然后執(zhí)行步驟A37 ; 步驟A34、ILT模塊的IPS消息發(fā)送處理函數(shù)發(fā)送該消息給對(duì)應(yīng)的本地IPC模塊; 步驟A35、發(fā)送進(jìn)程對(duì)應(yīng)的IPC模塊將互通消息發(fā)送給目標(biāo)進(jìn)程對(duì)應(yīng)的IPC模塊; 步驟A36、目標(biāo)進(jìn)程對(duì)應(yīng)的IPC模塊將受到的互通消息經(jīng)其對(duì)應(yīng)的ILT模塊發(fā)送給目標(biāo)進(jìn)程,然后執(zhí)行步驟A37 ; 步驟A37、結(jié)束程序。8.如權(quán)利要求5所述的方法,其特征在于,IPC模塊實(shí)現(xiàn)方式為原過程調(diào)用、原始socket消息和TIPC消息。
【專利摘要】本發(fā)明公開了一種路由器中分布式協(xié)議的實(shí)現(xiàn)方法及系統(tǒng),該系統(tǒng)包括:主控卡和多個(gè)線卡,在主控卡上設(shè)置路徑管理模塊和路由管理模塊,在各個(gè)線卡上分別設(shè)置鄰居管理模塊和轉(zhuǎn)發(fā)表;鄰居管理模塊收發(fā)處理與鄰居間信令包,并檢測(cè)鄰居狀態(tài)變化,將該檢測(cè)結(jié)果通過NMI接口發(fā)送給路徑管理模塊;路徑管理模塊維護(hù)鏈路狀態(tài)數(shù)據(jù)庫,根據(jù)鄰居管理模塊檢測(cè)結(jié)果和網(wǎng)絡(luò)拓?fù)溆?jì)算路由,并將計(jì)算結(jié)果發(fā)送給路由管理模塊;路由管理模塊內(nèi)設(shè)有路由表,路由管理模塊根據(jù)路由計(jì)算結(jié)果更新路由表,并將表中路由信息發(fā)送給各線卡上的轉(zhuǎn)發(fā)表。本發(fā)明實(shí)現(xiàn)路由協(xié)議的分布式運(yùn)行,充分利用線卡閑置的CPU和內(nèi)存資源,降低主控CPU及內(nèi)存資源的占用,提升路由器的可擴(kuò)展能力。
【IPC分類】H04L12/771, H04L12/741, H04L12/751
【公開號(hào)】CN105162712
【申請(qǐng)?zhí)枴緾N201510682644
【發(fā)明人】張小云, 張趙貝
【申請(qǐng)人】烽火通信科技股份有限公司
【公開日】2015年12月16日
【申請(qǐng)日】2015年10月20日