WO2017168730A1 - データ送信プログラム、データ送信方法及びデータ送信装置 - Google Patents

データ送信プログラム、データ送信方法及びデータ送信装置 Download PDF

Info

Publication number
WO2017168730A1
WO2017168730A1 PCT/JP2016/060845 JP2016060845W WO2017168730A1 WO 2017168730 A1 WO2017168730 A1 WO 2017168730A1 JP 2016060845 W JP2016060845 W JP 2016060845W WO 2017168730 A1 WO2017168730 A1 WO 2017168730A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
unit
compression
chunk
transmitted
Prior art date
Application number
PCT/JP2016/060845
Other languages
English (en)
French (fr)
Inventor
慶一 冨山
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2018508320A priority Critical patent/JP6687104B2/ja
Priority to PCT/JP2016/060845 priority patent/WO2017168730A1/ja
Publication of WO2017168730A1 publication Critical patent/WO2017168730A1/ja
Priority to US16/140,763 priority patent/US10637969B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables

Definitions

  • the present invention relates to a data transmission program, a data transmission method, and a data transmission apparatus.
  • the present invention aims to suppress the processing load due to data compression.
  • the data transmission program causes the computer to execute a process of dividing the acquired first data and generating second data having a size smaller than the first data. Then, the computer is caused to execute a process of determining whether or not the generated second data has been transmitted with reference to a storage unit that stores identification information of the transmitted data. If the second data has not been transmitted to the computer, the second data is compressed to generate third data having a size smaller than the second data, and the generated third data is designated. Processing to be transmitted to the information processing apparatus.
  • FIG. 1 is a diagram for explaining the data transfer system according to the embodiment.
  • FIG. 2 is a diagram illustrating a functional configuration of the data transfer system.
  • FIG. 3 is a diagram illustrating an example of the switching information storage unit.
  • FIG. 4 is a diagram for explaining the speed-up effect of data optimization by removing duplicated chunks and compressing them.
  • FIG. 5 is a diagram illustrating an example of items stored in the effect determination information storage unit.
  • FIG. 6 is a diagram illustrating an example of items stored in the hash information storage unit for each chunk.
  • FIG. 7 is a diagram illustrating an example of the chunk storage unit.
  • FIG. 8 is a diagram for explaining switching of compression processing by the transmission unit.
  • FIG. 9 is a diagram for explaining processing by the data optimization unit.
  • FIG. 1 is a diagram for explaining the data transfer system according to the embodiment.
  • FIG. 2 is a diagram illustrating a functional configuration of the data transfer system.
  • FIG. 3 is a diagram illustrating an example of the
  • FIG. 10 is a flowchart illustrating a processing flow by the transmission unit.
  • FIG. 11 is a flowchart showing the flow of data optimization processing.
  • FIG. 12 is a flowchart showing the flow of compression processing.
  • FIG. 13 is a flowchart showing the flow of transport optimization processing.
  • FIG. 14 is a diagram illustrating a hardware configuration of a computer that executes the data transmission program according to the embodiment.
  • FIG. 1 is a diagram for explaining the data transfer system according to the embodiment.
  • the data transfer system 1 transfers data to be transmitted via a WAN (Wide Area Network) 3 from a client application 1 b running on a client 1 a to a server application 1 d running on a server 1 c.
  • the client application 1b transfers data to the server application 1d using TCP (Transmission Control Protocol) / IP (Internet Protocol).
  • TCP Transmission Control Protocol
  • IP Internet Protocol
  • the data transfer system 1 includes a transmission unit 2 and a reception unit 4.
  • the transmission unit 2 operates on the client 1a, receives data from the client application 1b, and transmits the data to the server 1c via the WAN 3.
  • the receiving unit 4 operates on the server 1c, receives the data transmitted by the transmitting unit 2, and passes it to the server application 1d.
  • the transmission unit 2 may operate on a device different from the client 1a, and the reception unit 4 may operate on a device different from the server 1c.
  • the data transfer system 1 may transfer data to be transmitted via the WAN 3 to the client application 1b operating on the client 1a by the server application 1d operating on the server 1c.
  • the transmission unit 2 operates on the server 1c
  • the reception unit 4 operates on the client 1a.
  • the transmission unit 2 divides the data into 1 to 4 KB (kilobyte) chunks, transmits an index corresponding to the data instead of the data when there is an overlapping chunk, and compresses and transmits the data when there is no overlapping. To do.
  • the receiving unit 4 restores duplicate data and decompresses the compressed data.
  • the transmission unit 2 compresses and transmits data only when there is no overlapping chunk, so that the processing load due to data compression can be suppressed.
  • FIG. 2 is a diagram illustrating a functional configuration of the data transfer system 1.
  • the data transfer system 1 includes a transmission unit 2 and a reception unit 4.
  • the transmission unit 2 and the reception unit 4 are connected via the WAN 3.
  • the transmission unit 2 includes a switching information storage unit 21, an effect determination information storage unit 22, a proxy unit 23, a data optimization unit 24, and a transport optimization unit 25.
  • the switching information storage unit 21 stores compression switching information indicating whether or not to perform compression.
  • FIG. 3 is a diagram illustrating an example of the switching information storage unit 21. As illustrated in FIG. 3, the switching information storage unit 21 stores a compression switching flag. When the compression switching flag is true, compression is performed, and when the compression switching flag is false, compression is not performed.
  • the initial value of the compression switch flag is true.
  • the compression switching flag is updated by the proxy unit 23, the data optimization unit 24, and the transport optimization unit 25, and is used to determine whether or not the data optimization unit 24 performs compression.
  • the effect determination information storage unit 22 stores information for determining whether or not there is an effect by compressing data.
  • FIG. 4 is a diagram for explaining the effect of compressing data.
  • data optimization represents chunk deduplication and compression. 4A shows a case where there is an effect, and FIG. 4B shows a case where there is no effect.
  • FIG. 5 is a diagram illustrating an example of items stored in the effect determination information storage unit 22.
  • the effect determination information storage unit 22 stores an average processing time, the number of waste occurrences, and a threshold value.
  • the average processing time is an average value of processing time required for compression processing, and its unit is ms (millisecond).
  • the number of occurrences of waste is the number of times that waste has occurred, assuming that the data size after compression is greater than or equal to the data size before compression.
  • the threshold value is a predetermined value for determining the effect.
  • the average processing time ⁇ the number of waste occurrences is used for determining the effect. That is, if average processing time ⁇ number of waste occurrences> threshold, it is determined that there is no compression effect, and the compression switching flag is set to false so that compression processing is not performed.
  • the reason for multiplying the number of waste occurrences by the average processing time is to reflect the difference in processing time by the machine in the determination.
  • the proxy unit 23 receives TCP data from the TCP application 5a that performs communication using TCP, and determines the size of the received TCP data. As a result, when the size is 0, since the point at which communication from the TCP application 5a is interrupted is detected, the data type may be changed and the data may be changed to data having a compression effect. The unit 23 sets the compression switching flag to true.
  • the proxy unit 23 determines the definition of data optimization.
  • the proxy unit 23 passes the data to the data optimization unit 24 and performs data optimization. If it is OFF, the data is passed to the transport optimization unit 25.
  • the definition of data optimization is information that specifies whether or not the user performs data optimization. When data optimization ON is specified, data optimization is performed, and data optimization OFF is specified. Data optimization is not performed.
  • the data optimizing unit 24 divides the data into chunks and removes duplicate chunks. Further, the data optimizing unit 24 compresses the chunk when the compression switching flag is true.
  • the data optimization unit 24 includes a hash information storage unit 31, a chunk storage unit 32, a division unit 33, a duplication determination unit 34, a duplication removal unit 35, and a compression unit 36.
  • the hash information storage unit 31 stores information about the hash for each chunk.
  • FIG. 6 is a diagram illustrating an example of items stored in the hash information storage unit 31 for each chunk. As illustrated in FIG. 6, items stored in the hash information storage unit 31 for each chunk include a hash value, a data size, and a data position.
  • Hash value is a value calculated from a chunk by hash calculation, and is a character string.
  • the data size is a chunk size and is an integer indicating the number of bytes.
  • the hash information storage unit 31 is searched based on the hash value and the data size.
  • the data position indicates the position of the chunk in the chunk storage unit 32.
  • the data position is an offset from the top of the chunk storage unit 32 and is an integer.
  • the hash information storage unit 31 is an area secured in the memory.
  • the chunk storage unit 32 stores chunks.
  • FIG. 7 is a diagram illustrating an example of the chunk storage unit 32. As shown in FIG. 7, the chunk storage unit 32 stores the actual data of the chunk. In FIG. 7, data 1 to data N are actual data. The chunk storage unit 32 is realized by a file.
  • the dividing unit 33 divides the data received from the proxy unit 23 into chunks and passes them to the duplication determination unit 34.
  • the dividing unit 33 creates a block having a variable length of 1 to 4 KB as a chunk by a method called CDC (Contents Defined Chunking) based on the contents of the data.
  • the duplication judgment unit 34 calculates a hash value as a fingerprint of the chunk. Then, the duplication determination unit 34 searches the hash information storage unit 31 using the hash value and the data size of the chunk, and determines whether or not there is a chunk duplication.
  • the duplication determination unit 34 stores the chunk in the chunk storage unit 32, and stores the hash value, the chunk data size, and the data position in the chunk chunk storage unit 32 in the hash information storage unit 31. Then, the chunk is passed to the compression unit 36.
  • the duplication determination unit 34 determines that there is duplication
  • the duplication removal unit 35 passes the chunk to the transport optimization unit 25 instead of the index based on the hash value.
  • the compression unit 36 sets a compression switching flag using information in the effect determination information storage unit 22. Specifically, the compression unit 36 determines whether or not the average processing time ⁇ the number of waste occurrences> the threshold, and when the average processing time ⁇ the number of waste occurrences> the threshold, the compression switching flag is set to false. If the average processing time ⁇ the number of waste occurrences> the threshold is not satisfied, the compression switching flag is not updated.
  • the compression unit 36 performs chunk compression when the compression switching flag is true. Then, the compression unit 36 measures the time of the compression process and updates the average processing time of the effect determination information storage unit 22.
  • the compression unit 36 updates the number of waste occurrences in the effect determination information storage unit 22 and sends the uncompressed data to the transport optimization unit 25. hand over.
  • the compression unit 36 passes the compressed data to the transport optimization unit 25.
  • the transport optimization unit 25 optimizes the data passed from the proxy unit 23 or the data optimization unit 24 in the transport layer, and transmits the data to the reception unit 4 via the WAN 3.
  • the transport optimization unit 25 performs optimization in the transport layer by selecting RPS (Random Packet Stream), UNAP (Universal Network Acceleration Protocol) or high-speed TCP as a protocol.
  • RPS is a protocol for restoring data without retransmission using an error correction code in an environment with high packet discard efficiency, and is a protocol based on UDP.
  • UNNAP is a protocol for efficiently retransmitting data by determining discarded packets, and is a protocol based on UDP.
  • High-speed TCP is a speed-up of TCP.
  • the transport optimization unit 25 sets the compression switching flag based on the average processing time of the effect determination information storage unit 22, the remaining data amount of the communication buffer, and the free bandwidth of the WAN3. Specifically, when the average processing time ⁇ remaining data amount ⁇ free bandwidth, the transport optimization unit 25 can perform compression while transmitting the remaining data, so the compression switching flag is set to true. To do.
  • FIG. 8 is a diagram for explaining switching of compression processing by the transmission unit 2. As shown in FIG. 8, when there is no overlap, the data optimization unit 24 first compresses the chunk and passes it to the transport optimization unit 25. Then, when the number of useless compression processes increases (1), the data optimization unit 24 passes the chunks to the transport optimization unit 25 without compressing them.
  • the proxy unit 23 resets the compression switch flag to true, and the data optimization unit 24 compresses the chunk. To the transport optimization unit 25.
  • the transport optimization unit 25 When the communication line is congested and the remaining data in the communication buffer 25a increases (3), the transport optimization unit 25 resets the compression switching flag to true. Thereafter, when the remaining data in the communication buffer 25a decreases, the transport optimization unit 25 sets the compression switching flag to false.
  • the transmission unit 2 can perform effective compression processing by switching the compression switching flag.
  • the receiving unit 4 includes a transport optimizing unit 41, a data optimizing unit 42, and a proxy unit 43.
  • the transport optimization unit 41 passes data received by RPS, UNNAP, or high-speed TCP to the data optimization unit 42 or the proxy unit 43.
  • the data optimization unit 42 restores or decompresses the data received from the transport optimization unit 41 as necessary, collects chunks, generates TCP data, and passes the data to the proxy unit 43.
  • the proxy unit 43 passes the TCP data to the TCP application 5b.
  • the data optimization unit 42 includes a chunk information storage unit 51, a duplicate restoration unit 52, and a decompression unit 53.
  • the chunk information storage unit 51 stores the decompressed data and the index in association with each other.
  • the duplicate restoration unit 52 searches the chunk storage unit 51 from the index and restores the duplicate chunk.
  • the decompressing unit 53 decompresses the compressed data and stores it in the chunk information storage unit 51 together with the index.
  • FIG. 9 is a diagram for explaining processing by the data optimization unit 24 and the data optimization unit 42.
  • the data optimization unit 24 reads data from the 80 KB TCP data buffer 26a and divides it into 1 to 4 KB chunks. Then, the data optimization unit 24 calculates a hash value of the chunk and performs a hash search on the hash information storage unit 31 using the hash value and the chunk size.
  • the data optimization unit 24 determines whether or not the chunks are duplicated, and if they are duplicated, causes the transport optimization unit 25 to transfer the index. On the other hand, if the chunks do not overlap, the data optimization unit 24 stores the chunk in the chunk storage unit 32 and stores the hash value, data size, and data position in the hash information storage unit 31.
  • the data optimization unit 24 determines whether or not the compression is performed using the compression switching flag.
  • the compression switching flag is true, the data optimization unit 24 compresses the chunk and transfers it to the transport optimization unit 25. .
  • the compression switch flag is false, the chunk is transferred to the transport optimization unit 25 without being compressed.
  • the data optimization unit 42 of the reception unit 4 receives the data via the transport optimization unit 41, if the received data is a chunk, the data optimization unit 42 causes the proxy unit 43 to store the chunk in the TCP data buffer 26b. .
  • the data optimization unit 42 decompresses and stores the chunk in the chunk information storage unit 51 together with the index, and stores the chunk in the proxy unit 43 in the TCP data buffer 26b.
  • the data optimization unit 42 searches the chunk information storage unit 51 to restore duplicate chunks, and causes the proxy unit 43 to store the chunks in the TCP data buffer 26b.
  • FIG. 10 is a flowchart illustrating a processing flow by the transmission unit 2.
  • the transmission unit 2 reads data from the TCP data buffer 26a (step S1), and determines whether the size of the received data is 0 (step S2).
  • the transmission unit 2 initializes the compression switching flag to true (step S3), and returns to step S1.
  • the transmission unit 2 determines the definition of data optimization (step S4), and if the data optimization is OFF, performs the transport optimization process ( Step S6) and return to step S1.
  • step S5 when the data optimization is ON, the transmission unit 2 performs a data optimization process (step S5) and performs a transport optimization process (step S6). And the transmission part 2 returns to step S1.
  • the transmission unit 2 initializes the compression switch flag to true to change the data type when the data type is not compressed and the transmission data type is changed. Compression can be resumed.
  • FIG. 11 is a flowchart showing the flow of data optimization processing.
  • the data optimization unit 24 performs chunk division (step S11) and reads the chunk (step S12).
  • the data optimization unit 24 calculates a hash (step S13), searches the hash information storage unit 31, and performs chunk duplication determination (step S14). As a result, when there is duplication, the data optimization unit 24 writes an index based on the hash value in the communication buffer 25a (step S15).
  • the data optimizing unit 24 performs data storage (step S16).
  • data storage means storing a chunk in the chunk storage unit 32 and storing a hash value, a data size, and a data position in the hash information storage unit 31. Then, the data optimization unit 24 performs a compression process (step S17).
  • the data optimization unit 24 determines whether or not there is a remaining chunk (step S18). If there is a remaining chunk, the process returns to step S12, and if there is no remaining chunk, the data optimization process ends. To do.
  • FIG. 12 is a flowchart showing the flow of compression processing.
  • the data optimizing unit 24 performs compression switching determination (step S21).
  • the compression switching determination is to determine whether or not the average processing time ⁇ the number of waste occurrences is greater than a threshold, and when the average processing time ⁇ the number of waste occurrences is greater than the threshold, the compression switching flag is set to false. .
  • the data optimizing unit 24 determines the presence or absence of compression based on the compression switching flag (step S22). If the compression switching flag is false, the process proceeds to step S28. On the other hand, if the compression switch flag is true, the chunk is compressed (step S23), the compression processing time is measured (step S24), and the average processing time of the effect determination information storage unit 22 is updated.
  • the data optimization unit 24 determines the effect of compression by comparing the sizes before and after compression (step S25). When the size before compression is larger than the size after compression, the compressed data is stored in the communication buffer 25a. Write (step S26). On the other hand, when the pre-compression size is not larger than the post-compression size, the data optimization unit 24 performs a waste count (step S27). Here, the waste count is to update the effect determination information storage unit 22 by adding 1 to the number of waste occurrences. Then, the data optimization unit 24 writes the uncompressed data to the communication buffer 25a (Step S28).
  • the data optimizing unit 24 can prevent the compression processing from being performed wastefully by determining the presence or absence of compression based on the compression switching flag.
  • FIG. 13 is a flowchart showing the flow of transport optimization processing.
  • the transport optimization unit 25 reads the communication buffer 25a (step S31), performs protocol conversion, and transmits (step S32).
  • the transport optimization unit 25 determines the remaining data in the communication buffer 25a (step S33), returns to step S31 when there is no remaining data, and performs compression switching determination when there is remaining data. (Step S34).
  • this compression switching determination it is determined whether or not the average processing time of the effect determination information storage unit 22 is smaller than the remaining data amount ⁇ the free bandwidth. If the average processing time is smaller, the compression switching flag is set to true and is not small. In this case, the compression switch flag is set to false.
  • the transport optimization unit 25 adjusts the communication speed (step S35), and returns to step S31.
  • the communication speed adjustment is to perform a sleep process for a predetermined time in order to match the communication speed.
  • the transport optimization unit 25 sets the compression switching flag based on whether the average processing time of the effect determination information storage unit 22 is smaller than the remaining data amount ⁇ the free bandwidth, thereby the data optimization unit 24 can compress efficiently.
  • the data optimization unit 24 determines the duplication of chunks, compresses the chunk only when there is no duplication in the chunk, and the transport optimization unit 25 transmits the compressed data. . Therefore, the transmission part 2 can suppress the processing load by data compression.
  • the transport optimization unit 25 transmits the index, so that the transmission unit 2 can reduce the amount of data to be transmitted.
  • the data optimizing unit 24 determines whether or not the average processing time ⁇ the number of waste occurrences is larger than the threshold, and sets the compression switching flag to false when the average processing time ⁇ the number of waste occurrences is larger than the threshold. Set to, do not compress chunks. Therefore, the transmission unit 2 can prevent useless compression.
  • the proxy unit 23 determines that the data type has changed, and sets the compression switch flag to true. Therefore, the data optimization unit 24 Data compression can be resumed when the data type changes. Therefore, the transmission unit 2 can prevent a situation in which compression is not performed when compression is effective, and can perform data transmission at high speed.
  • the transport optimization unit 25 sets the compression switch flag to true when the average processing time of the effect determination information storage unit 22 is smaller than the remaining data amount ⁇ the free bandwidth. 24 can perform compression using the communication waiting time. Therefore, the transmission unit 2 can efficiently compress data.
  • the transmission part 2 was demonstrated in the Example, the data transmission program which has the same function can be obtained by implement
  • FIG. 14 is a diagram illustrating a hardware configuration of a computer that executes the data transmission program according to the embodiment.
  • the computer 60 includes a main memory 61, a CPU 62, a LAN (Local Area Network) interface 63, and an HDD (Hard Disk Drive) 64.
  • the computer 60 includes a super IO (Input Output) 65, a DVI (Digital Visual Interface) 66, and an ODD (Optical Disk Drive) 67.
  • the main memory 61 is a memory for storing a program and a program execution result.
  • the CPU 62 is a central processing unit that reads a program from the main memory 61 and executes it.
  • the CPU 62 includes a chip set having a memory controller.
  • the LAN interface 63 is an interface for connecting the computer 60 to another computer via a LAN.
  • the HDD 64 is a disk device that stores programs and data
  • the super IO 65 is an interface for connecting an input device such as a mouse or a keyboard.
  • the DVI 66 is an interface for connecting a liquid crystal display device
  • the ODD 67 is a device for reading / writing a DVD.
  • the LAN interface 63 is connected to the CPU 62 by PCI Express (PCIe), and the HDD 64 and ODD 67 are connected to the CPU 62 by SATA (Serial Advanced Technology Attachment).
  • the super IO 65 is connected to the CPU 62 by LPC (Low Pin Count).
  • the data transmission program executed in the computer 60 is stored in the DVD, read from the DVD by the ODD 67, and installed in the computer 60.
  • the data transmission program is stored in a database or the like of another computer system connected via the LAN interface 63, read from these databases, and installed in the computer 60.
  • the installed data transmission program is stored in the HDD 64, read into the main memory 61, and executed by the CPU 62.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

データ最適化部(24)は、TCPアプリ(5a)のデータをチャンクに分割する。そして、データ最適化部(24)は、チャンクに対するハッシュ値を計算し、ハッシュ値とチャンクのデータサイズからハッシュ情報記憶部(31)を検索してチャンクの重複を判定する。そして、データ最適化部(24)は、チャンクに重複がない場合に、チャンクを格納し、ハッシュ値、チャンクのデータサイズ、チャンクの位置をハッシュ情報記憶部(31)に格納する。そして、データ最適化部(24)は、チャンクを圧縮してトランスポート最適化部(25)に圧縮データを送信させる。

Description

データ送信プログラム、データ送信方法及びデータ送信装置
 本発明は、データ送信プログラム、データ送信方法及びデータ送信装置に関する。
 データを転送する場合、データ量を削減するために、送信側でデータを圧縮して送信し、受信側で解凍してデータを復元する技術がある。また、データに圧縮処理を施した場合の伝送時間と、データに圧縮処理を施さない場合の伝送時間を予測し、予測した伝送時間に基づいて、データを圧縮して送信するか圧縮しないで送信するかを判断することで、伝送時間を減少させる技術がある。
特開平5-145437号公報
 しかしながら、データに重複がある場合には、伝送時間を予測して、データを圧縮して送信するか圧縮しないで送信するかを判断するだけでは、伝送時間の減少が不十分であるという問題がある。データに重複がある場合には、重複したデータをそのまま送らないようにすることで、データ量を減らすことができる。また、圧縮処理を不要とすることでデータ圧縮による処理負荷を抑制することができる。
 本発明は、1つの側面では、データ圧縮による処理負荷を抑制することを目的とする。
 1つの態様では、データ送信プログラムは、コンピュータに、取得した第1のデータを分割して該第1のデータよりも小さいサイズの第2のデータを生成する処理を実行させる。そして、コンピュータに、送信済データの識別情報を記憶する記憶部を参照して、生成した第2のデータが送信済であるか否かを判定する処理を実行させる。そして、コンピュータに、第2のデータが送信済でない場合、第2のデータを圧縮して該第2のデータよりも小さいサイズの第3のデータを生成し、生成した第3のデータを、指定された情報処理装置に送信する処理を実行させる。
 データ圧縮による処理負荷を抑制することができる。
図1は、実施例に係るデータ転送システムを説明するための図である。 図2は、データ転送システムの機能構成を示す図である。 図3は、切替情報記憶部の一例を示す図である。 図4は、チャンクの重複除去及び圧縮によるデータ最適化の高速化効果を説明するための図である。 図5は、効果判定情報記憶部が記憶する項目の一例を示す図である。 図6は、ハッシュ情報記憶部がチャンク毎に記憶する項目の一例を示す図である。 図7は、チャンク記憶部の一例を示す図である。 図8は、送信部による圧縮処理の切替を説明するための図である。 図9は、データ最適化部による処理を説明するための図である。 図10は、送信部による処理のフローを示すフローチャートである。 図11は、データ最適化処理のフローを示すフローチャートである。 図12は、圧縮処理のフローを示すフローチャートである。 図13は、トランスポート最適化処理のフローを示すフローチャートである。 図14は、実施例に係るデータ送信プログラムを実行するコンピュータのハードウェア構成を示す図である。
 以下に、本願の開示するデータ送信プログラム、データ送信方法及びデータ送信装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
 まず、実施例に係るデータ転送システムについて説明する。図1は、実施例に係るデータ転送システムを説明するための図である。図1に示すように、データ転送システム1は、クライアント1aで動作するクライアントアプリケーション1bがサーバ1cで動作するサーバアプリケーション1dにWAN(Wide Area Network)3を介して送信するデータを転送する。クライアントアプリケーション1bは、TCP(Transmission Control Protocol)/IP(Internet Protocol)を用いてサーバアプリケーション1dにデータを転送する。
 データ転送システム1は、送信部2と受信部4とを有する。送信部2は、クライアント1aで動作し、クライアントアプリケーション1bからデータを受け取り、WAN3を介してサーバ1cに送信する。受信部4は、サーバ1cで動作し、送信部2により送信されたデータを受信し、サーバアプリケーション1dに渡す。なお、送信部2は、クライアント1aと別の装置で動作してもよく、受信部4は、サーバ1cと別の装置で動作してもよい。
 また、データ転送システム1は、サーバ1cで動作するサーバアプリケーション1dがクライアント1aで動作するクライアントアプリケーション1bにWAN3を介して送信するデータを転送してもよい。この場合、送信部2はサーバ1cで動作し、受信部4はクライアント1aで動作する。
 送信部2は、データを1~4KB(キロバイト)のチャンクに分割し、重複するチャンクがある場合にデータの代わりにデータに対応するインデックスを送信し、重複がない場合にデータを圧縮して送信する。受信部4は、重複するデータを復元し、圧縮されたデータを解凍する。
 このように、データ転送システム1では、送信部2が、重複するチャンクがない場合にだけデータを圧縮して送信するので、データ圧縮による処理負荷を抑制することができる。
 次に、データ転送システム1の機能構成について説明する。図2は、データ転送システム1の機能構成を示す図である。図2に示すように、データ転送システム1は、送信部2と受信部4を有する。送信部2と受信部4は、WAN3を介して接続される。
 送信部2は、切替情報記憶部21と、効果判定情報記憶部22と、プロキシ部23と、データ最適化部24と、トランスポート最適化部25とを有する。切替情報記憶部21は、圧縮を行うか否かを示す圧縮切替情報を記憶する。図3は、切替情報記憶部21の一例を示す図である。図3に示すように、切替情報記憶部21は、圧縮切替フラグを記憶する。圧縮切替フラグがtrueの場合には圧縮が行われ、圧縮切替フラグがfalseの場合には圧縮が行われない。
 圧縮切替フラグの初期値はtrueである。圧縮切替フラグは、プロキシ部23、データ最適化部24及びトランスポート最適化部25により更新され、データ最適化部24において圧縮を行うか否かの判定に用いられる。
 効果判定情報記憶部22は、データを圧縮することにより効果があるか否かを判定するための情報を記憶する。図4は、データを圧縮することによる効果を説明するための図である。図4において、データ最適化とは、チャンクの重複除去及び圧縮を表す。図4(a)は、効果がある場合を示し、図4(b)は、効果がない場合を示す。
 図4(a)に示すように、データの最適化により転送データのサイズを小さくできる場合には、データの転送処理に要する時間が短くなる。このため、データ最適化のために必要となる重複判定、圧縮、解凍及び重複復元のオーバーヘッドを含めても転送時間を短縮することができる。
 一方、図4(b)に示すように、データの最適化により転送データのサイズを小さくできない場合には、データの転送処理に要する時間が変わらず、データ最適化のためのオーバーヘッドが増えるため、転送時間が長くなる。例えば、転送されるデータが圧縮済のデータであった場合には、データの圧縮によりサイズを小さくすることができないため、データ最適化の効果がない。
 図5は、効果判定情報記憶部22が記憶する項目の一例を示す図である。図5に示すように、効果判定情報記憶部22は、平均処理時間と、無駄発生回数と、閾値とを記憶する。平均処理時間は、圧縮処理に要する処理時間の平均値であり、単位はms(ミリ秒)である。無駄発生回数は、圧縮後のデータサイズが圧縮前のデータサイズ以上である場合を無駄として、無駄が発生した回数である。
 閾値は、効果を判定するための所定の値である。効果の判定には平均処理時間×無駄発生回数が用いられる。すなわち、平均処理時間×無駄発生回数>閾値の場合には、圧縮効果がないと判定され、圧縮処理を行わないように、圧縮切替フラグがfalseに設定される。無駄発生回数に平均処理時間を掛けるのは、マシンによる処理時間の相違を判定に反映させるためである。
 図2に戻って、プロキシ部23は、TCPを用いて通信を行うTCPアプリ5aからTCPデータを受け取り、受け取ったTCPデータのサイズを判定する。その結果、サイズが0である場合には、TCPアプリ5aからの通信が途切れたポイントを検出した場合であるので、データ種別が変わり、圧縮効果があるデータに変わった可能性があるため、プロキシ部23は、圧縮切替フラグをtrueに設定する。
 また、プロキシ部23は、TCPデータのサイズが0でない場合には、データ最適化の定義を判定し、データ最適化ONである場合には、データ最適化部24にデータを渡し、データ最適化OFFである場合には、トランスポート最適化部25にデータを渡す。ここで、データ最適化の定義とは、ユーザがデータ最適化を行うか否かを指定する情報であり、データ最適化ONが指定されるとデータ最適化が行われ、データ最適化OFFが指定されるとデータ最適化は行われない。
 データ最適化部24は、データをチャンクに分割し、チャンクの重複除去を行う。また、データ最適化部24は、圧縮切替フラグがtrueである場合に、チャンクの圧縮を行う。データ最適化部24は、ハッシュ情報記憶部31と、チャンク記憶部32と、分割部33と、重複判定部34と、重複除去部35と、圧縮部36とを有する。
 ハッシュ情報記憶部31は、ハッシュに関する情報をチャンク毎に記憶する。図6は、ハッシュ情報記憶部31がチャンク毎に記憶する項目の一例を示す図である。図6に示すように、ハッシュ情報記憶部31がチャンク毎に記憶する項目には、ハッシュ値と、データサイズと、データ位置が含まれる。
 ハッシュ値は、チャンクからハッシュ計算により算出される値であり、文字列である。データサイズは、チャンクのサイズであり、バイト数を示す整数である。ハッシュ情報記憶部31は、ハッシュ値とデータサイズにより検索される。データ位置は、チャンク記憶部32におけるチャンクの位置を示す。データ位置は、チャンク記憶部32の先頭からのオフセットであり、整数である。ハッシュ情報記憶部31は、メモリ内に確保される領域である。
 チャンク記憶部32は、チャンクを記憶する。図7は、チャンク記憶部32の一例を示す図である。図7に示すように、チャンク記憶部32は、チャンクの実データを記憶する。図7では、データ1~データNが実データである。チャンク記憶部32は、ファイルにより実現される。
 分割部33は、プロキシ部23から受け取ったデータをチャンクに分割し、重複判定部34に渡す。分割部33は、データの内容に基づいてCDC(Contents Degfined Chunking)と呼ばれる手法で1~4KBの可変長のブロックをチャンクとして作成する。
 重複判定部34は、チャンクのフィンガープリントとしてハッシュ値を計算する。そして、重複判定部34は、ハッシュ情報記憶部31をハッシュ値とチャンクのデータサイズを用いて検索し、チャンクの重複があるか否かを判定する。
 そして、重複判定部34は、重複がない場合には、チャンクをチャンク記憶部32に格納し、ハッシュ値、チャンクのデータサイズ、チャンクのチャンク記憶部32におけるデータ位置をハッシュ情報記憶部31に格納し、チャンクを圧縮部36に渡す。重複除去部35は、重複判定部34により重複があると判定された場合に、チャンクをハッシュ値に基づくインデックスに代えて、トランスポート最適化部25に渡す。
 圧縮部36は、効果判定情報記憶部22の情報を用いて圧縮切替フラグを設定する。具体的には、圧縮部36は、平均処理時間×無駄発生回数>閾値であるか否かを判定し、平均処理時間×無駄発生回数>閾値である場合には、圧縮切替フラグをfalseに設定し、平均処理時間×無駄発生回数>閾値でない場合には、圧縮切替フラグを更新しない。
 そして、圧縮部36は、圧縮切替フラグがtrueである場合に、チャンクの圧縮を行う。そして、圧縮部36は、圧縮処理の時間を計測し、効果判定情報記憶部22の平均処理時間を更新する。
 そして、圧縮部36は、圧縮前のチャンクのサイズが圧縮後のサイズ以下である場合には、効果判定情報記憶部22の無駄発生回数を更新し、非圧縮データをトランスポート最適化部25に渡す。一方、圧縮前のチャンクのサイズが圧縮後のサイズ以下でない場合には、圧縮部36は、圧縮データをトランスポート最適化部25に渡す。
 トランスポート最適化部25は、プロキシ部23又はデータ最適化部24から渡されたデータを、トランスポート層での最適化を行って、WAN3を介して受信部4に送信する。トランスポート最適化部25は、RPS(Random Packet Stream)、UNAP(Universal Network Acceleration Protocol)又は高速TCPをプロトコルとして選択することによりトランスポート層での最適化を行う。
 ここで、RPSは、パケット廃棄効率が高い環境で誤り訂正符号を用いて再送なしでデータを復元するプロトコルであり、UDPをベースとするプロトコルである。また、UNAPは、廃棄されたパケットを判定することで効率よくデータを再送するプロトコルであり、UDPをベースとするプロトコルである。また、高速TCPは、TCPを高速化したものである。
 また、トランスポート最適化部25は、効果判定情報記憶部22の平均処理時間と通信バッファの残データ量とWAN3の空き帯域とに基づき、圧縮切替フラグを設定する。具体的には、トランスポート最適化部25は、平均処理時間<残データ量×空き帯域である場合には、残データを送信する間に圧縮が可能であるので、圧縮切替フラグをtrueに設定する。
 図8は、送信部2による圧縮処理の切替を説明するための図である。図8に示すように、重複がない場合、データ最適化部24は、最初はチャンクを圧縮してトランスポート最適化部25に渡す。そして、圧縮処理の無駄回数が増加する(1)と、データ最適化部24は、チャンクを圧縮することなくトランスポート最適化部25に渡す。
 その後、受信したデータのサイズが0であることによりデータ種別の変更を検知する(2)と、プロキシ部23が圧縮切替フラグをtrueに再設定し、データ最適化部24は、チャンクを圧縮してトランスポート最適化部25に渡す。
 また、通信回線が混雑して通信バッファ25aの残データが増加する(3)と、トランスポート最適化部25は、圧縮切替フラグをtrueに再設定する。その後、通信バッファ25aの残データが減少すると、トランスポート最適化部25は、圧縮切替フラグをfalseに設定する。
 このように、送信部2は、圧縮切替フラグを切り替えることによって、効果のある圧縮処理を行うことができる。
 図2に戻って、受信部4は、トランスポート最適化部41と、データ最適化部42と、プロキシ部43とを有する。トランスポート最適化部41は、RPS、UNAP又は高速TCPで受信したデータをデータ最適化部42又はプロキシ部43に渡す。
 データ最適化部42は、トランスポート最適化部41から受け取ったデータに対して必要に応じて復元又は解凍を行い、チャンクを集めてTCPデータを生成し、プロキシ部43に渡す。プロキシ部43は、TCPデータをTCPアプリ5bに渡す。
 データ最適化部42は、チャンク情報記憶部51と、重複復元部52と、解凍部53とを有する。チャンク情報記憶部51は、解凍されたデータとインデックスとを対応付けて記憶する。重複復元部52は、インデックスからチャンク記憶部51を検索して重複チャンクを復元する。解凍部53は、圧縮データを解凍し、インデックスと共にチャンク情報記憶部51に格納する。
 図9は、データ最適化部24及びデータ最適化部42による処理を説明するための図である。データ最適化部24は、80KBのTCPデータバッファ26aからデータを読み出し、1~4KBのチャンクに分割する。そして、データ最適化部24は、チャンクのハッシュ値を算出し、ハッシュ値とチャンクのサイズを用いてハッシュ情報記憶部31をハッシュ検索する。
 そして、データ最適化部24は、チャンクが重複するか否かを判定し、重複する場合には、インデックスをトランスポート最適化部25に転送させる。一方、チャンクが重複しない場合には、データ最適化部24は、チャンクをチャンク記憶部32に格納し、ハッシュ値、データサイズ、データ位置をハッシュ情報記憶部31に格納する。
 そして、データ最適化部24は、圧縮切替フラグを用いて圧縮するか否かを判定し、圧縮切替フラグがtrueである場合には、チャンクの圧縮を行ってトランスポート最適化部25に転送させる。一方、圧縮切替フラグがfalseである場合には、チャンクを圧縮することなくトランスポート最適化部25に転送させる。
 そして、受信部4のデータ最適化部42は、トランスポート最適化部41を介してデータを受信すると、受信したデータがチャンクの場合には、プロキシ部43にチャンクをTCPデータバッファ26bに格納させる。
 また、データ最適化部42は、受信したデータが圧縮データの場合には、解凍して、チャンクをインデックスと共にチャンク情報記憶部51に格納すると共に、プロキシ部43にチャンクをTCPデータバッファ26bに格納させる。
 また、データ最適化部42は、受信したデータがインデックスの場合には、チャンク情報記憶部51を検索して重複チャンクを復元し、プロキシ部43にチャンクをTCPデータバッファ26bに格納させる。
 次に、送信部2による処理のフローについて説明する。図10は、送信部2による処理のフローを示すフローチャートである。図10に示すように、送信部2は、TCPデータバッファ26aからデータを読み込み(ステップS1)、受信したデータのサイズが0であるか否かを判定する(ステップS2)。
 その結果、受信したデータのサイズが0である場合には、送信部2は、圧縮切替フラグをtrueに初期化し(ステップS3)、ステップS1に戻る。一方、受信したデータのサイズが0でない場合には、送信部2は、データ最適化の定義を判定し(ステップS4)、データ最適化OFFである場合には、トランスポート最適化処理を行い(ステップS6)、ステップS1に戻る。
 一方、データ最適化ONである場合には、送信部2は、データ最適化処理を行い(ステップS5)、トランスポート最適化処理を行う(ステップS6)。そして、送信部2は、ステップS1に戻る。
 このように、送信部2は、受信したデータのサイズが0である場合に、圧縮切替フラグをtrueに初期化することによって、データを圧縮しない状態で送信データの種別が変わった場合に、データ圧縮を再開することができる。
 次に、データ最適化処理のフローについて説明する。図11は、データ最適化処理のフローを示すフローチャートである。図11に示すように、データ最適化部24は、チャンク分割を行い(ステップS11)、チャンクを読み込む(ステップS12)。
 そして、データ最適化部24は、ハッシュを算出し(ステップS13)、ハッシュ情報記憶部31を検索してチャンクの重複判定を行う(ステップS14)。その結果、重複ありの場合には、データ最適化部24は、ハッシュ値に基づくインデックスを通信バッファ25aに書き込む(ステップS15)。
 一方、重複なしの場合には、データ最適化部24は、データ保管を行う(ステップS16)。ここで、データ保管とは、チャンクをチャンク記憶部32に格納し、ハッシュ値とデータサイズとデータ位置をハッシュ情報記憶部31に格納することである。そして、データ最適化部24は、圧縮処理を行う(ステップS17)。
 そして、データ最適化部24は、残チャンクありか否かを判定し(ステップS18)、残チャンクありの場合には、ステップS12に戻り、残チャンクなしの場合には、データ最適化処理を終了する。
 図12は、圧縮処理のフローを示すフローチャートである。図12に示すように、データ最適化部24は、圧縮切替判定を行う(ステップS21)。ここでの圧縮切替判定は、平均処理時間×無駄発生回数が閾値より大きいか否かを判定し、平均処理時間×無駄発生回数が閾値より大きい場合に圧縮切替フラグをfalseに設定することである。
 そして、データ最適化部24は、圧縮切替フラグに基づいて、圧縮有無を判定し(ステップS22)、圧縮切替フラグがfalseの場合には、ステップS28に進む。一方、圧縮切替フラグがtrueの場合には、チャンクの圧縮を行い(ステップS23)、圧縮の処理時間を計測し(ステップS24)、効果判定情報記憶部22の平均処理時間を更新する。
 そして、データ最適化部24は、圧縮前後のサイズを比較することにより、圧縮の効果判定を行い(ステップS25)、圧縮前サイズが圧縮後サイズより大きい場合には、圧縮データを通信バッファ25aに書き込む(ステップS26)。一方、圧縮前サイズが圧縮後サイズより大きくない場合には、データ最適化部24は、無駄カウントを行う(ステップS27)。ここで、無駄カウントとは、効果判定情報記憶部22の無駄発生回数に1を加えて更新することである。そして、データ最適化部24は、非圧縮データを通信バッファ25aに書き込む(ステップS28)。
 このように、データ最適化部24は、圧縮切替フラグに基づいて、圧縮有無を判定することで、圧縮処理が無駄に行われることを防ぐことができる。
 次に、トランスポート最適化処理のフローについて説明する。図13は、トランスポート最適化処理のフローを示すフローチャートである。図13に示すように、トランスポート最適化部25は、通信バッファ25aを読み込み(ステップS31)、プロトコル変換を行って送信を行う(ステップS32)。
 そして、トランスポート最適化部25は、通信バッファ25aの残データ判定を行い(ステップS33)、残データなしの場合には、ステップS31に戻り、残データありの場合には、圧縮切替判定を行う(ステップS34)。ここでの圧縮切替判定は、効果判定情報記憶部22の平均処理時間が残データ量×空き帯域より小さいか否かを判定し、小さい場合には、圧縮切替フラグをtrueに設定し、小さくない場合には、圧縮切替フラグをfalseに設定することである。
 そして、トランスポート最適化部25は、通信速度調整を行い(ステップS35)、ステップS31に戻る。ここで、通信速度調整とは、通信速度に合わせるために、一定時間のスリープ処理を行うことである。
 このように、トランスポート最適化部25が、効果判定情報記憶部22の平均処理時間が残データ量×空き帯域より小さいか否かに基づいて圧縮切替フラグを設定することで、データ最適化部24は効率よく圧縮を行うことができる。
 上述してきたように、実施例では、データ最適化部24が、チャンクの重複を判定し、チャンクに重複がない場合にだけチャンクを圧縮し、トランスポート最適化部25が、圧縮データを送信する。したがって、送信部2は、データ圧縮による処理負荷を抑制することができる。
 また、実施例では、チャンクに重複がある場合に、トランスポート最適化部25がインデックスを送信するので、送信部2は送信するデータの量を減らすことができる。
 また、実施例では、データ最適化部24は、平均処理時間×無駄発生回数が閾値より大きいか否かを判定し、平均処理時間×無駄発生回数が閾値より大きい場合に、圧縮切替フラグをfalseに設定し、チャンクを圧縮しない。したがって、送信部2は、無駄な圧縮を防ぐことができる。
 また、実施例では、プロキシ部23は、受信したデータのサイズが0である場合に、データの種別が変わったと判定して、圧縮切替フラグをtrueに設定するので、データ最適化部24は、データの種別が変わった場合にデータ圧縮を再開することができる。したがって、送信部2は、圧縮が有効な場合に圧縮を行わない状況が発生することを防ぐことができ、データの送信を高速に行うことができる。
 また、実施例では、トランスポート最適化部25は、効果判定情報記憶部22の平均処理時間が残データ量×空き帯域より小さい場合に、圧縮切替フラグをtrueに設定するので、データ最適化部24は、通信待ち時間を利用して圧縮を行うことができる。したがって、送信部2は、効率よくデータの圧縮を行うことができる。
 なお、実施例では、送信部2について説明したが、送信部2が有する構成をソフトウェアによって実現することで、同様の機能を有するデータ送信プログラムを得ることができる。そこで、データ送信プログラムを実行するコンピュータについて説明する。なお、受信部4の機能を有するデータ受信プログラムも同様のコンピュータで実行される。
 図14は、実施例に係るデータ送信プログラムを実行するコンピュータのハードウェア構成を示す図である。図14に示すように、コンピュータ60は、メインメモリ61と、CPU62と、LAN(Local Area Network)インタフェース63と、HDD(Hard Disk Drive)64とを有する。また、コンピュータ60は、スーパーIO(Input Output)65と、DVI(Digital Visual Interface)66と、ODD(Optical Disk Drive)67とを有する。
 メインメモリ61は、プログラムやプログラムの実行途中結果などを記憶するメモリである。CPU62は、メインメモリ61からプログラムを読み出して実行する中央処理装置である。CPU62は、メモリコントローラを有するチップセットを含む。
 LANインタフェース63は、コンピュータ60をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD64は、プログラムやデータを格納するディスク装置であり、スーパーIO65は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。DVI66は、液晶表示装置を接続するインタフェースであり、ODD67は、DVDの読み書きを行う装置である。
 LANインタフェース63は、PCIエクスプレス(PCIe)によりCPU62に接続され、HDD64及びODD67は、SATA(Serial Advanced Technology Attachment)によりCPU62に接続される。スーパーIO65は、LPC(Low Pin Count)によりCPU62に接続される。
 そして、コンピュータ60において実行されるデータ送信プログラムは、DVDに記憶され、ODD67によってDVDから読み出されてコンピュータ60にインストールされる。あるいは、データ送信プログラムは、LANインタフェース63を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ60にインストールされる。そして、インストールされたデータ送信プログラムは、HDD64に記憶され、メインメモリ61に読み出されてCPU62によって実行される。
 また、実施例では、WAN3を介してデータを送信する場合について説明したが、本発明はこれに限定されるものではなく、例えば無線通信等の他の通信方法を用いてデータを送信する場合にも同様に適用することができる。
  1  データ転送システム
  1a  クライアント
  1b  クライアントアプリケーション
  1c  サーバ
  1d  サーバアプリケーション
  2  送信部
  3  WAN
  4  受信部
  5a,5b  TCPアプリ
 21  切替情報記憶部
 22  効果判定情報記憶部
 23  プロキシ部
 24  データ最適化部
 25  トランスポート最適化部
 25a  通信バッファ
 26a  TCPデータバッファ
 26b  TCPデータバッファ
 31  ハッシュ情報記憶部
 32  チャンク記憶部
 33  分割部
 34  重複判定部
 35  重複除去部
 36  圧縮部
 41  トランスポート最適化部
 42  データ最適化部
 43  プロキシ部
 51  チャンク情報記憶部
 52  重複復元部
 53  解凍部
 60  コンピュータ
 61  メインメモリ
 62  CPU
 63  LANインタフェース
 64  HDD
 65  スーパーIO
 66  DVI
 67  ODD

Claims (7)

  1.  コンピュータに、
     取得した第1のデータを分割して該第1のデータよりも小さいサイズの第2のデータを生成し、
     送信済データの識別情報を記憶する記憶部を参照して、生成した前記第2のデータが送信済であるか否かを判定し、
     前記第2のデータが送信済でない場合、前記第2のデータを圧縮して該第2のデータよりも小さいサイズの第3のデータを生成し、
     生成した前記第3のデータを、指定された情報処理装置に送信する
     処理を実行させることを特徴とするデータ送信プログラム。
  2.  前記コンピュータに、
     前記第2のデータが送信済である場合、前記第2のデータの識別情報を前記情報処理装置に送信する
     処理を実行させることを特徴とする請求項1に記載のデータ送信プログラム。
  3.  前記コンピュータに、
     前記第2のデータを圧縮した場合に圧縮されたデータのサイズが前記第2のデータよりも小さくない回数に基づいて、前記第2のデータを前記情報処理装置に送信する
     処理を実行させることを特徴とする請求項1又は2に記載のデータ送信プログラム。
  4.  前記コンピュータに、
     前記第1のデータの種別が変化したか否かを判定し、変化したと判定した場合には、前記第2のデータを圧縮して前記情報処理装置に送信する
     処理を実行させることを特徴とする請求項3に記載のデータ送信プログラム。
  5.  前記コンピュータに、
     通信の空き帯域、通信バッファに溜まっているデータの量及び圧縮処理に要する時間に基づいて、前記第2のデータを圧縮して前記情報処理装置に送信する
     処理を実行させることを特徴とする請求項3に記載のデータ送信プログラム。
  6.  コンピュータが、
     取得した第1のデータを分割して該第1のデータよりも小さいサイズの第2のデータを生成し、
     送信済データの識別情報を記憶する記憶部を参照して、生成した前記第2のデータが送信済であるか否かを判定し、
     前記第2のデータが送信済でない場合、前記第2のデータを圧縮して該第2のデータよりも小さいサイズの第3のデータを生成し、
     生成した前記第3のデータを、指定された情報処理装置に送信する
     処理を実行することを特徴とするデータ送信方法。
  7.  取得した第1のデータを分割して該第1のデータよりも小さいサイズの第2のデータを生成する分割部と、
     送信済データの識別情報を記憶する記憶部を参照して、前記分割部により生成された前記第2のデータが送信済であるか否かを判定する判定部と、
     前記判定部により前記第2のデータが送信済でないと判定された場合、前記第2のデータを圧縮して該第2のデータよりも小さいサイズの第3のデータを生成する圧縮部と、
     前記圧縮部により生成された前記第3のデータを、指定された情報処理装置に送信する送信部と
     を有することを特徴とするデータ送信装置。
PCT/JP2016/060845 2016-03-31 2016-03-31 データ送信プログラム、データ送信方法及びデータ送信装置 WO2017168730A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018508320A JP6687104B2 (ja) 2016-03-31 2016-03-31 データ送信プログラム、データ送信方法及びデータ送信装置
PCT/JP2016/060845 WO2017168730A1 (ja) 2016-03-31 2016-03-31 データ送信プログラム、データ送信方法及びデータ送信装置
US16/140,763 US10637969B2 (en) 2016-03-31 2018-09-25 Data transmission method and data transmission device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/060845 WO2017168730A1 (ja) 2016-03-31 2016-03-31 データ送信プログラム、データ送信方法及びデータ送信装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/140,763 Continuation US10637969B2 (en) 2016-03-31 2018-09-25 Data transmission method and data transmission device

Publications (1)

Publication Number Publication Date
WO2017168730A1 true WO2017168730A1 (ja) 2017-10-05

Family

ID=59962817

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/060845 WO2017168730A1 (ja) 2016-03-31 2016-03-31 データ送信プログラム、データ送信方法及びデータ送信装置

Country Status (3)

Country Link
US (1) US10637969B2 (ja)
JP (1) JP6687104B2 (ja)
WO (1) WO2017168730A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019193092A (ja) * 2018-04-24 2019-10-31 富士通株式会社 通信装置、通信制御方法、および通信制御プログラム
CN113993104A (zh) * 2021-10-26 2022-01-28 中汽创智科技有限公司 一种数据传输方法、装置、设备及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200050607A1 (en) * 2017-07-31 2020-02-13 Splunk Inc. Reassigning processing tasks to an external storage system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003338761A (ja) * 2002-05-20 2003-11-28 Fujitsu Ltd データ圧縮プログラム、データ圧縮方法、およびデータ圧縮装置
CN102469142A (zh) * 2010-11-16 2012-05-23 英业达股份有限公司 重复数据删除程序的数据传输方法
JP2013200713A (ja) * 2012-03-26 2013-10-03 Kobelco Contstruction Machinery Ltd 稼動情報送信装置及びこれを備えた建設機械並びにこれを備えた情報管理システム
WO2015132885A1 (ja) * 2014-03-04 2015-09-11 エヌ・ティ・ティレゾナント・テクノロジー株式会社 動画圧縮装置および動画圧縮伸長システム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05145437A (ja) 1991-11-21 1993-06-11 Hitachi Ltd データ伝送システム
US7412462B2 (en) * 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
US7370120B2 (en) * 2001-12-07 2008-05-06 Propel Software Corporation Method and system for reducing network latency in data communication
JP4218256B2 (ja) * 2002-05-02 2009-02-04 富士ゼロックス株式会社 データ転送方法及びシステム
DE102004063812A1 (de) * 2004-12-30 2006-07-13 Francotyp-Postalia Ag & Co. Kg Verfahren zum Aufbereiten von Daten für das Laden in eine Datenverarbeitungseinrichtung
US20080104269A1 (en) * 2006-10-30 2008-05-01 Research In Motion Limited Method and apparatus for web browser page fragmentation
US7453379B2 (en) * 2007-03-12 2008-11-18 Citrix Systems, Inc. Systems and methods for identifying long matches of data in a compression history
US7619545B2 (en) * 2007-03-12 2009-11-17 Citrix Systems, Inc. Systems and methods of using application and protocol specific parsing for compression
US7827237B2 (en) * 2007-03-12 2010-11-02 Citrix Systems, Inc. Systems and methods for identifying long matches of data in a compression history
JP2010020416A (ja) * 2008-07-08 2010-01-28 Panasonic Corp データ転送方法およびデータ転送装置
US8510267B2 (en) * 2011-03-08 2013-08-13 Rackspace Us, Inc. Synchronization of structured information repositories
US8538926B2 (en) * 2011-03-08 2013-09-17 Rackspace Us, Inc. Massively scalable object storage system for storing object replicas
EP2724505B1 (en) * 2011-06-22 2015-08-12 Telefonaktiebolaget LM Ericsson (PUBL) Header compression with a code book
US9363339B2 (en) * 2011-07-12 2016-06-07 Hughes Network Systems, Llc Staged data compression, including block level long range compression, for data streams in a communications system
KR20130062889A (ko) * 2011-12-05 2013-06-13 삼성전자주식회사 데이터 압축 방법 및 시스템
US8724693B2 (en) * 2012-05-11 2014-05-13 Oracle International Corporation Mechanism for automatic network data compression on a network connection
CN103973730B (zh) * 2013-01-29 2016-10-19 腾讯科技(深圳)有限公司 一种实现数据共享的方法、终端及系统
US9567847B2 (en) * 2013-10-02 2017-02-14 Hannes Wedemeyer Method of data volume reduction for transmission on a limited communications channel
US10673826B2 (en) * 2015-02-09 2020-06-02 Arc Bio, Llc Systems, devices, and methods for encrypting genetic information
US10063444B2 (en) * 2016-02-29 2018-08-28 Red Hat, Inc. Network traffic capture analysis

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003338761A (ja) * 2002-05-20 2003-11-28 Fujitsu Ltd データ圧縮プログラム、データ圧縮方法、およびデータ圧縮装置
CN102469142A (zh) * 2010-11-16 2012-05-23 英业达股份有限公司 重复数据删除程序的数据传输方法
JP2013200713A (ja) * 2012-03-26 2013-10-03 Kobelco Contstruction Machinery Ltd 稼動情報送信装置及びこれを備えた建設機械並びにこれを備えた情報管理システム
WO2015132885A1 (ja) * 2014-03-04 2015-09-11 エヌ・ティ・ティレゾナント・テクノロジー株式会社 動画圧縮装置および動画圧縮伸長システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019193092A (ja) * 2018-04-24 2019-10-31 富士通株式会社 通信装置、通信制御方法、および通信制御プログラム
JP7024578B2 (ja) 2018-04-24 2022-02-24 富士通株式会社 通信装置、通信制御方法、および通信制御プログラム
CN113993104A (zh) * 2021-10-26 2022-01-28 中汽创智科技有限公司 一种数据传输方法、装置、设备及存储介质
CN113993104B (zh) * 2021-10-26 2023-12-26 中汽创智科技有限公司 一种数据传输方法、装置、设备及存储介质

Also Published As

Publication number Publication date
JP6687104B2 (ja) 2020-04-22
JPWO2017168730A1 (ja) 2018-12-27
US10637969B2 (en) 2020-04-28
US20190028571A1 (en) 2019-01-24

Similar Documents

Publication Publication Date Title
JP5566888B2 (ja) データ依存チャンキングを使用する最適化されたデータストリーム圧縮
RU2377670C2 (ru) Сжатие данных
US8456332B2 (en) Systems and methods for compression of logical data objects for storage
US9824131B2 (en) Regulating a replication operation
WO2006074064A2 (en) Method and apparatus for managing data object size in a multi-user environment
US10637969B2 (en) Data transmission method and data transmission device
US11853550B2 (en) System and method for data compaction and security using multiple encoding algorithms
JP6308446B2 (ja) 記憶システム内のデータ・バックアップのための方法および装置
US11733867B2 (en) System and method for multiple pass data compaction utilizing delta encoding
US11928335B2 (en) System and method for data compaction utilizing mismatch probability estimation
WO2016035194A1 (ja) 情報処理システム、情報処理装置、情報処理方法、及び情報処理プログラム
US10673768B2 (en) Managing data compression
US11422978B2 (en) System and method for data storage, transfer, synchronization, and security using automated model monitoring and training
US20240020006A1 (en) System and method for compaction of floating-point numbers within a dataset
US20170147624A1 (en) Hardware lzma compressor
US20130179411A1 (en) Separation of data chunks into multiple streams for compression
US10341467B2 (en) Network utilization improvement by data reduction based migration prioritization
US20230057517A1 (en) Systems, methods, and apparatus for dividing and encrypting data
JP7024578B2 (ja) 通信装置、通信制御方法、および通信制御プログラム
CN112685219A (zh) 用于备份数据的方法、设备和计算机程序产品
US20240211132A1 (en) Data compression utilizing mismatch probability estimation
US20240080040A1 (en) System and method for data storage, transfer, synchronization, and security using automated model monitoring and training
JP6257221B2 (ja) 通信装置及びデータ転送制御方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2018508320

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16896947

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 16896947

Country of ref document: EP

Kind code of ref document: A1