檢測(cè)在信息設(shè)備之間的數(shù)據(jù)傳輸?shù)臄?shù)據(jù)丟失的方法
【專利摘要】提供了應(yīng)用實(shí)時(shí)地檢測(cè)在通過外部網(wǎng)絡(luò)彼此連接的信息設(shè)備之間的數(shù)據(jù)傳輸?shù)膩G失的方法。在第一信息設(shè)備中:使用應(yīng)用以便對(duì)于時(shí)間的傳輸方向來分割被存儲(chǔ)用于寫入的傳輸數(shù)據(jù);對(duì)于分割的數(shù)據(jù)生成哈希值;并且將哈希值存儲(chǔ)至第一信息設(shè)備的專用緩沖器中作為寫入哈希值。分割的數(shù)據(jù)和寫入哈希值然后從第一信息設(shè)備被發(fā)送至第二信息設(shè)備,其中該寫入哈希值與第一信息設(shè)備中的分割的數(shù)據(jù)相關(guān)聯(lián)。在第二信息設(shè)備中,分割的數(shù)據(jù)和寫入哈希值被接收,然后被存儲(chǔ)至第二信息設(shè)備的專用緩沖器中,其中該寫入哈希值與分割的數(shù)據(jù)相關(guān)聯(lián)。在第二信息設(shè)備中,對(duì)于所接收的分割的數(shù)據(jù)生成哈希值,然后將該哈希值存儲(chǔ)至第二信息設(shè)備的專用緩沖器中作為讀取哈希值。將該寫入哈希值和該讀取哈希值相互比較,并且如果這些值彼此不匹配,則確定在分割的數(shù)據(jù)的傳輸期間發(fā)生了傳輸數(shù)據(jù)丟失。
【專利說明】檢測(cè)在信息設(shè)備之間的數(shù)據(jù)傳輸?shù)臄?shù)據(jù)丟失的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及在通過外部網(wǎng)絡(luò)彼此連接的信息設(shè)備之間的數(shù)據(jù)傳輸期間對(duì)數(shù)據(jù)丟失的檢測(cè)。更具體地,本發(fā)明涉及檢測(cè)在通過外部網(wǎng)絡(luò)彼此連接的服務(wù)器和外部存儲(chǔ)系統(tǒng)之間的數(shù)據(jù)傳輸期間的數(shù)據(jù)丟失的方法。
【背景技術(shù)】
[0002]圖1圖示其中多個(gè)服務(wù)器通過外部網(wǎng)絡(luò)連接到多個(gè)外部存儲(chǔ)器的狀態(tài)。服務(wù)器將數(shù)據(jù)傳輸至存儲(chǔ)設(shè)備(存儲(chǔ)系統(tǒng)、存儲(chǔ)器)并且在存儲(chǔ)設(shè)備中存儲(chǔ)數(shù)據(jù)。在服務(wù)器上運(yùn)行的存儲(chǔ)應(yīng)用經(jīng)由OS的文件系統(tǒng)將數(shù)據(jù)傳遞至HBA(主機(jī)總線適配器)設(shè)備驅(qū)動(dòng)。HBA將數(shù)據(jù)發(fā)送至被稱作光纖信道的數(shù)據(jù)傳輸路徑。數(shù)據(jù)經(jīng)由存在于光纖信道的中間處的SAN(存儲(chǔ)區(qū)域網(wǎng)絡(luò))到達(dá)外部存儲(chǔ)器,并且存儲(chǔ)在該外部存儲(chǔ)器中。
[0003]外部網(wǎng)絡(luò)包括各種組件,這些組件被包括在外部網(wǎng)絡(luò)的數(shù)據(jù)傳輸路徑中。當(dāng)通過外部網(wǎng)絡(luò)傳輸數(shù)據(jù)時(shí),服務(wù)器可能未能如所期待的那樣使得全部數(shù)據(jù)到達(dá)存儲(chǔ)器并且部分?jǐn)?shù)據(jù)可能丟失。數(shù)據(jù)丟失是數(shù)據(jù)完整性中的關(guān)鍵問題。
[0004]從技術(shù)方面來說,在連接諸如服務(wù)器的信息設(shè)備的數(shù)據(jù)傳輸部分中進(jìn)行校驗(yàn)和(check sum)或CRC(循環(huán)冗余校驗(yàn))。然而,在處理在諸如服務(wù)器的信息設(shè)備之間的數(shù)據(jù)傳輸中的數(shù)據(jù)傳遞的功能失敗的情況下,這樣的校驗(yàn)功能并不有效。校驗(yàn)功能并不是目的為在OS級(jí)別獲得數(shù)據(jù)連續(xù)性(檢測(cè)數(shù)據(jù)丟失)的技術(shù)。
[0005]在PTLl中,在已經(jīng)傳輸了在文件系統(tǒng)中所存儲(chǔ)的數(shù)據(jù)之后,使用哈希值(hashvalue)來校驗(yàn)數(shù)據(jù),并且如果檢測(cè)到錯(cuò)誤,則將重新發(fā)送全部數(shù)據(jù)。
[0006]在PTL2中,為了在服務(wù)器之間確定地傳輸數(shù)據(jù),數(shù)據(jù)在被分割為片段(piece)的同時(shí)被傳輸,并且為每一片段生成哈希值,而通過使用連續(xù)的數(shù)字來校驗(yàn)數(shù)據(jù)丟失。
[0007]專利文獻(xiàn)
[0008]PTLl:日本未審查的專利申請(qǐng)公開N0.2002-268542
[0009]PTL2:日本未審查的專利申請(qǐng)公開N0.2004-185188
【發(fā)明內(nèi)容】
[0010]技術(shù)問題
[0011]然而,在所引用的文獻(xiàn)中,僅支持文件系統(tǒng)中的數(shù)據(jù)。此外,通過相關(guān)領(lǐng)域的技術(shù),不能在OS級(jí)別實(shí)時(shí)地獲得數(shù)據(jù)連續(xù)性。也就是說,需要確保數(shù)據(jù)連續(xù)性,其中數(shù)據(jù)塊的流不被中斷。特別地,在檢測(cè)大量數(shù)據(jù)的部分的丟失的情況下,在已經(jīng)傳輸了全部數(shù)據(jù)之后進(jìn)行這樣的檢測(cè),這帶來時(shí)間浪費(fèi)。
[0012]相應(yīng)地,本發(fā)明的一個(gè)目標(biāo)是檢測(cè)在數(shù)據(jù)傳輸?shù)膬啥说男畔⒃O(shè)備中的數(shù)據(jù)的丟失(數(shù)據(jù)的缺失)并且確保數(shù)據(jù)連續(xù)性。
[0013]本發(fā)明的另一目標(biāo)是在應(yīng)用級(jí)別在數(shù)據(jù)連續(xù)性方面確保數(shù)據(jù)完整性。
[0014]對(duì)問題的解決方案[0015]為此目的,本發(fā)明提供了檢測(cè)在第一信息設(shè)備和第二信息設(shè)備之間的傳輸數(shù)據(jù)中的數(shù)據(jù)丟失的方法,所述第一信息設(shè)備具有經(jīng)由第一緩沖器來傳輸數(shù)據(jù)的應(yīng)用,所述第二信息設(shè)備通過外部網(wǎng)絡(luò)連接至第一信息設(shè)備以便能夠與第一信息設(shè)備通信,并且該第二信息設(shè)備在第二緩沖器中存儲(chǔ)所述傳輸數(shù)據(jù),所述傳輸數(shù)據(jù)是由第一信息設(shè)備的應(yīng)用所傳輸?shù)臄?shù)據(jù)。在此,該方法包括:
[0016](a)在第一信息設(shè)備中,將由該應(yīng)用在第一緩沖器中所積累的用于寫入的傳輸數(shù)據(jù)在時(shí)間的傳輸方向上分割為片段、讀取分割的數(shù)據(jù)片段中的每一個(gè)(每個(gè)分割的數(shù)據(jù)片段)、對(duì)于所述分割的數(shù)據(jù)片段生成哈希值、并將生成的哈希值存儲(chǔ)于該第一信息設(shè)備中的專用緩沖器中作為寫入哈希值的步驟;
[0017](b)在第一信息設(shè)備中,通過將該寫入哈希值與在該第一緩沖器中存儲(chǔ)的傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)而將該寫入哈希值從該第一信息設(shè)備發(fā)送至該第二信息設(shè)備的步驟;
[0018](c)在第二信息設(shè)備中,接收由該應(yīng)用所發(fā)送的傳輸數(shù)據(jù)、將所接收的傳輸數(shù)據(jù)存儲(chǔ)在該第二緩沖器中、接收所述寫入哈希值、并且通過將該寫入哈希值與在該傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)來將該寫入哈希值存儲(chǔ)在該第二信息設(shè)備中的專用緩沖器中的步驟;
[0019](d)在第二信息設(shè)備中,讀取在該第二緩沖器中所存儲(chǔ)的分割的數(shù)據(jù)片段、對(duì)該分割的數(shù)據(jù)片段生成哈希值、并且將所生成的哈希值存儲(chǔ)于該第二信息設(shè)備中的專用緩沖器中作為讀取哈希值的步驟;
[0020](e)比較在專用緩沖器中存儲(chǔ)的寫入哈希值與讀取哈希值的步驟;和
[0021](f)在兩個(gè)哈希值在比較中不匹配的情況下,確定在傳輸分割的數(shù)據(jù)片段時(shí)已經(jīng)從該傳輸數(shù)據(jù)丟失了數(shù)據(jù)的步驟。
[0022]此外,為此目的,本發(fā)明提供了檢測(cè)在第一信息設(shè)備和第二信息設(shè)備之間的傳輸數(shù)據(jù)中的數(shù)據(jù)丟失的方法,所述第一信息設(shè)備具有經(jīng)由第一緩沖器傳輸數(shù)據(jù)的應(yīng)用,所述第二信息設(shè)備通過外部網(wǎng)絡(luò)連接至第一信息設(shè)備以便能夠與第一信息設(shè)備通信,并且該第二信息設(shè)備將傳輸數(shù)據(jù)存儲(chǔ)在第二緩沖器中,所述傳輸數(shù)據(jù)是由第一信息設(shè)備的應(yīng)用所傳輸?shù)臄?shù)據(jù),所述方法由第一信息設(shè)備執(zhí)行。在此,該方法包括:
[0023](a)將由該應(yīng)用在第一緩沖器中所積累的用于寫入的傳輸數(shù)據(jù)在時(shí)間的傳輸方向上分割為片段、讀取分割的數(shù)據(jù)片段中的每一個(gè)(每個(gè)分割的數(shù)據(jù)片段)、對(duì)于分割的數(shù)據(jù)片段生成哈希值、并將生成的哈希值存儲(chǔ)于該第一信息設(shè)備中的專用緩沖器中作為寫入哈希值的步驟;和
[0024](b)通過將該寫入哈希值與由該應(yīng)用在該第一緩沖器中存儲(chǔ)的傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)而將該寫入哈希值從第一信息設(shè)備發(fā)送至第二信息設(shè)備的步驟。
[0025]此外,為此目的,本發(fā)明提供了檢測(cè)在第一信息設(shè)備和第二信息設(shè)備之間的傳輸數(shù)據(jù)中的數(shù)據(jù)丟失的方法,所述第一信息設(shè)備具有經(jīng)由第一緩沖器傳輸數(shù)據(jù)的應(yīng)用,所述第二信息設(shè)備通過外部網(wǎng)絡(luò)連接至第一信息設(shè)備以便能夠與第一信息設(shè)備通信,并且該第二信息設(shè)備將傳輸數(shù)據(jù)存儲(chǔ)在第二緩沖器中,所述傳輸數(shù)據(jù)是由第一信息設(shè)備的應(yīng)用所傳輸?shù)臄?shù)據(jù),該方法在第一信息設(shè)備執(zhí)行如下步驟的情況下由第二信息設(shè)備執(zhí)行:(a)將由該應(yīng)用在第一緩沖器中所積累的用于寫入的傳輸數(shù)據(jù)在時(shí)間的傳輸方向上分割為片段、讀取分割的數(shù)據(jù)片段中的每一個(gè)(每個(gè)分割的數(shù)據(jù)片段)、對(duì)于分割的數(shù)據(jù)片段生成哈希值、并將生成的哈希值存儲(chǔ)于該第一信息設(shè)備中的專用緩沖器中作為寫入哈希值的步驟,和
(b)通過將該寫入哈希值與由該應(yīng)用在該第一緩沖器中存儲(chǔ)的傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)而將該寫入哈希值從第一信息設(shè)備發(fā)送至第二信息設(shè)備的步驟。在此,該方法包括:
[0026](c)在第二信息設(shè)備中,接收由該應(yīng)用所發(fā)送的傳輸數(shù)據(jù)、將所接收的傳輸數(shù)據(jù)存儲(chǔ)在第二緩沖器中、接收所述寫入哈希值、并且通過將該寫入哈希值與在傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)來將寫入哈希值存儲(chǔ)在第二信息設(shè)備中的專用緩沖器中的步驟;
[0027](d)在第二信息設(shè)備中,讀取在第二緩沖器中所存儲(chǔ)的分割的數(shù)據(jù)片段、對(duì)于分割的數(shù)據(jù)片段生成哈希值、并且將所生成的哈希值存儲(chǔ)于第二信息設(shè)備中的專用緩沖器中作為讀取哈希值的步驟。
[0028]該方法還包括
[0029](e)比較在該專用緩沖器中存儲(chǔ)的寫入哈希值與讀取哈希值的步驟;和
[0030](f)在兩個(gè)哈希值在比較中不匹配的情況下,確定在傳輸分割的數(shù)據(jù)片段時(shí)已經(jīng)從該傳輸數(shù)據(jù)丟失了數(shù)據(jù)的步驟。
[0031]此外,步驟(e)是比較在第二信息設(shè)備中的專用緩沖器中存儲(chǔ)的寫入哈希值和讀取哈希值的步驟。
[0032]此外,分割的數(shù)據(jù)片段是傳輸數(shù)據(jù)中的固定量的數(shù)據(jù),并且對(duì)該固定量的傳輸數(shù)據(jù)來計(jì)算哈希值。
[0033]此外,分割的數(shù)據(jù)片段是由該應(yīng)用在固定時(shí)間段期間存儲(chǔ)在第一緩沖器中的可變量的數(shù)據(jù),并且對(duì)該可變量的分割的數(shù)據(jù)片段來計(jì)算哈希值。
[0034]此外,步驟(f)是在已經(jīng)檢測(cè)到從傳輸數(shù)據(jù)的數(shù)據(jù)丟失的情況下進(jìn)一步進(jìn)行恢復(fù)(restoration)處理(再次將分割的數(shù)據(jù)片段寫入到第二信息設(shè)備中)的步驟。
[0035]此外,本發(fā)明提供了檢測(cè)在第一信息設(shè)備和第二信息設(shè)備之間的傳輸數(shù)據(jù)中的數(shù)據(jù)丟失的程序,所述第一信息設(shè)備具有經(jīng)由第一緩沖器來傳輸數(shù)據(jù)的應(yīng)用,所述第二信息設(shè)備通過外部網(wǎng)絡(luò)連接至第一信息設(shè)備以便能夠與第一信息設(shè)備通信,并且該第二信息設(shè)備在第二緩沖器中存儲(chǔ)所述傳輸數(shù)據(jù),所述傳輸數(shù)據(jù)是由第一信息設(shè)備的應(yīng)用所傳輸?shù)臄?shù)據(jù),所述程序由第一信息設(shè)備執(zhí)行。在此,所述程序致使第一信息設(shè)備執(zhí)行:
[0036](a)將由該應(yīng)用在第一緩沖器中所積累的用于寫入的傳輸數(shù)據(jù)在時(shí)間的傳輸方向上分割為片段、讀取分割的數(shù)據(jù)片段中的每一個(gè)(每個(gè)分割的數(shù)據(jù)片段)、對(duì)于分割的數(shù)據(jù)片段生成哈希值、并將生成的哈希值存儲(chǔ)于該第一信息設(shè)備中的專用緩沖器中作為寫入哈希值的步驟;和
[0037](b)通過將該寫入哈希值與由該應(yīng)用在該第一緩沖器中存儲(chǔ)的傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)而將該寫入哈希值從第一信息設(shè)備發(fā)送至第二信息設(shè)備的步驟。
[0038]此外,本發(fā)明提供了檢測(cè)在第一信息設(shè)備和第二信息設(shè)備之間的傳輸數(shù)據(jù)中的數(shù)據(jù)丟失的程序,所述第一信息設(shè)備具有經(jīng)由第一緩沖器傳輸數(shù)據(jù)的應(yīng)用,所述第二信息設(shè)備通過外部網(wǎng)絡(luò)連接至第一信息設(shè)備以便能夠與第一信息設(shè)備通信,并且該第二信息設(shè)備將傳輸數(shù)據(jù)存儲(chǔ)在第二緩沖器中,所述傳輸數(shù)據(jù)是由第一信息設(shè)備的應(yīng)用所傳輸?shù)臄?shù)據(jù),該程序在第一信息設(shè)備執(zhí)行如下步驟的情況下由第二信息設(shè)備來執(zhí)行:(a)將由該應(yīng)用在第一緩沖器中所積累的用于寫入的傳輸數(shù)據(jù)在時(shí)間的傳輸方向上分割為片段、讀取分割的數(shù)據(jù)片段中的每一個(gè)(每個(gè)分割的數(shù)據(jù)片段)、對(duì)于分割的數(shù)據(jù)片段生成哈希值、并將生成的哈希值存儲(chǔ)于該第一信息設(shè)備中的專用緩沖器中作為寫入哈希值的步驟,和(b)通過將該寫入哈希值與由該應(yīng)用在該第一緩沖器中存儲(chǔ)的傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)而將該寫入哈希值從第一信息設(shè)備發(fā)送至第二信息設(shè)備的步驟。在此,該程序致使第二信息設(shè)備執(zhí)行:
[0039](C)接收由該應(yīng)用所發(fā)送的傳輸數(shù)據(jù)、將所接收的傳輸數(shù)據(jù)存儲(chǔ)在第二緩沖器中、接收所述寫入哈希值、并且通過將該寫入哈希值與在傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)來將該寫入哈希值存儲(chǔ)在第二信息設(shè)備中的專用緩沖器中的步驟;
[0040](d)讀取在第二緩沖器中所存儲(chǔ)的分割的數(shù)據(jù)片段、對(duì)分割的數(shù)據(jù)片段生成哈希值、并且將所生成的哈希值存儲(chǔ)于第二信息設(shè)備中的專用緩沖器中作為讀取哈希值的步驟。
[0041]此外,本發(fā)明提供了檢測(cè)在第一信息設(shè)備和第二信息設(shè)備之間的傳輸數(shù)據(jù)中的數(shù)據(jù)丟失的第一信息設(shè)備,所述第一信息設(shè)備具有經(jīng)由第一緩沖器傳輸數(shù)據(jù)的應(yīng)用,所述第二信息設(shè)備通過外部網(wǎng)絡(luò)連接至第一信息設(shè)備以便能夠與第一信息設(shè)備通信,并且該第二信息設(shè)備將傳輸數(shù)據(jù)存儲(chǔ)在第二緩沖器中,所述傳輸數(shù)據(jù)是由第一信息設(shè)備的應(yīng)用所傳輸?shù)臄?shù)據(jù)。在此,第一信息設(shè)備執(zhí)行:
[0042](a)將由該應(yīng)用在第一緩沖器中所積累的用于寫入的傳輸數(shù)據(jù)在時(shí)間的傳輸方向上分割為片段、讀取分割的數(shù)據(jù)片段中的每一個(gè)(每個(gè)分割的數(shù)據(jù)片段)、對(duì)于分割的數(shù)據(jù)片段生成哈希值、并將生成的哈希值存儲(chǔ)于該第一信息設(shè)備中的專用緩沖器中作為寫入哈希值的步驟;和
[0043](b)通過將該寫入哈希值與由該應(yīng)用在該第一緩沖器中存儲(chǔ)的傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)而將該寫入哈希值從第一信息設(shè)備發(fā)送至第二信息設(shè)備的步驟。
[0044]此外,本發(fā)明提供了檢測(cè)在第一信息設(shè)備和第二信息設(shè)備之間的傳輸數(shù)據(jù)中的數(shù)據(jù)丟失的第二信息設(shè)備,所述第一信息設(shè)備具有經(jīng)由第一緩沖器傳輸數(shù)據(jù)的應(yīng)用,所述第二信息設(shè)備通過外部網(wǎng)絡(luò)連接至第一信息設(shè)備以便能夠與第一信息設(shè)備通信,并且該第二信息設(shè)備將傳輸數(shù)據(jù)存儲(chǔ)在第二緩沖器中,所述傳輸數(shù)據(jù)是由第一信息設(shè)備的應(yīng)用所傳輸?shù)臄?shù)據(jù),該第二信息設(shè)備在第一信息設(shè)備執(zhí)行如下步驟的情況下檢測(cè)傳輸數(shù)據(jù)中的數(shù)據(jù)丟失:(a)將由該應(yīng)用在第一緩沖器中所積累的用于寫入的傳輸數(shù)據(jù)分割為在時(shí)間的傳輸方向上的片段、讀取分割的數(shù)據(jù)片段中的每一個(gè)(每個(gè)分割的數(shù)據(jù)片段)、生成對(duì)于分割的數(shù)據(jù)片段的哈希值、并將生成的哈希值存儲(chǔ)于該第一信息設(shè)備中的專用緩沖器中作為寫入哈希值的步驟,和(b)通過將該寫入哈希值與由該應(yīng)用在該第一緩沖器中存儲(chǔ)的傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)而將該寫入哈希值從第一信息設(shè)備發(fā)送至第二信息設(shè)備的步驟。在此,第二信息設(shè)備執(zhí)行:
[0045](C)接收由該應(yīng)用所發(fā)送的傳輸數(shù)據(jù)、將所接收的傳輸數(shù)據(jù)存儲(chǔ)在第二緩沖器中、接收所述寫入哈希值、并且通過將該寫入哈希值與在傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)來將該寫入哈希值存儲(chǔ)在第二信息設(shè)備中的專用緩沖器中的步驟;和
[0046](d)讀取在第二緩沖器中所存儲(chǔ)的分割的數(shù)據(jù)片段、對(duì)分割的數(shù)據(jù)片段生成哈希值、并且將所生成的哈希值存儲(chǔ)于第二信息設(shè)備中的專用緩沖器中作為讀取哈希值的步驟。
[0047]本發(fā)明的有利效果
[0048]通過利用上述手段,可以在連接至外部網(wǎng)絡(luò)的信息設(shè)備之間的數(shù)據(jù)傳輸期間實(shí)時(shí)地檢測(cè)數(shù)據(jù)丟失。
【專利附圖】
【附圖說明】
[0049][圖1]圖示其中多個(gè)服務(wù)器通過外部網(wǎng)絡(luò)連接至多個(gè)外部存儲(chǔ)器的狀態(tài)。
[0050][圖2]圖示構(gòu)成網(wǎng)絡(luò)存儲(chǔ)器的設(shè)備、這些設(shè)備的H/W和S/W配置和由本發(fā)明所覆蓋的其中可能發(fā)生數(shù)據(jù)丟失的范圍。
[0051][圖3]是圖示根據(jù)本發(fā)明的使用哈希值的方法的示意圖。
[0052][圖4]是圖示根據(jù)本發(fā)明的對(duì)于分割的數(shù)據(jù)片段段的數(shù)據(jù)丟失檢的流程。
[0053][圖5]圖示其中進(jìn)行交換和比較用于哈希校驗(yàn)的三種情況。
[0054][圖6]是圖示根據(jù)本發(fā)明的使用多種類型的哈希值的方法的示意圖。
【具體實(shí)施方式】
[0055]下文中將描述涉及數(shù)據(jù)從服務(wù)器傳輸至外部存儲(chǔ)器并且被寫入至該外部存儲(chǔ)器中的情況的實(shí)施例(示例性實(shí)施例)。請(qǐng)注意,本發(fā)明一般地適用于在通過外部網(wǎng)絡(luò)彼此連接的信息設(shè)備之間端到端地驗(yàn)證數(shù)據(jù)完整性的情況。
[0056]圖2圖示構(gòu)成網(wǎng)絡(luò)存儲(chǔ)器的設(shè)備、這些設(shè)備的H/W和S/W配置、和由本發(fā)明所覆蓋的其中可能發(fā)生數(shù)據(jù)丟失的范圍。在以諸如應(yīng)用級(jí)別或OS級(jí)別的較高級(jí)別的數(shù)據(jù)傳輸中,對(duì)于固定大小的傳輸數(shù)據(jù)或者對(duì)于在固定時(shí)間段所傳輸?shù)臄?shù)據(jù),在服務(wù)器側(cè)和存儲(chǔ)側(cè)計(jì)算哈希值。比較這兩個(gè)哈希值,實(shí)時(shí)地檢測(cè)以較低級(jí)別的數(shù)據(jù)傳輸中的故障,并且驗(yàn)證數(shù)據(jù)完整性。在此,如在圖2中所圖示的,執(zhí)行指令以將數(shù)據(jù)寫到外部網(wǎng)絡(luò)/從外部網(wǎng)絡(luò)讀取數(shù)據(jù)的端到端設(shè)備20、22和24中的0S25、應(yīng)用21和存儲(chǔ)控制軟件30被稱作較高級(jí)別。較低級(jí)別是低于這些較高級(jí)別的級(jí)別,并且包括參與數(shù)據(jù)傳輸?shù)腍/W27和29以及S/W資源28。
[0057]在較低級(jí)別的數(shù)據(jù)傳輸中,由于在較低級(jí)別的數(shù)據(jù)處理邏輯中的缺陷,合適的完成通知不是一定被遞送至較高級(jí)別。例如,在要傳輸具有大的大小的數(shù)據(jù)的情況下,數(shù)據(jù)被分割成較小的片段并且傳輸。即使響應(yīng)于在分割和傳輸期間一些故障的發(fā)生而進(jìn)行錯(cuò)誤處理,在較低級(jí)別進(jìn)行的錯(cuò)誤處理對(duì)于較高級(jí)別而言可能并不合適。即使較高級(jí)別確定傳輸已經(jīng)成功地完成,也可能出現(xiàn)在數(shù)據(jù)流中間的數(shù)據(jù)實(shí)際上還沒有被傳輸?shù)那闆r。在這種情況下,在較高級(jí)別的數(shù)據(jù)連續(xù)性方面,可以通過重試命令來避免由于數(shù)據(jù)流中間的數(shù)據(jù)還未被傳輸而發(fā)生數(shù)據(jù)丟失。
[0058]通過合并驗(yàn)證較高級(jí)別處的數(shù)據(jù)連續(xù)性的部件23和25,可以檢測(cè)在較低級(jí)別的范圍內(nèi)利用H/W(硬件)和S/W(軟件)配置不可檢測(cè)的數(shù)據(jù)丟失。服務(wù)器20使用AIX作為0S25并且運(yùn)行存儲(chǔ)應(yīng)用21。服務(wù)器22使用LINUX作為0S25并且運(yùn)行存儲(chǔ)應(yīng)用21。服務(wù)器20和22每個(gè)經(jīng)由網(wǎng)卡29(例如HBA:主機(jī)總線適配器29)、其驅(qū)動(dòng)其28和通信線27連接至光纖信道開關(guān)26。存儲(chǔ)系統(tǒng)24通過使用存儲(chǔ)控制軟件30來從記錄介質(zhì)讀取數(shù)據(jù)/將數(shù)據(jù)寫入到記錄介質(zhì)。存儲(chǔ)系統(tǒng)24通過使用例如HBA29和其驅(qū)動(dòng)器28經(jīng)由通信線27連接至光纖信道開關(guān)26。光纖信道開關(guān)26構(gòu)成外部網(wǎng)絡(luò),也就是SAN(存儲(chǔ)區(qū)域網(wǎng)路)。
[0059]服務(wù)器20和22 (傳輸側(cè))的部件23和存儲(chǔ)系統(tǒng)24 (接收側(cè))的部件35被插入在較高級(jí)別和較低級(jí)別之間,并且實(shí)現(xiàn)本發(fā)明的功能。將在圖4的處理流程中圖示本發(fā)明的功能的細(xì)節(jié)。本發(fā)明的部件23與由應(yīng)用21進(jìn)行的用于寫入的數(shù)據(jù)傳輸處理協(xié)力進(jìn)行數(shù)據(jù)緩沖、哈希值、比較哈希值等。需要執(zhí)行實(shí)現(xiàn)本發(fā)明的功能的復(fù)制命令和比較命令。這樣的命令功能可以被并入至0S25的庫(kù)功能中,或者可以被并入至存儲(chǔ)應(yīng)用21的庫(kù)中。
[0060]將描述在較低級(jí)別處端對(duì)端地發(fā)生的數(shù)據(jù)丟失的原因的示例。
[0061]作為第一示例,將要描述其中光纜(fiber cable)斷開連接并且發(fā)生部分?jǐn)?shù)據(jù)的丟失但是數(shù)據(jù)被寫入到存儲(chǔ)器中的情況。FC線纜的一個(gè)路徑在數(shù)據(jù)傳輸期間斷開連接,并且發(fā)生在數(shù)據(jù)流中間的數(shù)據(jù)的丟失。當(dāng)讀取存儲(chǔ)器中的與寫入地址相對(duì)應(yīng)的部分時(shí),先前寫入的數(shù)據(jù)被讀取。即使FC線纜的一個(gè)路徑斷開連接,只要其他路徑是有效的,數(shù)據(jù)就應(yīng)當(dāng)被傳輸。數(shù)據(jù)的丟失是由于在驅(qū)動(dòng)器中的FC協(xié)議中的問題引起的。在下一示例中,甚至在存儲(chǔ)器之間進(jìn)行數(shù)據(jù)傳輸?shù)那闆r下,也發(fā)生數(shù)據(jù)的丟失。在連接至外部網(wǎng)絡(luò)的存儲(chǔ)器之間進(jìn)行復(fù)制的情況下,在寫入目的地存儲(chǔ)器中發(fā)生數(shù)據(jù)的丟失。管理網(wǎng)絡(luò)訪問的在存儲(chǔ)器側(cè)的固件具有小缺陷(bug)。由于當(dāng)數(shù)據(jù)從傳輸源傳輸至傳輸目的地時(shí)所使用的由該小缺陷引起的錯(cuò)誤的傳輸目的地地址,發(fā)生數(shù)據(jù)的丟失。數(shù)據(jù)傳輸?shù)藉e(cuò)誤地址被認(rèn)為是在數(shù)據(jù)傳輸期間發(fā)生的數(shù)據(jù)丟失。
[0062]圖3圖示其中對(duì)于分割的數(shù)據(jù)片段30計(jì)算哈希值、將該哈希值與分割的數(shù)據(jù)片段30相關(guān)聯(lián)作為寫入哈希值32并且存儲(chǔ)在專用緩沖器38中的圖像。假設(shè)在服務(wù)器70中運(yùn)行的應(yīng)用21被記錄在記錄介質(zhì)中,并且執(zhí)行指令以將大量的數(shù)據(jù)寫入存儲(chǔ)器73中。應(yīng)用21暫時(shí)地將傳輸數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器區(qū)域(緩沖器)41。本發(fā)明的部件23經(jīng)由應(yīng)用庫(kù)或0S25將傳輸數(shù)據(jù)暫時(shí)地存儲(chǔ)在專用緩沖器38中。
[0063]專用緩沖器38用于本發(fā)明的部件23。應(yīng)用21不需要管理和使用專用緩沖器38,并且因此專用緩沖器38與緩沖器41區(qū)分開。用于應(yīng)用21的緩沖器41和用于本發(fā)明軟件的專用緩沖器38可以通過將DRAM分區(qū)來使用物理上連續(xù)的DRAM。對(duì)于存儲(chǔ)器73,與在服務(wù)器70的上述情況相類似地應(yīng)用緩沖器管理。專用緩沖器38用于本發(fā)明的部件25。存儲(chǔ)器73的存儲(chǔ)控制軟件30不需要管理和使用專用緩沖器39,并且因此專用緩沖器39與緩沖器42區(qū)分開。
[0064]本發(fā)明的部件23對(duì)于通過分割數(shù)據(jù)所獲得的每個(gè)數(shù)據(jù)片段(分割的數(shù)據(jù)片段30)管理暫時(shí)存儲(chǔ)在緩沖器41中并且要被傳輸?shù)脑摂?shù)據(jù)進(jìn)行管理,數(shù)據(jù)片段是對(duì)其計(jì)算哈希值的單位。請(qǐng)注意,分割的數(shù)據(jù)片段30不是用于傳輸?shù)臄?shù)據(jù)單位。基于通信協(xié)議來確定傳輸?shù)膯挝?。本發(fā)明不意圖改變傳輸?shù)膯挝弧1景l(fā)明的部件23從在應(yīng)用21的緩沖器41中所存儲(chǔ)的數(shù)據(jù)中指定分割的數(shù)據(jù)片段30,與數(shù)據(jù)傳輸處理分離地對(duì)其計(jì)算哈希值。本發(fā)明的部件23從分割的數(shù)據(jù)片段30中生成寫入哈希值32,并且將所生成的值暫時(shí)地存儲(chǔ)在專用緩沖器38中。
[0065]只要寫入哈希值32和分割的數(shù)據(jù)片段30彼此相關(guān)聯(lián),它們就可以彼此分離并且被存儲(chǔ)。寫入哈希值32與分割的數(shù)據(jù)片段30相關(guān)聯(lián),并且與分割的數(shù)據(jù)片段30分離地被發(fā)送。需要將每個(gè)哈希值與相應(yīng)的分割的數(shù)據(jù)片段相關(guān)聯(lián)。為其生成哈希值的分割的數(shù)據(jù)片段是在應(yīng)用21的緩沖器41中存儲(chǔ)的傳輸數(shù)據(jù)的部分。對(duì)于每個(gè)哈希值,除了哈希值自身的值之外,還給出用于關(guān)聯(lián)的屬性信息。例如,屬性信息包括鏈接的列表,用于將存儲(chǔ)在緩沖器41中的傳輸數(shù)據(jù)中的每個(gè)分割的數(shù)據(jù)片段與哈希值相鏈接用于編索引(indexing)。用于編索引的索引(index)包括來自緩沖器41的頭地址的開始地址(偏移)位置、固定數(shù)目的字節(jié)等。通過向?qū)懭牍V到o出包括了在其中包含這些索引的鏈接的列表的屬性信息,將寫入哈希值32存儲(chǔ)在緩沖器38中。
[0066]請(qǐng)注意,在圖3中,在正在傳輸?shù)臄?shù)據(jù)36中,分割的數(shù)據(jù)片段30和寫入哈希值32被結(jié)合在一起。在實(shí)際傳輸序列中,應(yīng)用21并沒有識(shí)別出哈希值的存在。因此,通過本發(fā)明的部件23所處理的哈希值32和由應(yīng)用21所發(fā)送的傳輸數(shù)據(jù)彼此相分離并且被發(fā)送。
[0067]存儲(chǔ)器73接收已被傳輸?shù)姆指畹臄?shù)據(jù)片段30,并且將其存儲(chǔ)在緩沖器42中。所傳輸?shù)膶懭牍V?2通過與示意性圖示的相應(yīng)的分割的數(shù)據(jù)片段30相配對(duì)而類似地被存儲(chǔ)在緩沖器39中。寫入哈希值32和分割的數(shù)據(jù)片段30可以彼此分離地被存儲(chǔ),只要它們彼此相關(guān)聯(lián)。存儲(chǔ)器73從在緩沖器42中存儲(chǔ)的分割的數(shù)據(jù)片段30中計(jì)算讀取哈希值34,并且將所計(jì)算的值存儲(chǔ)在緩沖器39中。在存儲(chǔ)器73的緩沖器39中,存在寫入哈希值32和讀取哈希值34。在下文中描述的圖4中的流程的步驟5中,本發(fā)明的部件25將寫入哈希值32與讀取哈希值34相比較。
[0068]圖4圖示根據(jù)本發(fā)明的基于分割的數(shù)據(jù)片段的數(shù)據(jù)完整性驗(yàn)證的流程。將結(jié)合附圖來描述本發(fā)明的生成(計(jì)算)、交換和比較寫入哈希值和讀取哈希值的流程。
[0069]步驟I (40):在數(shù)據(jù)傳輸側(cè)和數(shù)據(jù)接收側(cè)分別確保(secure)用于哈希值的存儲(chǔ)區(qū)域(專用緩沖器)38和39。
[0070]例如,在圖3中,數(shù)據(jù)傳輸側(cè)是服務(wù)器70,而數(shù)據(jù)接收側(cè)是存儲(chǔ)器73。作為所計(jì)算的哈希值的保存區(qū)域,在用于傳輸數(shù)據(jù)的存儲(chǔ)區(qū)域(存儲(chǔ)器區(qū)域、緩沖器)41和42中的未使用的區(qū)域可以被用作暫時(shí)工作區(qū)。
[0071]步驟2(44或46):在數(shù)據(jù)傳輸側(cè),對(duì)于每固定量的數(shù)據(jù)或者對(duì)于在固定時(shí)間段期間的每數(shù)據(jù)量計(jì)算并存儲(chǔ)寫入哈希值。在數(shù)據(jù)傳輸側(cè),對(duì)于每固定量的數(shù)據(jù)計(jì)算寫入哈希值(44)??商鎿Q地,對(duì)于在已經(jīng)預(yù)先設(shè)置的時(shí)間段期間已傳輸?shù)拿繑?shù)據(jù)量計(jì)算寫入哈希值
(46)。如果數(shù)據(jù)傳輸速率不是恒定的,則在對(duì)每固定量的數(shù)據(jù)進(jìn)行計(jì)算的情況下,花費(fèi)時(shí)間來校驗(yàn)在速率降低的時(shí)段期間正在傳輸?shù)姆指畹臄?shù)據(jù)片段,并且不能實(shí)時(shí)地驗(yàn)證數(shù)據(jù)連續(xù)性。
[0072]步驟3(47):通過將寫入哈希值與相應(yīng)的分割的數(shù)據(jù)片段相關(guān)聯(lián)而將寫入哈希值從數(shù)據(jù)傳輸側(cè)發(fā)送至數(shù)據(jù)接收側(cè)。
[0073]步驟4 (48或49):對(duì)于每固定量的數(shù)據(jù)或者對(duì)于在固定時(shí)間段期間傳輸?shù)拿繑?shù)據(jù)量計(jì)算讀取哈希值并且將其存儲(chǔ)在數(shù)據(jù)接收側(cè)。在數(shù)據(jù)接收側(cè),對(duì)于每固定量的數(shù)據(jù)計(jì)算讀取哈希值(48)。替換地,以已經(jīng)預(yù)先設(shè)置的間隔計(jì)算讀取哈希值(49)。
[0074]在接收側(cè),通過使用對(duì)于相同的分割的數(shù)據(jù)片段在傳輸側(cè)已經(jīng)使用過的哈希計(jì)算來生成讀取哈希值。如果數(shù)據(jù)傳輸速率不是恒定的,則在對(duì)于每固定量的數(shù)據(jù)進(jìn)行計(jì)算的情況下(48),花費(fèi)時(shí)間來校驗(yàn)在速率降低的時(shí)段期間正在傳輸?shù)姆指畹臄?shù)據(jù)片段,并且不能實(shí)時(shí)地驗(yàn)證數(shù)據(jù)連續(xù)性。
[0075]步驟5(50):交換并比較寫入哈希值和讀取哈希值。
[0076]可以通過使用例如對(duì)未使用的邏輯塊地址(LBA)的讀取/寫入命令來進(jìn)行在傳輸側(cè)和接收側(cè)之間的哈希值的交換。也能夠通過擴(kuò)展SCSI命令來交換哈希值。接收到的哈希值分別被存儲(chǔ)在傳輸側(cè)和接收側(cè)的緩沖器中。比較寫入哈希值和讀取哈希值。為了比較哈希值,存在如圖5中所示的三種方法,并且在服務(wù)器中、在存儲(chǔ)器中、或者在它們二者中進(jìn)行比較。如果作為比較的結(jié)果,哈希值相匹配(在25中的“是”),則處理繼續(xù)。如果全部數(shù)據(jù)的傳輸已經(jīng)完成(在60中的“是”),則驗(yàn)證數(shù)據(jù)連續(xù)性,并且確定不存在數(shù)據(jù)的丟失。如果作為比較的結(jié)果,哈希值不相匹配(在52中的“否”),則重試傳輸。重試相同的分割的數(shù)據(jù)片段的傳輸(步驟I至5) (53)。錯(cuò)誤被登記(log)(記錄)。在進(jìn)行哈希值的比較的情況下,以如圖5中所示的三種方式來進(jìn)行錯(cuò)誤的登記,即,在服務(wù)器中,在存儲(chǔ)器中,或者在它們二者中。對(duì)于相同的分割的數(shù)據(jù)片段,進(jìn)行重試達(dá)預(yù)先已設(shè)定的重試數(shù)目(最大值)來(51)。如果重試成功(在52中的“是”),則過程繼續(xù)至下一數(shù)據(jù)傳輸(54)。如果在重試數(shù)目達(dá)到最大值時(shí)重試失敗(在51中的“是”),則將錯(cuò)誤通知發(fā)送至服務(wù)器,并且取消隨后的傳輸(61)。
[0077]圖5圖示用于哈希校驗(yàn)的交換和比較的三種情況。能夠以下述方式在步驟5中實(shí)現(xiàn)哈希值的比較,也就是,(I)在接收側(cè)(存儲(chǔ)器73)、(2)在傳輸側(cè)(服務(wù)器70)、或(3)在這兩側(cè)進(jìn)行比較。這些情況在可靠性方面是不同的,并且可靠性級(jí)別在(3)中最高,其次是
(2),然后是(I)。另一方面,性能級(jí)別在(I)中最高,其次是(2),然后是(3)。在兩側(cè)進(jìn)行哈希值的比較和校驗(yàn)的情況⑶是最可靠的,但是在性能方面其具有缺點(diǎn)。
[0078](I)在存儲(chǔ)器73中進(jìn)行比較的情況:
[0079]在該情況下,寫入哈希值從服務(wù)器70傳輸至存儲(chǔ)器73,并且在存儲(chǔ)器73中進(jìn)行比較。寫入哈希值被寫入到在步驟I中由服務(wù)器70所確定的存儲(chǔ)區(qū)域(專用緩沖器)38中。在寫入命令完成的時(shí)刻,存儲(chǔ)器73從緩沖器38讀取該寫入哈希值。將已讀取的寫入哈希值與已存儲(chǔ)在存儲(chǔ)器73中的讀取哈希值進(jìn)行比較。在這種情況下,SCSI命令導(dǎo)致異常終止,并且在服務(wù)器70中進(jìn)行重試。
[0080](2)在服務(wù)器70中進(jìn)行比較的情況:
[0081 ] 在該情況下,讀取哈希值從存儲(chǔ)器73傳輸至服務(wù)器70,并且在服務(wù)器70中進(jìn)行比較。存儲(chǔ)器73將讀取哈希值寫入到在步驟I中所確定的存儲(chǔ)區(qū)域(專用緩沖器)39中。在寫入命令完成的時(shí)刻,服務(wù)器70從專用緩沖器39讀取該讀取哈希值。將因此已接收的讀取哈希值和已存儲(chǔ)在服務(wù)器70中的緩沖器38中的寫入哈希值進(jìn)行比較。在這種情況下,僅在服務(wù)器70中檢測(cè)到錯(cuò)誤,并且SCSI命令得到成功的完成。
[0082](3)在兩側(cè)進(jìn)行比較的情況:
[0083]在該情況下,分別由服務(wù)器70和存儲(chǔ)器73生成的哈希值被傳輸至彼此,并且在兩側(cè)進(jìn)行比較。在此,通過比較哈希值所獲得的結(jié)果被互相傳送。預(yù)先確定兩個(gè)區(qū)域,也就是,在服務(wù)器70中的存儲(chǔ)寫入哈希值的存儲(chǔ)區(qū)域(專用緩沖器)38和在存儲(chǔ)器73中的存儲(chǔ)讀取哈希值的存儲(chǔ)區(qū)域(專用緩沖器)39。在寫入命令完成的時(shí)刻,每個(gè)設(shè)備(信息設(shè)備)比較哈希值。
[0084]圖6是圖示根據(jù)本發(fā)明的使用多種類型的哈希值的方法的示意圖。本發(fā)明包括對(duì)于單個(gè)分割的數(shù)據(jù)片段使用多個(gè)哈希函數(shù)。需要避免其中即使丟失了分割的數(shù)據(jù)片段、由于寫入哈希值等于讀取哈希值而不能檢測(cè)到連續(xù)性的失敗的情形(沖突)。通過比較對(duì)于相同數(shù)據(jù)的多種類型的哈希值,可以將數(shù)據(jù)丟失的檢測(cè)的遺漏最小化。[0085]示例性實(shí)施例涉及其中對(duì)其計(jì)算哈希值的單位(分割的數(shù)據(jù)片段)在大量數(shù)據(jù)的情況下是固定量的數(shù)據(jù)并且對(duì)該單位來計(jì)算哈希值的情況。通過考慮傳輸速率,用于驗(yàn)證的固定長(zhǎng)度的大小是可配置的。在4Gbps的情況下,如果哈希值的計(jì)算被設(shè)置為對(duì)每200MB的分割的數(shù)據(jù)片段來進(jìn)行,則將每0.5秒進(jìn)行校驗(yàn)。在數(shù)據(jù)量大小方面哈希值小,因此立即完成傳輸和比較。另一方面,在從定位回傳輸字節(jié)的數(shù)目的點(diǎn)讀取數(shù)據(jù)并且進(jìn)行比較用于寫入的確認(rèn)的情況下,需要用于讀取和比較的開銷時(shí)間。如果光纖信道的傳輸速率是4Gbps,這意味著400MB/S。例如,4GB數(shù)據(jù)的傳輸花費(fèi)10秒鐘。因?yàn)樽x取花費(fèi)10秒鐘,如果假設(shè)比較時(shí)間是5秒,則傳輸?shù)拇_認(rèn)將花費(fèi)10+10+5秒,也就是25秒。在本發(fā)明的哈希校驗(yàn)的情況下,如果假設(shè)哈希數(shù)據(jù)具有IKB的大小,則傳輸時(shí)間大約是2.5X10_6。如果傳輸4GB數(shù)據(jù)并且用于哈希計(jì)算的固定長(zhǎng)度是400MB,則哈希值將被傳輸四次。在這種情況下,總傳輸時(shí)間大約是10'寫入和傳輸時(shí)間和哈希值的傳輸時(shí)間的總時(shí)間被認(rèn)為基本上等于寫入和傳輸時(shí)間??梢砸栽趶亩ㄎ换氐狞c(diǎn)讀取數(shù)據(jù)之后進(jìn)行比較的情況下所需時(shí)間的一半或者更少時(shí)間來驗(yàn)證數(shù)據(jù)連續(xù)性。例如,為了驗(yàn)證數(shù)據(jù)連續(xù)性,通常需要執(zhí)行復(fù)制命令和比較命令。如果將本發(fā)明應(yīng)用于OS的庫(kù)函數(shù),則可以僅通過執(zhí)行復(fù)制命令基本沒有開銷時(shí)間地同時(shí)驗(yàn)證連續(xù)性。在Windows中移動(dòng)文件或文件夾的情況下,不能進(jìn)行對(duì)移動(dòng)源文件和移動(dòng)目的地文件的比較。如果應(yīng)用本發(fā)明,則僅通過移動(dòng)操作也確保在移動(dòng)之后的數(shù)據(jù)連續(xù)性。
[0086]在圖6的(I)中圖示其中在哈希值的計(jì)算中對(duì)于單個(gè)分割的數(shù)據(jù)片段使用多個(gè)哈希函數(shù)的情況。在使用哈希值的情況下,可能發(fā)生哈希沖突。因此,使用不同的哈希值,并且對(duì)來自不同哈希值的計(jì)算結(jié)果進(jìn)行比較。如果在所有結(jié)果中確認(rèn)匹配,則確定驗(yàn)證了正常性。以這種方式,避免了哈希值的沖突。如果希望更高的可靠性,則同時(shí)計(jì)算多個(gè)算法,并且進(jìn)行比較。例如,能夠組合以下的SHAl和SHA512。如果多個(gè)哈希函數(shù)(哈希算法)一起使用,則可以降低由于哈希值沖突引起的錯(cuò)(false)識(shí)別的可能性。
【權(quán)利要求】
1.一種檢測(cè)在第一信息設(shè)備和第二信息設(shè)備之間的傳輸數(shù)據(jù)中的數(shù)據(jù)丟失的方法,所述第一信息設(shè)備具有經(jīng)由第一緩沖器來傳輸數(shù)據(jù)的應(yīng)用,所述第二信息設(shè)備通過外部網(wǎng)絡(luò)連接至所述第一信息設(shè)備以便能夠與第一信息設(shè)備通信,并且該第二信息設(shè)備在第二緩沖器中存儲(chǔ)所述傳輸數(shù)據(jù),所述傳輸數(shù)據(jù)是由所述第一信息設(shè)備的應(yīng)用所傳輸?shù)臄?shù)據(jù),該方法包括: (a)在第一信息設(shè)備中,將用于該應(yīng)用的在第一緩沖器中所積累的傳輸數(shù)據(jù)在時(shí)間的傳輸方向上分割為片段、讀取分割的數(shù)據(jù)片段中的每一個(gè)(每個(gè)分割的數(shù)據(jù)片段)、對(duì)于所述分割的數(shù)據(jù)片段生成哈希值、并將生成的哈希值存儲(chǔ)于該第一信息設(shè)備中的專用緩沖器中作為寫入哈希值的步驟; (b)在第一信息設(shè)備中,通過將該寫入哈希值與在該第一緩沖器中存儲(chǔ)的傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)而將該寫入哈希值從該第一信息設(shè)備發(fā)送至該第二信息設(shè)備的步驟; (c)在第二信息設(shè)備中,接收由該應(yīng)用所發(fā)送的傳輸數(shù)據(jù)、將所接收的傳輸數(shù)據(jù)存儲(chǔ)在該第二緩沖器中、接收所述寫入哈希值、并且通過將該寫入哈希值與在該傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)來將該寫入哈希值存儲(chǔ)在該第二信息設(shè)備中的專用緩沖器中的步驟; (d)在第二信息設(shè)備中,讀取在該第二緩沖器中所存儲(chǔ)的分割的數(shù)據(jù)片段、對(duì)該分割的數(shù)據(jù)片段生成哈希值、并且將所生成的哈希值存儲(chǔ)于該第二信息設(shè)備中的專用緩沖器中作為讀取哈希值的步驟; (e)比較在專用緩沖器中存儲(chǔ)的寫入哈希值與讀取哈希值的步驟;和 (f)在兩個(gè)哈希值在比較中不匹配的情況下,確定在傳輸分割的數(shù)據(jù)片段時(shí)已經(jīng)從該傳輸數(shù)據(jù)丟失了數(shù)據(jù)的步驟。
2.一種檢測(cè)在第一信息設(shè)備和第二信息設(shè)備之間的傳輸數(shù)據(jù)中的數(shù)據(jù)丟失的方法,所述第一信息設(shè)備具有經(jīng)由第一緩沖器傳輸數(shù)據(jù)的應(yīng)用, 所述第二信息設(shè)備通過外部網(wǎng)絡(luò)連接至所述第一信息設(shè)備以便能夠與所述第一信息設(shè)備通信,并且該第二信息設(shè)備將傳輸數(shù)據(jù)存儲(chǔ)在第二緩沖器中,所述傳輸數(shù)據(jù)是由所述第一信息設(shè)備的應(yīng)用所傳輸?shù)臄?shù)據(jù),所述方法由該第一信息設(shè)備執(zhí)行,該方法包括: (a)將用于該應(yīng)用的在第一緩沖器中所積累的傳輸數(shù)據(jù)在時(shí)間的傳輸方向上分割為片段、讀取分割的數(shù)據(jù)片段中的每一個(gè)(每個(gè)分割的數(shù)據(jù)片段)、對(duì)于分割的數(shù)據(jù)片段生成哈希值、并將生成的哈希值存儲(chǔ)于該第一信息設(shè)備中的專用緩沖器中作為寫入哈希值的步驟;和 (b)通過將該寫入哈希值與由該應(yīng)用在該第一緩沖器中存儲(chǔ)的傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)而將該寫入哈希值從第一信息設(shè)備發(fā)送至第二信息設(shè)備的步驟。
3.—種檢測(cè)在第一信息設(shè)備和第二信息設(shè)備之間的傳輸數(shù)據(jù)中的數(shù)據(jù)丟失的方法,所述第一信息設(shè)備具有經(jīng)由第一緩沖器傳輸數(shù)據(jù)的應(yīng)用, 所述第二信息設(shè)備通過外部網(wǎng)絡(luò)連接至該第一信息設(shè)備以便能夠與該第一信息設(shè)備通信,并且該第二信息設(shè)備將傳輸數(shù)據(jù)存儲(chǔ)在第二緩沖器中,所述傳輸數(shù)據(jù)是由該第一信息設(shè)備的應(yīng)用所傳輸?shù)臄?shù)據(jù),該方法在第一信息設(shè)備執(zhí)行如下步驟的情況下由第二信息設(shè)備執(zhí)行:(a)將由該應(yīng)用在第一緩沖器中所積累的用于寫入的傳輸數(shù)據(jù)在時(shí)間的傳輸方向上分割為片段、讀取分割的數(shù)據(jù)片段中的每一個(gè)(每個(gè)分割的數(shù)據(jù)片段)、對(duì)于分割的數(shù)據(jù)片段生成哈希值、并將生成的哈希值存儲(chǔ)于該第一信息設(shè)備中的專用緩沖器中作為寫入哈希值的步驟,以及(b)通過將該寫入哈希值與在由該應(yīng)用在該第一緩沖器中存儲(chǔ)的傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)而將該寫入哈希值從第一信息設(shè)備發(fā)送至第二信息設(shè)備的步驟,該方法包括: (C)接收由該應(yīng)用所發(fā)送的傳輸數(shù)據(jù)、將所接收的傳輸數(shù)據(jù)存儲(chǔ)在第二緩沖器中、接收所述寫入哈希值、并且通過將該寫入哈希值與在該傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)來將該寫入哈希值存儲(chǔ)在該第二信息設(shè)備中的專用緩沖器中的步驟;和 (d)讀取在該第二緩沖器中存儲(chǔ)的分割的數(shù)據(jù)片段、對(duì)該分割的數(shù)據(jù)片段生成哈希值、并且將所生成的哈希值存儲(chǔ)于該第二信息設(shè)備中的專用緩沖器中作為讀取哈希值的步驟。
4.根據(jù)權(quán)利要求3所述的方法,還包括: (e)比較在該專用緩沖器中存儲(chǔ)的寫入哈希值與讀取哈希值的步驟;和 (f)在兩個(gè)哈希值在比較中不匹配的情況下,確定在傳輸分割的數(shù)據(jù)片段時(shí)已經(jīng)從該傳輸數(shù)據(jù)丟失了數(shù)據(jù)的步驟。
5.根據(jù)權(quán)利要求4所述的方法,其中,步驟(e)是比較在第二信息設(shè)備中的專用緩沖器中存儲(chǔ)的寫入哈希值和讀取哈希值的步驟。
6.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其中,分割的數(shù)據(jù)片段是該傳輸數(shù)據(jù)中的固定量的數(shù)據(jù),并且對(duì) 該固定量的分割的數(shù)據(jù)片段計(jì)算哈希值。
7.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其中,分割的數(shù)據(jù)片段是在固定時(shí)間段期間由該應(yīng)用在第一緩沖器中積累的可變量的數(shù)據(jù),并且對(duì)該可變量的分割的數(shù)據(jù)片段計(jì)算哈希值。
8.根據(jù)權(quán)利要求4或5所述的方法,其中,檢測(cè)分割的數(shù)據(jù)片段的丟失的步驟(f)是在已經(jīng)從傳輸數(shù)據(jù)中檢測(cè)到數(shù)據(jù)丟失的情況下進(jìn)一步進(jìn)行恢復(fù)處理的步驟。
9.一種檢測(cè)在第一信息設(shè)備和第二信息設(shè)備之間的傳輸數(shù)據(jù)中的數(shù)據(jù)丟失的程序,所述第一信息設(shè)備具有經(jīng)由第一緩沖器來傳輸數(shù)據(jù)的應(yīng)用,所述第二信息設(shè)備通過外部網(wǎng)絡(luò)連接至第一信息設(shè)備以便能夠與第一信息設(shè)備通信,并且該第二信息設(shè)備在第二緩沖器中存儲(chǔ)所述傳輸數(shù)據(jù),所述傳輸數(shù)據(jù)是由第一信息設(shè)備的應(yīng)用所傳輸?shù)臄?shù)據(jù),所述程序由第一信息設(shè)備執(zhí)行,所述程序致使第一信息設(shè)備執(zhí)行: (a)在第一信息設(shè)備中,將用于該應(yīng)用的在第一緩沖器中所積累的傳輸數(shù)據(jù)在時(shí)間的傳輸方向上分割為片段、讀取分割的數(shù)據(jù)片段中的每一個(gè)(每個(gè)分割的數(shù)據(jù)片段)、對(duì)于所述分割的數(shù)據(jù)片段生成哈希值、并將生成的哈希值存儲(chǔ)于該第一信息設(shè)備中的專用緩沖器中作為寫入哈希值的步驟;和 (b)在第一信息設(shè)備中,通過將該寫入哈希值與由該應(yīng)用在該第一緩沖器中存儲(chǔ)的傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)而將該寫入哈希值從該第一信息設(shè)備發(fā)送至該第二信息設(shè)備的步驟。
10.一種檢測(cè)在第一信息設(shè)備和第二信息設(shè)備之間的傳輸數(shù)據(jù)中的數(shù)據(jù)丟失的程序,所述第一信息設(shè)備具有經(jīng)由第一緩沖器傳輸記錄的數(shù)據(jù)的應(yīng)用,所述第二信息設(shè)備通過外部網(wǎng)絡(luò)連接至第一信息設(shè)備以便能夠與第一信息設(shè)備通信,并且該第二信息設(shè)備將傳輸數(shù)據(jù)存儲(chǔ)在第二緩沖器中,所述傳輸數(shù)據(jù)是由第一信息設(shè)備的應(yīng)用所傳輸?shù)臄?shù)據(jù),所述程序在第一信息設(shè)備執(zhí)行如下步驟的情況下由第二信息設(shè)備執(zhí)行:(a)將由該應(yīng)用在第一緩沖器中所積累的用于寫入的傳輸數(shù)據(jù)在時(shí)間的傳輸方向上分割為片段、讀取分割的數(shù)據(jù)片段中的每一個(gè)(每個(gè)分割的數(shù)據(jù)片段)、對(duì)于分割的數(shù)據(jù)片段生成哈希值、并將生成的哈希值存儲(chǔ)于該第一信息設(shè)備中的專用緩沖器中作為寫入哈希值的步驟,以及(b)通過將該寫入哈希值與由該應(yīng)用在該第一緩沖器中存儲(chǔ)的傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)而將該寫入哈希值從第一信息設(shè)備發(fā)送至第二信息設(shè)備的步驟,該程序致使第二信息設(shè)備執(zhí)行: (c)接收由該應(yīng)用所發(fā)送的傳輸數(shù)據(jù)、將所接收的傳輸數(shù)據(jù)存儲(chǔ)在第二緩沖器中、接收所述寫入哈希值、并且通過將該寫入哈希值與在該傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)來將該寫入哈希值存儲(chǔ)在第二信息設(shè)備中的專用緩沖器中的步驟; (d)讀取第二緩沖器中所存儲(chǔ)的分割的數(shù)據(jù)片段、生成對(duì)于分割的數(shù)據(jù)片段的哈希值、并且將所生成的哈希值存儲(chǔ)于第二信息設(shè)備中的專用緩沖器中作為讀取哈希值的步驟。
11.一種檢測(cè)在第一信息設(shè)備和第二信息設(shè)備之間的傳輸數(shù)據(jù)中的數(shù)據(jù)丟失的第一信息設(shè)備,所述第一信息設(shè)備具有經(jīng)由第一緩沖器傳輸數(shù)據(jù)的應(yīng)用,所述第二信息設(shè)備通過外部網(wǎng)絡(luò)連接至第一信息設(shè)備以便能夠與第一信息設(shè)備通信,并且該第二信息設(shè)備將傳輸數(shù)據(jù)存儲(chǔ)在第二緩沖器中,所述傳輸數(shù)據(jù)是由第一信息設(shè)備的應(yīng)用所傳輸?shù)臄?shù)據(jù),其中,所述第一信息設(shè)備執(zhí)行: (a)將用于該應(yīng)用的在第一緩沖器中所積累的傳輸數(shù)據(jù)在時(shí)間的傳輸方向上分割為片段、讀取分割的數(shù)據(jù)片段中的每一個(gè)(每個(gè)分割的數(shù)據(jù)片段)、對(duì)于分割的數(shù)據(jù)片段生成哈希值、并將生成的哈希值存儲(chǔ)于該第一信息設(shè)備中的專用緩沖器中作為寫入哈希值的步驟;和 (b)通過將該寫入哈希值與由該應(yīng)用在該第一緩沖器中存儲(chǔ)的傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)而將該寫入哈希值從第一信息設(shè)備發(fā)送至第二信息設(shè)備的步驟。
12.—種檢測(cè)在第一信息設(shè)備和第二信息設(shè)備之間的傳輸數(shù)據(jù)中的數(shù)據(jù)丟失的第二信息設(shè)備,所述第一信息設(shè)備具有經(jīng)由第一緩沖器傳輸數(shù)據(jù)的應(yīng)用,所述第二信息設(shè)備通過外部網(wǎng)絡(luò)連接至第一信息設(shè)備以便能夠與第一信息設(shè)備通信,并且該第二信息設(shè)備將傳輸數(shù)據(jù)存儲(chǔ)在第二緩沖器中,所述傳輸數(shù)據(jù)是由第一信息設(shè)備的應(yīng)用所傳輸?shù)臄?shù)據(jù),第二信息設(shè)備在第一信息設(shè)備執(zhí)行如下步驟的情況下檢測(cè)所述傳輸數(shù)據(jù)中的數(shù)據(jù)丟失:(a)將用于該應(yīng)用的在第一緩沖器中所積累的傳輸數(shù)據(jù)在時(shí)間的傳輸方向上分割為片段、讀取分割的數(shù)據(jù)片段中的每一個(gè)(每個(gè)分割的數(shù)據(jù)片段)、對(duì)于分割的數(shù)據(jù)片段生成哈希值、并將生成的哈希值存儲(chǔ)于該第一信息設(shè)備中的專用緩沖器中作為寫入哈希值的步驟,和(b)通過將該寫入哈希值與由該應(yīng)用在該第一緩沖器中存儲(chǔ)的傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)而將該寫入哈希值從第一信息設(shè)備發(fā)送至第二信息設(shè)備的步驟,其中,所述第二信息設(shè)備執(zhí)行: (c)接收由該應(yīng)用所發(fā)送的傳輸數(shù)據(jù)、將所接收的傳輸數(shù)據(jù)存儲(chǔ)在第二緩沖器中、接收所述寫入哈希值、并且通過將該寫入哈希值與在該傳輸數(shù)據(jù)中所包括的分割的數(shù)據(jù)片段相關(guān)聯(lián)來將該寫入哈希值存儲(chǔ)在第二信息設(shè)備中的專用緩沖器中的步驟; (d)讀取第二緩沖器中所存儲(chǔ)的用于該第二信息設(shè)備的分割的數(shù)據(jù)片段、生成對(duì)于分割的數(shù)據(jù)片段的哈希值、并且將所生成的哈希值存儲(chǔ)于第二信息設(shè)備中的專用緩沖器中作為 讀取哈希值的步驟。
【文檔編號(hào)】G06F3/06GK103988189SQ201280060287
【公開日】2014年8月13日 申請(qǐng)日期:2012年10月3日 優(yōu)先權(quán)日:2011年12月8日
【發(fā)明者】村上佳邦 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司