下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
一種改進的網(wǎng)絡(luò)節(jié)點空心模型
1網(wǎng)絡(luò)節(jié)點通信控制形成培育跳線規(guī)范隨著互聯(lián)網(wǎng)的發(fā)展和基于網(wǎng)絡(luò)的商業(yè)應(yīng)用的日益增長,高應(yīng)用和基于高可靠的網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)應(yīng)用程序?qū)W(wǎng)絡(luò)和網(wǎng)絡(luò)服務(wù)的可用性和高可靠性變得越來越重要。心跳機制是實現(xiàn)高可用性和低可用性,確保網(wǎng)絡(luò)和應(yīng)用程序的正常運行并不會中斷服務(wù)。所謂心跳機制,是收發(fā)心跳數(shù)據(jù)包(簡稱心跳包)的機制,心跳包是遵循心跳數(shù)據(jù)包協(xié)議定義的、周期性、循環(huán)發(fā)送的數(shù)據(jù)包,用于判斷網(wǎng)絡(luò)節(jié)點是否“存活”,即是否還在連接.實際運用時,首先需設(shè)計各網(wǎng)絡(luò)節(jié)點都支持心跳數(shù)據(jù)包協(xié)議,各網(wǎng)絡(luò)節(jié)點按照一定心跳機制向其它網(wǎng)絡(luò)節(jié)點發(fā)送心跳包,用于判斷對方(設(shè)備、進程或其它網(wǎng)元)是否正常運行,如果在指定時間段內(nèi)未收到對方響應(yīng),即沒有收到對方發(fā)回的心跳包,則認為與對方的連接已經(jīng)中斷,這樣可檢測TCP的異常斷開,如突然斷電、網(wǎng)絡(luò)中斷.目前這種方法已經(jīng)廣泛被用于網(wǎng)絡(luò)通信服務(wù)、網(wǎng)絡(luò)平臺的故障檢測等相關(guān)領(lǐng)域.國內(nèi)對于心跳包的應(yīng)用主要包括基于GPRS的系統(tǒng)設(shè)計、網(wǎng)絡(luò)負載均衡以及服務(wù)系統(tǒng)雙機熱備等方面,但很少有文章針對心跳機制和心跳包的設(shè)計做出詳細介紹.本文提出了一種網(wǎng)絡(luò)節(jié)點通信控制的心跳模型,通過定義網(wǎng)絡(luò)節(jié)點狀態(tài)、設(shè)計心跳機制和心跳數(shù)據(jù)包協(xié)議,建立心跳模型.本文的心跳模型考慮在CS(Client/Server)模式下,通過在服務(wù)器節(jié)點和客戶機節(jié)點間傳遞心跳包,檢測對方節(jié)點狀態(tài),以便在通信及節(jié)點出現(xiàn)異常時采取相應(yīng)措施,保證連接和通信服務(wù)的正常;考慮單服務(wù)器多客戶機工作情況下,服務(wù)器節(jié)點與多個客戶機節(jié)點均存在心跳包通信,服務(wù)器節(jié)點的網(wǎng)絡(luò)負擔(dān)相對繁重,故在服務(wù)器節(jié)點和客戶機節(jié)點設(shè)計不同的心跳機制,以降低服務(wù)器節(jié)點的網(wǎng)絡(luò)負擔(dān).最后,在VisualC++6.0開發(fā)環(huán)境下,對模型進行功能分析和性能分析,結(jié)果表明模型具有很好的可用性和有效性.2上傳改件發(fā)跳包心跳模型旨在讓網(wǎng)絡(luò)節(jié)點獲取對方節(jié)點狀態(tài),以保證通信服務(wù)正常工作.它按照心跳機制發(fā)送心跳數(shù)據(jù)包,通過判斷是否接收到一個相應(yīng)數(shù)據(jù)包,來判斷數(shù)據(jù)通信是否正常.一般情況下,服務(wù)器在指定時間內(nèi)沒有收到客戶機心跳包則視為客戶端斷開;如果客戶機在指定時間內(nèi)沒有收到服務(wù)器返回的心跳包,則認為網(wǎng)絡(luò)異常中斷,并采取相應(yīng)的措施.節(jié)點狀態(tài)轉(zhuǎn)換為建立心跳模型,首先為網(wǎng)絡(luò)節(jié)點定義3個狀態(tài):“通信中斷”,表示未建立連接鏈路;“通信中...”,表示正在嘗試/等待建立Socket連接,或心跳包收發(fā)不正常;“通信正常”,表示鏈路正常,心跳包收發(fā)正常.節(jié)點狀態(tài)間的轉(zhuǎn)換及對應(yīng)的心跳包收發(fā)狀況如圖1所示.如圖1所示,程序啟動后,節(jié)點仍處于“通信中斷”狀態(tài).網(wǎng)絡(luò)連接操作成功后,網(wǎng)絡(luò)節(jié)點狀態(tài)轉(zhuǎn)換到“通信正?!睜顟B(tài),只有處于該狀態(tài)的心跳包可以正常收發(fā),同時,心跳包的正常收發(fā)也表示了節(jié)點的連接正常、通信正常;一旦檢測心跳包發(fā)送失敗,節(jié)點狀態(tài)轉(zhuǎn)換到“通信中...”,停止心跳包的收發(fā),斷開連接鏈路,并嘗試重新建立網(wǎng)絡(luò)連接,此時對方節(jié)點通過心跳包的收發(fā)情況,也可判斷該節(jié)點連接中斷,若嘗試連接失敗則轉(zhuǎn)換到“通信中斷”狀態(tài),若嘗試成功則轉(zhuǎn)換到“通信正?!睜顟B(tài),繼續(xù)收發(fā)心跳包.規(guī)范跳親設(shè)計,增加主觀條件,提高網(wǎng)絡(luò)效率一般情況下,服務(wù)器節(jié)點和客戶機節(jié)點采用相同的心跳機制,即網(wǎng)絡(luò)節(jié)點收到對方節(jié)點的心跳數(shù)據(jù)包后,返回一個對應(yīng)的心跳數(shù)據(jù)包給對方節(jié)點,但在單服務(wù)器多客戶機工作模式下,服務(wù)器的心跳數(shù)據(jù)包發(fā)送量將是所有客戶機的心跳數(shù)據(jù)包發(fā)送量的總和.當(dāng)客戶機節(jié)點過多時,服務(wù)器的網(wǎng)絡(luò)負擔(dān)會十分繁重.所以,我們在服務(wù)器和客戶機設(shè)計不同的心跳機制,從而減輕服務(wù)器的負擔(dān),提高網(wǎng)絡(luò)效率.心跳包的主動發(fā)包方既可以是客戶,也可以是服務(wù)端,但出于效率的考慮,一般由客戶端主動向服務(wù)器端發(fā)包.出于這些因素的考慮,可以設(shè)計心跳機制:客戶機主動向服務(wù)器發(fā)送心跳數(shù)據(jù)包,心跳包中包含用于檢測連接的測試數(shù)據(jù),測試數(shù)據(jù)并不固定,每次發(fā)送心跳包時從一組數(shù)據(jù)序列循環(huán)地、順序地選取一位;在客戶機的測試數(shù)據(jù)序列中,指定其中一位為特殊校驗數(shù)據(jù),只有當(dāng)服務(wù)器收到的心跳包數(shù)據(jù)中包含特殊校驗位數(shù)據(jù)時,才返回相應(yīng)的心跳包,否則,不做任何操作,繼續(xù)接收下一個心跳包.在這種心跳機制下,假定數(shù)據(jù)序列長度為N,服務(wù)器收到來自客戶機的N條心跳包后返回一個心跳包,那么服務(wù)器的網(wǎng)絡(luò)負擔(dān)就減少到原有的1/N.但數(shù)據(jù)序列長度過大,可能會造成數(shù)據(jù)校驗延時,影響到心跳數(shù)據(jù)校驗的有效性,所以數(shù)據(jù)序列的長度不宜過大.關(guān)于索賠協(xié)議的設(shè)計根據(jù)通信實時性的要求,數(shù)據(jù)包的大小應(yīng)盡可能小,以減少帶寬的占用,所以整套應(yīng)用層傳輸協(xié)議的設(shè)計應(yīng)該力求簡潔.心跳數(shù)據(jù)包協(xié)議為:主客戶機id在該協(xié)議中:包頭、包尾均用2個字節(jié);數(shù)據(jù)方向用1個字節(jié)表示,用于表示心跳包是服務(wù)器發(fā)送給客戶機,還是客戶機發(fā)送給服務(wù)器;廠站號多用于在客戶機向服務(wù)器發(fā)送的心跳數(shù)據(jù)包中,用于表示客戶機的ID,這里用2個字節(jié)表示;心跳測試位是用于檢測連接的特定信息,心跳測試位采用了一組序列數(shù)據(jù),這里采用數(shù)據(jù)序列0~N.由于客戶機與服務(wù)器的心跳機制不同,因此客戶機每次發(fā)送心跳包時,循環(huán)地、順序地選擇序列中的一個數(shù)據(jù)作為測試位,而服務(wù)器僅在收到包含特殊校驗位的心跳包后,返回一個心跳包,其心跳測試位取值為特殊校驗位.該協(xié)議具有可擴展性,可根據(jù)設(shè)計要求增減字段.例如當(dāng)需要考慮信息傳輸?shù)陌踩詴r,可加入加密字段;若考慮延時,可增加時間戳字段等.采用了以上的心跳機制后,對于很小的延時,仍可不定義時間戳字段.跳包測試位數(shù)據(jù)序列在以上內(nèi)容基礎(chǔ)上,心跳模型可按照如圖2所示的流程實現(xiàn).首先,客戶機與服務(wù)器建立連接后,初始化參數(shù),主要包括以下幾點:1)設(shè)置心跳包的發(fā)送周期.2)設(shè)置連接正常標志位.這里定義為一個BOOL型變量,初始值為1,如果經(jīng)校驗后連接正常則置位,進行新的一輪判斷前,需要將其復(fù)位.3)設(shè)置心跳包測試位數(shù)據(jù)序列.在模型的應(yīng)用中采用的數(shù)據(jù)序列為0~N,發(fā)送心跳包時循環(huán)地、順序地發(fā)送,當(dāng)測試位為N時,再發(fā)送的心跳包的測試位重新從0開始計數(shù).4)設(shè)置特殊校驗位.特殊校驗位從測試位數(shù)據(jù)序列中任意挑選一位.5)設(shè)置重新連接服務(wù)器的次數(shù).當(dāng)客戶機節(jié)點嘗試連接服務(wù)器節(jié)點時,如果到達設(shè)定的連接次數(shù)時,仍沒有成功連接服務(wù)器節(jié)點,則認為連接徹底失敗,服務(wù)結(jié)束.6)設(shè)置重新連接服務(wù)器的周期.當(dāng)客戶機節(jié)點嘗試連接服務(wù)器節(jié)點時,根據(jù)設(shè)置的周期值,周期性地連接服務(wù)器.參數(shù)初始化完畢后,開始周期性地發(fā)送心跳包,一旦服務(wù)器接收到的心跳包數(shù)據(jù)中包含特殊校驗位,就返回一個校驗數(shù)據(jù)包給客戶機,如果當(dāng)客戶機再次發(fā)送包含特殊校驗位的心跳包時,已經(jīng)收到此校驗數(shù)據(jù)包,則認為連接正常;否則,認為連接出現(xiàn)問題,客戶機關(guān)閉Socket,并嘗試重新連接服務(wù)器;如果在指定的連接次數(shù)內(nèi)連接成功,則繼續(xù)進行數(shù)據(jù)的通信,否則,則認為連接中斷,并采取相應(yīng)的應(yīng)急措施,處理出現(xiàn)的問題.3控制及運行狀態(tài)用VisualC++6.0開發(fā)一個測試系統(tǒng)實現(xiàn)心跳模型,并在4臺PC上應(yīng)用該系統(tǒng)測試心跳模型功能,其中1臺作為服務(wù)器,另外3臺作為客戶機,模擬不同網(wǎng)絡(luò)條件,包括網(wǎng)絡(luò)連接正常、網(wǎng)絡(luò)中斷、網(wǎng)絡(luò)擁塞,進行功能測試,如圖3所示.測試過程表明,通過心跳包收發(fā)狀態(tài),心跳模型可以實現(xiàn)對網(wǎng)絡(luò)連接狀態(tài)的判斷,并根據(jù)不同情況,在客戶端和服務(wù)器端采取相應(yīng)的操作.心跳包狀態(tài)、網(wǎng)絡(luò)連接狀態(tài)和采取的相應(yīng)操作的對應(yīng)關(guān)系如表1和表2所示.測試結(jié)果表明,各狀態(tài)與當(dāng)前操作之間的關(guān)系符合模型的設(shè)計.從表1和表2看出,由于客戶機與服務(wù)器采用不同的心跳機制,所以心跳包收發(fā)狀態(tài)與節(jié)點狀態(tài)對應(yīng)情況也存在差異.當(dāng)客戶機節(jié)點發(fā)生鏈路故障或網(wǎng)絡(luò)擁塞時,客戶機心跳包發(fā)送失敗,但是卻仍顯示心跳包接收狀態(tài)成功,如表1中第5條所示.經(jīng)測試,在這種情況下,客戶機顯示狀態(tài)為“通信中...”,將繼續(xù)發(fā)送心跳包,在N個心跳包的發(fā)送周期(即完成一組測試位數(shù)據(jù)序列發(fā)送的時間)內(nèi),客戶機會自動根據(jù)收發(fā)狀態(tài)的改變而調(diào)整顯示狀態(tài)及當(dāng)前操作,如表1中第4、6條所示.由于系統(tǒng)服務(wù)器采用專用網(wǎng)絡(luò)連接Internet,經(jīng)測試,很少出現(xiàn)服務(wù)器網(wǎng)絡(luò)連接中斷的情況,所以這里認為服務(wù)器永遠在線,一旦心跳包接收/發(fā)送均失敗,則認為網(wǎng)絡(luò)通信出現(xiàn)問題,服務(wù)器等待客戶機重新連接.在完成心跳模型功能測試的基礎(chǔ)上,通過修改發(fā)送定時器、心跳測試位數(shù)據(jù)序列長度、最大重連次數(shù)、嘗試連接周期,以及通過啟動和關(guān)閉各網(wǎng)絡(luò)節(jié)點來模擬真實情況下的宕機和啟動,通過關(guān)閉網(wǎng)絡(luò)設(shè)備終端來模擬鏈路失效等多種手段,對心跳模型進行連續(xù)7×24小時的實際使用,以測試其性能.測試過程中,每次心跳狀態(tài)的變化都會通過屏幕給予提示,結(jié)果表明,心跳模型很好地實現(xiàn)了可用性.4使用了兩種形成模型的病毒傳播模型,提高了系統(tǒng)的處理能力和可靠性,和維護和提高服務(wù)本文提出了一種用于網(wǎng)絡(luò)通信控制的、采用改
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2022年上海統(tǒng)計師(初級)考試題庫(含基礎(chǔ)和實務(wù))
- 甘孜職業(yè)學(xué)院《工程機械設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 七年級科學(xué)上冊11.1生物的感覺11.1.1生物對環(huán)境變化的反應(yīng)學(xué)案無答案牛津上海版
- 三年級數(shù)學(xué)上冊6平移旋轉(zhuǎn)和軸對稱單元概述和課時安排素材蘇教版
- 三年級數(shù)學(xué)上冊四乘與除教案北師大版
- 三年級科學(xué)上冊第三單元人與動物5動物世界第一課時教案首師大版
- 三年級科學(xué)下冊第四單元磁鐵第3課磁鐵的兩極教學(xué)材料教科版
- 計量設(shè)備培訓(xùn)課件
- 《米拉公寓建筑分析》課件
- 《弧形導(dǎo)臺過站》課件
- 2024版國開電大法學(xué)本科《商法》歷年期末考試總題庫
- 湖北省荊州市荊州八縣市區(qū)2023-2024學(xué)年高一上學(xué)期1月期末聯(lián)考物理試題(原卷版)
- 小程序商場方案
- 班組年終總結(jié)
- 高位肛瘺的護理查房
- 廣西桂林市2023-2024學(xué)年高二上學(xué)期期末考試物理試卷
- 內(nèi)蒙古赤峰市2023-2024學(xué)年高一上學(xué)期期末考試物理試題【含答案解析】
- nfc果汁加工工藝
- 慢性胃炎的康復(fù)治療
- 北京市通州區(qū)2023-2024學(xué)年七年級上學(xué)期期末數(shù)學(xué)試題
- 雨污分流管網(wǎng)工程施工重點難點分析及解決方案
評論
0/150
提交評論