新四季網

信息處理系統、信息處理裝置、信息處理方法、以及信息處理程序與流程

2023-07-28 18:45:52 2


本發明涉及信息處理系統、信息處理裝置、信息處理方法、以及信息處理程序。



背景技術:

實現通信的高速化的方法之一有削減轉送數據量的方法。削減轉送數據量的方法由於使用頻帶減少,所以對低頻帶的線路有效。作為削減轉送數據量的方法,例如,有去除重複發送的數據的方法、對發送數據進行壓縮的方法。

在去除重複發送的數據的方法中,例如,採用分別在發送側網絡以及接收側網絡配置發送側裝置和接收側裝置的系統構成較多。發送側裝置以及接收側裝置預先緩存有處理實績的數據,發送側裝置使用緩存的數據進行發送數據的重複的確認,在發送數據重複的情況下,代替發送數據而發送發送數據的概要信息。若接收側裝置接收數據的概要信息,則從緩存讀出相應的數據,並轉送給目的地。由於與發送數據的尺寸相比發送數據的概要信息的尺寸較小,所以能夠削減轉送數據量,能夠抑制發送側裝置與接收側裝置之間的使用頻帶。

專利文獻1:日本特開2009-21906號公報

專利文獻2:日本特開2001-331661號公報

專利文獻3:日本特開2000-357121號公報

然而,在發送側裝置進行的發送數據的重複判定處理負荷較大,而成為開銷。在有發送數據的重複的情況下,對於發送數據的重複判定處理所引起的負荷、延遲來說,發送數據的重複判定處理的開銷被數據削減所帶來的使用頻帶的減少效果抵消。然而,在沒有發送數據的重複的情況下,發送數據的重複判定處理成為不能夠忽略的開銷。



技術實現要素:

本發明的一方式的目的在於提供在重複數據的去除中,能夠降低發送側裝置的處理負荷的信息處理系統、信息處理裝置、信息處理方法、以及信息處理程序。

本發明的方式之一是包含發送側裝置和接收側裝置的信息處理系統。接收側裝置具備:第一存儲部,其對有接收實績的第一數據進行存儲;接收部,其從發送側裝置接收數據;重複檢測部,其判定是否在第一存儲部存儲有與接收數據的至少一部分重複的數據;以及通知部,其在第一存儲部存儲有與接收數據的至少一部分重複的數據的情況下,向發送側裝置通知第一數據的重複接收的預測信息。發送側裝置具備:第二存儲部,其對有發送實績的第一數據進行存儲;判定部,其在從接收側裝置接收到第一數據的重複接收的預測信息的情況下,基於該重複接收的預測信息來對預發送數據與第一數據的一部分進行比較,判定與預發送數據一致的第二存儲部內的第一數據的一部分的有無;以及發送部,其在第二存儲部內有與預發送數據一致的第一數據的一部分的情況下,代替該預發送數據而對預發送數據的概要信息進行發送。

根據公開的信息處理系統、信息處理裝置、信息處理方法、以及信息處理程序,在重複數據的去除中,能夠降低發送側裝置的處理負荷。

附圖說明

圖1是表示數據去重系統的一個例子的圖。

圖2是表示第一實施方式的數據去重系統的構成的一個例子的圖。

圖3是表示第一實施方式的處理的一個例子的圖。

圖4是表示發送側裝置的硬體構成的一個例子的圖。

圖5是表示發送側裝置的功能構成的一個例子的圖。

圖6是表示發送側緩存內的數據結構的一個例子的圖。

圖7是表示接收側裝置的功能構成的一個例子的圖。

圖8是表示接收側緩存的數據結構的一個例子的圖。

圖9是表示重複預測信息的一個例子的圖。

圖10是發送側裝置的處理的流程圖的一個例子。

圖11是接收側裝置的處理的流程圖的一個例子。

圖12是表示具體例中的處理對象數據的設定的圖。

圖13A是具體例中的時序圖的一個例子。

圖13B是具體例中的時序圖的一個例子。

圖14是表示第一實施方式所涉及的數據去重系統的效果的圖。

具體實施方式

以下,基於附圖,對本發明的實施方式進行說明。以下的實施方式的構成是例示的構成,本發明並不限定於實施方式的構成。

<數據去重的一個例子>

圖1是表示數據去重系統的一個例子的圖。數據去重系統P100包含發送側裝置P1和接收側裝置P2。發送側裝置P1以及接收側裝置P2分別例如是位於網絡的邊界的裝置。

發送側裝置P1例如,若從應用程式接收數據,則將該數據分割為被稱為組塊(Chunk)的1~4KB的可變長塊。發送側裝置P1對各組塊進行SHA1(Secure Hash Algorithm:安全哈希算法)的計算獲取哈希值,並將該哈希值作為關鍵字(key),進行緩存內的哈希搜索。在發送側裝置P1的緩存保持了有發送實績的數據的組塊和SHA1的計算結果。

在作為哈希搜索的結果,未檢測到SHA1的計算結果一致的組塊的情況下,即、在組塊未重複的情況下,發送側裝置P1將該組塊保存於緩存,並發送實際數據。在哈希搜索的結果是檢測到SHA1的計算結果一致的組塊的情況下,即、在組塊重複的情況下,發送側裝置P1發送該組塊的ID數據。在組塊的ID數據例如包含有應用程式ID、該組塊的位置信息、以及該組塊的尺寸。

接收側裝置P2在接收了實際數據的情況下,將該實際數據轉送至目的地,並且將該實際數據保存於緩存。接收側裝置P2在接收了組塊的ID的情況下,從緩存讀出相應的實際數據對數據進行恢復,並發送至目的地。

在圖1所示的數據去重系統P100中,發送側裝置進行組塊分割、SHA1計算、哈希搜索的處理,在組塊重複的情況下,通過發送該組塊的ID數據,來削減數據轉送量。然而,組塊分割、SHA1計算、哈希搜索的處理負荷較大,所以例如,在發送側裝置P1是終端裝置等性能比較低的裝置的情況下,有數據去重的處理不會有助於通信的高速化的可能性。

<第一實施方式>

圖2是表示第一實施方式的數據去重系統100的構成的一個例子的圖。例如,數據去重系統100包含去重客戶端1、和去重伺服器2。去重客戶端1例如是智慧型手機1A、PC(Personal Computer:個人計算機)1B等終端裝置。另外,去重客戶端1也可以是伺服器等專用計算機。去重客戶端1也稱為發送側裝置1。去重伺服器2也稱為接收側裝置2。

在第一實施方式中,接收側裝置2對來自發送側裝置1的有接收實績的數據進行緩存,並使用該緩存檢測接收數據的重複的開始。若接收側裝置2檢測到接收數據的重複的開始,則向發送側裝置1通知重複預測信息。若發送側裝置1從接收側裝置2接收到重複預測信息,則切換動作模式,基於該重複預測信息,對預發送數據進行通過負荷比較輕的存儲器比較的重複判定處理,並發送數據。

圖3是表示第一實施方式的處理的一個例子的圖。發送側裝置1具有通常模式和重複預測模式兩個動作模式。在通常模式中,發送側裝置1將預發送數據儲存於緩存,並發送實際數據。

若發送側裝置1從接收側裝置2接收到重複預測信息的通知,則動作模式切換為重複預測模式。在重複預測模式中,發送側裝置1基於重複預測信息從緩存數據預取部分數據,並進行預發送數據與存儲器的比較,判定重複的有無。在部分數據與預發送數據不一致的情況下,預發送數據不是重複的數據,所以發送側裝置1發送實際數據。在部分數據與預發送數據一致的情況下,預發送數據重複,所以發送側裝置1發送預發送數據的索引。

接收側裝置2在接收到實際數據的情況下,將實際數據分割為組塊,對各組塊計算SHA1,並將SHA1的計算結果作為關鍵字搜索緩存。在緩存內檢測到重複的組塊的情況下,接收側裝置2檢測到重複接收的開始,並生成重複預測信息通知給發送側裝置1。

接收側裝置2在接收到索引的情況下,從緩存讀出索引所示的組塊,恢復數據,並發送給目的地的裝置。

在第一實施方式中,接收側裝置2進行組塊分割、SHA1計算、哈希搜索等負荷較高的處理,發送側裝置1進行預取的數據與預發送數據的比較這樣的負荷比較輕的處理。由此,能夠降低發送側裝置1所涉及的處理負荷。

<裝置構成>

<發送側裝置>

圖4是表示發送側裝置1的硬體構成的一個例子的圖。發送側裝置1例如是行動電話終端、智慧型手機、平板終端、通用或者專用的計算機。

發送側裝置1具備CPU(Central Processing Unit:中央處理器)101、主存儲裝置102、輸入裝置103、輸出裝置104、輔助存儲裝置105、以及網絡接口107。另外,它們通過總線109相互連接。

輸入裝置103例如是操作按鈕、觸摸面板、鍵盤、小鍵盤等。從輸入裝置103輸入的數據輸出至CPU101。輸入裝置例如也可以包含麥克那樣的聲音輸入裝置。

輔助存儲裝置105儲存各種程序、在各程序的執行時CPU101使用的數據。輔助存儲裝置105例如是EPROM(Erasable Programmable ROM:可擦除可編程只讀存儲器)、快閃記憶體、或者硬碟驅動器(Hard Disk Drive)等非易失性的存儲器。輔助存儲裝置105例如保持作業系統(OS)、去重客戶端程序、其它各種應用程式。去重客戶端程序是用於使發送側裝置1作為去重客戶端發揮作用的程序。

主存儲裝置102對CPU101提供下載儲存於輔助存儲裝置105的程序的存儲區域以及工作區域,或者作為緩衝區使用。主存儲裝置102例如,包含ROM(Read only Memory:只讀存儲器)、RAM(Random Access Memory:隨機存儲器)那樣的半導體存儲器。

CPU101通過將保持於輔助存儲裝置105的OS、各種應用程式下載至主存儲裝置102並執行,來執行各種處理。CPU101並不限定於一個,也可以具備多個。

網絡接口107是進行與網絡的信息的輸入輸出的接口。網絡接口107包含與有線的網絡連接的接口、與無線的網絡連接的接口。網絡接口107例如是NIC(Network Interface Card:網卡)、無線LAN(Local Area Network:區域網)卡等。在網絡接口107接收到的數據等輸出給CPU101。

輸出裝置104輸出CPU101的處理的結果。輸出裝置104包含揚聲器等聲音輸出裝置、顯示器、印表機。

此外,圖4所示的發送側裝置1的硬體構成是一個例子,並不限定於上述構成,而能夠根據實施方式適當地進行構成要素的省略、置換、追加。例如,也可以是發送側裝置1具備可攜式記錄介質驅動裝置,並執行記錄於可攜式記錄介質的程序。可攜式記錄介質例如是SD卡、miniSD卡、microSD卡、USB(Universal Serial Bus:通用串行總線)快閃記憶體、CD(Compact Disc:光碟)、DVD(Digital Versatile Disc:數字通用光碟)、Blu-ray(註冊商標)Disc、或者快閃記憶體卡那樣的記錄介質。

另外,在發送側裝置1為伺服器的情況下,例如,發送側裝置1也可以不具備輸入裝置103、輸出裝置104。

圖5是表示發送側裝置1的功能構成的一個例子的圖。發送側裝置1作為功能構成,具備數據接收部11、重複判定部12、緩存保存部13、數據發送部14、以及重複預測接收部15。這些功能構成是通過CPU101執行儲存於輔助存儲裝置105的去重客戶端程序來實現的功能構成。另外,通過執行去重客戶端程序,在輔助存儲裝置105的存儲區域確保發送側緩存16用的區域。另外,在主存儲裝置102的存儲區域確保儲存重複預測表格17的區域。去重客戶端程序例如是應用層程序。

數據接收部11從成為數據的發送源的應用程式接收數據,並終止該應用程式的會話。例如,在作為數據的發送源的應用程式是利用TCP(Transmission Control Protocol:傳輸控制協議)進行通信的應用程式的情況下,若數據接收部11從數據的發送源接收到連接要求,則與該數據的發送源確立TCP會話。數據接收部11使用作為IP位址與埠編號的組合的套接字(socket)與數據的發送源進行通信。因此,數據接收部11能夠根據套接字識別應用程式。

此外,執行成為數據的發送源的應用程式的實體既可以是發送側裝置1自身,也可以是其它的裝置。例如,在發送側裝置1是伺服器的情況下,執行成為數據的發送源的應用程式的實體是其它的裝置,數據接收部11通過網絡接口107,從該其它的裝置接收數據。例如,在發送側裝置1為終端裝置的情況下,執行成為數據的發送源的應用程式的實體為發送側裝置1自身。在第一實施方式中,後面不特定執行成為數據的發送源的應用程式的實體,而僅稱為「發送源」。

數據接收部11在動作模式為通常模式的情況下,將預發送數據輸出給數據發送部14。預發送數據是從發送源的應用程式接收的數據。數據接收部11在動作模式為重複預測模式的情況下,將預發送數據輸出給重複判定部12。

數據接收部11例如保持規定尺寸的處理緩衝區。從發送源的應用程式接收的數據在發送側裝置1中以該處理緩衝區的尺寸的單位進行處理。處理緩衝區的尺寸例如為50~100KB。但是,處理緩衝區的尺寸並不限定於此。即,預發送數據是與處理緩衝區相同或者小於處理緩衝區的尺寸的數據塊。

另外,數據接收部11監視從與發送源的應用程式的通信開始的預發送數據的偏移。從與發送源的應用程式的通信開始的預發送數據的偏移是表示預發送數據的前端的位置的值。例如,偏移是從0開始,且每隔數據的尺寸一個字節增加1的值。例如,在通信開始後,在第一個預發送數據的尺寸為80KB的情況下,該第一個預發送數據的偏移為0,下一個預發送數據的偏移為80000。

在動作模式為重複預測模式的情況下,在重複判定部12從數據接收部11輸入預發送數據。此外,動作模式的初始值為通常模式。重複判定部12參照預發送數據的應用程式的重複預測表格17,從重複預測表格17所示的應用程式的發送側緩存16預取相應的部分數據並進行與預發送數據的比較。此外,預發送數據的應用程式與重複預測表格17所示的應用程式既有一致的情況,也有不一致的情況。後述部分數據的獲取方法的詳細內容。

在該部分數據與預發送數據不一致的情況下,重複判定部12判定為預發送數據是沒有重複的新數據。該情況下,重複判定部12將預發送數據本身輸出給緩存保存部13、和數據發送部14。

在部分數據與預發送數據一致的情況下,重複判定部12判定為預發送數據是重複發送的數據。將與預發送數據一致的部分數據稱為重複數據。在存在重複數據的情況下,重複判定部12將預發送數據的索引輸出給數據發送部14。重複判定部12是「判定部」的一個例子。

預發送數據的索引例如包含表示是索引的標誌、預發送數據的應用程式的識別信息、從通信開始的預發送數據的偏移、重複數據的應用程式的識別信息、重複數據的應用程式的發送側緩存16內的重複數據的偏移、以及預發送數據的尺寸。另外,重複數據的偏移從相應應用程式的發送側緩存16獲取。預發送數據的索引是「預發送數據的概要信息」的一個例子。

緩存保存部13在預發送數據為新數據的情況下從重複判定部12接受該預發送數據的輸入。緩存保存部13將該預發送數據追加到儲存在該預發送數據的應用程式的發送側緩存16內的數據的最後尾。

數據發送部14例如將來自數據的發送源的連接要求轉送給接收側裝置2,並且在與接收側裝置2之間確立TCP的會話。數據發送部14使用該會話將輸入的數據發送給接收側裝置2。

例如,在從重複判定部12接受了預發送數據本身的輸入的情況下,數據發送部14將預發送數據發送給接收側裝置2。例如,在從重複判定部12接受了預發送數據的索引的輸入的情況下,數據發送部14將預發送數據的索引發送給接收側裝置2。此外,從數據發送部14發送的數據添附有應用程式的識別信息、和數據的本來的目的地的信息,即、套接字的信息。數據發送部14是「發送部」的一個例子。

重複預測接收部15從接收側裝置2接收重複預測信息。重複預測接收部15利用與數據發送部14相同的會話。重複預測接收部15使接收的重複預測信息反映於相應應用程式的重複預測表格17。

重複預測表格17例如儲存於主存儲裝置102的存儲區域。重複預測表格17所包含的信息與重複預測信息所包含的信息相同。重複預測表格17被由重複預測接收部15新接收的重複預測信息覆蓋。後述重複預測表格17以及重複預測信息的詳細內容。

圖6是表示發送側緩存16內的數據結構的一個例子的圖。發送側緩存16按照每個應用程式生成在輔助存儲裝置105內的存儲區域。例如,若緩存保存部13接受新應用程式的預發送數據的輸入,則在輔助存儲裝置105的確保為發送側緩存16用的存儲區域生成該新應用程式的發送側緩存16。

發送側緩存16針對有發送實績的數據,包含發送偏移和發送數據。發送數據是數據接收部11的處理緩衝區的尺寸或者小於處理緩衝區的尺寸的數據塊。發送偏移是數據的相應應用程式的發送側緩存16內的數據塊的前端位置。例如,偏移從0開始,在相應應用程式的發送側緩存16內已經儲存有80KB的數據的情況下,新儲存的數據的偏移為80000。預發送數據的索引所包含的重複數據的偏移是發送側緩存16內的相應數據的發送偏移。發送側緩存16是「第二存儲部」的一個例子。

<接收側裝置>

接收側裝置2例如是專用的伺服器。接收側裝置2的硬體構成與發送側裝置1的硬體構成類似,省略圖示。即,接收側裝置2具備CPU、主存儲裝置、輔助存儲裝置、以及網絡接口。另外,接收側裝置2也可以具備輸入裝置、輸出裝置、可攜式記錄介質驅動裝置等。

在接收側裝置2的輔助存儲裝置儲存有OS、去重伺服器程序、以及其它應用程式等。去重伺服器程序是用於使接收側裝置2作為去重伺服器動作的程序。

圖7是表示接收側裝置2的功能構成的一個例子的圖。接收側裝置2作為功能構成,具備數據接收部21、組塊分割部22A、SHA1計算部22B、哈希搜索部22C、緩存讀出部23、緩存保存部24、表格管理部25、數據發送部26、以及重複預測發送部27。這些功能構成例如是通過由CPU執行儲存於輔助存儲裝置的去重伺服器程序來實現的功能構成。另外,通過執行去重伺服器程序,在輔助存儲裝置的存儲區域確保接收側緩存28用的區域。另外,在主存儲裝置的存儲區域確保用於儲存重複預測表格的區域。此外,去重伺服器程序例如是應用層程序。

數據接收部21例如若從發送側裝置1接收連接要求,則確立TCP會話,並通過該TCP會話接收數據。在接收數據為實際數據的情況下,數據接收部21將接收數據輸出給組塊分割部22A。在接收數據為索引的情況下,數據接收部21將接收數據輸出給緩存讀出部23。例如,在索引內包含有表示是索引的標誌,數據接收部21根據該標誌判定接收數據是索引。

此外,數據接收部21保持規定尺寸的處理緩衝區,接收數據在接收側裝置2中以該處理緩衝區的尺寸的單位進行處理。處理緩衝區的尺寸例如是50~100KB。但是,處理緩衝區的尺寸並不限定於此。另外,數據接收部21按照接收數據的應用程式,監視從接收開始的數據的偏移。數據接收部21是「接收部」的一個例子。

組塊分割部22A將接收數據分割為組塊。組塊的尺寸由規定的算法決定。組塊分割部22A將根據接收數據生成的多個組塊輸出給SHA1計算部22B。組塊分割部22A是「分割部」的一個例子。

SHA1計算部22B針對根據接收數據生成的多個組塊的各個進行SHA1的計算。SHA1計算部22B將各組塊的SAH1的計算結果輸出給哈希搜索部22C。SHA1計算部22B是「計算部」的一個例子。

哈希搜索部22C將接收的各組塊的SHA1的計算結果(哈希值)作為關鍵字,搜索所有應用程式的接收側緩存28。哈希搜索部22C將搜索結果輸出給緩存保存部24、表格管理部25。哈希搜索部22C是「搜索部」的一個例子。組塊分割部22A、SHA1計算部22B、哈希搜索部22C合起來為「重複檢測部」的一個例子。

表格管理部25在對於接收數據的組塊中至少一個組塊,在接收側緩存28檢測到SHA1的計算結果一致的組塊的情況下,覆蓋更新接收數據的應用程式的重複預測表格29。此時的更新內容的一個例子是動作模式向重複預測模式的變更。

表格管理部25在對於接收數據的組塊,在接收側緩存28都沒有SHA1的計算結果一致的組塊的情況下,不進行接收數據的應用程式的重複預測表格29的更新。

緩存保存部24將接收數據的組塊中,新的組塊追加到相應應用程式的接收側緩存28的最後尾。此外,既有接收數據的組塊的全部為新數據的情況,也有一部分的組塊為新數據的情況。

緩存讀出部23從數據接收部21接受索引的輸入。緩存讀出部23基於該索引的信息,從相應的應用程式的接收側緩存28讀出相應的組塊,恢復數據並輸出給數據發送部26。緩存讀出部23是「轉送部」的一個例子。

數據發送部26將接收數據或者恢復的數據發送給目的地的應用程式。數據發送部26將從發送側裝置1接收的連接要求轉送給目的地,與目的地的應用程式例如確立TCP會話,並通過該TCP會話發送數據。目的地的應用程式既可以存在於接收側裝置2內,也可以存在於其它的裝置內。在第一實施方式中,不特定目的地的應用程式的執行實體,而僅稱為「目的地」。數據發送部26是「發送部」的一個例子。

重複預測發送部27在生成或者更新重複預測表格的情況下,將該重複預測表格作為重複預測信息發送給發送側裝置1。重複預測發送部27是「發送部」的一個例子。

圖8是表示接收側緩存28的數據結構的一個例子的圖。接收側緩存28例如按照每個應用程式準備。在接收側緩存28中,針對各組塊,儲存哈希值、應用程式ID、接收偏移、以及接收數據。哈希值是SHA1的計算結果的值。接收偏移是相應組塊的前端的應用程式中的位置。接收側緩存是「第一存儲部」的一個例子。

圖9是表示重複預測信息的一個例子的圖。如上述,在發送側裝置1保持的重複預測表格17與在接收側裝置2保持的重複預測表格29的格式相同,與重複預測信息的格式相同。接收側裝置2的重複預測表格29由接收側裝置2的表格管理部25生成以及更新。

重複預測信息例如包含當前應用程式種類、重複預測模式、重複應用程式種類、當前應用程式重複開始位置、重複應用程式開始位置、以及重複預測長度的項目。

在當前應用程式種類的項目儲存有接收側裝置2的接收數據的應用程式的識別信息。在重複預測模式的項目設定有「開啟(on)」、「關閉(off)」的任意一個。在重複預測模式的項目設定了「開啟」的情況下,表示發送側裝置1的動作模式指定為重複預測模式。在重複預測模式的項目設定了「關閉」的情況下,表示發送側裝置1的動作模式指定為通常模式。

在重複應用程式種類的項目儲存有與接收側裝置2的接收數據的組塊重複的接收側緩存28內的組塊的應用程式的識別信息。也有相同的數據被不同的應用程式使用的情況,所以接收數據的應用程式與儲存與接收數據重複的數據的緩存的應用程式並不一定一致。以後,將儲存與接收數據或者預發送數據重複的數據的緩存的應用程式稱為重複應用程式。

在當前應用程式重複開始位置的項目儲存有從與接收側裝置2中的接收數據的應用程式的通信開始的、檢測到重複的接收數據的組塊的偏移。儲存於當前應用程式重複開始位置的項目的值例如從數據接收部21獲取。

在重複應用程式重複開始位置的項目儲存有重複應用程式的接收側緩存28內的、與接收數據的組塊一致的組塊的接收偏移。儲存於重複應用程式重複開始位置的項目的值從重複應用程式的接收側緩存28獲取。

在重複預測長度的項目儲存有重複接收的數據的預測的數據的長度。儲存於重複預測長度的項目的值例如是從儲存於重複應用程式的接收側緩存28的數據的量減去與接收數據的組塊一致的組塊的接收偏移後的值。

重複應用程式種類、當前應用程式重複開始位置、重複應用程式重複開始位置、重複預測長度的項目在重複預測模式的項目的值為「開啟」以外的情況下無效。此外,圖9所示的重複預測信息的格式是一個例子,並不限定於此。例如,重複預測信息也可以不包含重複預測長度的項目。

例如,檢測到從應用程式A的通信開始的偏移80000的接收數據的組塊與應用程式B的接收側緩存內的接收偏移100000的組塊重複的情況下生成的重複預測信息如以下。此外,在以下的重複預測信息省略重複預測長度的項目。

(生成的重複預測信息)

應用程式種類:應用程式A

重複預測模式:開啟

重複應用程式種類:應用程式B

當前應用程式重複開始位置:80000

重複應用程式重複開始位置:100000

接下來,在發送側裝置1接收了上述重複預測信息之後,發送從應用程式A的通信開始的偏移90000的預發送數據的情況下,例如,進行以下的處理。重複判定部12參照應用程式種類的項目為應用程式A的重複預測表格17,並參照重複應用程式種類的項目示出的應用程式B的發送側緩存16。

重複判定部12基於重複預測表格17,從應用程式B的發送側緩存16讀出部分數據,並進行該部分數據與預發送數據的比較。部分數據是接收偏移具有對重複應用程式重複開始位置的項目的值加上從應用程式A的通信開始的預發送數據的偏移減去當前應用程式重複開始位置的項目的值的值後的值的數據。此時,部分數據的接收偏移=重複應用程式重複開始位置100000+(90000-80000)=110000。

在應用程式A的預發送數據與應用程式B的部分數據一致的情況下,發送側裝置1的數據發送部14發送預發送數據的索引。在預發送數據的索引包含有以下的信息。

(預發送數據的索引的信息)

索引標誌:開啟(on)

當前應用程式種類:應用程式A

當前應用程式發送偏移:90000

重複應用程式種類:應用程式B

重複應用程式偏移:110000

數據長:80KB

若接收側裝置2接收上述預發送數據的索引,則緩存讀出部23基於索引所包含的信息進行處理。具體而言,緩存讀出部23從應用程式B的接收側緩存28讀出偏移11000~19000所包含的組塊,並恢復數據。

<處理的流程>

圖10是發送側裝置1的處理的流程圖的一個例子。圖10所示的處理例如在確立與數據發送源的應用程式的TCP會話時開始。

在OP1中,緩存保存部13將確立了會話的應用程式的發送側緩存16的發送偏移設定為0,進行初始化。另外,重複預測接收部15對重複預測表格17進行初始化。接下來處理進入OP2。

在OP2中,發送側裝置1接收數據。在接收數據為重複預測信息的情況下(OP3:是),處理進入OP4。在接收數據不為重複預測信息的情況下(OP3:否),即、在接收數據是來自應用程式的預發送數據的情況下,處理進入OP5。

在OP4中,由於重複預測接收部15接收了重複預測信息,所以將該重複預測信息複印至重複預測表格17。其後,圖10所示的處理結束。此外,接下來,在發送側裝置1接收了數據的情況下,處理從OP2開始。

在OP5中,數據接收部11參照重複預測表格17,判定動作模式是否為重複預測模式。數據接收部11與發送源的應用程式進行套接字通信,所以能夠獲取接收數據的應用程式的識別信息,參照與接收數據的應用程式相應的重複預測表格17。

在動作模式為重複預測模式的情況下(OP5:是),處理進入OP6。在動作模式不為重複預測模式的情況下(OP5:否),處理進入OP9。

OP6~OP9是動作模式為重複預測模式的情況下的處理。在OP6中,重複判定部12基於重複預測表格17,從重複應用程式的發送側緩存16讀出與預發送數據進行比較的部分數據。部分數據的讀出方法如上述。接下來處理進入OP7。

在OP7中,重複判定部12對預發送數據與部分數據的存儲器進行比較,判定重複的有無。在預發送數據與部分數據一致的情況下(OP7:是),處理進入OP8。在預發送數據與部分數據不一致的情況下(OP7:否),處理進入OP9。

在OP8中,預發送數據與部分數據一致,所以數據發送部14將預發送數據的索引發送給接收側裝置2。其後,圖10所示的處理結束,接下來若從相同的應用程式接收數據則從OP2開始處理。

OP9~OP11是動作模式為通常模式的情況下、以及動作模式為重複預測模式,並且,預發送數據與部分數據不一致的情況下的處理。在OP9中,緩存保存部13將預發送數據儲存於相應應用程式的發送側緩存16。接下來處理進入OP10。

在OP10中,緩存保存部13將相應的發送側緩存16內的下一個儲存的數據的發送偏移更新為對預發送數據的發送偏移加上預發送數據的尺寸後的值。接下來處理進入OP11。

在OP11中,數據發送部14將預發送數據的實際數據發送給接收側裝置2。其後,圖10所示的處理結束,接下來若從相同的應用程式接收數據則從OP2開始處理。

圖11是接收側裝置2的處理的流程圖的一個例子。圖11所示的處理在發送側裝置1與接收側裝置2之間例如確立了TCP的會話時開始。

在OP21中,在接收側裝置2中,進行初始化處理。具體而言,緩存保存部24將確立了會話的應用程式的接收側緩存28的接收偏移設定為0。表格管理部25對重複預測表格29進行初始化。此外,動作模式的初始值為通常模式,所以重複預測表格29內的重複預測模式的項目關閉。接下來處理進入OP22。

在OP22中,數據接收部21接收數據。在接收數據為索引的情況下(OP23:是),處理進入OP24。在接收數據為實際數據的情況下(OP23:否),處理進入OP26。

在OP24中,緩存讀出部23基於接收的索引所包含的信息,從重複應用程式的接收側緩存28讀入相應的組塊,並恢復數據。接下來處理進入OP25。

在OP25中,數據發送部26向目的地發送數據。其後,圖11所示的處理結束,在接收下一個數據的情況下,從OP22開始處理。

OP26以後的處理是接收數據為實際數據的情況下的處理。在OP26中,組塊分割部22A將接收數據分割為組塊。接下來處理進入OP27。

在OP27中,SHA1計算部22B針對各組塊進行SHA1的計算。接下來處理進入OP28。

在OP28中,哈希搜索部22C針對各組塊,搜索各應用程式的接收側緩存28。在儲存於接收側緩存28的組塊中至少有一個SHA1的計算結果一致的組塊的情況下(OP29:是),處理進入OP33。在儲存於接收側緩存28的組塊中沒有SHA1的計算結果一致的組塊的情況下(OP29:否),處理進入OP30。

OP30、OP31的處理是在儲存於接收側緩存28的組塊中沒有SHA1的計算結果一致的組塊,即、接收數據為新的數據的情況下的處理。在OP30中,表格管理部25參照接收數據的應用程式的重複預測表格29,判定重複預測模式的項目是否為「開啟」。在重複預測模式的項目為「開啟」的情況下(OP30:是),處理進入OP31。在重複預測模式的項目為「關閉」的情況下(OP30:否),處理進入OP32。

在OP31中,由於接收數據為新的數據,並且,重複預測模式的項目的值為「開啟」,所以表格管理部25檢測數據的重複接收的結束,並將接收數據的應用程式的重複預測表格29的重複預測模式的項目設定為「關閉」。通過該重複預測表格29的更新,重複預測發送部27向發送側裝置1發送重複預測模式的項目為「關閉」的重複預測信息。接下來處理進入OP32。

在OP32中,緩存保存部24將接收數據的組塊儲存於相應的接收側緩存28,並設定下一個接收偏移。下一個接收偏移是對儲存的組塊的偏移加上該組塊的尺寸後的值。接下來處理進入OP25,向目的地發送接收數據。其後,圖11所示的處理結束,在接收下一個數據的情況下,從OP22開始處理。

OP33~OP35是在儲存於接收側緩存28的組塊中至少有一個SHA1的計算結果一致的組塊的情況下,即、接收數據的一部分或者全部重複的情況下的處理。在OP33中,表格管理部25參照接收數據的應用程式的重複預測表格29,判定重複預測模式的項目是否為「關閉」。

在重複預測模式的項目為「開啟」的情況下(OP33:否),處理進入OP32。在OP32中,在接收數據的組塊中存在新的組塊的情況下,緩存保存部24將該新的組塊儲存於接收側緩存28,並設定下一個接收偏移。其後,處理進入OP25,向目的地發送接收數據。

在重複預測模式的項目為「關閉」的情況下(OP33:是),處理進入OP34。在OP34中,表格管理部25更新接收數據的應用程式的重複預測表格29。具體而言,表格管理部25將預測重複模式的項目設定為「開啟」。另外,也適當地更新重複應用程式的項目、重複應用程式重複開始位置的項目、當前應用程式重複開始位置的項目。接下來處理進入OP35。

在OP35中,重複預測發送部27將更新的重複預測表格的內容作為重複預測表格發送給發送側裝置1。接下來處理進入OP32。在OP32中,在接收數據的組塊中存在新的組塊的情況下,緩存保存部24將該新的組塊儲存於接收側緩存28,並設定下一個接收偏移。其後,處理進入OP25,向目的地發送接收數據。

此外,圖11所示的流程圖是一個例子,各處理的執行順序等並不限定於此,也可以適當地變更執行順序。例如,OP25的向目的地發送接收數據的處理也可以在OP31、OP35的重複預測信息的發送處理之前進行。

<具體例>

圖12是表示具體例中的處理對象數據的設定的圖。在具體例中,發送側裝置1以及接收側裝置2均在應用程式X的緩存保持數據A、數據B、數據C。數據A、數據B、數據C分別為100KB。在發送側裝置1以及接收側裝置2中,數據A、數據B、數據C的偏移分別為0、100000(100K)、200000(200K)。此外,接收側裝置2以組塊的形式保持各數據(參照圖8),然而在圖12中,為了方便,與發送側裝置1相同地示出。

具體例假定發送側裝置1在應用程式Y的數據X的發送後,發送數據A、數據B的情況。數據X的尺寸為100KB。在該通信中數據X、數據A、數據B的偏移分別為0、100000(100K)、200000(200K)。

圖13A以及圖13B是具體例中的時序圖的一個例子。在圖13A中,示出了發送側裝置1在應用程式Y的數據X之後發送數據A的情況。此外,若從客戶端裝置向伺服器裝置發送連接要求,且發送側裝置1接收該連接要求,則通過從發送側裝置1向接收側裝置2發送連接要求來進行發送側裝置1與接收側裝置2之間的會話的確立處理。另外,與此同時,也在客戶端裝置與發送側裝置1、接收側裝置2與伺服器裝置之間確立會話。

在S1中,客戶端裝置發送應用程式Y的數據A。在S2中,發送側裝置1接收應用程式Y的數據A(圖10、OP2)。

在S3中,由於動作模式是初始值的通常模式(圖10、OP5:否),所以發送側裝置1將數據A發送給接收側裝置2(圖10、OP11)。

在S4中,接收側裝置2接收數據A(圖11、OP22)。在S5中,由於接收數據為實際數據A(圖11、OP23:否),所以接收側裝置2將數據A分割為組塊,計算各組塊的SHA1,並搜索緩存,檢測數據A的重複接收(圖11、OP26~OP29)。

此時,在應用程式X的接收側緩存28檢測到數據A(參照圖12)。即,重複應用程式為應用程式X,重複應用程式重複開始位置為應用程式X的接收側緩存28內的接收偏移0。

在S6中,接收側裝置2更新重複預測表格(圖11、OP33~OP34)。重複預測模式從關閉變更為開啟。在S7中,接收側裝置2將重複預測信息發送給接收側裝置2(圖11、OP35)。重複預測信息所包含的信息如以下。

(重複預測信息)

當前應用程式種類:應用程式X

重複預測模式:開啟

當前應用程式重複開始位置:100000

重複應用程式種類:應用程式Y

重複應用程式重複開始位置:0

在S8中,發送側裝置1接收重複預測信息(圖10、OP2、OP3:是)。在S9中,發送側裝置1將重複預測信息複印到重複預測表格17(圖10、OP4)。在S10中,接收側裝置2向目的地發送數據A(圖11、OP25)。

圖13B示出接著圖13A的處理,發送側裝置1發送應用程式Y的數據B的情況。在S11中,客戶端裝置發送應用程式Y的數據B。在S12中,發送側裝置1接收應用程式Y的數據B(圖10、OP2)。

在S13中,由於動作模式為重複預測模式(圖10、OP5:是),所以發送側裝置1對數據B進行重複判定。此時,從重複預測表格內的重複應用程式種類亦即應用程式X的發送側緩存16獲取部分數據。

在重複預測信息中,重複應用程式種類:應用程式X,重複應用程式重複開始位置:0,當前應用程式重複開始位置:100000。另外,在應用程式Y中數據B的偏移為200000。因此,應用程式X的發送側緩存16中的部分數據的偏移為0+(200000-100000)=100000。

即,作為部分數據,獲取應用程式X的發送側緩存16的發送偏移100000的數據。部分數據為數據B(參照圖12),所以發送側裝置1檢測到重複發送(圖10、OP7:是)。

在S14中,發送側裝置1發送數據B的索引。在數據B的索引包含有以下的信息。

(數據B的索引)

當前應用程式種類:Y

重複應用程式種類:X

重複應用程式重複開始位置:100000

數據的長度:100KB

在S15中,接收側裝置2接收數據B的索引(圖11、OP22、OP23:是)。在S16中,接收側裝置2基於索引所包含的信息,讀入應用程式X的接收側緩存28的接收偏移100000~200000所包含的組塊(圖11、OP24)。在S17中,從組塊恢復數據B,並向目的地發送(圖11、OP25)。

<第一實施方式的作用效果>

在第一實施方式中,接收側裝置2檢測數據的重複接收,並向發送側裝置1通知重複預測信息,發送側裝置1基於重複預測信息,進行預發送數據與部分數據的比較這樣的負荷比較輕的重複判定處理。因此,在第一實施方式中,在重複數據的去除處理中,能夠降低發送側裝置1的負荷。

由接收側裝置2進行組塊分割、SHA1計算、哈希搜索等而不是由發送側裝置1進行,從而例如,能夠使發送側裝置1的CPU的利用率大致為四分之一。

在重複預測信息包含有重複應用程式、和重複應用程式中的重複開始位置等信息,所以發送側裝置1通過參照這些信息,能夠容易地獲取成為預發送數據的比較對象的部分數據。由此,能夠進一步降低發送側裝置1的處理負荷。

另外,發送側裝置1在以重複預測模式進行動作的情況下,也在預發送數據與重複應用程式的部分數據進行重複檢測處理。在預發送數據內包含新的部分的情況下,發送側裝置1即使以重複預測模式進行動作,也向接收側裝置2發送預發送數據。在接收側裝置2接收了該預發送數據(對於接收側裝置2來說是接收數據)的情況下,該接收數據直接被轉送到目的地(圖11、OP25)。因此,即使在發送側裝置1以重複預測模式進行動作時在預發送數據包含新的數據的情況下,也能夠正確地向目的地發送該新數據。

另外,在接收側裝置2接收包含新數據的接收數據,且對於該接收數據未找到重複的組塊的情況下,接收側裝置2將重複預測模式設定為「關閉」並將重複預測信息發送給發送側裝置1。若發送側裝置1接收該重複預測信息,則發送側裝置1以通常模式開始動作。由此,接收側裝置2能夠控制發送側裝置1的動作模式。

以上,通過降低發送側裝置1的負荷,作為發送側裝置1,例如,能夠採用智慧型手機、平板終端、PC等性能比較低的終端裝置。換句話說,能夠將第一實施方式所涉及的數據去重客戶端程序安裝於終端裝置。

圖14是表示第一實施方式所涉及的數據去重系統100的效果的圖。在圖14中,示出使用轉送速度10Mbps的物理線路bw來轉送100Mbit的流量數據X的情況下的、圖1所示的數據去重系統P100和第一實施方式所涉及的數據去重系統100的轉送時間。

將發送側裝置P1中的數據去重處理所涉及的速度(去重速度)dv設為10Mbps。將發送側裝置1中的去重速度dw設為40Mbps。這是因為發送側裝置1的CPU的利用率與發送側裝置進行組塊分割、SHA1計算、哈希搜索等的情況相比,大致為四分之一。

另外,假設流量數據100Mbit中90%重複。該情況下,通過數據去重處理,以實際數據發送的數據的比例削減到10%。即,數據去重處理所帶來的實際數據的削減率(去重削減率)r為0.1。

在上述前提中,(1)在未進行數據去重處理的情況下,轉送時間為X/bw=100M/10Mbps=10s。(2)在數據去重系統P100中,X/dv+X*r/bw=100M/10Mbps+100M*0.1/10Mbps=11s。(3)在數據去重系統100中,X/dw+X*r/bw=100M/40Mbps+100M*0.1/10Mbps=3.5s。

即,第一實施方式所涉及的數據去重系統100的數據轉送時間最短。因此,根據第一實施方式,在利用10Mbps等低速的線路的通信中,通過降低發送側裝置1的處理負荷,能夠縮短數據轉送所涉及的時間。

另外,發送側裝置1以及接收側裝置2在進行任意的處理的情況下,均不管發送或者接收的數據的內容。即,發送側裝置1以及接收側裝置2無論應用程式處理何種數據,均不管數據的內容,而能夠進行數據去重處理。因此,第一實施方式的數據去重系統100能夠應用於進行任意的應用程式的通信的系統。

<變形例>

例如,也可以在接收側裝置2的CPU所涉及的處理負荷比規定的閾值高的情況下,發送側裝置1進行組塊分割、SHA1計算、哈希搜索的處理。例如,能夠通過在發送側裝置1具備組塊分割部、SHA1計算部、哈希搜索部,且對重複預測信息的重複預測模式追加「卸載(off load)」來實現。

接收側裝置2在CPU負荷超過規定閾值的情況下,向發送側裝置1發送重複預測模式設定了「卸載」的重複預測信息。若接收該重複預測信息,則發送側裝置1將預發送數據輸出給組塊分割部、SHA1計算部、哈希搜索部,且例如與圖1的發送側裝置P1同樣地進行處理。

由此,在接收側裝置2的處理負荷變高的情況下,能夠使接收側裝置2的處理負荷降低。

另外,在第一實施方式中,未提及識別應用程式的用戶,但在存在多個應用程式的用戶的情況下,分別按照每個用戶並且按照每個應用程式生成發送側緩存16以及接收側緩存28。即,在存在多個應用程式的用戶的情況下,以用戶識別信息和應用程式識別信息的組合識別發送側緩存16以及接收側緩存28。

<記錄介質>

能夠將使計算機、其它的設備、裝置(以下,稱為計算機等)實現上述任意一個功能的程序記錄於計算機等能夠讀取的記錄介質。通過使計算機等讀入該記錄介質的程序並執行,能夠提供該功能。

這裡,計算機等能夠讀取的記錄介質是指通過電、磁、光學、機械、或者化學的作用積蓄數據、程序等信息,且能夠由計算機等讀取的非臨時的記錄介質。作為這樣的記錄介質中能夠從計算機等取下的記錄介質,例如有軟盤、光磁碟、CD-ROM、CD-R/W、DVD、藍光碟、DAT、8mm磁帶、快閃記憶體等存儲卡等。另外,作為固定於計算機等的記錄介質有硬碟、ROM(只讀存儲器)等。並且,SSD(Solid State Drive:固盤)既能夠作為能夠從計算機等取下的記錄介質利用,也能夠作為固定於計算機等的記錄介質利用。

符號說明

1…發送側裝置,2…接收側裝置,11、21…數據接收部,12…重複判定部,13…緩存保存部,14、26…數據發送部,15…重複預測接收部,16…發送側緩存,17、29…重複預測表格,22A…組塊分割部,22B…SHA1計算部,22C…哈希搜索部,23…緩存讀出部,24…緩存保存部,25…表格管理部,27…重複預測發送部,28…發送側緩存,101…CPU,102…主存儲裝置,105…輔助存儲裝置,107…網絡接口。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀