專利名稱:網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法,尤其涉及一種在具有客戶 端及服務(wù)器端的網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)中通過私有通訊協(xié)議在客戶端及服務(wù)器端之間 建立數(shù)據(jù)傳輸連接并進(jìn)行數(shù)據(jù)傳輸?shù)姆椒ā?br>
背景技術(shù):
目前,網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)在計(jì)算機(jī)領(lǐng)域有著廣泛地應(yīng)用,特別是在網(wǎng)絡(luò)傳輸速 率飛速提升的今天,隨著千兆網(wǎng)絡(luò)的出現(xiàn),以往網(wǎng)絡(luò)傳輸速率的限制已經(jīng)不再 是提高系統(tǒng)運(yùn)行速度的瓶頸。網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)具有節(jié)約成本、部署簡單、維護(hù)方 便、可依據(jù)實(shí)際需要快速切換系統(tǒng)、各虛擬磁盤使用時(shí)互不干擾等諸多優(yōu)點(diǎn)。 越來越多的網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)甚至已朝著無碟化的方向發(fā)展,例如刀鋒型服務(wù)器
(Blade Server)系統(tǒng)、高效能計(jì)算(High Performance Computing,簡稱HPC)
集群系統(tǒng)等。
現(xiàn)有技術(shù)中,為了使網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)有效加以實(shí)現(xiàn),所需解決的一個(gè)關(guān)鍵性 問題是如何確保對虛擬磁盤數(shù)據(jù)傳輸?shù)母咝耘c可靠性,因?yàn)橥ǔμ摂M磁盤 數(shù)據(jù)的訪問具有突發(fā)性高、單位時(shí)間內(nèi)數(shù)據(jù)傳輸量大、某些訪問操作持續(xù)時(shí)間 長等問題。
為了適應(yīng)現(xiàn)有技術(shù)中網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)所運(yùn)行的網(wǎng)絡(luò)環(huán)境的特點(diǎn),同時(shí),為了 有效解決上述現(xiàn)有技術(shù)的網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)中所存在的問題以徹底實(shí)現(xiàn)虛擬磁盤 儲(chǔ)存的特殊需求,因此,亟待提供一種新的網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法。
發(fā)明內(nèi)容
為了解決上述現(xiàn)有技術(shù)中的問題,本發(fā)明的目的在于提供一種網(wǎng)絡(luò)儲(chǔ)存系 統(tǒng)的數(shù)據(jù)傳輸方法,用以在具有客戶端及服務(wù)器端的網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)中通過私有 通訊協(xié)議在客戶端及服務(wù)器端之間建立數(shù)據(jù)傳輸連接并進(jìn)行數(shù)據(jù)傳輸。
本發(fā)明所提供的一種網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法,包含以下歩驟
預(yù)先分別在客戶端與服務(wù)器端設(shè)置一個(gè)私有通訊協(xié)議;客戶端通過廣播的 方式尋找服務(wù)器端,服務(wù)器端接收到廣播信息后進(jìn)行答復(fù),并將服務(wù)器端的網(wǎng) 際網(wǎng)絡(luò)通訊協(xié)議(IP)地址返回給客戶端,客戶端依照得到的服務(wù)器端的IP地址 向服務(wù)器端發(fā)送連接請求;服務(wù)器端收到連接請求后進(jìn)行答復(fù),當(dāng)客戶端收到 服務(wù)器端返回的表明同意建立連接的答復(fù)后,于客戶端與服務(wù)器端之間正式建 立一個(gè)數(shù)據(jù)傳輸連接;以及通過私有通訊協(xié)議在客戶端與服務(wù)器端之間進(jìn)行相 關(guān)數(shù)據(jù)的接收和發(fā)送。
另外,本發(fā)明所提供的一種網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法,還包含當(dāng)客戶 端或服務(wù)器端需要斷開數(shù)據(jù)傳輸連接時(shí),由需要斷開連接的一方發(fā)出一個(gè)斷開 連接通知信息后中斷數(shù)據(jù)傳輸連接的步驟。
此外,本發(fā)明所提供的一種網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法中客戶端進(jìn)行數(shù) 據(jù)發(fā)送的進(jìn)程中進(jìn)一步包含如下步驟
客戶端將待發(fā)送的數(shù)據(jù)分組,并依照順序發(fā)送一組數(shù)據(jù);客戶端通過調(diào)用 網(wǎng)絡(luò)設(shè)備接口接收服務(wù)器端的數(shù)據(jù)接收響應(yīng),并判斷服務(wù)器端是否有響應(yīng)到 達(dá),有響應(yīng)到達(dá)則證明數(shù)據(jù)發(fā)送的操作成功,而后繼續(xù)發(fā)送下一組數(shù)據(jù)直至剩
余數(shù)據(jù)全部發(fā)送成功,否則進(jìn)入等待響應(yīng)的狀態(tài);在等待響應(yīng)期間,客戶端實(shí) 時(shí)判斷是否有響應(yīng)返回,有響應(yīng)返回則等待數(shù)據(jù)發(fā)送進(jìn)程被喚醒后繼續(xù)發(fā)送下 一組數(shù)據(jù)直至剩余數(shù)據(jù)全部發(fā)送成功,否則繼續(xù)等待服務(wù)器端的數(shù)據(jù)接收響應(yīng) 并判斷等待響應(yīng)時(shí)間是否大于等于一個(gè)預(yù)定時(shí)長;若等待響應(yīng)時(shí)間小于預(yù)定時(shí) 長,則繼續(xù)等待服務(wù)器端的數(shù)據(jù)接收響應(yīng);以及若等待響應(yīng)時(shí)間大于等于預(yù)定 時(shí)長,則客戶端準(zhǔn)備重新發(fā)送此組數(shù)據(jù)并預(yù)先判斷數(shù)據(jù)重發(fā)次數(shù)是否大于一個(gè) 預(yù)先設(shè)定的最大重發(fā)次數(shù),若大于最大重發(fā)次數(shù)則發(fā)出數(shù)據(jù)發(fā)送操作失敗的信 息,而后結(jié)束數(shù)據(jù)發(fā)送進(jìn)程,若小于等于最大重發(fā)次數(shù)則重新發(fā)送此組數(shù)據(jù)。 再者,本發(fā)明所提供的一種網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法中服務(wù)器端進(jìn)行
數(shù)據(jù)接收與發(fā)送的進(jìn)程中還進(jìn)一步包含如下步驟
起始化變量及結(jié)構(gòu),注冊私有通訊協(xié)議并綁定網(wǎng)卡;判斷是否有數(shù)據(jù)需要 發(fā)送,如果有數(shù)據(jù)需要發(fā)送則依據(jù)待發(fā)送數(shù)據(jù)的長度進(jìn)行數(shù)據(jù)分組后,按照分 組順序逐個(gè)數(shù)據(jù)組進(jìn)行發(fā)送,直至全部數(shù)據(jù)發(fā)送完成;如果沒有數(shù)據(jù)需要發(fā)送 則判斷是否有數(shù)據(jù)需要接收,如果有數(shù)據(jù)需要接收則服務(wù)器端通過私有通訊協(xié) 議依據(jù)接收數(shù)據(jù)的類型進(jìn)行相應(yīng)的數(shù)據(jù)接收及處理;以及當(dāng)服務(wù)器端既無數(shù)據(jù)需要發(fā)送也無數(shù)據(jù)需要接收時(shí),判斷服務(wù)器端的數(shù)據(jù)收、發(fā)進(jìn)程是否需要結(jié)束, 如果需要結(jié)束,則向客戶端發(fā)送斷開連接通知信息,并釋放網(wǎng)卡,而后注銷私 有通訊協(xié)議且結(jié)束數(shù)據(jù)收、發(fā)進(jìn)程,否則繼續(xù)執(zhí)行數(shù)據(jù)收、發(fā)進(jìn)程。
綜上所述,本發(fā)明的一種網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法的優(yōu)點(diǎn)在于
1、 本發(fā)明的方法適合于網(wǎng)絡(luò)磁盤的大數(shù)據(jù)量吞吐;
2、 本方法能夠在數(shù)據(jù)丟包的情況下進(jìn)行數(shù)據(jù)的超時(shí)重新傳輸;
3、 本發(fā)明方法所采用的私有通訊協(xié)議中可對待傳輸?shù)臄?shù)據(jù)包進(jìn)行有效地 控制,因而不會(huì)發(fā)生數(shù)據(jù)混亂;
4、 本發(fā)明的方法中,當(dāng)發(fā)送數(shù)據(jù)失敗時(shí),對數(shù)據(jù)重發(fā)控制靈活,可長時(shí) 間重試發(fā)送,保持了操作的連續(xù)性。
以下結(jié)合附圖和具體實(shí)施例對本發(fā)明進(jìn)行詳細(xì)描述,但不作為對本發(fā)明的 限定。
圖1為本發(fā)明的一種網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法的整體方法流程圖; 圖2為本發(fā)明的方法中客戶端進(jìn)行數(shù)據(jù)發(fā)送的方法流程圖; 圖3為本發(fā)明的方法中服務(wù)器端進(jìn)行數(shù)據(jù)接收與發(fā)送的方法流程圖;以及 圖4為本發(fā)明方法中服務(wù)器端通過私有通訊協(xié)議依據(jù)接收數(shù)據(jù)的類型進(jìn) 行相應(yīng)的數(shù)據(jù)接收及處理的方法流程圖。 其中,附圖標(biāo)記
步驟100在客戶端與服務(wù)器端分別設(shè)置私有通訊協(xié)議 步驟101客戶端透過廣播方式尋找服務(wù)器端
步驟102服務(wù)器端接收到廣播信息后進(jìn)行答復(fù),并將服務(wù)器端的IP地 址返回給客戶端
步驟103客戶端依照服務(wù)器端的IP地址向服務(wù)器端發(fā)送連接請求 步驟104服務(wù)器端收到連接請求后進(jìn)行答復(fù)
步驟105客戶端收到服務(wù)器端返回的表明同意建立連接的答復(fù)后,于客 戶端與服務(wù)器端的間建立數(shù)據(jù)傳輸連接
步驟106通過私有通訊協(xié)議在客戶端與服務(wù)器端之間進(jìn)行相關(guān)數(shù)據(jù)的 接收和發(fā)送
步驟107由客戶端或服務(wù)器端中需要斷開連接的一方發(fā)出斷開連接通 知信息后中斷數(shù)據(jù)傳輸連接
步驟200將待發(fā)送的數(shù)據(jù)分組
步驟201依照順序發(fā)送一組數(shù)據(jù)
步驟202接收數(shù)據(jù)接收響應(yīng)
步驟203判斷是否有響應(yīng)到達(dá)
步驟204判斷是否還有待發(fā)送的剩余數(shù)據(jù)組
步驟205進(jìn)入等待響應(yīng)狀態(tài)
步驟206判斷是否有響應(yīng)返回
步驟207判斷等待響應(yīng)時(shí)間是否大于等于一預(yù)定時(shí)長 步驟208判斷數(shù)據(jù)重發(fā)次數(shù)是否大于一最大重發(fā)次數(shù) 步驟209發(fā)出數(shù)據(jù)發(fā)送操作失敗的信息 步驟210重新發(fā)送此組數(shù)據(jù)
步驟300起始化變量及結(jié)構(gòu),注冊私有通訊協(xié)議并綁定網(wǎng)卡
步驟301判斷是否有數(shù)據(jù)需要發(fā)送
步驟302依據(jù)待發(fā)送數(shù)據(jù)的長度進(jìn)行數(shù)據(jù)分組
步驟303按分組順序逐個(gè)數(shù)據(jù)組進(jìn)行發(fā)送直至此數(shù)據(jù)全部發(fā)送完成
步驟304判斷是否有數(shù)據(jù)需要接收
步驟305依據(jù)接收數(shù)據(jù)的類型進(jìn)行相應(yīng)的數(shù)據(jù)接收及處理
步驟306判斷數(shù)據(jù)收、發(fā)進(jìn)程是否需要結(jié)束
步驟307發(fā)送斷開連接通知信息,釋放網(wǎng)卡并注銷私有通訊協(xié)議
步驟3051判斷是否收到客戶端發(fā)送的服務(wù)器搜尋請求
步驟3052發(fā)送一個(gè)包含服務(wù)器端的IP地址的答復(fù)
步驟3053判斷是否收到客戶端發(fā)送的客戶端登記信息
步驟3054發(fā)送一個(gè)登記此客戶端的答復(fù)
步驟3055判斷是否收到客戶端發(fā)送的斷開連接通知信息
步驟3056注銷對應(yīng)的客戶端
步驟3057判斷是否收到客戶端發(fā)送的磁盤數(shù)據(jù)
步驟305S發(fā)送一個(gè)數(shù)據(jù)接收的答復(fù)
步驟3059判斷是否收到客戶端發(fā)送的接收數(shù)據(jù)的答復(fù)
具體實(shí)施例方式
以下,將結(jié)合附圖對本發(fā)明的較佳實(shí)施方式作詳細(xì)說明。
請參考圖1,此圖為本發(fā)明的一種網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法的整體方 法流程圖,如圖所示,本發(fā)明的一種網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法系包含以下
預(yù)先分別在客戶端與服務(wù)器端設(shè)置一個(gè)私有通訊協(xié)議,以保證客戶端及服
務(wù)器端對私有通訊協(xié)議的信息包的正確解析(步驟IOO),其中,私有通訊協(xié)
議的執(zhí)行進(jìn)程大體上可分為連接、數(shù)據(jù)收發(fā)、斷開連接三個(gè)階段,其中又可規(guī) 定發(fā)起連接的一方為客戶端,另外一方為服務(wù)器端,其具體操作步驟請參見如
下步驟的描述;
客戶端通過廣播的方式尋找服務(wù)器端(步驟101);
服務(wù)器端接收到廣播信息后進(jìn)行答復(fù),并將服務(wù)器端的網(wǎng)際網(wǎng)絡(luò)通訊協(xié)議 (IP)地址返回給客戶端(步驟102);
客戶端依照得到的服務(wù)器端的IP地址向服務(wù)器端發(fā)送連接請求(步驟 103);
服務(wù)器端收到連接請求后進(jìn)行答復(fù)(步驟104);
當(dāng)客戶端收到服務(wù)器端返回的表明同意建立連接的答復(fù)后,于客戶端與服 務(wù)器端之間正式建立一數(shù)據(jù)傳輸連接(步驟105);
通過私有通訊協(xié)議在客戶端與服務(wù)器端之間進(jìn)行相關(guān)數(shù)據(jù)的接收和發(fā)送
(步驟106);以及
當(dāng)客戶端或服務(wù)器端需要斷開數(shù)據(jù)傳輸連接時(shí),由需要斷開連接的一方發(fā)
出一個(gè)斷開連接通知信息后中斷數(shù)據(jù)傳輸連接(步驟107)。
現(xiàn)在請參考圖2,此圖為本發(fā)明的方法中客戶端進(jìn)行數(shù)據(jù)發(fā)送的方法流程 圖,如圖所示,本發(fā)明方法中客戶端進(jìn)行數(shù)據(jù)發(fā)送的進(jìn)程中進(jìn)一步包含如下步
客戶端在有數(shù)據(jù)需要發(fā)送的情況下主動(dòng)向服務(wù)器端發(fā)起數(shù)據(jù)連接請求,并 于數(shù)據(jù)傳輸連接建立之后,客戶端將待發(fā)送的數(shù)據(jù)分組(步驟200),并依照 順序發(fā)送一組數(shù)據(jù)(步驟201);
客戶端通過調(diào)用網(wǎng)絡(luò)設(shè)備接口接收服務(wù)器端的數(shù)據(jù)接收響應(yīng)(步驟202), 并判斷服務(wù)器端是否有響應(yīng)到達(dá)(步驟203),有響應(yīng)到達(dá)則證明發(fā)送此組數(shù)
據(jù)的操作成功,而后判斷是否還有待發(fā)送的剩余數(shù)據(jù)組(步驟204),如果有 則返回步驟201,以繼續(xù)發(fā)送下一組數(shù)據(jù)直至剩余數(shù)據(jù)全部發(fā)送成功,如果沒 有待發(fā)送的剩余數(shù)據(jù)組則結(jié)束數(shù)據(jù)發(fā)送進(jìn)程,若無響應(yīng)到達(dá)則進(jìn)入等待響應(yīng)的 狀態(tài)(步驟205);
在等待響應(yīng)期間,客戶端實(shí)時(shí)判斷是否有響應(yīng)返回(步驟206),有響應(yīng) 返回則等待數(shù)據(jù)發(fā)送進(jìn)程被喚醒后返回步驟204,否則繼續(xù)等待服務(wù)器端的數(shù) 據(jù)接收響應(yīng)并判斷等待響應(yīng)時(shí)間是否大于等于一個(gè)預(yù)定時(shí)長(步驟207);
若等待響應(yīng)時(shí)間小于此預(yù)定時(shí)長,則返回步驟205以繼續(xù)等待服務(wù)器端的 數(shù)據(jù)接收響應(yīng);以及
若等待響應(yīng)時(shí)間大于等于預(yù)定時(shí)長,則客戶端準(zhǔn)備重新發(fā)送此組數(shù)據(jù)并預(yù) 先判斷此數(shù)據(jù)重發(fā)次數(shù)是否大于一個(gè)預(yù)先設(shè)定的最大重發(fā)次數(shù)(步驟208), 若大于最大重發(fā)次數(shù)則可判定網(wǎng)絡(luò)數(shù)據(jù)傳輸出現(xiàn)故障,并發(fā)出數(shù)據(jù)發(fā)送操作失 敗的信息(步驟209),而后結(jié)束數(shù)據(jù)發(fā)送進(jìn)程,若小于等于最大重發(fā)次數(shù)則 重新發(fā)送此組數(shù)據(jù)(步驟210),而后返回步驟202。
然后,請參考圖3,此圖為本發(fā)明的方法中服務(wù)器端進(jìn)行數(shù)據(jù)接收與發(fā)送 的方法流程圖,如圖所示,本發(fā)明方法中服務(wù)器端進(jìn)行數(shù)據(jù)接收與發(fā)送的進(jìn)程 中進(jìn)一步包含如下步驟
起始化變量及結(jié)構(gòu),設(shè)置私有通訊協(xié)議并綁定網(wǎng)卡(步驟300);
判斷是否有數(shù)據(jù)需要發(fā)送(步驟301),如果有數(shù)據(jù)需要發(fā)送則進(jìn)入數(shù)據(jù) 發(fā)送處理流程,因?yàn)榇疟P輸入/輸出(I叩iit/Output,簡稱1/0)的數(shù)據(jù)量一般 較大,所以首先要依照待發(fā)送處理的數(shù)據(jù)長度進(jìn)行數(shù)據(jù)分組(步驟302),再 按照分組順序逐個(gè)數(shù)據(jù)組進(jìn)行發(fā)送,直至此被分組后的數(shù)據(jù)全部發(fā)送完成(步 驟303),然后返回步驟301,其中依據(jù)待發(fā)送數(shù)據(jù)的長度進(jìn)行數(shù)據(jù)分組依照 最大長度原則按固定值直接對待發(fā)送數(shù)據(jù)進(jìn)行分割;
如果沒有數(shù)據(jù)需要發(fā)送則判斷是否有數(shù)據(jù)需要接收(步驟304),如果有 數(shù)據(jù)需要接收則服務(wù)器端通過私有通訊協(xié)議依據(jù)接收數(shù)據(jù)的類型進(jìn)行相應(yīng)的 數(shù)據(jù)接收及處理(步驟305),待相應(yīng)的數(shù)據(jù)接收及處理完成后,返回步驟301; 以及
當(dāng)服務(wù)器端既無數(shù)據(jù)需要發(fā)送也無數(shù)據(jù)需要接收時(shí),判斷服務(wù)器端的數(shù)據(jù) 收、發(fā)進(jìn)程是否需要結(jié)束(步驟306),如果需要結(jié)束,則向客戶端發(fā)送斷開連接通知信息,釋放網(wǎng)卡并注銷私有通訊協(xié)議(步驟307),而后結(jié)束數(shù)據(jù)收、 發(fā)進(jìn)程,否則返回步驟301,以繼續(xù)執(zhí)行相應(yīng)的數(shù)據(jù)收、發(fā)進(jìn)程。
最后,請參考圖4,此圖表示了本發(fā)明方法中服務(wù)器端通過私有通訊協(xié)議
依據(jù)接收數(shù)據(jù)的類型進(jìn)行相應(yīng)的數(shù)據(jù)接收及處理的方法流程圖,如圖所示,上 述步驟305 (即服務(wù)器端通過私有通訊協(xié)議依據(jù)接收數(shù)據(jù)的類型進(jìn)行相應(yīng)的數(shù) 據(jù)接收及處理的步驟)中進(jìn)一步包含如下步驟
判斷是否收到客戶端發(fā)送的服務(wù)器搜尋請求(步驟3051),當(dāng)服務(wù)器端 接收到客戶端發(fā)送的服務(wù)器搜尋請求后,向客戶端發(fā)送一個(gè)包含服務(wù)器端的 IP地址的答復(fù)(步驟3052),而后返回步驟301,否則執(zhí)行步驟3053;
判斷是否收到客戶端發(fā)送的客戶端登記信息(步驟3053),當(dāng)服務(wù)器端 接收到客戶端發(fā)送的客戶端登記信息后,向客戶端發(fā)送一個(gè)登記此客戶端的答 復(fù)(步驟3054),而后返回步驟301,否則執(zhí)行步驟3055;
判斷是否收到客戶端發(fā)送的斷開連接通知信息(步驟3055),當(dāng)服務(wù)器 端接收到客戶端發(fā)送的斷開連接通知信息后,注銷對應(yīng)的客戶端(步驟3056 ), 而后返回步驟301,否則執(zhí)行步驟3057;
判斷是否收到客戶端發(fā)送的磁盤數(shù)據(jù)(步驟3057),當(dāng)服務(wù)器端接收到 客戶端發(fā)送的磁盤數(shù)據(jù)后,向客戶端發(fā)送一個(gè)數(shù)據(jù)接收的答復(fù)(步驟3058), 而后返回步驟301,否則執(zhí)行步驟3059;
判斷是否收到客戶端發(fā)送的接收數(shù)據(jù)的答復(fù)(步驟3059),當(dāng)服務(wù)器端 接收到客戶端發(fā)送的接收數(shù)據(jù)的答復(fù)后,執(zhí)行上述的步驟303,否則返回步驟 301。
綜上所述,本發(fā)明的一種網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法所采用的私有通訊 協(xié)議沒有進(jìn)行更多的層次劃分,這樣做免去了各層之間的轉(zhuǎn)發(fā)及相應(yīng)的數(shù)據(jù)封 裝/解析處理,從一定程度上獲得了較高的數(shù)據(jù)吞吐效率。同時(shí)簡單的數(shù)據(jù)收、 發(fā)邏輯關(guān)系減少了控制流程方面的相互影響,使網(wǎng)絡(luò)數(shù)據(jù)傳輸更加便捷、安全、 可靠。
此外,本發(fā)明的方法中嘗試接收響應(yīng)失敗后會(huì)立即進(jìn)入接收響應(yīng)的等待狀 態(tài),這與輪詢的方式相比大大縮減了現(xiàn)有的通訊協(xié)議程序占用處理器時(shí)間片的 數(shù)量。當(dāng)有響應(yīng)信息到達(dá)時(shí),數(shù)據(jù)發(fā)送進(jìn)程立即被喚醒,私有通訊協(xié)議程序會(huì) 對待發(fā)送的數(shù)據(jù)以最快的速度做出反應(yīng),減少了不必要的等待時(shí)間。如果網(wǎng)絡(luò)
傳輸出現(xiàn)差錯(cuò)而一直沒有接收到響應(yīng)信息,客戶端會(huì)在超時(shí)后重新發(fā)送上一組 數(shù)據(jù),直至達(dá)到最大重發(fā)次數(shù),這個(gè)最大重發(fā)次數(shù)能夠根據(jù)需要靈活設(shè)定,從 而可以實(shí)現(xiàn)超長時(shí)間重試發(fā)送,保持了操作的持續(xù)性, 一旦網(wǎng)絡(luò)狀態(tài)恢復(fù)正常 相關(guān)操作還可以繼續(xù)進(jìn)行。
與現(xiàn)有的iSCSI (Small Computer Systems Interface,小型計(jì)算機(jī)系統(tǒng) 接口)網(wǎng)絡(luò)通訊協(xié)議的應(yīng)用相比,現(xiàn)有的標(biāo)準(zhǔn)網(wǎng)絡(luò)通訊協(xié)議在網(wǎng)絡(luò)斷開60秒 鐘以上再恢復(fù)數(shù)據(jù)放松即宣告操作失敗,而利用本發(fā)明方法中的私有通訊協(xié)議 能夠根據(jù)需要調(diào)整等待時(shí)間及數(shù)據(jù)重發(fā)次數(shù),其重試發(fā)送時(shí)間可以遠(yuǎn)遠(yuǎn)大于現(xiàn) 有的標(biāo)準(zhǔn)網(wǎng)絡(luò)通訊協(xié)議,從而使得虛擬磁盤儲(chǔ)存服務(wù)的抗網(wǎng)絡(luò)干擾能力變得很 強(qiáng)。
當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情 況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但 這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1. 一種網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法,用以在具有客戶端及服務(wù)器端的網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)中通過一私有通訊協(xié)議在該客戶端及該服務(wù)器端之間建立數(shù)據(jù)傳輸連接并進(jìn)行數(shù)據(jù)傳輸,其特征在于,該方法包含以下步驟預(yù)先分別在該客戶端與該服務(wù)器端設(shè)置一私有通訊協(xié)議;該客戶端通過廣播的方式尋找該服務(wù)器端,并于取得該服務(wù)器端返回的網(wǎng)際網(wǎng)絡(luò)通訊協(xié)議IP地址后,向該服務(wù)器端發(fā)送連接請求;該服務(wù)器端收到該連接請求后進(jìn)行答復(fù),并當(dāng)該客戶端收到該服務(wù)器端返回的表明同意建立連接的答復(fù)后,于該客戶端與該服務(wù)器端之間正式建立一數(shù)據(jù)傳輸連接;以及通過該私有通訊協(xié)議在該客戶端與該服務(wù)器端之間進(jìn)行相關(guān)數(shù)據(jù)的接收和發(fā)送。
2、 根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于, 還包含如下步驟當(dāng)該客戶端或該服務(wù)器端需要斷開該數(shù)據(jù)傳輸連接時(shí),由需要斷開連接的 一方發(fā)出 一斷開連接通知信息后中斷該數(shù)據(jù)傳輸連接。
3、 根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于,該客戶端進(jìn)行數(shù)據(jù)發(fā)送的進(jìn)程中進(jìn)一步包含如下步驟該客戶端將待發(fā)送的數(shù)據(jù)分組,并依照順序發(fā)送一組數(shù)據(jù); 該客戶端通過調(diào)用網(wǎng)絡(luò)設(shè)備接口接收該服務(wù)器端的數(shù)據(jù)接收響應(yīng),并判斷該服務(wù)器端是否有響應(yīng)到達(dá),有響應(yīng)到達(dá)則繼續(xù)發(fā)送下一組數(shù)據(jù)直至剩余數(shù)據(jù)全部發(fā)送成功,否則進(jìn)入等待響應(yīng)的狀態(tài);在等待響應(yīng)期間,該客戶端實(shí)時(shí)判斷是否有響應(yīng)返回,有響應(yīng)返回則等待該數(shù)據(jù)發(fā)送進(jìn)程被喚醒后繼續(xù)發(fā)送下一組數(shù)據(jù)直至該剩余數(shù)據(jù)全部發(fā)送成功,否則繼續(xù)等待該服務(wù)器端的數(shù)據(jù)接收響應(yīng)并判斷等待響應(yīng)時(shí)間是否大于等于一預(yù)定時(shí)長;若該等待響應(yīng)時(shí)間小于該預(yù)定時(shí)長,則繼續(xù)等待該服務(wù)器端的數(shù)據(jù)接收響 應(yīng);以及若該等待響應(yīng)時(shí)間大于等于該預(yù)定時(shí)長,則該客戶端準(zhǔn)備重新發(fā)送該組數(shù)據(jù)并預(yù)先判斷該數(shù)據(jù)重發(fā)次數(shù)是否大于一預(yù)先設(shè)定的最大重發(fā)次數(shù),若大于該 最大重發(fā)次數(shù)則發(fā)出數(shù)據(jù)發(fā)送操作失敗的信息,而后結(jié)束該數(shù)據(jù)發(fā)送進(jìn)程,若 小于等于該最大重發(fā)次數(shù)則重新發(fā)送該組數(shù)據(jù)。
4、 根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于,該服務(wù)器端進(jìn)行數(shù)據(jù)接收與發(fā)送的進(jìn)程中進(jìn)一步包含如下步驟 起始化變量及結(jié)構(gòu),注冊該私有通訊協(xié)議并綁定網(wǎng)卡;判斷是否有數(shù)據(jù)需要發(fā)送,如果有數(shù)據(jù)需要發(fā)送則依據(jù)該待發(fā)送數(shù)據(jù)的長 度進(jìn)行數(shù)據(jù)分組后,按照該分組順序逐個(gè)數(shù)據(jù)組進(jìn)行發(fā)送,直至全部數(shù)據(jù)發(fā)送 完成;如果沒有數(shù)據(jù)需要發(fā)送則判斷是否有數(shù)據(jù)需要接收,如果有數(shù)據(jù)需要接收 則該服務(wù)器端通過該私有通訊協(xié)議依據(jù)接收數(shù)據(jù)的類型進(jìn)行相應(yīng)的數(shù)據(jù)接收 及處理;以及當(dāng)該服務(wù)器端既無數(shù)據(jù)需要發(fā)送也無數(shù)據(jù)需要接收時(shí),判斷該服務(wù)器端的 數(shù)據(jù)收、發(fā)進(jìn)程是否需要結(jié)束,如果需要結(jié)束,則向該客戶端發(fā)送該斷開連接 通知信息,并釋放該網(wǎng)卡,而后注銷該私有通訊協(xié)議且結(jié)束數(shù)據(jù)收、發(fā)進(jìn)程, 否則繼續(xù)執(zhí)行該數(shù)據(jù)收、發(fā)進(jìn)程。
5、 根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于, 依據(jù)該待發(fā)送數(shù)據(jù)的長度進(jìn)行數(shù)據(jù)分組依照最大長度原則按固定值直接對該 待發(fā)送數(shù)據(jù)進(jìn)行分割。
6、 根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于, 該服務(wù)器端通過該私有通訊協(xié)議依據(jù)接收數(shù)據(jù)的類型進(jìn)行相應(yīng)的數(shù)據(jù)接收及 處理的步驟中進(jìn)一步包含如下步驟當(dāng)該服務(wù)器端接收到該客戶端發(fā)送的服務(wù)器搜尋請求后,向該客戶端發(fā)送 一包含該服務(wù)器端的IP地址的答復(fù)。
7、 根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于,該服務(wù)器端通過該私有通訊協(xié)議依據(jù)接收數(shù)據(jù)的類型進(jìn)行相應(yīng)的數(shù)據(jù)接收及 處理的步驟中進(jìn)一步包含如下步驟當(dāng)該服務(wù)器端接收到該客戶端發(fā)送的客戶端登記信息后,向該客戶端發(fā)送 一登記該客戶端的答復(fù)。
8、 根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于,該服務(wù)器端通過該私有通訊協(xié)議依據(jù)接收數(shù)據(jù)的類型進(jìn)行相應(yīng)的數(shù)據(jù)接收及 處理的步驟中進(jìn)一步包含如下步驟當(dāng)該服務(wù)器端接收到該客戶端發(fā)送的斷開連接通知信息后,注銷該客戶端。
9、根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于, 該服務(wù)器端通過該私有通訊協(xié)議依據(jù)接收數(shù)據(jù)的類型進(jìn)行相應(yīng)的數(shù)據(jù)接收及處理的步驟中進(jìn)一步包含如下步驟當(dāng)該服務(wù)器端接收到該客戶端發(fā)送的磁盤數(shù)據(jù)后,向該客戶端發(fā)送一數(shù)據(jù) 接收的答復(fù)。
全文摘要
一種網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)的數(shù)據(jù)傳輸方法,用以在具有客戶端及服務(wù)器端的網(wǎng)絡(luò)儲(chǔ)存系統(tǒng)中通過私有通訊協(xié)議在客戶端及服務(wù)器端之間建立穩(wěn)定的數(shù)據(jù)傳輸連接并進(jìn)行數(shù)據(jù)傳輸,本方法主要包含以下步驟在客戶端與服務(wù)器端分別設(shè)置私有通訊協(xié)議;客戶端通過廣播方式尋找服務(wù)器端,并與服務(wù)器端建立數(shù)據(jù)傳輸連接;以及通過私有通訊協(xié)議在客戶端與服務(wù)器端之間進(jìn)行相關(guān)數(shù)據(jù)的接收和發(fā)送。
文檔編號H04L29/06GK101207617SQ200610170790
公開日2008年6月25日 申請日期2006年12月22日 優(yōu)先權(quán)日2006年12月22日
發(fā)明者威 劉, 劉文函, 王云松, 陳玄同 申請人:英業(yè)達(dá)股份有限公司