一種基于linx進(jìn)程的節(jié)點(diǎn)間通信模塊及方法
【專利摘要】一種基于LINX進(jìn)程的節(jié)點(diǎn)間通信模塊及方法,涉及通信【技術(shù)領(lǐng)域】,包括LINX基礎(chǔ)模塊、LINX PAL模塊、LINX維護(hù)模塊、LINX診斷模塊;所述LINX基礎(chǔ)模塊為LINX通信提供內(nèi)核支持,用于初始化LINX的各模塊,并提供節(jié)點(diǎn)自動(dòng)發(fā)現(xiàn)功能;所述LINX PAL模塊用于創(chuàng)建LINX節(jié)點(diǎn),以及接收、發(fā)送并校驗(yàn)數(shù)據(jù);所述LINX維護(hù)模塊用于本地節(jié)點(diǎn)以及遠(yuǎn)程節(jié)點(diǎn)的維護(hù);所述LINX診斷模塊采用CLI的方式,通過函數(shù)調(diào)用來進(jìn)行診斷交互。本發(fā)明為各邏輯節(jié)點(diǎn)提供一套可靠的(支持分片、重傳)節(jié)點(diǎn)間通信機(jī)制,并為節(jié)點(diǎn)上各進(jìn)程提供跨節(jié)點(diǎn)通道化的通信手段,占用資源少且可靠性好。
【專利說明】一種基于LINX進(jìn)程的節(jié)點(diǎn)間通信模塊及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,具體涉及一種基于LINX進(jìn)程的節(jié)點(diǎn)間通信模塊及方法。
【背景技術(shù)】
[0002]在分布式電信系統(tǒng)中,傳統(tǒng)的通信方法主要包括TCP(Transmiss1n ControlProtocol,傳輸控制協(xié)議)和UDP (User Data Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)。雖然TCP的客戶端以及服務(wù)端建立有一條固有通道,并且能夠可靠的傳輸消息,但由于缺乏對(duì)于組播以及廣播的支持,以及TCP對(duì)于持久性(無論是否傳送數(shù)據(jù),均需要客戶端服務(wù)端保持連接)的要求高,造成單個(gè)連接消耗系統(tǒng)資源多。而對(duì)于UDP來說,雖然UDP支持組播以及廣播,且占用系統(tǒng)資源較少,但是由于UDP無需建立一條固有通道,并且不具有重傳機(jī)制,因此不能夠可靠的傳輸消息(類似于郵局信件,不保證目標(biāo)是否收到)。
[0003]另外,TCP和UDP不具備節(jié)點(diǎn)維護(hù)及管理功能,造成無法對(duì)節(jié)點(diǎn)進(jìn)行分組管理;TCP和UDP不能實(shí)時(shí)動(dòng)態(tài)管理,造成無法確定其他節(jié)點(diǎn)的實(shí)時(shí)狀態(tài);TCP和UDP內(nèi)部不具備相應(yīng)的診斷工具,需要外接擴(kuò)展工具進(jìn)行診斷,造成管理不便。因此,在現(xiàn)實(shí)生產(chǎn)應(yīng)用中,傳統(tǒng)的通信方法已不能滿足通信要求。
【發(fā)明內(nèi)容】
[0004]針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種基于LINX進(jìn)程的節(jié)點(diǎn)間通信模塊及方法,本發(fā)明為各邏輯節(jié)點(diǎn)提供一套可靠的(支持分片、重傳)節(jié)點(diǎn)間通信機(jī)制,并為節(jié)點(diǎn)上各進(jìn)程提供跨節(jié)點(diǎn)通道化的通信手段,占用資源少且可靠性好。
[0005]為達(dá)到以上目的,本發(fā)明采取的技術(shù)方案是:一種基于LINX進(jìn)程的節(jié)點(diǎn)間通信模土夾,包括LINX基礎(chǔ)模塊、LINX PAL模塊、LINX維護(hù)模塊、LINX診斷模塊;所述LINX基礎(chǔ)模塊為LINX通信提供內(nèi)核支持,用于初始化LINX的各模塊,并提供節(jié)點(diǎn)自動(dòng)發(fā)現(xiàn)功能;所述LINX PAL模塊用于創(chuàng)建LINX節(jié)點(diǎn),以及接收、發(fā)送并校驗(yàn)數(shù)據(jù);所述LINX維護(hù)模塊用于本地節(jié)點(diǎn)以及遠(yuǎn)程節(jié)點(diǎn)的維護(hù);所述LINX診斷模塊采用CLI的方式,通過函數(shù)調(diào)用來進(jìn)行診斷交互。
[0006]本發(fā)明還提供于LINX進(jìn)程的節(jié)點(diǎn)間通信方法,其特征在于,包括:建立并運(yùn)行節(jié)點(diǎn)通信網(wǎng)絡(luò);系統(tǒng)啟動(dòng)后,LINX動(dòng)態(tài)內(nèi)核加載,加載完成后,LINX內(nèi)核調(diào)用LINX基礎(chǔ)模塊,建立并運(yùn)行節(jié)點(diǎn)通信網(wǎng)絡(luò),其包括節(jié)點(diǎn)發(fā)現(xiàn)過程、節(jié)點(diǎn)運(yùn)行維護(hù)過程、節(jié)點(diǎn)退出過程;所述節(jié)點(diǎn)發(fā)現(xiàn)過程為,系統(tǒng)啟動(dòng)時(shí)或有動(dòng)態(tài)節(jié)點(diǎn)加入時(shí),通過節(jié)點(diǎn)握手機(jī)制建立鄰居關(guān)系;所述節(jié)點(diǎn)運(yùn)行維護(hù)過程為,系統(tǒng)運(yùn)行時(shí)通過心跳維護(hù)鄰居關(guān)系;所述節(jié)點(diǎn)退出過程為,節(jié)點(diǎn)心跳超時(shí),刪除鄰居關(guān)系;實(shí)現(xiàn)節(jié)點(diǎn)遠(yuǎn)程維護(hù);在LINX基礎(chǔ)模塊建立至少一個(gè)可用節(jié)點(diǎn)的基礎(chǔ)上,LINX節(jié)點(diǎn)維護(hù)模塊實(shí)現(xiàn)節(jié)點(diǎn)遠(yuǎn)程維護(hù),每一個(gè)節(jié)點(diǎn)包含一組有限狀態(tài)組,每個(gè)節(jié)點(diǎn)之間都依賴于有限狀態(tài)組的狀態(tài)來維護(hù)相互之間的關(guān)系;實(shí)現(xiàn)邏輯節(jié)點(diǎn)上基于應(yīng)用進(jìn)程的區(qū)分化通道服務(wù),定義服務(wù)通道類型序號(hào),并分配給各應(yīng)用進(jìn)程;各應(yīng)用進(jìn)程在LINX基礎(chǔ)模塊建立的節(jié)點(diǎn)上創(chuàng)建DIPC通道時(shí)傳入服務(wù)通道類型序號(hào),所述服務(wù)通道類型序號(hào)在設(shè)備級(jí)聯(lián)范圍內(nèi)全局唯一。
[0007]在上述技術(shù)方案的基礎(chǔ)上,還包括重傳機(jī)制,其具體步驟為:步驟S301.節(jié)點(diǎn)中的LINX PAL模塊發(fā)送數(shù)據(jù)并開始計(jì)時(shí);步驟S302.在LINX PAL模塊未收到確認(rèn)數(shù)據(jù),且超過預(yù)設(shè)時(shí)間門限值的前提下,LINX PAL模塊判斷是否超過重傳次數(shù)門限值,若是,跳轉(zhuǎn)至步驟S304 ;若否,跳轉(zhuǎn)至步驟S303 ;步驟S303.重傳,跳轉(zhuǎn)至步驟S302 ;步驟S304.結(jié)束。
[0008]在上述技術(shù)方案的基礎(chǔ)上,還包括實(shí)現(xiàn)基于DIPC的遠(yuǎn)程進(jìn)程調(diào)用,其調(diào)用過程為:步驟S401.發(fā)端LINX PAL模塊進(jìn)行阻塞發(fā)送,在回應(yīng)報(bào)文返回前阻塞當(dāng)前進(jìn)程;步驟S402.收端LINX PAL模塊收到數(shù)據(jù)后傳遞給應(yīng)用進(jìn)程,應(yīng)用進(jìn)程處理后將處理所需結(jié)果返回DIPC,由DIPC將結(jié)果單播回送給對(duì)應(yīng)節(jié)點(diǎn);步驟S403.發(fā)端LINXPAL模塊收到回應(yīng)后,組織好回應(yīng)數(shù)據(jù)緩沖區(qū),將被阻塞進(jìn)程喚醒,并將回應(yīng)的數(shù)據(jù)緩沖區(qū)返回給該應(yīng)用進(jìn)程,由應(yīng)用進(jìn)程進(jìn)行后續(xù)處理。
[0009]在上述技術(shù)方案的基礎(chǔ)上,還包括實(shí)現(xiàn)節(jié)點(diǎn)間組播、廣播,所述實(shí)現(xiàn)節(jié)點(diǎn)間組播的過程為,使用組播發(fā)送前,先創(chuàng)建邏輯組播組,發(fā)端節(jié)點(diǎn)DIPC根據(jù)需要調(diào)用產(chǎn)品接口進(jìn)行組播組的設(shè)置,DIPC根據(jù)LINX維護(hù)模塊的節(jié)點(diǎn)維護(hù)信息生成的組播成員發(fā)送信息逐個(gè)發(fā)送,DIPC調(diào)用網(wǎng)管主控盤提供的組播發(fā)送接口發(fā)送報(bào)文,在組播成員范圍內(nèi)實(shí)現(xiàn)發(fā)送和應(yīng)答處理;所述實(shí)現(xiàn)節(jié)點(diǎn)間廣播為全框范圍廣播,發(fā)送給所有已知的節(jié)點(diǎn),在此基礎(chǔ)上接收所有在位節(jié)點(diǎn)的應(yīng)答處理。
[0010]在上述技術(shù)方案的基礎(chǔ)上,所述建立并運(yùn)行節(jié)點(diǎn)通信網(wǎng)絡(luò)中,LINX基礎(chǔ)模塊建立節(jié)點(diǎn)的具體步驟為:步驟S601.單盤上電啟動(dòng),運(yùn)行Iinux操作系統(tǒng);步驟S602.系統(tǒng)加載LINX動(dòng)態(tài)內(nèi)核;步驟S603.LINX動(dòng)態(tài)內(nèi)核調(diào)用LINX基礎(chǔ)模塊,生成節(jié)點(diǎn);步驟S604.運(yùn)行LINXDIC進(jìn)程,該進(jìn)程激活自動(dòng)發(fā)現(xiàn)節(jié)點(diǎn)功能,將設(shè)備需要形成相應(yīng)全連接網(wǎng)絡(luò)的節(jié)點(diǎn)信息寫入配置節(jié)點(diǎn)過濾列表中的配置文件;步驟S605.LINX維護(hù)模塊讀取所述配置文件,等待LINX PAL模塊進(jìn)行數(shù)據(jù)收發(fā)。
[0011]在上述技術(shù)方案的基礎(chǔ)上,所述LINX維護(hù)模塊進(jìn)行節(jié)點(diǎn)遠(yuǎn)程維護(hù)的具體步驟為:步驟S701.LINX維護(hù)模塊根據(jù)LINX PAL模塊接收到的節(jié)點(diǎn)數(shù)據(jù),對(duì)該節(jié)點(diǎn)的狀態(tài)進(jìn)行判斷,若節(jié)點(diǎn)為alive狀態(tài),跳轉(zhuǎn)至步驟S702 ;若節(jié)點(diǎn)為dead狀態(tài),跳轉(zhuǎn)至步驟S703 ;步驟S702.LINX維護(hù)模塊在節(jié)點(diǎn)信息表中查找該節(jié)點(diǎn)的信息是否存在,若否,跳轉(zhuǎn)至步驟S704 ;若是,跳轉(zhuǎn)至步驟S705 ;步驟S703.LINX維護(hù)模塊在節(jié)點(diǎn)信息表中查找該節(jié)點(diǎn)的信息是否存在,若否,跳轉(zhuǎn)至步驟S706 ;若是,跳轉(zhuǎn)至步驟S707 ;步驟S704.在節(jié)點(diǎn)信息表中添加該節(jié)點(diǎn)的信息;步驟S705.更新節(jié)點(diǎn)信息表中該節(jié)點(diǎn)的信息;步驟S706.忽略該條節(jié)點(diǎn)數(shù)據(jù);步驟S707.刪除節(jié)點(diǎn)信息表中該節(jié)點(diǎn)的信息。
[0012]在上述技術(shù)方案的基礎(chǔ)上,還包括診斷機(jī)制,其具體步驟為:步驟S801.通過控制臺(tái)輸入CLI命令;步驟S802.LINX診斷模塊解析該CLI命令,獲取LINX維護(hù)模塊提供的相應(yīng)函數(shù)接口名稱;步驟S803.LINX診斷模塊根據(jù)該接口名稱調(diào)用LINX維護(hù)模塊提供的相應(yīng)函數(shù),并獲取結(jié)果;步驟S804.將相應(yīng)結(jié)果返回至控制臺(tái)。
[0013]本發(fā)明的有益效果在于:
[0014]1、本發(fā)明基于LINX通信技術(shù),較TCP以及UDP而言,由于本發(fā)明采用了一種非持久性連接(只有再發(fā)數(shù)據(jù)時(shí)才連接)的可靠連接技術(shù)能夠保證數(shù)據(jù)正確且一定達(dá)到,因此在節(jié)省了系統(tǒng)資源的同時(shí)又兼顧了組播、廣播、重傳等特性。
[0015]2、本發(fā)明設(shè)置有LINX維護(hù)模塊,具備節(jié)點(diǎn)維護(hù)及管理功能,因此能夠?qū)?jié)點(diǎn)進(jìn)行分組管理。
[0016]3、本發(fā)明設(shè)置有LINX PAL模塊,能夠進(jìn)行實(shí)時(shí)動(dòng)態(tài)管理,繼而確定其他節(jié)點(diǎn)的實(shí)時(shí)狀態(tài)。
[0017]4、本發(fā)明設(shè)置有LINX診斷模塊,即內(nèi)部具備相應(yīng)的診斷工具,因此無需外接擴(kuò)展工具進(jìn)行診斷,能夠方便管理。
【專利附圖】
【附圖說明】
[0018]圖1為本發(fā)明實(shí)施例中組網(wǎng)方式與系統(tǒng)組成結(jié)構(gòu)圖;
[0019]圖2為實(shí)施例中基于LINX進(jìn)程的節(jié)點(diǎn)間通信模塊的示意圖;
[0020]圖3為本發(fā)明實(shí)施例中重傳機(jī)制的流程圖;
[0021]圖4為本發(fā)明實(shí)施例中實(shí)現(xiàn)基于DIPC的遠(yuǎn)程進(jìn)程調(diào)用的流程圖;
[0022]圖5為本發(fā)明實(shí)施例中LINX基礎(chǔ)模塊建立節(jié)點(diǎn)的流程圖;
[0023]圖6為本發(fā)明實(shí)施例中LINX維護(hù)模塊進(jìn)行節(jié)點(diǎn)遠(yuǎn)程維護(hù)的流程圖;
[0024]圖7為本發(fā)明實(shí)施例中診斷機(jī)制的流程圖。
【具體實(shí)施方式】
[0025]以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
[0026]參見圖1所示,本發(fā)明實(shí)施例提供一種基于LINX進(jìn)程的節(jié)點(diǎn)間通信模塊,包括LINX基礎(chǔ)模塊、LINX PAL模塊、LINX維護(hù)模塊、LINX診斷模塊。
[0027]所述LINX基礎(chǔ)模塊為LINX通信提供內(nèi)核支持,用于初始化LINX的各模塊,并提供節(jié)點(diǎn)自動(dòng)發(fā)現(xiàn)功能。
[0028]所述LINX PAL模塊用于創(chuàng)建LINX節(jié)點(diǎn),以及接收、發(fā)送并校驗(yàn)數(shù)據(jù)。
[0029]所述LINX維護(hù)模塊用于本地節(jié)點(diǎn)以及遠(yuǎn)程節(jié)點(diǎn)的維護(hù)。
[0030]所述LINX診斷模塊采用CLI (Command Line Interface,命令行接口)的方式,通過函數(shù)調(diào)用來進(jìn)行診斷交互。
[0031]本發(fā)明實(shí)施例還提供一種基于LINX進(jìn)程的節(jié)點(diǎn)間通信方法,包括:
[0032]建立并運(yùn)行節(jié)點(diǎn)通信網(wǎng)絡(luò);系統(tǒng)啟動(dòng)后,LINX動(dòng)態(tài)內(nèi)核加載,加載完成后,LINX內(nèi)核調(diào)用LINX基礎(chǔ)模塊,建立并運(yùn)行節(jié)點(diǎn)通信網(wǎng)絡(luò),其包括節(jié)點(diǎn)發(fā)現(xiàn)過程、節(jié)點(diǎn)運(yùn)行維護(hù)過程、節(jié)點(diǎn)退出過程;所述節(jié)點(diǎn)發(fā)現(xiàn)過程為,系統(tǒng)啟動(dòng)時(shí)或有動(dòng)態(tài)節(jié)點(diǎn)加入時(shí),通過節(jié)點(diǎn)握手機(jī)制建立鄰居關(guān)系;所述節(jié)點(diǎn)運(yùn)行維護(hù)過程為,系統(tǒng)運(yùn)行時(shí)通過心跳維護(hù)鄰居關(guān)系;所述節(jié)點(diǎn)退出過程為,節(jié)點(diǎn)心跳超時(shí),刪除鄰居關(guān)系。
[0033]實(shí)現(xiàn)節(jié)點(diǎn)遠(yuǎn)程維護(hù);在LINX基礎(chǔ)模塊建立至少一個(gè)可用節(jié)點(diǎn)的基礎(chǔ)上,LINX節(jié)點(diǎn)維護(hù)模塊實(shí)現(xiàn)節(jié)點(diǎn)遠(yuǎn)程維護(hù),每一個(gè)節(jié)點(diǎn)包含一組有限狀態(tài)組,每個(gè)節(jié)點(diǎn)之間都依賴于有限狀態(tài)組的狀態(tài)來維護(hù)相互之間的關(guān)系。
[0034]實(shí)現(xiàn)邏輯節(jié)點(diǎn)上基于應(yīng)用進(jìn)程的區(qū)分化通道服務(wù),定義服務(wù)通道類型序號(hào),并分配給各應(yīng)用進(jìn)程;各應(yīng)用進(jìn)程在LINX基礎(chǔ)模塊建立的節(jié)點(diǎn)上創(chuàng)建DIPC通道時(shí)傳入服務(wù)通道類型序號(hào),所述服務(wù)通道類型序號(hào)在設(shè)備級(jí)聯(lián)范圍內(nèi)全局唯一。
[0035]實(shí)現(xiàn)節(jié)點(diǎn)間組播、廣播,所述實(shí)現(xiàn)節(jié)點(diǎn)間組播的過程為,使用組播發(fā)送前,先創(chuàng)建邏輯組播組,發(fā)端節(jié)點(diǎn)DIPC根據(jù)需要調(diào)用產(chǎn)品接口進(jìn)行組播組的設(shè)置,DIPC根據(jù)LINX維護(hù)模塊的節(jié)點(diǎn)維護(hù)信息生成的組播成員發(fā)送信息逐個(gè)發(fā)送,DIPC調(diào)用網(wǎng)管主控盤提供的組播發(fā)送接口發(fā)送報(bào)文,在組播成員范圍內(nèi)實(shí)現(xiàn)發(fā)送和應(yīng)答處理;所述實(shí)現(xiàn)節(jié)點(diǎn)間廣播為全框范圍廣播,發(fā)送給所有已知的節(jié)點(diǎn),在此基礎(chǔ)上接收所有在位節(jié)點(diǎn)的應(yīng)答處理。
[0036]支持按設(shè)定鏈路MTU(Maximum Transmiss1n Unit,最大傳輸單元)分片、重組;所述支持按設(shè)定鏈路MTU分片是指,在打包發(fā)送數(shù)據(jù)時(shí),將數(shù)據(jù)封裝成DIPC支持的最大數(shù)據(jù)塊,DIPC按設(shè)定鏈路MTU進(jìn)行分片;所述支持重組是指,發(fā)送端在報(bào)文分片中添加分片信息,收端將收到的分片數(shù)據(jù)與非分片數(shù)據(jù)進(jìn)行區(qū)分并將分片數(shù)據(jù)緩存,直至達(dá)到預(yù)期完整分片后進(jìn)行重組。
[0037]參見圖3所示,重傳機(jī)制的具體步驟為:
[0038]步驟S301.節(jié)點(diǎn)中的LINX PAL模塊發(fā)送數(shù)據(jù)并開始計(jì)時(shí)。
[0039]步驟S302.在LINX PAL模塊未收到確認(rèn)數(shù)據(jù),且超過預(yù)設(shè)時(shí)間門限值的前提下,LINX PAL模塊判斷是否超過重傳次數(shù)門限值,若是,跳轉(zhuǎn)至步驟S304 ;若否,跳轉(zhuǎn)至步驟S303;其中,LINX PAL模塊收到確認(rèn)數(shù)據(jù)及未超過預(yù)設(shè)時(shí)間門限值的情形不在本發(fā)明保護(hù)的范圍內(nèi)。
[0040]步驟S303.重傳,跳轉(zhuǎn)至步驟S302。
[0041]步驟S304.結(jié)束。
[0042]參見圖4所示,實(shí)現(xiàn)基于DIPC的遠(yuǎn)程進(jìn)程調(diào)用,其調(diào)用過程為:
[0043]步驟S401.發(fā)端LINX PAL模塊進(jìn)行阻塞發(fā)送,在回應(yīng)報(bào)文返回前阻塞當(dāng)前進(jìn)程。其中,LINX PAL模塊是非阻塞的,屬于異步消息處理。
[0044]步驟S402.收端LINX PAL模塊收到數(shù)據(jù)后傳遞給應(yīng)用進(jìn)程,應(yīng)用進(jìn)程處理后將處理所需結(jié)果返回DIPC,由DIPC將結(jié)果單播回送給對(duì)應(yīng)節(jié)點(diǎn)。
[0045]步驟S403.發(fā)端LINX PAL模塊收到回應(yīng)后,組織好回應(yīng)數(shù)據(jù)緩沖區(qū),將被阻塞進(jìn)程喚醒,并將回應(yīng)的數(shù)據(jù)緩沖區(qū)返回給該應(yīng)用進(jìn)程,由應(yīng)用進(jìn)程進(jìn)行后續(xù)處理。
[0046]參見圖5所示,建立并運(yùn)行節(jié)點(diǎn)通信網(wǎng)絡(luò)中,LINX基礎(chǔ)模塊建立節(jié)點(diǎn)的具體步驟為:
[0047]步驟S601.單盤上電啟動(dòng),運(yùn)行Iinux操作系統(tǒng)。
[0048]步驟S602.系統(tǒng)加載LINX動(dòng)態(tài)內(nèi)核。
[0049]步驟S603.LINX動(dòng)態(tài)內(nèi)核調(diào)用LINX基礎(chǔ)模塊,生成節(jié)點(diǎn)。
[0050]步驟S604.運(yùn)行LINXDIC進(jìn)程,該進(jìn)程激活自動(dòng)發(fā)現(xiàn)節(jié)點(diǎn)功能,將設(shè)備需要形成相應(yīng)全連接網(wǎng)絡(luò)的節(jié)點(diǎn)信息寫入配置節(jié)點(diǎn)過濾列表中的配置文件。
[0051]步驟S605.LINX維護(hù)模塊讀取所述配置文件,等待LINX PAL模塊進(jìn)行數(shù)據(jù)收發(fā)。
[0052]參見圖6所示,LINX維護(hù)模塊進(jìn)行節(jié)點(diǎn)維護(hù)的具體步驟為:
[0053]步驟S701.LINX維護(hù)模塊根據(jù)LINX PAL模塊接收到的節(jié)點(diǎn)數(shù)據(jù),對(duì)該節(jié)點(diǎn)的狀態(tài)進(jìn)行判斷,若節(jié)點(diǎn)為alive狀態(tài),跳轉(zhuǎn)至步驟S702 ;若節(jié)點(diǎn)為dead狀態(tài),跳轉(zhuǎn)至步驟S703。
[0054]步驟S702.LINX維護(hù)模塊在節(jié)點(diǎn)信息表中查找該節(jié)點(diǎn)的信息是否存在,若否,跳轉(zhuǎn)至步驟S704;若是,跳轉(zhuǎn)至步驟S705。其中,節(jié)點(diǎn)信息表以文件的形式保存在硬盤里。程序運(yùn)行時(shí),從這個(gè)文件中讀取信息并以鏈表的形式保存在內(nèi)存中。
[0055]步驟S703.LINX維護(hù)模塊在節(jié)點(diǎn)信息表中查找該節(jié)點(diǎn)的信息是否存在,若否,跳轉(zhuǎn)至步驟S706 ;若是,跳轉(zhuǎn)至步驟S707。
[0056]步驟S704.在節(jié)點(diǎn)信息表中添加該節(jié)點(diǎn)的信息。
[0057]步驟S705.更新節(jié)點(diǎn)信息表中該節(jié)點(diǎn)的信息。
[0058]步驟S706.忽略該條節(jié)點(diǎn)數(shù)據(jù)。
[0059]步驟S707.刪除節(jié)點(diǎn)信息表中該節(jié)點(diǎn)的信息。
[0060]參見圖7所示,診斷機(jī)制的具體步驟為:
[0061]步驟S801.通過控制臺(tái)輸入CLI命令。
[0062]步驟S802.LINX診斷模塊解析該CLI命令,獲取LINX維護(hù)模塊提供的相應(yīng)函數(shù)接口名稱。
[0063]步驟S803.LINX診斷模塊根據(jù)該接口名稱調(diào)用LINX維護(hù)模塊提供的相應(yīng)函數(shù),并獲取結(jié)果。
[0064]步驟S804.將相應(yīng)結(jié)果返回至控制臺(tái)。
[0065]本發(fā)明不局限于上述實(shí)施方式,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍之內(nèi)。本說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。
【權(quán)利要求】
1.一種基于LINX進(jìn)程的節(jié)點(diǎn)間通信模塊,其特征在于:包括LINX基礎(chǔ)模塊、LINX PAL模塊、LINX維護(hù)模塊、LINX診斷模塊; 所述LINX基礎(chǔ)模塊為LINX通信提供內(nèi)核支持,用于初始化LINX的各模塊,并提供節(jié)點(diǎn)自動(dòng)發(fā)現(xiàn)功能; 所述LINX PAL模塊用于創(chuàng)建LINX節(jié)點(diǎn),以及接收、發(fā)送并校驗(yàn)數(shù)據(jù); 所述LINX維護(hù)模塊用于本地節(jié)點(diǎn)以及遠(yuǎn)程節(jié)點(diǎn)的維護(hù); 所述LINX診斷模塊采用CLI的方式,通過函數(shù)調(diào)用來進(jìn)行診斷交互。
2.一種基于權(quán)利要求1所述模塊的節(jié)點(diǎn)間通信方法,其特征在于,包括: 建立并運(yùn)行節(jié)點(diǎn)通信網(wǎng)絡(luò);系統(tǒng)啟動(dòng)后,LINX動(dòng)態(tài)內(nèi)核加載,加載完成后,LINX內(nèi)核調(diào)用LINX基礎(chǔ)模塊,建立并運(yùn)行節(jié)點(diǎn)通信網(wǎng)絡(luò),其包括節(jié)點(diǎn)發(fā)現(xiàn)過程、節(jié)點(diǎn)運(yùn)行維護(hù)過程、節(jié)點(diǎn)退出過程;所述節(jié)點(diǎn)發(fā)現(xiàn)過程為,系統(tǒng)啟動(dòng)時(shí)或有動(dòng)態(tài)節(jié)點(diǎn)加入時(shí),通過節(jié)點(diǎn)握手機(jī)制建立鄰居關(guān)系;所述節(jié)點(diǎn)運(yùn)行維護(hù)過程為,系統(tǒng)運(yùn)行時(shí)通過心跳維護(hù)鄰居關(guān)系;所述節(jié)點(diǎn)退出過程為,節(jié)點(diǎn)心跳超時(shí),刪除鄰居關(guān)系; 實(shí)現(xiàn)節(jié)點(diǎn)遠(yuǎn)程維護(hù);在LINX基礎(chǔ)模塊建立至少一個(gè)可用節(jié)點(diǎn)的基礎(chǔ)上,LINX節(jié)點(diǎn)維護(hù)模塊實(shí)現(xiàn)節(jié)點(diǎn)遠(yuǎn)程維護(hù),每一個(gè)節(jié)點(diǎn)包含一組有限狀態(tài)組,每個(gè)節(jié)點(diǎn)之間都依賴于有限狀態(tài)組的狀態(tài)來維護(hù)相互之間的關(guān)系; 實(shí)現(xiàn)邏輯節(jié)點(diǎn)上基于應(yīng)用進(jìn)程的區(qū)分化通道服務(wù),定義服務(wù)通道類型序號(hào),并分配給各應(yīng)用進(jìn)程;各應(yīng)用進(jìn)程在LINX基礎(chǔ)模塊建立的節(jié)點(diǎn)上創(chuàng)建DIPC通道時(shí)傳入服務(wù)通道類型序號(hào),所述服務(wù)通道類型序號(hào)在設(shè)備級(jí)聯(lián)范圍內(nèi)全局唯一。
3.如權(quán)利要求2所述的節(jié)點(diǎn)間通信方法,其特征在于,還包括重傳機(jī)制,其具體步驟為: 步驟S301.節(jié)點(diǎn)中的LINX PAL模塊發(fā)送數(shù)據(jù)并開始計(jì)時(shí); 步驟S302.在LINX PAL模塊未收到確認(rèn)數(shù)據(jù),且超過預(yù)設(shè)時(shí)間門限值的前提下,LINXPAL模塊判斷是否超過重傳次數(shù)門限值,若是,跳轉(zhuǎn)至步驟S304 ;若否,跳轉(zhuǎn)至步驟S303 ;步驟S303.重傳,跳轉(zhuǎn)至步驟S302 ; 步驟S304.結(jié)束。
4.如權(quán)利要求2所述的節(jié)點(diǎn)間通信方法,其特征在于,還包括實(shí)現(xiàn)基于DIPC的遠(yuǎn)程進(jìn)程調(diào)用,其調(diào)用過程為: 步驟S401.發(fā)端LINX PAL模塊進(jìn)行阻塞發(fā)送,在回應(yīng)報(bào)文返回前阻塞當(dāng)前進(jìn)程; 步驟S402.收端LINX PAL模塊收到數(shù)據(jù)后傳遞給應(yīng)用進(jìn)程,應(yīng)用進(jìn)程處理后將處理所需結(jié)果返回DIPC,由DIPC將結(jié)果單播回送給對(duì)應(yīng)節(jié)點(diǎn); 步驟S403.發(fā)端LINX PAL模塊收到回應(yīng)后,組織好回應(yīng)數(shù)據(jù)緩沖區(qū),將被阻塞進(jìn)程喚醒,并將回應(yīng)的數(shù)據(jù)緩沖區(qū)返回給該應(yīng)用進(jìn)程,由應(yīng)用進(jìn)程進(jìn)行后續(xù)處理。
5.如權(quán)利要求2所述的節(jié)點(diǎn)間通信方法,其特征在于:還包括實(shí)現(xiàn)節(jié)點(diǎn)間組播、廣播,所述實(shí)現(xiàn)節(jié)點(diǎn)間組播的過程為,使用組播發(fā)送前,先創(chuàng)建邏輯組播組,發(fā)端節(jié)點(diǎn)DIPC根據(jù)需要調(diào)用產(chǎn)品接口進(jìn)行組播組的設(shè)置,DIPC根據(jù)LINX維護(hù)模塊的節(jié)點(diǎn)維護(hù)信息生成的組播成員發(fā)送信息逐個(gè)發(fā)送,DIPC調(diào)用網(wǎng)管主控盤提供的組播發(fā)送接口發(fā)送報(bào)文,在組播成員范圍內(nèi)實(shí)現(xiàn)發(fā)送和應(yīng)答處理;所述實(shí)現(xiàn)節(jié)點(diǎn)間廣播為全框范圍廣播,發(fā)送給所有已知的節(jié)點(diǎn),在此基礎(chǔ)上接收所有在位節(jié)點(diǎn)的應(yīng)答處理。
6.如權(quán)利要求2所述的節(jié)點(diǎn)間通信方法,其特征在于,所述建立并運(yùn)行節(jié)點(diǎn)通信網(wǎng)絡(luò)中,LINX基礎(chǔ)模塊建立節(jié)點(diǎn)的具體步驟為: 步驟S601.單盤上電啟動(dòng),運(yùn)行Iinux操作系統(tǒng); 步驟S602.系統(tǒng)加載LINX動(dòng)態(tài)內(nèi)核; 步驟S603.LINX動(dòng)態(tài)內(nèi)核調(diào)用LINX基礎(chǔ)模塊,生成節(jié)點(diǎn); 步驟S604.運(yùn)行LINXDIC進(jìn)程,該進(jìn)程激活自動(dòng)發(fā)現(xiàn)節(jié)點(diǎn)功能,將設(shè)備需要形成相應(yīng)全連接網(wǎng)絡(luò)的節(jié)點(diǎn)信息寫入配置節(jié)點(diǎn)過濾列表中的配置文件; 步驟S605.LINX維護(hù)模塊讀取所述配置文件,等待LINX PAL模塊進(jìn)行數(shù)據(jù)收發(fā)。
7.如權(quán)利要求2所述的節(jié)點(diǎn)間通信方法,其特征在于,所述LINX維護(hù)模塊進(jìn)行節(jié)點(diǎn)遠(yuǎn)程維護(hù)的具體步驟為: 步驟S701.LINX維護(hù)模塊根據(jù)LINX PAL模塊接收到的節(jié)點(diǎn)數(shù)據(jù),對(duì)該節(jié)點(diǎn)的狀態(tài)進(jìn)行判斷,若節(jié)點(diǎn)為alive狀態(tài),跳轉(zhuǎn)至步驟S702 ;若節(jié)點(diǎn)為dead狀態(tài),跳轉(zhuǎn)至步驟S703 ; 步驟S702.LINX維護(hù)模塊在節(jié)點(diǎn)信息表中查找該節(jié)點(diǎn)的信息是否存在,若否,跳轉(zhuǎn)至步驟S704 ;若是,跳轉(zhuǎn)至步驟S705 ; 步驟S703.LINX維護(hù)模塊在節(jié)點(diǎn)信息表中查找該節(jié)點(diǎn)的信息是否存在,若否,跳轉(zhuǎn)至步驟S706 ;若是,跳轉(zhuǎn)至步驟S707 ; 步驟S704.在節(jié)點(diǎn)信息表中添加該節(jié)點(diǎn)的信息; 步驟S705.更新節(jié)點(diǎn)信息表中該節(jié)點(diǎn)的信息; 步驟S706.忽略該條節(jié)點(diǎn)數(shù)據(jù); 步驟S707.刪除節(jié)點(diǎn)信息表中該節(jié)點(diǎn)的信息。
8.如權(quán)利要求2所述的節(jié)點(diǎn)間通信方法,其特征在于,還包括診斷機(jī)制,其具體步驟為: 步驟S801.通過控制臺(tái)輸入CLI命令; 步驟S802.LINX診斷模塊解析該CLI命令,獲取LINX維護(hù)模塊提供的相應(yīng)函數(shù)接口名稱; 步驟S803.LINX診斷模塊根據(jù)該接口名稱調(diào)用LINX維護(hù)模塊提供的相應(yīng)函數(shù),并獲取結(jié)果; 步驟S804.將相應(yīng)結(jié)果返回至控制臺(tái)。
【文檔編號(hào)】H04L12/24GK104270255SQ201410452754
【公開日】2015年1月7日 申請(qǐng)日期:2014年9月5日 優(yōu)先權(quán)日:2014年9月5日
【發(fā)明者】李愛平, 劉華, 張宏, 夏細(xì)茍, 孟鵬, 楊磊, 宋冬生, 何玉潔 申請(qǐng)人:烽火通信科技股份有限公司