下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一種改進(jìn)的網(wǎng)絡(luò)節(jié)點(diǎn)空心模型
1網(wǎng)絡(luò)節(jié)點(diǎn)通信控制形成培育跳線規(guī)范隨著互聯(lián)網(wǎng)的發(fā)展和基于網(wǎng)絡(luò)的商業(yè)應(yīng)用的日益增長(zhǎng),高應(yīng)用和基于高可靠的網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)應(yīng)用程序?qū)W(wǎng)絡(luò)和網(wǎng)絡(luò)服務(wù)的可用性和高可靠性變得越來越重要。心跳機(jī)制是實(shí)現(xiàn)高可用性和低可用性,確保網(wǎng)絡(luò)和應(yīng)用程序的正常運(yùn)行并不會(huì)中斷服務(wù)。所謂心跳機(jī)制,是收發(fā)心跳數(shù)據(jù)包(簡(jiǎn)稱心跳包)的機(jī)制,心跳包是遵循心跳數(shù)據(jù)包協(xié)議定義的、周期性、循環(huán)發(fā)送的數(shù)據(jù)包,用于判斷網(wǎng)絡(luò)節(jié)點(diǎn)是否“存活”,即是否還在連接.實(shí)際運(yùn)用時(shí),首先需設(shè)計(jì)各網(wǎng)絡(luò)節(jié)點(diǎn)都支持心跳數(shù)據(jù)包協(xié)議,各網(wǎng)絡(luò)節(jié)點(diǎn)按照一定心跳機(jī)制向其它網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送心跳包,用于判斷對(duì)方(設(shè)備、進(jìn)程或其它網(wǎng)元)是否正常運(yùn)行,如果在指定時(shí)間段內(nèi)未收到對(duì)方響應(yīng),即沒有收到對(duì)方發(fā)回的心跳包,則認(rèn)為與對(duì)方的連接已經(jīng)中斷,這樣可檢測(cè)TCP的異常斷開,如突然斷電、網(wǎng)絡(luò)中斷.目前這種方法已經(jīng)廣泛被用于網(wǎng)絡(luò)通信服務(wù)、網(wǎng)絡(luò)平臺(tái)的故障檢測(cè)等相關(guān)領(lǐng)域.國(guó)內(nèi)對(duì)于心跳包的應(yīng)用主要包括基于GPRS的系統(tǒng)設(shè)計(jì)、網(wǎng)絡(luò)負(fù)載均衡以及服務(wù)系統(tǒng)雙機(jī)熱備等方面,但很少有文章針對(duì)心跳機(jī)制和心跳包的設(shè)計(jì)做出詳細(xì)介紹.本文提出了一種網(wǎng)絡(luò)節(jié)點(diǎn)通信控制的心跳模型,通過定義網(wǎng)絡(luò)節(jié)點(diǎn)狀態(tài)、設(shè)計(jì)心跳機(jī)制和心跳數(shù)據(jù)包協(xié)議,建立心跳模型.本文的心跳模型考慮在CS(Client/Server)模式下,通過在服務(wù)器節(jié)點(diǎn)和客戶機(jī)節(jié)點(diǎn)間傳遞心跳包,檢測(cè)對(duì)方節(jié)點(diǎn)狀態(tài),以便在通信及節(jié)點(diǎn)出現(xiàn)異常時(shí)采取相應(yīng)措施,保證連接和通信服務(wù)的正常;考慮單服務(wù)器多客戶機(jī)工作情況下,服務(wù)器節(jié)點(diǎn)與多個(gè)客戶機(jī)節(jié)點(diǎn)均存在心跳包通信,服務(wù)器節(jié)點(diǎn)的網(wǎng)絡(luò)負(fù)擔(dān)相對(duì)繁重,故在服務(wù)器節(jié)點(diǎn)和客戶機(jī)節(jié)點(diǎn)設(shè)計(jì)不同的心跳機(jī)制,以降低服務(wù)器節(jié)點(diǎn)的網(wǎng)絡(luò)負(fù)擔(dān).最后,在VisualC++6.0開發(fā)環(huán)境下,對(duì)模型進(jìn)行功能分析和性能分析,結(jié)果表明模型具有很好的可用性和有效性.2上傳改件發(fā)跳包心跳模型旨在讓網(wǎng)絡(luò)節(jié)點(diǎn)獲取對(duì)方節(jié)點(diǎn)狀態(tài),以保證通信服務(wù)正常工作.它按照心跳機(jī)制發(fā)送心跳數(shù)據(jù)包,通過判斷是否接收到一個(gè)相應(yīng)數(shù)據(jù)包,來判斷數(shù)據(jù)通信是否正常.一般情況下,服務(wù)器在指定時(shí)間內(nèi)沒有收到客戶機(jī)心跳包則視為客戶端斷開;如果客戶機(jī)在指定時(shí)間內(nèi)沒有收到服務(wù)器返回的心跳包,則認(rèn)為網(wǎng)絡(luò)異常中斷,并采取相應(yīng)的措施.節(jié)點(diǎn)狀態(tài)轉(zhuǎn)換為建立心跳模型,首先為網(wǎng)絡(luò)節(jié)點(diǎn)定義3個(gè)狀態(tài):“通信中斷”,表示未建立連接鏈路;“通信中...”,表示正在嘗試/等待建立Socket連接,或心跳包收發(fā)不正常;“通信正?!?表示鏈路正常,心跳包收發(fā)正常.節(jié)點(diǎn)狀態(tài)間的轉(zhuǎn)換及對(duì)應(yīng)的心跳包收發(fā)狀況如圖1所示.如圖1所示,程序啟動(dòng)后,節(jié)點(diǎn)仍處于“通信中斷”狀態(tài).網(wǎng)絡(luò)連接操作成功后,網(wǎng)絡(luò)節(jié)點(diǎn)狀態(tài)轉(zhuǎn)換到“通信正?!睜顟B(tài),只有處于該狀態(tài)的心跳包可以正常收發(fā),同時(shí),心跳包的正常收發(fā)也表示了節(jié)點(diǎn)的連接正常、通信正常;一旦檢測(cè)心跳包發(fā)送失敗,節(jié)點(diǎn)狀態(tài)轉(zhuǎn)換到“通信中...”,停止心跳包的收發(fā),斷開連接鏈路,并嘗試重新建立網(wǎng)絡(luò)連接,此時(shí)對(duì)方節(jié)點(diǎn)通過心跳包的收發(fā)情況,也可判斷該節(jié)點(diǎn)連接中斷,若嘗試連接失敗則轉(zhuǎn)換到“通信中斷”狀態(tài),若嘗試成功則轉(zhuǎn)換到“通信正?!睜顟B(tài),繼續(xù)收發(fā)心跳包.規(guī)范跳親設(shè)計(jì),增加主觀條件,提高網(wǎng)絡(luò)效率一般情況下,服務(wù)器節(jié)點(diǎn)和客戶機(jī)節(jié)點(diǎn)采用相同的心跳機(jī)制,即網(wǎng)絡(luò)節(jié)點(diǎn)收到對(duì)方節(jié)點(diǎn)的心跳數(shù)據(jù)包后,返回一個(gè)對(duì)應(yīng)的心跳數(shù)據(jù)包給對(duì)方節(jié)點(diǎn),但在單服務(wù)器多客戶機(jī)工作模式下,服務(wù)器的心跳數(shù)據(jù)包發(fā)送量將是所有客戶機(jī)的心跳數(shù)據(jù)包發(fā)送量的總和.當(dāng)客戶機(jī)節(jié)點(diǎn)過多時(shí),服務(wù)器的網(wǎng)絡(luò)負(fù)擔(dān)會(huì)十分繁重.所以,我們?cè)诜?wù)器和客戶機(jī)設(shè)計(jì)不同的心跳機(jī)制,從而減輕服務(wù)器的負(fù)擔(dān),提高網(wǎng)絡(luò)效率.心跳包的主動(dòng)發(fā)包方既可以是客戶,也可以是服務(wù)端,但出于效率的考慮,一般由客戶端主動(dòng)向服務(wù)器端發(fā)包.出于這些因素的考慮,可以設(shè)計(jì)心跳機(jī)制:客戶機(jī)主動(dòng)向服務(wù)器發(fā)送心跳數(shù)據(jù)包,心跳包中包含用于檢測(cè)連接的測(cè)試數(shù)據(jù),測(cè)試數(shù)據(jù)并不固定,每次發(fā)送心跳包時(shí)從一組數(shù)據(jù)序列循環(huán)地、順序地選取一位;在客戶機(jī)的測(cè)試數(shù)據(jù)序列中,指定其中一位為特殊校驗(yàn)數(shù)據(jù),只有當(dāng)服務(wù)器收到的心跳包數(shù)據(jù)中包含特殊校驗(yàn)位數(shù)據(jù)時(shí),才返回相應(yīng)的心跳包,否則,不做任何操作,繼續(xù)接收下一個(gè)心跳包.在這種心跳機(jī)制下,假定數(shù)據(jù)序列長(zhǎng)度為N,服務(wù)器收到來自客戶機(jī)的N條心跳包后返回一個(gè)心跳包,那么服務(wù)器的網(wǎng)絡(luò)負(fù)擔(dān)就減少到原有的1/N.但數(shù)據(jù)序列長(zhǎng)度過大,可能會(huì)造成數(shù)據(jù)校驗(yàn)延時(shí),影響到心跳數(shù)據(jù)校驗(yàn)的有效性,所以數(shù)據(jù)序列的長(zhǎng)度不宜過大.關(guān)于索賠協(xié)議的設(shè)計(jì)根據(jù)通信實(shí)時(shí)性的要求,數(shù)據(jù)包的大小應(yīng)盡可能小,以減少帶寬的占用,所以整套應(yīng)用層傳輸協(xié)議的設(shè)計(jì)應(yīng)該力求簡(jiǎn)潔.心跳數(shù)據(jù)包協(xié)議為:主客戶機(jī)id在該協(xié)議中:包頭、包尾均用2個(gè)字節(jié);數(shù)據(jù)方向用1個(gè)字節(jié)表示,用于表示心跳包是服務(wù)器發(fā)送給客戶機(jī),還是客戶機(jī)發(fā)送給服務(wù)器;廠站號(hào)多用于在客戶機(jī)向服務(wù)器發(fā)送的心跳數(shù)據(jù)包中,用于表示客戶機(jī)的ID,這里用2個(gè)字節(jié)表示;心跳測(cè)試位是用于檢測(cè)連接的特定信息,心跳測(cè)試位采用了一組序列數(shù)據(jù),這里采用數(shù)據(jù)序列0~N.由于客戶機(jī)與服務(wù)器的心跳機(jī)制不同,因此客戶機(jī)每次發(fā)送心跳包時(shí),循環(huán)地、順序地選擇序列中的一個(gè)數(shù)據(jù)作為測(cè)試位,而服務(wù)器僅在收到包含特殊校驗(yàn)位的心跳包后,返回一個(gè)心跳包,其心跳測(cè)試位取值為特殊校驗(yàn)位.該協(xié)議具有可擴(kuò)展性,可根據(jù)設(shè)計(jì)要求增減字段.例如當(dāng)需要考慮信息傳輸?shù)陌踩詴r(shí),可加入加密字段;若考慮延時(shí),可增加時(shí)間戳字段等.采用了以上的心跳機(jī)制后,對(duì)于很小的延時(shí),仍可不定義時(shí)間戳字段.跳包測(cè)試位數(shù)據(jù)序列在以上內(nèi)容基礎(chǔ)上,心跳模型可按照如圖2所示的流程實(shí)現(xiàn).首先,客戶機(jī)與服務(wù)器建立連接后,初始化參數(shù),主要包括以下幾點(diǎn):1)設(shè)置心跳包的發(fā)送周期.2)設(shè)置連接正常標(biāo)志位.這里定義為一個(gè)BOOL型變量,初始值為1,如果經(jīng)校驗(yàn)后連接正常則置位,進(jìn)行新的一輪判斷前,需要將其復(fù)位.3)設(shè)置心跳包測(cè)試位數(shù)據(jù)序列.在模型的應(yīng)用中采用的數(shù)據(jù)序列為0~N,發(fā)送心跳包時(shí)循環(huán)地、順序地發(fā)送,當(dāng)測(cè)試位為N時(shí),再發(fā)送的心跳包的測(cè)試位重新從0開始計(jì)數(shù).4)設(shè)置特殊校驗(yàn)位.特殊校驗(yàn)位從測(cè)試位數(shù)據(jù)序列中任意挑選一位.5)設(shè)置重新連接服務(wù)器的次數(shù).當(dāng)客戶機(jī)節(jié)點(diǎn)嘗試連接服務(wù)器節(jié)點(diǎn)時(shí),如果到達(dá)設(shè)定的連接次數(shù)時(shí),仍沒有成功連接服務(wù)器節(jié)點(diǎn),則認(rèn)為連接徹底失敗,服務(wù)結(jié)束.6)設(shè)置重新連接服務(wù)器的周期.當(dāng)客戶機(jī)節(jié)點(diǎn)嘗試連接服務(wù)器節(jié)點(diǎn)時(shí),根據(jù)設(shè)置的周期值,周期性地連接服務(wù)器.參數(shù)初始化完畢后,開始周期性地發(fā)送心跳包,一旦服務(wù)器接收到的心跳包數(shù)據(jù)中包含特殊校驗(yàn)位,就返回一個(gè)校驗(yàn)數(shù)據(jù)包給客戶機(jī),如果當(dāng)客戶機(jī)再次發(fā)送包含特殊校驗(yàn)位的心跳包時(shí),已經(jīng)收到此校驗(yàn)數(shù)據(jù)包,則認(rèn)為連接正常;否則,認(rèn)為連接出現(xiàn)問題,客戶機(jī)關(guān)閉Socket,并嘗試重新連接服務(wù)器;如果在指定的連接次數(shù)內(nèi)連接成功,則繼續(xù)進(jìn)行數(shù)據(jù)的通信,否則,則認(rèn)為連接中斷,并采取相應(yīng)的應(yīng)急措施,處理出現(xiàn)的問題.3控制及運(yùn)行狀態(tài)用VisualC++6.0開發(fā)一個(gè)測(cè)試系統(tǒng)實(shí)現(xiàn)心跳模型,并在4臺(tái)PC上應(yīng)用該系統(tǒng)測(cè)試心跳模型功能,其中1臺(tái)作為服務(wù)器,另外3臺(tái)作為客戶機(jī),模擬不同網(wǎng)絡(luò)條件,包括網(wǎng)絡(luò)連接正常、網(wǎng)絡(luò)中斷、網(wǎng)絡(luò)擁塞,進(jìn)行功能測(cè)試,如圖3所示.測(cè)試過程表明,通過心跳包收發(fā)狀態(tài),心跳模型可以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)連接狀態(tài)的判斷,并根據(jù)不同情況,在客戶端和服務(wù)器端采取相應(yīng)的操作.心跳包狀態(tài)、網(wǎng)絡(luò)連接狀態(tài)和采取的相應(yīng)操作的對(duì)應(yīng)關(guān)系如表1和表2所示.測(cè)試結(jié)果表明,各狀態(tài)與當(dāng)前操作之間的關(guān)系符合模型的設(shè)計(jì).從表1和表2看出,由于客戶機(jī)與服務(wù)器采用不同的心跳機(jī)制,所以心跳包收發(fā)狀態(tài)與節(jié)點(diǎn)狀態(tài)對(duì)應(yīng)情況也存在差異.當(dāng)客戶機(jī)節(jié)點(diǎn)發(fā)生鏈路故障或網(wǎng)絡(luò)擁塞時(shí),客戶機(jī)心跳包發(fā)送失敗,但是卻仍顯示心跳包接收狀態(tài)成功,如表1中第5條所示.經(jīng)測(cè)試,在這種情況下,客戶機(jī)顯示狀態(tài)為“通信中...”,將繼續(xù)發(fā)送心跳包,在N個(gè)心跳包的發(fā)送周期(即完成一組測(cè)試位數(shù)據(jù)序列發(fā)送的時(shí)間)內(nèi),客戶機(jī)會(huì)自動(dòng)根據(jù)收發(fā)狀態(tài)的改變而調(diào)整顯示狀態(tài)及當(dāng)前操作,如表1中第4、6條所示.由于系統(tǒng)服務(wù)器采用專用網(wǎng)絡(luò)連接Internet,經(jīng)測(cè)試,很少出現(xiàn)服務(wù)器網(wǎng)絡(luò)連接中斷的情況,所以這里認(rèn)為服務(wù)器永遠(yuǎn)在線,一旦心跳包接收/發(fā)送均失敗,則認(rèn)為網(wǎng)絡(luò)通信出現(xiàn)問題,服務(wù)器等待客戶機(jī)重新連接.在完成心跳模型功能測(cè)試的基礎(chǔ)上,通過修改發(fā)送定時(shí)器、心跳測(cè)試位數(shù)據(jù)序列長(zhǎng)度、最大重連次數(shù)、嘗試連接周期,以及通過啟動(dòng)和關(guān)閉各網(wǎng)絡(luò)節(jié)點(diǎn)來模擬真實(shí)情況下的宕機(jī)和啟動(dòng),通過關(guān)閉網(wǎng)絡(luò)設(shè)備終端來模擬鏈路失效等多種手段,對(duì)心跳模型進(jìn)行連續(xù)7×24小時(shí)的實(shí)際使用,以測(cè)試其性能.測(cè)試過程中,每次心跳狀態(tài)的變化都會(huì)通過屏幕給予提示,結(jié)果表明,心跳模型很好地實(shí)現(xiàn)了可用性.4使用了兩種形成模型的病毒傳播模型,提高了系統(tǒng)的處理能力和可靠性,和維護(hù)和提高服務(wù)本文提出了一種用于網(wǎng)絡(luò)通信控制的、采用改
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年四平貨運(yùn)運(yùn)輸駕駛員從業(yè)資格證考試試題
- 2025年福州貨運(yùn)資格證恢復(fù)模擬考試
- 2025年怎么考貨運(yùn)從業(yè)資格證考試
- 2025年葫蘆島貨運(yùn)從業(yè)資格證考試試題及答案
- 第七章 認(rèn)識(shí)區(qū)域:聯(lián)系與差異-2022-2023學(xué)年八年級(jí)地理下冊(cè)單元中考真練卷(湘教版) 帶解析
- 地?zé)崮馨l(fā)電技術(shù)研究合同
- 橋梁建設(shè)個(gè)人承包施工協(xié)議
- 綜藝節(jié)目制片人員聘用合同
- 生態(tài)園生態(tài)餐廳建設(shè)協(xié)議
- 實(shí)習(xí)生崗位和權(quán)益保障
- 部編版語文五年級(jí)下冊(cè)第二單元走進(jìn)中國(guó)古典名著 大單元整體教學(xué)設(shè)計(jì)
- 開診所可行性分析報(bào)告
- 項(xiàng)目復(fù)盤工作報(bào)告(模版)課件
- 設(shè)備操作手冊(cè)編寫與更新方法和技巧講解與實(shí)操演示
- 心力衰竭治療中的體外機(jī)械循環(huán)輔助
- 《無線局域網(wǎng)》課件
- 益豐大藥房入職測(cè)評(píng)題庫
- 排水溝修復(fù)方案
- 人教版五年級(jí)數(shù)學(xué)上冊(cè)專項(xiàng)計(jì)算題12套(每日一練)
- RB-T 131-2022 綠色鋼材產(chǎn)品評(píng)價(jià)要求
- 護(hù)理質(zhì)量管理實(shí)踐課件
評(píng)論
0/150
提交評(píng)論