WO2016121024A1 - Communication method, program, and communication device - Google Patents

Communication method, program, and communication device Download PDF

Info

Publication number
WO2016121024A1
WO2016121024A1 PCT/JP2015/052295 JP2015052295W WO2016121024A1 WO 2016121024 A1 WO2016121024 A1 WO 2016121024A1 JP 2015052295 W JP2015052295 W JP 2015052295W WO 2016121024 A1 WO2016121024 A1 WO 2016121024A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
conversion
communication
time
unit
Prior art date
Application number
PCT/JP2015/052295
Other languages
French (fr)
Japanese (ja)
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 PCT/JP2015/052295 priority Critical patent/WO2016121024A1/en
Publication of WO2016121024A1 publication Critical patent/WO2016121024A1/en

Links

Images

Classifications

    • 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

Definitions

  • the present invention relates to a technique for eliminating duplication of transmission data.
  • An object of the present invention is, in one aspect, to suppress inefficiency due to deduplication depending on the situation.
  • a communication method includes (A) measuring a communication speed of a communication network by a computer that performs deduplication conversion on partial data divided from transmission data and sends the converted data to the communication network. (B) Measure the total processing time for the conversion, and (C) do not perform the conversion based on the communication speed, the total amount of partial data, the total processing time, and the total amount of converted data. Compared to the case, when it is determined that the transmission efficiency is deteriorated by performing the conversion, a process of switching to a method that does not perform the conversion is included.
  • inefficiency due to deduplication can be suppressed depending on the situation.
  • FIG. 1 is a diagram showing an outline of a network.
  • FIG. 2 is a diagram illustrating an example of the passage of time when deduplication is not performed.
  • FIG. 3 is a diagram illustrating an example of the passage of time when deduplication is performed.
  • FIG. 4 is a diagram illustrating an example of a sequence.
  • FIG. 5 is a diagram illustrating an example of a sequence.
  • FIG. 6A is a diagram illustrating an example of a sequence.
  • FIG. 6B is a diagram illustrating an example of a sequence.
  • FIG. 7 is a diagram illustrating an example of a sequence.
  • FIG. 8 is a diagram illustrating an example of a sequence.
  • FIG. 9 is a diagram illustrating an example of a sequence.
  • FIG. 1 is a diagram showing an outline of a network.
  • FIG. 2 is a diagram illustrating an example of the passage of time when deduplication is not performed.
  • FIG. 3 is a diagram illustrating an example of the passage of
  • FIG. 10 is a diagram illustrating a module configuration example of the relay apparatus.
  • FIG. 11 is a diagram illustrating a module configuration example of the first relay unit.
  • FIG. 12 is a diagram illustrating a configuration example of the parameter storage unit.
  • FIG. 13 is a diagram illustrating a module configuration example of the second relay unit.
  • FIG. 14 is a diagram illustrating an example of a measurement processing flow.
  • FIG. 15 is a diagram illustrating an example of a first relay processing flow.
  • FIG. 16 is a diagram illustrating an example of a first subroutine processing flow.
  • FIG. 17 is a diagram illustrating an example of a conversion processing flow.
  • FIG. 18 is a diagram illustrating an example of a third subroutine process (A) flow.
  • FIG. 19 is a diagram illustrating an example of the flow of the first calculation process (A).
  • FIG. 20 is a diagram illustrating an example of the flow of the second calculation process (A).
  • FIG. 21A is a diagram showing an example of a second subroutine processing flow.
  • FIG. 21B is a diagram showing an example of the second subroutine processing flow.
  • FIG. 22 is a diagram illustrating an example of the second relay processing flow.
  • FIG. 23 is a diagram illustrating an example of throughput magnification.
  • FIG. 24 is a diagram illustrating an example of the flow of the first calculation process (B).
  • FIG. 25 is a diagram illustrating an example of the flow of the second calculation process (B).
  • FIG. 26 is a diagram showing an example of a third subroutine process (B) flow.
  • FIG. 27 is a functional block diagram of a computer.
  • FIG. 1 shows an outline of the network.
  • two bases are connected by a WAN.
  • a device for example, the client terminal 101
  • a first LAN Local Area Network
  • a device for example, the server device 105
  • a second LAN Local Area Network
  • the performance when performing data communication between bases connected by a WAN in this way often depends on the communication speed in the WAN.
  • a relay device may be provided at the boundary between the WAN and the LAN in order to reduce communication traffic in the WAN.
  • the transmission side relay device compresses the data to be transmitted to reduce the amount of communication data.
  • the relay device on the transmission side reduces the amount of communication data by removing duplicate portions included in the data to be transmitted, that is, omitting the same contents as the already transmitted data. In the present embodiment, attention is paid to deduplication.
  • a relay device 109 is provided at the boundary between the first LAN and the WAN. Further, a relay device 111 is provided at the boundary between the second LAN and the WAN. Note that the relay device is sometimes called a middle box.
  • the relay device 109 When relaying application data, the relay device 109 (hereinafter referred to as the relay device 109 on the transmission side) provided at the base on the transmission side checks whether there is duplication with data transmitted or received in the past. The data to be replaced is replaced with an index for specifying the storage position in the cache area.
  • the relay in the transmission-side relay device 109 is referred to as a first relay.
  • the relay device 111 (hereinafter referred to as the reception-side relay device 111) provided at the reception-side base acquires the data stored in the cache area based on the index sent from the transmission-side relay device 109. To do.
  • the relay in the receiving-side relay device 111 is referred to as a second relay.
  • duplication occurs when the same application data that was previously sent from the first application program 103 to the second application program 107 is sent again from the first application program 103 to the second application program 107.
  • a part of application data sent from the second application program 107 to the first application program 103 in the past is modified in the first application program 103, and the modified application data is changed from the first application program 103 to the second application data.
  • Duplication also occurs when it is sent to the application program 107.
  • FIG. 2 shows an example of the passage of time when duplicate removal is not performed.
  • FIG. 2 shows the passage of time downward.
  • the column on the left shows the passage of time in the relay apparatus 109 on the transmission side.
  • the right column shows the passage of time in the receiving side relay device 111.
  • the first application program 103 divides application data into n pieces of partial data, and transmits them divided into n times.
  • the partial data is data called a segment, for example.
  • the amount of partial data for the first time is W 1a bytes.
  • the amount of the second partial data is W 2a bytes.
  • the amount of the third partial data is W 3a bytes.
  • the amount of the nth partial data is W na bytes.
  • the delay time L has elapsed from the time when the transmission processing is started in the transmission-side relay device 109, the reception processing is started in the reception-side relay device 111.
  • the time required for the communication of the partial data depends on the amount of the partial data and the communication speed S (denoted as S in FIG. 2) in the WAN.
  • the unit of the communication speed S is bytes per second.
  • the time required for the first partial data communication is W 1a / S.
  • the time required for the second partial data communication is W 2a / S.
  • the time required for the third partial data communication is W 3a / S.
  • the time required for the n-th partial data communication is W na / S.
  • a response is sent from the receiving-side relay device 111 that has received the nth partial data to the transmitting-side relay device 109, and a delay time L elapses until the response arrives at the transmitting-side relay device 109. .
  • the required time (hereinafter referred to as the first estimated time) in the first relay that does not perform de-duplication is estimated by equation (1).
  • Equation (1) when the total amount of partial data is represented by W a , Equation (1) can be rewritten as Equation (2). Note that W a / S corresponds to the total communication time T a when deduplication is not performed.
  • FIG. 3 shows an example of the passage of time when deduplication is performed. As in FIG. 2, FIG. 3 shows the passage of time downward. Similarly, the left column shows the passage of time in the relay apparatus 109 on the transmission side. Similarly, the right column indicates the passage of time in the receiving-side relay device 111.
  • application data is divided into n partial data under the same conditions as in the example shown in FIG. 2, and is sent out from the client terminal 101 in n times.
  • Data converted by deduplication is smaller than the original partial data. That is, the amount of data converted at the first time is W 1b bytes, which is smaller than the amount of partial data at the first time W 1a bytes.
  • the amount of data converted for the second time is W 2b bytes, which is smaller than the amount of partial data W 2a bytes for the second time.
  • the amount of data converted for the third time is W 3b bytes, which is smaller than the amount of partial data W 3a bytes for the third time.
  • the amount of converted data to the n th is W nb bytes, less than the amount W na byte n-th partial data.
  • the time required for communication of the first converted data is W 1b / S, which is shorter than the time W 1a / S required for communication of the first partial data.
  • the time required for the communication of the second converted data is W 2b / S, which is shorter than the time W 2a / S required for the second partial data communication.
  • the time required for communication of the converted data for the third time is W 3b / S, which is shorter than the time W 3a / S required for communication of the third partial data.
  • the time required for communication of the nth converted data is W nb / S, which is shorter than the time required for communication of the nth partial data W na / S.
  • the time required for the first relay for performing deduplication includes processing time for performing conversion for deduplication on each partial data (hereinafter, this processing time is referred to as conversion time). That is, the total from the conversion time P 1 for the first partial data to the conversion time P n for the n-th partial data is included in the required time in the first relay for performing deduplication.
  • the delay time L is the same as in the case of FIG.
  • the time required for the first relay for performing deduplication (hereinafter referred to as the second estimated time) is estimated by equation (3).
  • Second estimated time 2L + W 1b / S + W 2b / S + W 3b / S +... + W nb / S + P 1 + P 2 + P 3 + ... + P n (3)
  • Equation (3) is rewritten into Equation (4).
  • W b / S corresponds to the total communication time T b when deduplication is performed.
  • Second estimated time 2L + W b / S + P (4)
  • the first estimated time and the second estimated time are compared, and control is performed so that the first relay is performed by a method corresponding to the shorter estimated time.
  • FIG. 4 shows an example of a sequence up to the connection state.
  • the relay device 109 performs initialization processing for WAN connection (S401).
  • the relay apparatus 111 also performs initialization processing for WAN connection (S403).
  • the relay device 109 confirms the WAN connection (S405).
  • the relay apparatus 111 also confirms the WAN connection (S407).
  • This embodiment assumes a connection-type transmission control protocol such as TCP (Transmission Control Protocol).
  • the first application program 103 transmits a connection request to the second application program 107 in a state where the WAN connection is confirmed between the relay device 109 and the relay device 111 (S409).
  • the connection request is transferred by the relay device 109 (S411), and further transferred by the relay device 111 (S413).
  • the second application program 107 When receiving the connection request (S415), the second application program 107 returns a response to the connection request (S417).
  • the response is transferred in the relay device 111 (S419), and further transferred in the relay device 109 (S421).
  • connection state is established. Thereafter, application data is transmitted in the connection state.
  • Fig. 5 shows an example of a sequence for transmitting application data.
  • the application data is divided into n pieces of partial data, and is transmitted in n times.
  • the transmission-side relay device 109 performs the first first relay (S503), and the reception-side relay device 111 performs the first time.
  • the second relay is performed (S505).
  • the second application program 107 receives the first partial data (S507).
  • the transmission-side relay device 109 performs the second first relay (S513), and the reception-side relay device 111 The second relay is performed for the second time (S515). Then, the second application program 107 receives the second partial data (S517).
  • the relay device 109 on the transmission side performs the first relay for the third time (S523), and the relay device 111 on the reception side
  • the second relay is performed for the third time (S525).
  • the second application program 107 receives the third partial data (S527).
  • the transmission-side relay device 109 performs the n-th first relay (S533), and the reception-side relay device 111 The n-th second relay is performed (S535). Then, the second application program 107 receives the nth partial data (S537).
  • the second application program 107 transmits a response (S541).
  • the reception-side relay device 111 transfers the response (S543), and the transmission-side relay device 109 also transfers the response (S545).
  • the first application program 103 receives a response (S547). This completes the transmission of application data.
  • the sequence shown in FIG. 5 is common to the case where deduplication is performed and the case where deduplication is not performed.
  • FIG. 6A shows an example of a sequence in the first relay that performs deduplication.
  • the transmission-side relay device 109 specifies the partial data amount (S603). Then, the transmission-side relay device 109 starts time measurement (S605) and performs conversion for deduplication (S607). When the conversion for deduplication is completed, the transmission-side relay device 109 ends the time measurement (S609). In this way, the transmission-side relay device 109 measures the conversion time for deduplication. Next, the transmission-side relay device 109 calculates a data reduction amount due to de-duplication (S611). In this way, the partial data amount obtained in the first relay, the conversion time for removing duplicates, and the data reduction amount are used in the determination of the situation described later.
  • the transmission-side relay device 109 transmits the converted data to the reception-side relay device 111 (S613). Note that the processing from S601 to S613 will be described in detail later.
  • FIG. 6B shows an example of a sequence in the second relay when deduplication is performed.
  • the receiving-side relay device 111 receives the converted data (S615), and executes a restoration process on the converted data (S617).
  • the receiving-side relay device 111 transmits the restored partial data to the second application program 107 (S619).
  • the processing from S615 to S619 will also be described in detail later.
  • Fig. 7 shows an example of a sequence related to situation determination and switching when deduplication is performed.
  • the relay apparatus 109 on the transmission side switches between a method for performing deduplication and a method for not performing deduplication using the control flag.
  • the control flag stored in the transmission-side relay device 109 is set to ON
  • the transmission-side relay device 109 performs the first relay described above. That is, if the control flag is ON, it means that a method for performing deduplication is selected.
  • the transmission of application data is completed when the control flag is set to ON (S701), the situation is determined (S703).
  • the relay apparatus 109 on the transmission side calculates the first estimated time based on the equation (2), and further calculates the second estimated time based on the equation (4). Then, it is determined which is shorter between the first estimated time and the second estimated time. If the first estimated time is shorter, it means that it is better not to perform deduplication. If the second estimation time is shorter, it means that it is better to perform deduplication.
  • the situation is determined every time application data is transmitted, but the situation may be determined at the timing when the application data is transmitted a plurality of times.
  • FIG. 8 shows an example of a sequence in the first relay and the second relay when deduplication is not performed.
  • the reception-side relay device 111 When receiving the partial data sent from the transmission-side relay device 109 (S805), the reception-side relay device 111 transmits the received partial data to the second application program 107 (S807).
  • FIG. 9 shows an example of a sequence relating to situation determination and switching when no deduplication is performed.
  • the control flag is set to OFF
  • the data for determining the situation cannot be obtained, so the situation is not determined.
  • the situation is checked at a predetermined timing. That is, as in the case where the control flag is set to ON, deduplication is performed in the first relay, and the situation is further determined. Then, switching is performed in the same manner as when the control flag is set to ON.
  • step S907 the situation is determined. If it is determined in S907 that the second estimated time is shorter, the control flag is not switched.
  • deduplication is performed in the first relay to check the situation in the same way as in S905. If it is determined in S915 that the first estimated time is shorter, the control flag is switched from OFF to ON in S917. Then, the first relay is performed from the next by the method of performing deduplication.
  • switching is performed based on a single determination result, but switching may be performed based on a plurality of determination results. For example, switching may be performed when the same determination result is obtained a plurality of times.
  • the relay device 109 and the relay device 111 illustrated in FIG. 1 have the same configuration and operate in the same manner. That is, when application data is transmitted from the second application program 107 to the first application program 103, the relay device 111 performs the first relay as the transmission side, and the relay device 109 performs the second relay as the reception side.
  • Fig. 10 shows a module configuration example of the relay device.
  • the relay device 109 includes an initialization unit 1001, a confirmation unit 1003, a connection unit 1005, a first relay unit 1007, a second relay unit 1009, and a cache data storage unit 1011.
  • the initialization unit 1001 performs initialization for WAN connection (for example, S401 shown in FIG. 4).
  • the confirmation unit 1003 confirms WAN connection (for example, S405 illustrated in FIG. 4).
  • the connection unit 1005 performs processing for establishing a connection (for example, S411 and S421 illustrated in FIG. 4).
  • the first relay unit 1007 performs relay as a transmission side, that is, first relay.
  • the first relay unit 1007 will be described in detail later with reference to FIG.
  • the second relay unit 1009 performs relay as a reception side, that is, second relay.
  • the second relay unit 1009 will be described in detail later with reference to FIG.
  • the cache data storage unit 1011 has a cache area for storing data to be saved.
  • the cache data storage unit 1011 also has an area for storing a hash table.
  • FIG. 11 shows a module configuration example of the first relay unit 1007.
  • the first relay unit 1007 includes a control unit 1101, a first reception unit 1103, a first transmission unit 1105, a conversion unit 1107, a first measurement unit 1109, a second measurement unit 1111, a third measurement unit 1113, and a first summation unit 1115.
  • the control unit 1101 controls processing in the first relay unit 1007.
  • the first receiving unit 1103 receives, for example, partial data sent from a transmission source application program. Also, the first receiving unit 1103 receives a response from the receiving-side application program from the receiving-side relay device.
  • the first transmission unit 1105 transmits, for example, converted data or partial data to the relay device on the reception side.
  • the conversion unit 1107 performs conversion processing for deduplication.
  • the first measurement unit 1109 measures the time required for the conversion process for removing duplicates, that is, the conversion time.
  • the second measuring unit 1111 measures a delay time L in communication performed with the partner relay device.
  • the third measuring unit 1113 measures the communication speed S (bytes per second) in communication with the partner relay device.
  • the first summation unit 1115 obtains the total amount of continuous partial data.
  • the second summation unit 1117 obtains the total amount of data reduction by conversion processing for deduplication.
  • the 1st calculation part 1119 calculates 1st estimation time by Formula (2).
  • the calculation by the first calculation unit 1119 is referred to as a first calculation.
  • the 2nd calculation part 1121 calculates 2nd estimation time by Formula (4).
  • the calculation by the second calculation unit 1121 is referred to as a second calculation.
  • the switching unit 1123 compares the first estimated time and the second estimated time, and switches the control flag based on the comparison result.
  • the flag storage unit 1125 stores a control flag.
  • the parameter storage unit 1127 stores various parameters.
  • FIG. 12 shows a configuration example of the parameter storage unit 1127.
  • the parameter storage unit 1127 includes a parameter 1201 for the total data amount Wa, a parameter 1203 for the total reduction amount R, a parameter 1205 for the total conversion time P, a parameter 1207 for the delay time L, a parameter 1209 for the communication speed S,
  • FIG. 13 shows a module configuration example of the second relay unit 1009.
  • the second relay unit 1009 includes a second reception unit 1301, a restoration unit 1303, and a second transmission unit 1305.
  • the second receiving unit 1301 receives the converted data or partial data from the transmission-side relay device.
  • the restoration unit 1303 restores partial data from the converted data.
  • the second transmission unit 1305 transmits the restored partial data or the received partial data to the destination module.
  • the unit 1303 and the second transmission unit 1305 are realized by using hardware resources (for example, FIG. 27) and a program that causes a processor to execute processing described below.
  • the cache data storage unit 1011, the flag storage unit 1125, and the parameter storage unit 1127 described above are realized using hardware resources (for example, FIG. 27).
  • the first relay unit 1007 periodically performs a process of measuring the delay time L and the communication speed S.
  • FIG. 14 shows an example of the measurement processing flow.
  • the 2nd measurement part 1111 measures the response time in the round-trip communication performed between the other party's relay apparatuses. Then, the second measurement unit 1111 obtains a delay time L of communication via the WAN by dividing the measured response time by 2 (S1401).
  • the method for measuring the delay time L may be a conventional technique.
  • the second measurement unit 1111 may execute a command “PING (Packet (Internet Groper)”, for example.
  • the measured delay time L is set in the parameter 1207 of the delay time L.
  • the third measuring unit 1113 measures the communication speed S (bytes per second) in communication with the partner relay device (S1403). That is, the communication speed S corresponds to a communication band that is allowed to be used in the WAN.
  • the method for measuring the communication speed S may be a conventional technique.
  • the third measuring unit 1113 may use, for example, a tool “Iperf”.
  • the measured communication speed S is set in the parameter 1209 of the communication speed S.
  • the control unit 1101 determines whether or not a predetermined time has elapsed (S1405).
  • the predetermined time corresponds to an interval for measuring. If it is determined that the predetermined time has not elapsed, the control unit 1101 repeats the process of S1405. If it is determined that the predetermined time has elapsed, the process returns to S1401, and the above-described process is repeated.
  • the measurement process is in parallel with the first relay process shown in FIG.
  • the process of S1401 and the process of S1403 may be included in the routine of the first relay process.
  • FIG. 15 shows an example of the first relay processing flow.
  • the control unit 1101 initializes parameters (S1501). Specifically, the parameter 1201 of the total W a partial amount of data, the parameters 1205 of the total P parameters 1203 and conversion time of a total R of reductions, respectively "0" is set.
  • the first receiving unit 1103 waits and receives the first partial data from the client terminal 101 (S1503). Then, the control unit 1101 determines whether or not the control flag is ON (S1505). If it is determined that the control flag is ON, the first relay unit 1007 executes a first subroutine process (S1507), and returns to the process of S1501.
  • the first subroutine processing corresponds to a method for performing deduplication. On the other hand, if it is determined that the control flag is not ON, that is, if the control flag is OFF, the first relay unit 1007 executes the second subroutine process (S1509) and returns to the process of S1501.
  • the second subroutine process corresponds to a method that does not perform duplicate removal.
  • the first subroutine process and the second subroutine process will be described in detail in order.
  • FIG. 16 shows an example of the first subroutine processing flow.
  • First summing unit 1115 specifies the amount of partial data in question, adds the partial data amount specified in the parameter 1201 of the total W a partial data amount (S1601). Initially, the partial data received in S1503 in FIG. 15 is the target, and the second and subsequent partial data determined to be received in S1617 are the target.
  • the first measurement unit 1109 starts measuring the required time in the conversion process shown in S1605 (S1603). Then, the conversion unit 1107 executes a conversion process (S1605). In the conversion process, conversion for removing duplicates is performed on the target partial data.
  • FIG. 17 shows an example of the conversion process flow.
  • the conversion unit 1107 divides the target partial data into chunks (S1701).
  • the method of dividing into chunks is according to the prior art.
  • the conversion unit 1107 identifies one chunk among the divided chunks (S1703).
  • the conversion unit 1107 identifies chunks in order from the top of the partial data, for example.
  • the conversion unit 1107 calculates a hash value for the identified chunk (S1705).
  • the conversion unit 1107 may calculate a hash value using a conventional hash function (for example, SHA1).
  • the hash value calculated at this time is an ID for identifying the original chunk, and is used as an index for reading the chunk stored in the cache area. Accordingly, the hash value calculated at this time is hereinafter referred to as an index.
  • the hash value is sometimes called a message digest.
  • the conversion unit 1107 searches the hash table using the index as a key (S1707).
  • the index exists in the hash table.
  • the index does not exist in the hash table.
  • the conversion unit 1107 determines whether or not the index exists in the hash table (S1709). If it is determined that the index does not exist in the hash table, the conversion unit 1107 stores the chunk to be processed in the cache area (S1711). At this time, the conversion unit 1107 adds the index to the hash table (S1713). Then, the conversion unit 1107 adds the chunk to be processed to the converted data (S1715). The converted data is generated by sequentially adding chunks or indexes. Then, the process proceeds to S1719.
  • the conversion unit 1107 adds the index to the converted data (S1717). Then, the process proceeds to S1719.
  • the conversion unit 1107 determines whether there is an unprocessed chunk (S1719). If it is determined that there is an unprocessed chunk, the process returns to S1703 and the above-described process is repeated.
  • the first measurement unit 1109 ends the measurement of the required time in the conversion process described above (S1607). Then, the first measuring unit 1109 adds the measured conversion time to the value indicated by the parameter 1205 of the total conversion time P (S1609).
  • the second summation unit 1117 calculates the data reduction amount by the conversion process (S1611). Specifically, the amount of data reduction is obtained by subtracting the amount of converted data from the amount of partial data. The second summation unit 1117 adds the calculated data reduction amount to the value indicated by the parameter 1203 of the total reduction amount R (S1613).
  • the first transmission unit 1105 transmits the converted data to the relay device 111 on the receiving side (S1615).
  • the first receiving unit 1103 determines whether or not the next partial data has been received from the client terminal 101 (S1617). If it is determined that the next partial data has been received from the client terminal 101, the process returns to S1601, and the above-described process is repeated.
  • the first receiving unit 1103 determines whether a response is received from the relay device 111 on the receiving side (S1619). If it is determined that no response has been received from the receiving-side relay device 111, the process returns to S1617 and the above-described process is repeated.
  • the first relay unit 1007 executes a third subroutine process (S1621).
  • processing corresponding to the determination (S703, S707, and S711) and switching (S713) shown in FIG. 7 is performed.
  • the third subroutine process (A) is performed.
  • FIG. 18 shows an example of the third subroutine processing (A) flow.
  • the first calculation unit 1119 executes a first calculation process (S1801).
  • the first calculation process (A) is performed.
  • the time required for estimation in the first relay that does not perform deduplication that is, the first estimated time, is calculated according to Equation (2).
  • FIG. 19 shows an example of the flow of the first calculation process (A).
  • the first calculator 1119 sets a value obtained by doubling the value indicated by the parameter 1207 of the delay time L in the parameter 1211 of the first estimated time (S1901).
  • the first calculation unit 1119 by dividing the value indicated by the parameter 1209 parts total data amount of W a value the communication speed S represented by the parameter 1201, a total of T a communication time of the case of not performing deduplication Calculate (S1903).
  • the first calculation unit 1119 adds the sum T a communication time of the case of not performing de-duplication of the value indicated by the parameter 1211 of the first estimated time (S1905).
  • the second calculation unit 1121 executes a second calculation process (S1803).
  • the second calculation process (A) is performed.
  • the required time for estimation in the first relay that performs deduplication that is, the second estimated time, is calculated by Expression (4).
  • FIG. 20 shows an example of the flow of the second calculation process (A).
  • the second calculator 1121 sets a value obtained by doubling the value indicated by the parameter 1207 of the delay time L in the parameter 1213 of the second estimated time (S2001).
  • the second calculation unit 1121 adds the value indicated by the parameter 1205 of the total conversion time P to the value indicated by the parameter 1213 of the second estimated time (S2003).
  • the second calculation unit 1121 calculates the total communication time T b when performing deduplication (S2005).
  • the second calculating unit 1121 for example, by subtracting the value indicated by the parameter 1203 of the total R in the reductions from the total W value indicated by the parameter 1201 of a partial amount of data to determine the total amount of converted data.
  • the total amount of converted data corresponds to the remaining amount of data.
  • the second calculation unit 1121 further obtains a total communication time T b when performing deduplication by dividing the total amount of the converted data by the value indicated by the parameter 1209 of the communication speed S.
  • the second calculation unit 1121 may calculate the amount of converted data by another procedure.
  • the second calculation unit 1121 may total the amount of converted data, for example.
  • the second calculation unit 1121 adds the total communication time T b when performing deduplication to the value indicated by the parameter 1213 of the second estimated time (S2007).
  • the process proceeds to S1805 shown in FIG.
  • the switching unit 1123 compares the value indicated by the parameter 1211 of the first estimated time with the value indicated by the parameter 1213 of the second estimated time. In this example, the switching unit 1123 determines whether or not the first estimated time is equal to or shorter than the second estimated time (S1805). When it is determined that the first estimated time is equal to or shorter than the second estimated time, the switching unit 1123 sets the control flag to OFF (S1807). If the control flag has already been set to OFF before the processing of S1807, a method that does not perform de-duplication is continued. On the other hand, if the control flag is set to ON before the processing of S1807, the method for performing deduplication is switched to the method for not performing deduplication.
  • the switching unit 1123 sets the control flag to ON (S1809). . If the control flag has already been set to ON before the processing of S1809, the method for performing deduplication is continued. On the other hand, if the control flag is set to OFF before the processing of S1809, the method that does not perform deduplication is switched to the method that performs deduplication.
  • the first subroutine process shown in FIG. 16 is also finished, and the process returns to the process of S1501 shown in FIG. Note that the processing of S1809 may be performed when the first estimated time and the second estimated time are equal.
  • FIG. 21A shows an example of the second subroutine processing flow.
  • the control unit 1101 determines whether or not it corresponds to the timing for checking the situation (S2101).
  • the timing for checking the situation is, for example, when a predetermined time or more has elapsed since the previous check.
  • the timing for checking the situation may be when the number of transmissions of application data from the previous check exceeds a predetermined value.
  • the timing for checking the situation may be determined by a predetermined period. Or you may make it determine the timing which checks a condition by another method.
  • the first transmission unit 1105 transmits the partial data as it is to the relay device 111 on the reception side (S2103).
  • the first receiving unit 1103 determines whether or not the next partial data has been received from the client terminal 101 (S2105). If it is determined that the next partial data has been received from the client terminal 101, the process returns to S2103 and the above-described process is repeated.
  • the first receiving unit 1103 determines whether a response is received from the relay device 111 on the receiving side (S2107). If it is determined that a response has not been received from the receiving-side relay device 111, the process returns to S2105 and the above-described process is repeated. And when it determines with having received the response from the relay apparatus 111 of the receiving side, a 2nd subroutine process is complete
  • the processing from S2125 to S2129 is the same as that from S1617 to S1621 shown in FIG. If it is determined in S2125 that the next partial data has been received from the client terminal 101, the process returns to S2109 shown in FIG.
  • the third subroutine process is the same as that executed in the first subroutine process (S1621 in FIG. 16). When the third subroutine processing in S2129 is finished, the second subroutine processing is also finished, and the processing returns to S1501 shown in FIG.
  • FIG. 22 shows an example of the second relay processing flow.
  • the second receiving unit 1301 waits and receives the converted data or partial data from the transmission-side relay device 109 (S2201).
  • the restoration unit 1303 executes a restoration process on the converted data (S2203).
  • the restoration process is based on a conventional method.
  • the chunk included in the received data is added to the restored data as it is.
  • the hash table is searched using the index as a key.
  • data corresponding to the original chunk is acquired from the hash area, and the acquired data is added to the restored data.
  • the restored data is generated by sequentially adding chunks. In this way, when the restoration process is executed on the converted data, the original partial data is obtained. If it is determined that the partial data has been received, the restoration process may not be performed.
  • the second transmission unit 1305 transmits the partial data restored in this way to the destination module (in the example shown in FIG. 6B, the second application program 107) (S2205). This is the end of the description of the configuration and operation of the relay device.
  • FIG. 23 shows an example of the throughput magnification.
  • the bar indicated by the frame indicates the throughput magnification when this embodiment is adopted.
  • the throughput magnification when this embodiment is adopted is a value obtained by dividing the throughput when this embodiment is adopted, that is, the throughput when performing deduplication depending on the situation by the throughput when not performing deduplication. It is.
  • the filled bar indicates the throughput magnification when the conventional technology is adopted.
  • the throughput magnification in the case of employing the conventional technique is a value obtained by dividing the throughput in the case of employing the conventional technique, that is, the throughput in the case of always performing deduplication, by the throughput in the case of not performing deduplication.
  • FIG. 23 shows two throughput magnifications under five communication conditions. In a relatively low speed state, that is, when the communication speed is 1 Mbps and the communication speed is 10 Mbps, there is no difference between the two throughput magnifications. In either case, high efficiency is achieved by performing de-duplication.
  • the throughput magnification in the conventional method is 1 or less. This is because the transmission efficiency of the method that performs deduplication is lower than the transmission efficiency of the method that does not perform deduplication.
  • the throughput magnification is almost 1.
  • the transmission performance of application data does not deteriorate.
  • inefficiency due to deduplication can be suppressed depending on the situation. That is, it is possible to avoid a situation in which transmission efficiency is deteriorated by performing deduplication.
  • the communication time is calculated by dividing the amount of data by the communication speed, it is not necessary to measure the communication time.
  • Both the calculation formula for the first estimation time shown in the formula (2) and the calculation formula for the second estimation time shown in the formula (4) include a 2L term. Therefore, in the case of the first embodiment, even if 2L is not added to the estimated time in both the first calculation process for calculating the first estimated time and the third calculation process for calculating the second estimated time, A determination result equivalent to is obtained.
  • both the first estimated time and the second estimated time in the present embodiment are estimated values of the required time of the first relay excluding the delay time.
  • the first estimated time in the present embodiment is obtained by the following equation.
  • the second estimated time in the present embodiment is obtained by the following equation.
  • Second estimated time W b / S + P Equation (6)
  • the first calculation process (S1801) in the third subroutine process shown in FIG. 18 instead of the first calculation process (A) shown in the first embodiment, the first calculation process (B) Execute. Further, in S1803 of the third subroutine process shown in FIG. 18, the second calculation process (B) is executed instead of the second calculation process (A) shown in the first embodiment.
  • FIG. 24 shows an example of the first calculation process (B) flow.
  • the first calculation unit 1119 sets “0” to the parameter 1211 of the first estimation time (S2401).
  • the processes in S1903 and S1905 are the same as in the first calculation process (A).
  • FIG. 25 shows an example of the flow of the second calculation process (B).
  • the second calculator 1121 sets “0” to the parameter 1213 of the second estimated time (S2501).
  • the processes from S2003 to S2007 are the same as those in the second calculation process (A).
  • the measurement process of the delay time L in S1401 of FIG. 14 may be omitted. Therefore, the second measurement unit 1111 may be omitted.
  • comparison formula in the determination processing shown in S1805 of FIG. 18 is represented by the following formula in the case of the present embodiment.
  • the process of measuring the delay time L can be omitted.
  • the total converted data amount W b can be obtained by the following equation.
  • Equation (9) is equivalent to equation (7).
  • the situation is determined according to Equation (9).
  • the third subroutine processing (B) is substituted for the third subroutine processing (A) shown in the first embodiment.
  • the third subroutine processing (S2129) in the second subroutine processing shown in FIG. 21B the third subroutine processing (B) is executed instead of the third subroutine processing (A) shown in the first embodiment.
  • FIG. 26 shows an example of the third subroutine processing (B) flow.
  • Switching unit 1123 the value indicated by the parameter 1203 of the total R in the reduction, by dividing the total W value indicated by the parameter 1201 of a partial amount of data to calculate the reduction rate c of the data by de-duplication (S2601 ). If it is assumed that the data reduction rate c does not fluctuate, the processing shown in S2601 may be omitted and the already calculated data reduction rate c may be used.
  • Switching unit 1123 similarly to the processing in S1903 shown in FIG. 19, by dividing the total W value indicated by the parameter 1209 Parameter 1201 speed communication a value indicated by the S of a partial amount of data, perform deduplication If not, the total communication time T a is calculated (S2603).
  • Switching unit 1123 determines the sum P of the conversion time for the overlap removal, to or greater than the product of the sum T a communication time of the case without the reduction rate c and de-duplication of data (S2605 ).
  • Total P conversion time for the overlap removal, processing when it is determined to be equal to or greater than the product of the sum T a communication time of the case without the reduction rate c and deduplication data are shown in FIG. 18 This is the same as the processing in S1807.
  • Total P conversion time for the duplication removal processing when it is determined that not more than the product of the sum T a communication time of the case without the reduction rate c and deduplication data are shown in FIG. 18 S1809 This is the same as the process.
  • the product of the sum T a communication time of the case without the reduction factor c and de-duplication data corresponds to the shortening of the total communication time by the conversion.
  • the switching unit 1123 may calculate the data remaining rate k instead of the data reduction rate c.
  • the switching unit 1123 for example, the difference obtained by subtracting the value indicated by the parameter 1203 of the total R in the reductions from the total W value indicated by the parameter 1201 of a partial amount of data of a total of W a partial data amount parameter 1201 By dividing by the value indicated by, the data remaining rate k is calculated.
  • the switching unit 1123 makes a determination based on Expression (10) instead of Expression (9) in S2605.
  • Expression (10) instead of Expression (9) in S2605.
  • the data remaining rate k may be used.
  • the processing amount of the reduction rate c when it is assumed that the data reduction rate c does not fluctuate, the processing amount of the reduction rate c can be reduced. Similarly, when it is assumed that the data remaining rate k does not fluctuate, the processing amount of the remaining rate k can be reduced.
  • the present invention is not limited to this.
  • the functional block configuration described above may not match the program module configuration.
  • each storage area described above is an example, and the configuration as described above is not necessarily required. Further, in the processing flow, if the processing result does not change, the processing order may be changed or a plurality of processes may be executed in parallel.
  • the relay device described above is a computer device.
  • the relay device includes a memory 2501, a CPU (Central Processing Unit) 2503, a hard disk drive (HDD: Hard Disk Drive) 2505, and a display device 2509.
  • a display control unit 2507 to be connected, a drive device 2513 for the removable disk 2511, an input device 2515, and a communication control unit 2517 for connecting to a network are connected by a bus 2519.
  • An operating system (OS: Operating System) and an application program for executing the processing in this embodiment are stored in the HDD 2505, and are read from the HDD 2505 to the memory 2501 when executed by the CPU 2503.
  • OS Operating System
  • the CPU 2503 controls the display control unit 2507, the communication control unit 2517, and the drive device 2513 according to the processing content of the application program to perform a predetermined operation. Further, data in the middle of processing is mainly stored in the memory 2501, but may be stored in the HDD 2505.
  • an application program for executing the above-described processing is stored in a computer-readable removable disk 2511 and distributed, and installed in the HDD 2505 from the drive device 2513. In some cases, the HDD 2505 may be installed via a network such as the Internet and the communication control unit 2517.
  • Such a computer apparatus realizes various functions as described above by organically cooperating hardware such as the CPU 2503 and the memory 2501 described above and programs such as the OS and application programs.
  • the communication speed of the communication network is obtained by a computer that performs deduplication conversion on the partial data divided from the transmission data and sends the converted data to the communication network.
  • the first communication time may be calculated by dividing the total amount of partial data by the communication speed.
  • the second communication time may be calculated by dividing the total amount of the converted data by the communication speed.
  • the communication time is obtained by dividing the total amount of data by the communication speed, it is not necessary to measure the time required for sending the data to be transmitted and the time required for sending the converted data.
  • a total reduction amount of communication time by the conversion is calculated, and based on a comparison result between the total processing time and the reduction amount. It may be determined whether the above situation is applicable.
  • a program for causing a computer to perform the processing according to the above method can be created.
  • the program can be a computer-readable storage medium such as a flexible disk, a CD-ROM, a magneto-optical disk, a semiconductor memory, or a hard disk. It may be stored in a storage device. Note that intermediate processing results are generally temporarily stored in a storage device such as a main memory.

Abstract

A communication method according to an aspect of the present invention comprises the steps of (A) measuring communication speed of a communication network by a computer for performing conversion of de-duplication with respect to partial data obtained by dividing transmission data and transmitting the converted data to the communication network, (B) measuring, by the computer, a total processing time for the conversion, and (C) switching, by the computer, to a system for not performing the conversion in the case where it is determined that a situation holds in which transmission efficiency deteriorates by performing the conversion, as compared to the case where the conversion is not performed, on the basis of the communication speed, a total volume of the partial data, the total processing time, and a total volume of the converted data.

Description

通信方法、プログラム及び通信装置COMMUNICATION METHOD, PROGRAM, AND COMMUNICATION DEVICE
 本発明は、伝送データの重複除去の技術に関する。 The present invention relates to a technique for eliminating duplication of transmission data.
 例えば各拠点に設けられた中継装置間のWAN(Wide Area Network)通信においてデータの伝送を行う場合に、過去の伝送データとの重複部分をインデックスに代えることによって、実質的な通信量を削減する技術がある。このようなデータ変換を、重複除去という。 For example, when data is transmitted in WAN (Wide Area Network) communication between relay devices installed at each base, the substantial communication amount is reduced by replacing an overlapping portion with past transmission data with an index. There is technology. Such data conversion is called deduplication.
 重複除去によって実質的な通信量を減らせば、特に大量データの伝送に要する時間は短縮されると期待される。そして、この技術は、様々な設備や通信環境に適用されている。 If the actual amount of communication is reduced by deduplication, the time required to transmit a large amount of data is expected to be shortened. This technique is applied to various facilities and communication environments.
 しかし、重複除去に適しない状況においては、伝送効率が良くなるとは限らない。 However, in a situation that is not suitable for deduplication, transmission efficiency is not always improved.
特開2010-224996号公報JP 2010-224996 A
 本発明の目的は、一側面では、状況に応じて重複除去による非効率化を抑制することである。 An object of the present invention is, in one aspect, to suppress inefficiency due to deduplication depending on the situation.
 一態様に係る通信方法は、伝送データから分割された部分データに対して重複除去の変換を行って、変換されたデータを通信網に送出するコンピュータによって、(A)通信網の通信速度を計測し、(B)上記変換の処理時間の合計を計測し、(C)通信速度、部分データの合計量、上記処理時間の合計及び変換されたデータの合計量に基づいて、上記変換を行わない場合に比べて、上記変換を行うことによって伝送効率が劣化する状況に該当すると判定した場合に、上記変換を行わない方式に切り替える処理を含む。 A communication method according to an aspect includes (A) measuring a communication speed of a communication network by a computer that performs deduplication conversion on partial data divided from transmission data and sends the converted data to the communication network. (B) Measure the total processing time for the conversion, and (C) do not perform the conversion based on the communication speed, the total amount of partial data, the total processing time, and the total amount of converted data. Compared to the case, when it is determined that the transmission efficiency is deteriorated by performing the conversion, a process of switching to a method that does not perform the conversion is included.
 一側面としては、状況に応じて重複除去による非効率化を抑制できる。 As one aspect, inefficiency due to deduplication can be suppressed depending on the situation.
図1は、ネットワークの概要を示す図である。FIG. 1 is a diagram showing an outline of a network. 図2は、重複除去を行わない場合の時間経過の例を示す図である。FIG. 2 is a diagram illustrating an example of the passage of time when deduplication is not performed. 図3は、重複除去を行う場合の時間経過の例を示す図である。FIG. 3 is a diagram illustrating an example of the passage of time when deduplication is performed. 図4は、シーケンスの例を示す図である。FIG. 4 is a diagram illustrating an example of a sequence. 図5は、シーケンスの例を示す図である。FIG. 5 is a diagram illustrating an example of a sequence. 図6Aは、シーケンスの例を示す図である。FIG. 6A is a diagram illustrating an example of a sequence. 図6Bは、シーケンスの例を示す図である。FIG. 6B is a diagram illustrating an example of a sequence. 図7は、シーケンスの例を示す図である。FIG. 7 is a diagram illustrating an example of a sequence. 図8は、シーケンスの例を示す図である。FIG. 8 is a diagram illustrating an example of a sequence. 図9は、シーケンスの例を示す図である。FIG. 9 is a diagram illustrating an example of a sequence. 図10は、中継装置のモジュール構成例を示す図である。FIG. 10 is a diagram illustrating a module configuration example of the relay apparatus. 図11は、第1中継部のモジュール構成例を示す図である。FIG. 11 is a diagram illustrating a module configuration example of the first relay unit. 図12は、パラメータ記憶部の構成例を示す図である。FIG. 12 is a diagram illustrating a configuration example of the parameter storage unit. 図13は、第2中継部のモジュール構成例を示す図である。FIG. 13 is a diagram illustrating a module configuration example of the second relay unit. 図14は、計測処理フローの例を示す図である。FIG. 14 is a diagram illustrating an example of a measurement processing flow. 図15は、第1中継処理フローの例を示す図である。FIG. 15 is a diagram illustrating an example of a first relay processing flow. 図16は、第1サブルーチン処理フローの例を示す図である。FIG. 16 is a diagram illustrating an example of a first subroutine processing flow. 図17は、変換処理フローの例を示す図である。FIG. 17 is a diagram illustrating an example of a conversion processing flow. 図18は、第3サブルーチン処理(A)フローの例を示す図である。FIG. 18 is a diagram illustrating an example of a third subroutine process (A) flow. 図19は、第1算出処理(A)フローの例を示す図である。FIG. 19 is a diagram illustrating an example of the flow of the first calculation process (A). 図20は、第2算出処理(A)フローの例を示す図である。FIG. 20 is a diagram illustrating an example of the flow of the second calculation process (A). 図21Aは、第2サブルーチン処理フローの例を示す図である。FIG. 21A is a diagram showing an example of a second subroutine processing flow. 図21Bは、第2サブルーチン処理フローの例を示す図である。FIG. 21B is a diagram showing an example of the second subroutine processing flow. 図22は、第2中継処理フローの例を示す図である。FIG. 22 is a diagram illustrating an example of the second relay processing flow. 図23は、スループット倍率の例を示す図である。FIG. 23 is a diagram illustrating an example of throughput magnification. 図24は、第1算出処理(B)フローの例を示す図である。FIG. 24 is a diagram illustrating an example of the flow of the first calculation process (B). 図25は、第2算出処理(B)フローの例を示す図である。FIG. 25 is a diagram illustrating an example of the flow of the second calculation process (B). 図26は、第3サブルーチン処理(B)フローの例を示す図である。FIG. 26 is a diagram showing an example of a third subroutine process (B) flow. 図27は、コンピュータの機能ブロック図である。FIG. 27 is a functional block diagram of a computer.
[実施の形態1]
 図1に、ネットワークの概要を示す。この例では、2つの拠点がWANによって接続されている。一方の拠点の内部は、第1LAN(Local Area Network)によって機器(例えば、クライアント端末101)が接続されている。他方の拠点の内部は、第2LANによって機器(例えば、サーバ装置105)が接続されている。
[Embodiment 1]
FIG. 1 shows an outline of the network. In this example, two bases are connected by a WAN. Inside one of the bases, a device (for example, the client terminal 101) is connected by a first LAN (Local Area Network). Inside the other base, a device (for example, the server device 105) is connected by a second LAN.
 このようにWANで接続された拠点間でデータ通信を行う場合の性能は、WANにおける通信速度に依存することが多い。 The performance when performing data communication between bases connected by a WAN in this way often depends on the communication speed in the WAN.
 そのため、WANにおける通信トラフィックを削減するために、WANとLANの境界に中継装置が設けられることがある。送信側の中継装置は、伝送すべきデータを圧縮して、通信データの量を減らす。あるいは、送信側の中継装置は、伝送すべきデータに含まれる重複箇所を除去し、つまり既に伝送されたデータと同じ内容を省くことによって、通信データの量を減らす。本実施の形態では、重複除去に着目する。 Therefore, a relay device may be provided at the boundary between the WAN and the LAN in order to reduce communication traffic in the WAN. The transmission side relay device compresses the data to be transmitted to reduce the amount of communication data. Alternatively, the relay device on the transmission side reduces the amount of communication data by removing duplicate portions included in the data to be transmitted, that is, omitting the same contents as the already transmitted data. In the present embodiment, attention is paid to deduplication.
 この例では、第1LANとWANとの境界に中継装置109が設けられている。更に、第2LANとWANとの境界に中継装置111が設けられている。尚、中継装置は、ミドルボックスと呼ばれることもある。 In this example, a relay device 109 is provided at the boundary between the first LAN and the WAN. Further, a relay device 111 is provided at the boundary between the second LAN and the WAN. Note that the relay device is sometimes called a middle box.
 この例では、クライアント端末101で動作している第1アプリケーションプログラム103から、サーバ装置105で動作している第2アプリケーションプログラム107へアプリケーションデータを送ることを想定する。 In this example, it is assumed that application data is sent from the first application program 103 running on the client terminal 101 to the second application program 107 running on the server device 105.
 送信側の拠点に設けられた中継装置109(以下では、送信側の中継装置109という)は、アプリケーションデータを中継する際に、過去に送信あるいは受信したデータとの重複の有無をチェックし、重複するデータをキャッシュ領域における格納位置を特定するためのインデックスに置き換える。以下では、送信側の中継装置109における中継を第1中継という。 When relaying application data, the relay device 109 (hereinafter referred to as the relay device 109 on the transmission side) provided at the base on the transmission side checks whether there is duplication with data transmitted or received in the past. The data to be replaced is replaced with an index for specifying the storage position in the cache area. Hereinafter, the relay in the transmission-side relay device 109 is referred to as a first relay.
 受信側の拠点に設けられた中継装置111(以下では、受信側の中継装置111という)は、送信側の中継装置109から送られたインデックスに基づいて、キャッシュ領域に格納されているデータを取得する。以下では、受信側の中継装置111における中継を第2中継という。 The relay device 111 (hereinafter referred to as the reception-side relay device 111) provided at the reception-side base acquires the data stored in the cache area based on the index sent from the transmission-side relay device 109. To do. Hereinafter, the relay in the receiving-side relay device 111 is referred to as a second relay.
 例えば、過去に第1アプリケーションプログラム103から第2アプリケーションプログラム107へ送られたアプリケーションデータと同じアプリケーションデータが、再び第1アプリケーションプログラム103から第2アプリケーションプログラム107へ送られる場合に、重複が生じる。他にも、過去に第2アプリケーションプログラム107から第1アプリケーションプログラム103へ送られたアプリケーションデータの一部を第1アプリケーションプログラム103において改変し、改変されたアプリケーションデータが第1アプリケーションプログラム103から第2アプリケーションプログラム107へ送られる場合にも、重複が生じる。 For example, duplication occurs when the same application data that was previously sent from the first application program 103 to the second application program 107 is sent again from the first application program 103 to the second application program 107. In addition, a part of application data sent from the second application program 107 to the first application program 103 in the past is modified in the first application program 103, and the modified application data is changed from the first application program 103 to the second application data. Duplication also occurs when it is sent to the application program 107.
 次に、重複除去を行わない第1中継における所要時間と、重複除去を行う第1中継における所要時間とについて説明する。 Next, the time required for the first relay that does not perform duplication removal and the time required for the first relay that performs duplication removal will be described.
 図2に、重複除去を行わない場合の時間経過の例を示す。図2は、下向きに時間経過を示している。左側の列は、送信側の中継装置109における時間経過を示している。右側の列は、受信側の中継装置111における時間経過を示している。 Fig. 2 shows an example of the passage of time when duplicate removal is not performed. FIG. 2 shows the passage of time downward. The column on the left shows the passage of time in the relay apparatus 109 on the transmission side. The right column shows the passage of time in the receiving side relay device 111.
 また、第1アプリケーションプログラム103は、アプリケーションデータをn個の部分データに分割し、n回に分けて送出するものとする。部分データは、例えばセグメントと呼ばれるデータである。図2に示すように、1回目の部分データの量は、W1aバイトである。2回目の部分データの量は、W2aバイトである。3回目の部分データの量は、W3aバイトである。そして、n回目の部分データの量は、Wnaバイトである。これらの部分データが、連続して送信される。このようにして、連続して送信されるデータ量の制限は、ウインドウサイズと呼ばれる。尚、ウインドウサイズは、クライアント端末101及びサーバ装置105において設定されており、送信側の中継装置109及び受信側の中継装置111は、ウインドウサイズの値を保持していない。 In addition, the first application program 103 divides application data into n pieces of partial data, and transmits them divided into n times. The partial data is data called a segment, for example. As shown in FIG. 2, the amount of partial data for the first time is W 1a bytes. The amount of the second partial data is W 2a bytes. The amount of the third partial data is W 3a bytes. The amount of the nth partial data is W na bytes. These partial data are transmitted continuously. In this way, the limitation on the amount of data transmitted continuously is called the window size. The window size is set in the client terminal 101 and the server device 105, and the transmission-side relay device 109 and the reception-side relay device 111 do not hold the window size value.
 送信側の中継装置109から受信側の中継装置111へデータを送る際には、遅延が生じる。従って、送信側の中継装置109において送信処理を開始した時点から遅延時間Lだけ経過した時点で、受信側の中継装置111において受信処理が開始される。また、部分データの通信に要する時間は、部分データの量とWANにおける通信速度S(図2では、Sと示す。)に依存する。通信速度Sの単位は、バイト毎秒である。 When sending data from the relay device 109 on the transmission side to the relay device 111 on the reception side, a delay occurs. Therefore, when the delay time L has elapsed from the time when the transmission processing is started in the transmission-side relay device 109, the reception processing is started in the reception-side relay device 111. Further, the time required for the communication of the partial data depends on the amount of the partial data and the communication speed S (denoted as S in FIG. 2) in the WAN. The unit of the communication speed S is bytes per second.
 1回目の部分データの通信に要する時間は、W1a/Sである。2回目の部分データの通信に要する時間は、W2a/Sである。3回目の部分データの通信に要する時間は、W3a/Sである。そして、n回目の部分データの通信に要する時間は、Wna/Sである。 The time required for the first partial data communication is W 1a / S. The time required for the second partial data communication is W 2a / S. The time required for the third partial data communication is W 3a / S. The time required for the n-th partial data communication is W na / S.
 最後に、n回目の部分データを受信した受信側の中継装置111から送信側の中継装置109に応答が送られ、当該応答が送信側の中継装置109に到着するまでに遅延時間Lが経過する。 Finally, a response is sent from the receiving-side relay device 111 that has received the nth partial data to the transmitting-side relay device 109, and a delay time L elapses until the response arrives at the transmitting-side relay device 109. .
 従って、重複除去を行わない第1中継における所要時間(以下、第1推定時間という。)は、式(1)によって推定される。 Therefore, the required time (hereinafter referred to as the first estimated time) in the first relay that does not perform de-duplication is estimated by equation (1).
第1推定時間=2L+W1a/S+W2a/S+W3a/S+・・・+Wna/S (1)  First estimated time = 2L + W 1a / S + W 2a / S + W 3a / S +... + W na / S (1)
 ここで、部分データ量の合計をWaで表すと、式(1)は式(2)に書き換えられる。尚、Wa/Sは、重複除去を行わない場合の通信時間の合計Taに相当する。 Here, when the total amount of partial data is represented by W a , Equation (1) can be rewritten as Equation (2). Note that W a / S corresponds to the total communication time T a when deduplication is not performed.
第1推定時間=2L+Wa/S (2)  First estimated time = 2L + W a / S (2)
 図3に、重複除去を行う場合の時間経過の例を示す。図2の場合と同様に、図3は、下向きに時間経過を示している。同じく左側の列は、送信側の中継装置109における時間経過を示している。同じく右側の列は、受信側の中継装置111における時間経過を示している。 Fig. 3 shows an example of the passage of time when deduplication is performed. As in FIG. 2, FIG. 3 shows the passage of time downward. Similarly, the left column shows the passage of time in the relay apparatus 109 on the transmission side. Similarly, the right column indicates the passage of time in the receiving-side relay device 111.
 図2に示した例と同じ条件でアプリケーションデータがn個の部分データに分割されて、クライアント端末101からn回に分けて送出されるものとする。 Suppose that application data is divided into n partial data under the same conditions as in the example shown in FIG. 2, and is sent out from the client terminal 101 in n times.
 重複除去によって変換されたデータは、元の部分データよりも小さくなる。つまり、1回目に変換されたデータの量は、W1bバイトであり、1回目の部分データの量W1aバイトよりも少ない。2回目に変換されたデータの量は、W2bバイトであり、2回目の部分データの量W2aバイトよりも少ない。3回目に変換されたデータの量は、W3bバイトであり、3回目の部分データの量W3aバイトよりも少ない。そして、n回目に変換されたデータの量は、Wnbバイトであり、n回目の部分データの量Wnaバイトよりも少ない。 Data converted by deduplication is smaller than the original partial data. That is, the amount of data converted at the first time is W 1b bytes, which is smaller than the amount of partial data at the first time W 1a bytes. The amount of data converted for the second time is W 2b bytes, which is smaller than the amount of partial data W 2a bytes for the second time. The amount of data converted for the third time is W 3b bytes, which is smaller than the amount of partial data W 3a bytes for the third time. Then, the amount of converted data to the n th is W nb bytes, less than the amount W na byte n-th partial data.
 従って、1回目に変換されたデータの通信に要する時間は、W1b/Sであり、1回目の部分データの通信に要する時間W1a/Sよりも短い。2回目に変換されたデータの通信に要する時間は、W2b/Sであり、2回目の部分データの通信に要する時間W2a/Sよりも短い。3回目に変換されたデータの通信に要する時間は、W3b/Sであり、3回目の部分データの通信に要する時間W3a/Sよりも短い。そして、n回目に変換されたデータの通信に要する時間は、Wnb/Sであり、n回目の部分データの通信に要する時間Wna/Sよりも短い。 Therefore, the time required for communication of the first converted data is W 1b / S, which is shorter than the time W 1a / S required for communication of the first partial data. The time required for the communication of the second converted data is W 2b / S, which is shorter than the time W 2a / S required for the second partial data communication. The time required for communication of the converted data for the third time is W 3b / S, which is shorter than the time W 3a / S required for communication of the third partial data. The time required for communication of the nth converted data is W nb / S, which is shorter than the time required for communication of the nth partial data W na / S.
 重複除去を行う第1中継における所要時間には、各部分データに対する重複除去のための変換を行う処理時間(以下では、この処理時間を変換時間という。)が含まれる。つまり、1回目の部分データに対する変換時間P1からn回目の部分データに対する変換時間Pnまでの合計が、重複除去を行う第1中継における所要時間に含まれる。遅延時間Lについては、図2の場合と同様である。 The time required for the first relay for performing deduplication includes processing time for performing conversion for deduplication on each partial data (hereinafter, this processing time is referred to as conversion time). That is, the total from the conversion time P 1 for the first partial data to the conversion time P n for the n-th partial data is included in the required time in the first relay for performing deduplication. The delay time L is the same as in the case of FIG.
 従って、重複除去を行う第1中継における所要時間(以下、第2推定時間という。)は、式(3)によって推定される。 Therefore, the time required for the first relay for performing deduplication (hereinafter referred to as the second estimated time) is estimated by equation (3).
第2推定時間=2L+W1b/S+W2b/S+W3b/S+・・・+Wnb/S+P1+P2+P3+・・・+Pn (3)  Second estimated time = 2L + W 1b / S + W 2b / S + W 3b / S +... + W nb / S + P 1 + P 2 + P 3 + ... + P n (3)
 ここで、変換されたデータ量の合計をWbで表し、重複除去のための変換時間の合計をPで表すと、式(3)は式(4)に書き換えられる。尚、Wb/Sは、重複除去を行う場合の通信時間の合計Tbに相当する。 Here, when the total amount of converted data is represented by W b and the total conversion time for deduplication is represented by P, Equation (3) is rewritten into Equation (4). Note that W b / S corresponds to the total communication time T b when deduplication is performed.
第2推定時間=2L+Wb/S+P (4)  Second estimated time = 2L + W b / S + P (4)
 本実施の形態では、第1推定時間と第2推定時間とを比較し、短い方の推定時間に相当する方式によって第1中継が行われるように制御する。 In the present embodiment, the first estimated time and the second estimated time are compared, and control is performed so that the first relay is performed by a method corresponding to the shorter estimated time.
 第1推定時間と第2推定時間とのうちいずれの推定時間が短くなるか、つまりいずれの方式の伝送効率が上がるかは、状況によって異なる。例えば、通信帯域が狭い場合、つまり通信が遅い場合には、重複除去を行うことによって伝送の効率が上がりやすい。他方、通信帯域が広い場合、つまり通信が速い場合には、重複除去を行うことによって伝送の効率が上がるとは限らない。 推定 Which of the first estimated time and the second estimated time is shortened, that is, which transmission efficiency is increased depends on the situation. For example, when the communication band is narrow, that is, when communication is slow, the efficiency of transmission is easily increased by performing de-duplication. On the other hand, when the communication band is wide, that is, when communication is fast, the efficiency of transmission is not always improved by performing de-duplication.
 また、重複除去によるデータ削減量が多い場合には、重複除去を行うことによって伝送の効率が上がりやすい。他方、重複除去によるデータ削減量が少ない場合には、重複除去を行うことによって、むしろ伝送の効率が下がりやすい。 Also, when the amount of data reduction by deduplication is large, the efficiency of transmission is likely to increase by performing deduplication. On the other hand, when the amount of data reduction by deduplication is small, the efficiency of transmission tends to decrease rather by performing deduplication.
 また、1回の伝送データの量が多い場合、つまりウインドウサイズが大きい場合には、重複除去を行うことによって伝送の効率が上がりやすい。他方、1回に伝送されるデータの量が少ない場合、つまりウインドウサイズが小さい場合には、重複除去を行うことによって、むしろ伝送の効率が下がりやすい。 In addition, when the amount of transmission data at one time is large, that is, when the window size is large, it is easy to increase the transmission efficiency by performing deduplication. On the other hand, when the amount of data transmitted at one time is small, that is, when the window size is small, the efficiency of transmission tends to decrease rather by performing deduplication.
 また、重複除去のための変換処理が速い場合には、重複除去を行うことによって伝送の効率が上がりやすい。他方、重複除去のための変換処理が遅い場合には、重複除去を行うことによって、むしろ伝送の効率が下がりやすい。 Also, when the conversion process for deduplication is fast, the efficiency of transmission is likely to increase by performing deduplication. On the other hand, if the conversion process for deduplication is slow, performing the deduplication tends to lower the transmission efficiency.
 従って、一律に重複除去を行うよりも、状況に応じて重複除去を行うようにすれば、アプリケーションデータのより効率的な伝送が実現できる。 Therefore, more efficient transmission of application data can be realized by performing deduplication according to the situation rather than performing deduplication uniformly.
 次に、この例におけるシーケンスについて説明する。図4に、コネクション状態に至るまでのシーケンスの例を示す。中継装置109は、WAN接続のための初期化処理を行う(S401)。中継装置111も、WAN接続のための初期化処理を行う(S403)。中継装置109は、WAN接続の確認を行う(S405)。中継装置111も、WAN接続の確認を行う(S407)。 Next, the sequence in this example will be described. FIG. 4 shows an example of a sequence up to the connection state. The relay device 109 performs initialization processing for WAN connection (S401). The relay apparatus 111 also performs initialization processing for WAN connection (S403). The relay device 109 confirms the WAN connection (S405). The relay apparatus 111 also confirms the WAN connection (S407).
 本実施の形態は、例えばTCP(Transmission Control Protocol)のようなコネクション型の伝送制御プロトコルを想定している。中継装置109と中継装置111とにおいて、WAN接続が確認された状態で、第1アプリケーションプログラム103は、第2アプリケーションプログラム107に対する接続要求を送信する(S409)。接続要求は、中継装置109において転送され(S411)、更に中継装置111において転送される(S413)。 This embodiment assumes a connection-type transmission control protocol such as TCP (Transmission Control Protocol). The first application program 103 transmits a connection request to the second application program 107 in a state where the WAN connection is confirmed between the relay device 109 and the relay device 111 (S409). The connection request is transferred by the relay device 109 (S411), and further transferred by the relay device 111 (S413).
 第2アプリケーションプログラム107は、接続要求を受信すると(S415)、接続要求への応答を返信する(S417)。応答は、中継装置111において転送され(S419)、更に中継装置109において転送される(S421)。 When receiving the connection request (S415), the second application program 107 returns a response to the connection request (S417). The response is transferred in the relay device 111 (S419), and further transferred in the relay device 109 (S421).
 第1アプリケーションプログラム103が、応答を受信すると(S423)、コネクション状態が確立される。以降、コネクション状態においてアプリケーションデータが伝送される。 When the first application program 103 receives the response (S423), the connection state is established. Thereafter, application data is transmitted in the connection state.
 図5に、アプリケーションデータの伝送におけるシーケンスの例を示す。上述したように、アプリケーションデータは、n個の部分データに分割され、n回に分けて送出される。第1アプリケーションプログラム103が、1回目の部分データを送信すると(S501)、送信側の中継装置109は、1回目の第1中継を行い(S503)、受信側の中継装置111は、1回目の第2中継を行う(S505)。そして、第2アプリケーションプログラム107は、1回目の部分データを受信する(S507)。 Fig. 5 shows an example of a sequence for transmitting application data. As described above, the application data is divided into n pieces of partial data, and is transmitted in n times. When the first application program 103 transmits the first partial data (S501), the transmission-side relay device 109 performs the first first relay (S503), and the reception-side relay device 111 performs the first time. The second relay is performed (S505). Then, the second application program 107 receives the first partial data (S507).
 続いて、第1アプリケーションプログラム103が、2回目の部分データを送信すると(S511)、送信側の中継装置109は、2回目の第1中継を行い(S513)、受信側の中継装置111は、2回目の第2中継を行う(S515)。そして、第2アプリケーションプログラム107は、2回目の部分データを受信する(S517)。 Subsequently, when the first application program 103 transmits the second partial data (S511), the transmission-side relay device 109 performs the second first relay (S513), and the reception-side relay device 111 The second relay is performed for the second time (S515). Then, the second application program 107 receives the second partial data (S517).
 続いて、第1アプリケーションプログラム103が、3回目の部分データを送信すると(S521)、送信側の中継装置109は、3回目の第1中継を行い(S523)、受信側の中継装置111は、3回目の第2中継を行う(S525)。そして、第2アプリケーションプログラム107は、3回目の部分データを受信する(S527)。 Subsequently, when the first application program 103 transmits the partial data for the third time (S521), the relay device 109 on the transmission side performs the first relay for the third time (S523), and the relay device 111 on the reception side The second relay is performed for the third time (S525). Then, the second application program 107 receives the third partial data (S527).
 最後に、第1アプリケーションプログラム103が、n回目の部分データを送信すると(S531)、送信側の中継装置109は、n回目の第1中継を行い(S533)、受信側の中継装置111は、n回目の第2中継を行う(S535)。そして、第2アプリケーションプログラム107は、n回目の部分データを受信する(S537)。 Finally, when the first application program 103 transmits the n-th partial data (S531), the transmission-side relay device 109 performs the n-th first relay (S533), and the reception-side relay device 111 The n-th second relay is performed (S535). Then, the second application program 107 receives the nth partial data (S537).
 n回目の部分データを受信すると、第2アプリケーションプログラム107は、応答を送信する(S541)。受信側の中継装置111は、応答の転送を行い(S543)、更に、送信側の中継装置109も、応答の転送を行う(S545)。そして、第1アプリケーションプログラム103は、応答を受信する(S547)。以上で、アプリケーションデータの伝送が完了する。 When the second partial data is received, the second application program 107 transmits a response (S541). The reception-side relay device 111 transfers the response (S543), and the transmission-side relay device 109 also transfers the response (S545). Then, the first application program 103 receives a response (S547). This completes the transmission of application data.
 図5に示したシーケンスは、重複除去を行う場合と重複除去を行わない場合とにおいて、共通である。 The sequence shown in FIG. 5 is common to the case where deduplication is performed and the case where deduplication is not performed.
 続いて、重複除去を行う場合の第1中継及び第2中継について説明する。図6Aに、重複除去を行う第1中継におけるシーケンスの例を示す。送信側の中継装置109は、第1アプリケーションプログラム103から送出された部分データを受信すると(S601)、部分データ量を特定する(S603)。そして、送信側の中継装置109は、時間計測を開始し(S605)、重複除去のための変換を行う(S607)。重複除去のための変換を終えると、送信側の中継装置109は、時間計測を終了する(S609)。このようにして、送信側の中継装置109は、重複除去のための変換時間を計測する。次に、送信側の中継装置109は、重複除去によるデータ削減量を算出する(S611)。このように、第1中継において得られた部分データ量、重複除去のための変換時間及びデータ削減量が、後述する状況の判定において用いられる。 Subsequently, the first relay and the second relay in the case of performing deduplication will be described. FIG. 6A shows an example of a sequence in the first relay that performs deduplication. When receiving the partial data sent from the first application program 103 (S601), the transmission-side relay device 109 specifies the partial data amount (S603). Then, the transmission-side relay device 109 starts time measurement (S605) and performs conversion for deduplication (S607). When the conversion for deduplication is completed, the transmission-side relay device 109 ends the time measurement (S609). In this way, the transmission-side relay device 109 measures the conversion time for deduplication. Next, the transmission-side relay device 109 calculates a data reduction amount due to de-duplication (S611). In this way, the partial data amount obtained in the first relay, the conversion time for removing duplicates, and the data reduction amount are used in the determination of the situation described later.
 そして、送信側の中継装置109は、変換されたデータを受信側の中継装置111へ送信する(S613)。尚、S601からS613までの処理については、後に詳しく述べる。 Then, the transmission-side relay device 109 transmits the converted data to the reception-side relay device 111 (S613). Note that the processing from S601 to S613 will be described in detail later.
 図6Bに、重複除去を行った場合の第2中継におけるシーケンスの例を示す。受信側の中継装置111は、変換されたデータを受信し(S615)、変換されたデータに対する復元処理を実行する(S617)。受信側の中継装置111は、復元された部分データを第2アプリケーションプログラム107に送信する(S619)。S615からS619までの処理についても、後に詳しく述べる。 FIG. 6B shows an example of a sequence in the second relay when deduplication is performed. The receiving-side relay device 111 receives the converted data (S615), and executes a restoration process on the converted data (S617). The receiving-side relay device 111 transmits the restored partial data to the second application program 107 (S619). The processing from S615 to S619 will also be described in detail later.
 図7に、重複除去を行う場合における状況の判定と切り替えに関するシーケンスの例を示す。送信側の中継装置109は、制御フラグを用いて、重複除去を行う方式と重複除去を行わない方式とを切り替える。この例では、送信側の中継装置109で記憶している制御フラグにONが設定されている場合に、送信側の中継装置109は上述した第1中継を行う。つまり、制御フラグがONであれば、重複除去を行う方式が選択されていることを意味する。制御フラグにONが設定されている場合のアプリケーションデータの伝送が完了すると(S701)、状況の判定が行われる(S703)。 Fig. 7 shows an example of a sequence related to situation determination and switching when deduplication is performed. The relay apparatus 109 on the transmission side switches between a method for performing deduplication and a method for not performing deduplication using the control flag. In this example, when the control flag stored in the transmission-side relay device 109 is set to ON, the transmission-side relay device 109 performs the first relay described above. That is, if the control flag is ON, it means that a method for performing deduplication is selected. When the transmission of application data is completed when the control flag is set to ON (S701), the situation is determined (S703).
 状況の判定において、送信側の中継装置109は、式(2)に基づいて第1推定時間を算出し、更に式(4)に基づいて第2推定時間を算出する。そして、第1推定時間と第2推定時間とのうち、いずれが短いかを判定する。第1推定時間の方が短ければ、重複除去を行わない方が良い状況であることを意味する。第2推定時間の方が短ければ、重複除去を行う方が良い状況であることを意味する。 In the situation determination, the relay apparatus 109 on the transmission side calculates the first estimated time based on the equation (2), and further calculates the second estimated time based on the equation (4). Then, it is determined which is shorter between the first estimated time and the second estimated time. If the first estimated time is shorter, it means that it is better not to perform deduplication. If the second estimation time is shorter, it means that it is better to perform deduplication.
 第2推定時間の方が短いと判定された場合には、制御フラグはONのままである。そして、次のアプリケーションデータについて、同様に伝送が行われ(S705)、同様に判定が行われる(S707)。 If it is determined that the second estimated time is shorter, the control flag remains ON. Then, the next application data is similarly transmitted (S705), and the determination is similarly performed (S707).
 このように、アプリケーションデータの伝送と判定が繰り返される。第2推定時間の方が短いと判定されている間は、制御フラグは切り替わらない。つまり、重複除去が継続的に行われる。 In this way, transmission and determination of application data are repeated. While it is determined that the second estimated time is shorter, the control flag is not switched. That is, deduplication is continuously performed.
 上述したように、重複除去を行うことによって、むしろ伝送の効率が下がりやすい状況において、アプリケーションデータの伝送が行われると(S709)、S711において、第1推定時間の方が短いと判定される。その結果、制御フラグがONからOFFに切り替えられる(S713)。そして、次から、重複除去を行わない方式で第1中継が行われる。 As described above, when application data is transmitted in a situation where the transmission efficiency tends to be lowered by performing deduplication (S709), it is determined in S711 that the first estimated time is shorter. As a result, the control flag is switched from ON to OFF (S713). Then, the first relay is performed in a manner that does not perform deduplication.
 この例では、アプリケーションデータの伝送が行われる毎に、状況の判定を行うようにしているが、アプリケーションデータの伝送が複数回行われたタイミングで、状況の判定を行うようにしてもよい。 In this example, the situation is determined every time application data is transmitted, but the situation may be determined at the timing when the application data is transmitted a plurality of times.
 続いて、重複除去を行わない場合の第1中継及び第2中継について説明する。図8に、重複除去を行わない場合の第1中継及び第2中継におけるシーケンスの例を示す。送信側の中継装置109は、第1アプリケーションプログラム103から送出された部分データを受信すると(S801)、受信した部分データを受信側の中継装置111へ送信する(S803)。 Subsequently, the first relay and the second relay when no duplicate removal is performed will be described. FIG. 8 shows an example of a sequence in the first relay and the second relay when deduplication is not performed. When receiving the partial data sent from the first application program 103 (S801), the transmission-side relay device 109 transmits the received partial data to the reception-side relay device 111 (S803).
 受信側の中継装置111は、送信側の中継装置109から送られた部分データを受信すると(S805)、受信した部分データを第2アプリケーションプログラム107に送信する(S807)。 When receiving the partial data sent from the transmission-side relay device 109 (S805), the reception-side relay device 111 transmits the received partial data to the second application program 107 (S807).
 図9に、重複除去を行わない場合における状況の判定と切り替えに関するシーケンスの例を示す。このように、制御フラグにOFFが設定されている場合にアプリケーションデータの伝送が完了しても、状況の判定を行うためのデータが得られないので、状況の判定は行われない。但し、所定のタイミングにおいて状況のチェックを行う。つまり、制御フラグにONが設定されている場合と同様に、第1中継において重複除去を行い、更に状況の判定を行う。そして、制御フラグにONが設定されている場合と同様に切り替えを行う。 FIG. 9 shows an example of a sequence relating to situation determination and switching when no deduplication is performed. As described above, even when the transmission of application data is completed when the control flag is set to OFF, the data for determining the situation cannot be obtained, so the situation is not determined. However, the situation is checked at a predetermined timing. That is, as in the case where the control flag is set to ON, deduplication is performed in the first relay, and the situation is further determined. Then, switching is performed in the same manner as when the control flag is set to ON.
 図9の例では、S901及びS903に示したアプリケーションデータの伝送の場合、第1中継において重複除去は行われない。一方、S905に示したアプリケーションデータの伝送では、状況をチェックするために、制御フラグにONが設定されている場合と同様に第1中継において重複除去が行われる。そして、S907において状況の判定を行う。S907において第2推定時間の方が短いと判定されれば、制御フラグの切り替えは行われない。 In the example of FIG. 9, in the case of transmission of application data shown in S901 and S903, deduplication is not performed in the first relay. On the other hand, in the transmission of application data shown in S905, deduplication is performed in the first relay as in the case where the control flag is set to ON in order to check the situation. In step S907, the situation is determined. If it is determined in S907 that the second estimated time is shorter, the control flag is not switched.
 その後、S909及びS911に示したアプリケーションデータの伝送の場合にも、第1中継において重複除去は行われない。S913に示したアプリケーションデータの伝送では、S905の場合と同様に状況をチェックするために第1中継において重複除去が行われる。S915において第1推定時間の方が短いと判定されると、S917において制御フラグがOFFからONに切り替えられる。そして、次から、重複除去を行う方式で第1中継が行われる。 Thereafter, even in the case of transmission of application data shown in S909 and S911, deduplication is not performed in the first relay. In the transmission of application data shown in S913, deduplication is performed in the first relay to check the situation in the same way as in S905. If it is determined in S915 that the first estimated time is shorter, the control flag is switched from OFF to ON in S917. Then, the first relay is performed from the next by the method of performing deduplication.
 図7及び図9の例では、1回の判定結果に基づいて切り替えを行うようにしているが、複数回の判定結果に基づいて切り替えを行うようにしてもよい。例えば、複数回連続して同じ判定結果が得られた場合に、切り替えを行うようにしてもよい。 7 and 9, switching is performed based on a single determination result, but switching may be performed based on a plurality of determination results. For example, switching may be performed when the same determination result is obtained a plurality of times.
 次に、中継装置の構成及び動作について説明する。尚、図1に示した中継装置109及び中継装置111は、同じ構成を有し、同様に動作する。つまり、第2アプリケーションプログラム107から第1アプリケーションプログラム103へアプリケーションデータが伝送される場合には、中継装置111が送信側として第1中継を行い、中継装置109が受信側として第2中継を行う。 Next, the configuration and operation of the relay device will be described. Note that the relay device 109 and the relay device 111 illustrated in FIG. 1 have the same configuration and operate in the same manner. That is, when application data is transmitted from the second application program 107 to the first application program 103, the relay device 111 performs the first relay as the transmission side, and the relay device 109 performs the second relay as the reception side.
 図10に、中継装置のモジュール構成例を示す。中継装置109は、初期化部1001、確認部1003、接続部1005、第1中継部1007、第2中継部1009及びキャッシュデータ記憶部1011を有する。 Fig. 10 shows a module configuration example of the relay device. The relay device 109 includes an initialization unit 1001, a confirmation unit 1003, a connection unit 1005, a first relay unit 1007, a second relay unit 1009, and a cache data storage unit 1011.
 初期化部1001は、WAN接続のための初期化(例えば、図4に示したS401)を行う。確認部1003は、WAN接続の確認(例えば、図4に示したS405)を行う。接続部1005は、コネクション確立のための処理(例えば、図4に示したS411及びS421)を行う。 The initialization unit 1001 performs initialization for WAN connection (for example, S401 shown in FIG. 4). The confirmation unit 1003 confirms WAN connection (for example, S405 illustrated in FIG. 4). The connection unit 1005 performs processing for establishing a connection (for example, S411 and S421 illustrated in FIG. 4).
 第1中継部1007は、送信側としての中継、つまり第1中継を行う。第1中継部1007については、図11を用いて後に詳述する。第2中継部1009は、受信側としての中継、つまり第2中継を行う。第2中継部1009については、図13を用いて後に詳述する。キャッシュデータ記憶部1011は、保存対象のデータを格納するためのキャッシュ領域を有している。また、キャッシュデータ記憶部1011は、ハッシュテーブルを記憶するための領域も有している。 The first relay unit 1007 performs relay as a transmission side, that is, first relay. The first relay unit 1007 will be described in detail later with reference to FIG. The second relay unit 1009 performs relay as a reception side, that is, second relay. The second relay unit 1009 will be described in detail later with reference to FIG. The cache data storage unit 1011 has a cache area for storing data to be saved. The cache data storage unit 1011 also has an area for storing a hash table.
 図11に、第1中継部1007のモジュール構成例を示す。第1中継部1007は、制御部1101、第1受信部1103、第1送信部1105、変換部1107、第1計測部1109、第2計測部1111、第3計測部1113、第1合計部1115、第2合計部1117、第1算出部1119、第2算出部1121、切り替え部1123、フラグ記憶部1125及びパラメータ記憶部1127を有する。 FIG. 11 shows a module configuration example of the first relay unit 1007. The first relay unit 1007 includes a control unit 1101, a first reception unit 1103, a first transmission unit 1105, a conversion unit 1107, a first measurement unit 1109, a second measurement unit 1111, a third measurement unit 1113, and a first summation unit 1115. , A second summation unit 1117, a first calculation unit 1119, a second calculation unit 1121, a switching unit 1123, a flag storage unit 1125, and a parameter storage unit 1127.
 制御部1101は、第1中継部1007における処理の制御を行う。第1受信部1103は、例えば送信元のアプリケーションプログラムから送られた部分データを受信する。また、第1受信部1103は、受信側のアプリケーションプログラムによる応答を、受信側の中継装置から受信する。第1送信部1105は、例えば変換されたデータ或いは部分データを受信側の中継装置に送信する。 The control unit 1101 controls processing in the first relay unit 1007. The first receiving unit 1103 receives, for example, partial data sent from a transmission source application program. Also, the first receiving unit 1103 receives a response from the receiving-side application program from the receiving-side relay device. The first transmission unit 1105 transmits, for example, converted data or partial data to the relay device on the reception side.
 変換部1107は、重複除去のための変換処理を行う。第1計測部1109は、重複除去のための変換処理における所要時間、つまり変換時間を計測する。第2計測部1111は、相手の中継装置との間で行われる通信における遅延時間Lを計測する。第3計測部1113は、相手の中継装置との間の通信における通信速度S(バイト毎秒)を計測する。 The conversion unit 1107 performs conversion processing for deduplication. The first measurement unit 1109 measures the time required for the conversion process for removing duplicates, that is, the conversion time. The second measuring unit 1111 measures a delay time L in communication performed with the partner relay device. The third measuring unit 1113 measures the communication speed S (bytes per second) in communication with the partner relay device.
 第1合計部1115は、連続する部分データの量の合計を求める。第2合計部1117は、重複除去のための変換処理によるデータ削減量の合計を求める。第1算出部1119は、式(2)によって第1推定時間を算出する。以下、第1算出部1119による算出を、第1算出という。第2算出部1121は、式(4)によって第2推定時間を算出する。以下、第2算出部1121による算出を、第2算出という。切り替え部1123は、第1推定時間と第2推定時間とを比較して、比較結果に基づいて制御フラグを切り替える。 The first summation unit 1115 obtains the total amount of continuous partial data. The second summation unit 1117 obtains the total amount of data reduction by conversion processing for deduplication. The 1st calculation part 1119 calculates 1st estimation time by Formula (2). Hereinafter, the calculation by the first calculation unit 1119 is referred to as a first calculation. The 2nd calculation part 1121 calculates 2nd estimation time by Formula (4). Hereinafter, the calculation by the second calculation unit 1121 is referred to as a second calculation. The switching unit 1123 compares the first estimated time and the second estimated time, and switches the control flag based on the comparison result.
 フラグ記憶部1125は、制御フラグを記憶する。パラメータ記憶部1127は、各種のパラメータを記憶する。 The flag storage unit 1125 stores a control flag. The parameter storage unit 1127 stores various parameters.
 図12に、パラメータ記憶部1127の構成例を示す。パラメータ記憶部1127は、部分データ量の合計Waのパラメータ1201、削減量の合計Rのパラメータ1203、変換時間の合計Pのパラメータ1205、遅延時間Lのパラメータ1207、通信速度Sのパラメータ1209、第1推定時間のパラメータ1211及び第2推定時間のパラメータ1213を記憶する。 FIG. 12 shows a configuration example of the parameter storage unit 1127. The parameter storage unit 1127 includes a parameter 1201 for the total data amount Wa, a parameter 1203 for the total reduction amount R, a parameter 1205 for the total conversion time P, a parameter 1207 for the delay time L, a parameter 1209 for the communication speed S, The parameter 1211 of 1 estimation time and the parameter 1213 of 2nd estimation time are memorize | stored.
 図13に、第2中継部1009のモジュール構成例を示す。第2中継部1009は、第2受信部1301、復元部1303及び第2送信部1305を有する。第2受信部1301は、送信側の中継装置から変換されたデータ又は部分データを受信する。復元部1303は、変換されたデータから部分データを復元する。第2送信部1305は、復元された部分データ又は受信した部分データをあて先のモジュールに送信する。 FIG. 13 shows a module configuration example of the second relay unit 1009. The second relay unit 1009 includes a second reception unit 1301, a restoration unit 1303, and a second transmission unit 1305. The second receiving unit 1301 receives the converted data or partial data from the transmission-side relay device. The restoration unit 1303 restores partial data from the converted data. The second transmission unit 1305 transmits the restored partial data or the received partial data to the destination module.
 上述した初期化部1001、確認部1003、接続部1005、第1中継部1007、第2中継部1009、制御部1101、第1受信部1103、第1送信部1105、変換部1107、第1計測部1109、第2計測部1111、第3計測部1113、第1合計部1115、第2合計部1117、第1算出部1119、第2算出部1121、切り替え部1123、第2受信部1301、復元部1303及び第2送信部1305は、ハードウエア資源(例えば、図27)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。 Initialization unit 1001, confirmation unit 1003, connection unit 1005, first relay unit 1007, second relay unit 1009, control unit 1101, first reception unit 1103, first transmission unit 1105, conversion unit 1107, first measurement Unit 1109, second measurement unit 1111, third measurement unit 1113, first summation unit 1115, second summation unit 1117, first calculation unit 1119, second calculation unit 1121, switching unit 1123, second reception unit 1301, restoration The unit 1303 and the second transmission unit 1305 are realized by using hardware resources (for example, FIG. 27) and a program that causes a processor to execute processing described below.
 上述したキャッシュデータ記憶部1011、フラグ記憶部1125及びパラメータ記憶部1127は、ハードウエア資源(例えば、図27)を用いて実現される。 The cache data storage unit 1011, the flag storage unit 1125, and the parameter storage unit 1127 described above are realized using hardware resources (for example, FIG. 27).
 第1中継部1007は、周期的に遅延時間L及び通信速度Sを計測する処理を行う。図14に、計測処理フローの例を示す。第2計測部1111は、相手の中継装置との間で行われる往復の通信における応答時間を計測する。そして、第2計測部1111は、計測した応答時間を2で除することによってWANを介する通信の遅延時間Lを得る(S1401)。遅延時間Lを計測する方法は、従来技術であってもよい。第2計測部1111は、例えばコマンド「PING(Packet INternet Groper)」を実行するようにしてもよい。計測された遅延時間Lは、遅延時間Lのパラメータ1207に設定される。 The first relay unit 1007 periodically performs a process of measuring the delay time L and the communication speed S. FIG. 14 shows an example of the measurement processing flow. The 2nd measurement part 1111 measures the response time in the round-trip communication performed between the other party's relay apparatuses. Then, the second measurement unit 1111 obtains a delay time L of communication via the WAN by dividing the measured response time by 2 (S1401). The method for measuring the delay time L may be a conventional technique. The second measurement unit 1111 may execute a command “PING (Packet (Internet Groper)”, for example. The measured delay time L is set in the parameter 1207 of the delay time L.
 第3計測部1113は、相手の中継装置との間の通信における通信速度S(バイト毎秒)を計測する(S1403)。つまり、通信速度Sは、WANにおいて利用が許されている通信帯域に相当する。通信速度Sを計測する方法は、従来技術であってもよい。第3計測部1113は、例えばツール「Iperf」を用いるようにしてもよい。計測された通信速度Sは、通信速度Sのパラメータ1209に設定される。 The third measuring unit 1113 measures the communication speed S (bytes per second) in communication with the partner relay device (S1403). That is, the communication speed S corresponds to a communication band that is allowed to be used in the WAN. The method for measuring the communication speed S may be a conventional technique. The third measuring unit 1113 may use, for example, a tool “Iperf”. The measured communication speed S is set in the parameter 1209 of the communication speed S.
 制御部1101は、所定時間が経過したか否かを判定する(S1405)。所定時間は、計測を行う間隔に相当する。所定時間が経過していないと判定した場合には、制御部1101は、S1405の処理を繰り返す。所定時間が経過したと判定した場合には、S1401の処理に戻って、上述した処理を繰り返す。 The control unit 1101 determines whether or not a predetermined time has elapsed (S1405). The predetermined time corresponds to an interval for measuring. If it is determined that the predetermined time has not elapsed, the control unit 1101 repeats the process of S1405. If it is determined that the predetermined time has elapsed, the process returns to S1401, and the above-described process is repeated.
 この例では、計測処理は、図15に示す第1中継処理と並行する。但し、第1中継処理のルーチンの中に、S1401の処理及びS1403の処理を含めるようにしても良い。 In this example, the measurement process is in parallel with the first relay process shown in FIG. However, the process of S1401 and the process of S1403 may be included in the routine of the first relay process.
 次に、第1中継部1007による第1中継処理について説明する。ここでは、説明の便宜のため、送信側の中継装置109における第1中継処理を想定する。図15に、第1中継処理フローの例を示す。制御部1101は、パラメータを初期化する(S1501)。具体的には、部分データ量の合計Waのパラメータ1201、削減量の合計Rのパラメータ1203及び変換時間の合計Pのパラメータ1205に、夫々「0」が設定される。 Next, the first relay process by the first relay unit 1007 will be described. Here, for convenience of explanation, a first relay process in the transmission-side relay device 109 is assumed. FIG. 15 shows an example of the first relay processing flow. The control unit 1101 initializes parameters (S1501). Specifically, the parameter 1201 of the total W a partial amount of data, the parameters 1205 of the total P parameters 1203 and conversion time of a total R of reductions, respectively "0" is set.
 第1受信部1103は、待機して、クライアント端末101から最初の部分データを受信する(S1503)。そして、制御部1101は、制御フラグがONであるか否かを判定する(S1505)。制御フラグがONであると判定した場合には、第1中継部1007は、第1サブルーチン処理を実行し(S1507)、S1501の処理に戻る。第1サブルーチン処理は、重複除去を行う方式に相当する。一方、制御フラグがONではないと判定した場合、つまり制御フラグがOFFである場合には、第1中継部1007は、第2サブルーチン処理を実行し(S1509)、S1501の処理に戻る。第2サブルーチン処理は、重複除去を行わない方式に相当する。以下、順に第1サブルーチン処理と、第2サブルーチン処理とについて詳述する。 The first receiving unit 1103 waits and receives the first partial data from the client terminal 101 (S1503). Then, the control unit 1101 determines whether or not the control flag is ON (S1505). If it is determined that the control flag is ON, the first relay unit 1007 executes a first subroutine process (S1507), and returns to the process of S1501. The first subroutine processing corresponds to a method for performing deduplication. On the other hand, if it is determined that the control flag is not ON, that is, if the control flag is OFF, the first relay unit 1007 executes the second subroutine process (S1509) and returns to the process of S1501. The second subroutine process corresponds to a method that does not perform duplicate removal. Hereinafter, the first subroutine process and the second subroutine process will be described in detail in order.
 図16に、第1サブルーチン処理フローの例を示す。第1合計部1115は、対象となっている部分データの量を特定し、特定された部分データ量を部分データ量の合計Waのパラメータ1201に加算する(S1601)。最初は、図15のS1503において受信した部分データが対象となり、2回目以降は、S1617において受信したと判定された次の部分データが対象となる。 FIG. 16 shows an example of the first subroutine processing flow. First summing unit 1115 specifies the amount of partial data in question, adds the partial data amount specified in the parameter 1201 of the total W a partial data amount (S1601). Initially, the partial data received in S1503 in FIG. 15 is the target, and the second and subsequent partial data determined to be received in S1617 are the target.
 第1計測部1109は、S1605に示す変換処理における所要時間の計測を開始する(S1603)。そして、変換部1107は、変換処理を実行する(S1605)。変換処理では、対象となっている部分データに対する重複除去のための変換を行う。 The first measurement unit 1109 starts measuring the required time in the conversion process shown in S1605 (S1603). Then, the conversion unit 1107 executes a conversion process (S1605). In the conversion process, conversion for removing duplicates is performed on the target partial data.
 図17に、変換処理フローの例を示す。まず、変換部1107は、対象となっている部分データをチャンクに分割する(S1701)。チャンクに分割する方法は、従来技術による。 FIG. 17 shows an example of the conversion process flow. First, the conversion unit 1107 divides the target partial data into chunks (S1701). The method of dividing into chunks is according to the prior art.
 変換部1107は、分割されたチャンクのうち、1つのチャンクを特定する(S1703)。変換部1107は、例えば部分データの先頭から順番にチャンクを特定する。 The conversion unit 1107 identifies one chunk among the divided chunks (S1703). The conversion unit 1107 identifies chunks in order from the top of the partial data, for example.
 変換部1107は、特定されたチャンクに対するハッシュ値を算出する(S1705)。変換部1107は、従来のハッシュ関数(例えば、SHA1)によってハッシュ値を算出してもよい。このとき算出されたハッシュ値は、元となったチャンクを識別するためのIDであって、キャッシュ領域に格納されたチャンクを読み出すためのインデックスとして用いられる。従って、このとき算出されたハッシュ値を、以下ではインデックスという。尚、ハッシュ値は、メッセージダイジェストと呼ばれることもある。変換部1107は、インデックスをキーとして、ハッシュテーブルを探索する(S1707)。 The conversion unit 1107 calculates a hash value for the identified chunk (S1705). The conversion unit 1107 may calculate a hash value using a conventional hash function (for example, SHA1). The hash value calculated at this time is an ID for identifying the original chunk, and is used as an index for reading the chunk stored in the cache area. Accordingly, the hash value calculated at this time is hereinafter referred to as an index. The hash value is sometimes called a message digest. The conversion unit 1107 searches the hash table using the index as a key (S1707).
 処理の対象となっているチャンクが、既にキャッシュ領域に格納されている場合には、当該インデックスがハッシュテーブルに存在する。一方、処理の対象となっているチャンクが、キャッシュ領域に格納されていない場合には、当該インデックスがハッシュテーブルに存在しない。 When the chunk to be processed is already stored in the cache area, the index exists in the hash table. On the other hand, when the chunk to be processed is not stored in the cache area, the index does not exist in the hash table.
 変換部1107は、ハッシュテーブルに当該インデックスが存在したか否かを判定する(S1709)。ハッシュテーブルに当該インデックスが存在しないと判定した場合には、変換部1107は、処理の対象となっているチャンクをキャッシュ領域に保存する(S1711)。このとき、変換部1107は、当該インデックスをハッシュテーブルに追加する(S1713)。そして、変換部1107は、処理の対象となっているチャンクを変換後のデータに追加する(S1715)。変換後のデータは、順次チャンクあるいはインデックスを追加することによって生成される。そして、S1719の処理に移る。 The conversion unit 1107 determines whether or not the index exists in the hash table (S1709). If it is determined that the index does not exist in the hash table, the conversion unit 1107 stores the chunk to be processed in the cache area (S1711). At this time, the conversion unit 1107 adds the index to the hash table (S1713). Then, the conversion unit 1107 adds the chunk to be processed to the converted data (S1715). The converted data is generated by sequentially adding chunks or indexes. Then, the process proceeds to S1719.
 一方、ハッシュテーブルに当該インデックスが存在したと判定した場合には、変換部1107は、当該インデックスを変換後のデータに追加する(S1717)。そして、S1719の処理に移る。 On the other hand, when it is determined that the index exists in the hash table, the conversion unit 1107 adds the index to the converted data (S1717). Then, the process proceeds to S1719.
 変換部1107は、未処理のチャンクがあるか否かを判定する(S1719)。未処理のチャンクがあると判定した場合には、S1703の処理に戻って、上述した処理を繰り返す。 The conversion unit 1107 determines whether there is an unprocessed chunk (S1719). If it is determined that there is an unprocessed chunk, the process returns to S1703 and the above-described process is repeated.
 一方、未処理のチャンクがないと判定した場合には、変換処理を終え、図16に示したS1607の処理に移る。 On the other hand, if it is determined that there is no unprocessed chunk, the conversion process ends, and the process proceeds to S1607 shown in FIG.
 図16の説明に戻る。第1計測部1109は、上述した変換処理における所要時間の計測を終了する(S1607)。そして、第1計測部1109は、計測された変換時間を、変換時間の合計Pのパラメータ1205が示す値に加算する(S1609)。 Returning to the explanation of FIG. The first measurement unit 1109 ends the measurement of the required time in the conversion process described above (S1607). Then, the first measuring unit 1109 adds the measured conversion time to the value indicated by the parameter 1205 of the total conversion time P (S1609).
 第2合計部1117は、変換処理によるデータの削減量を算出する(S1611)。具体的には、部分データの量から、変換されたデータの量を引くことによって、データの削減量が求められる。第2合計部1117は、算出されたデータの削減量を、削減量の合計Rのパラメータ1203が示す値に加算する(S1613)。 The second summation unit 1117 calculates the data reduction amount by the conversion process (S1611). Specifically, the amount of data reduction is obtained by subtracting the amount of converted data from the amount of partial data. The second summation unit 1117 adds the calculated data reduction amount to the value indicated by the parameter 1203 of the total reduction amount R (S1613).
 第1送信部1105は、変換されたデータを受信側の中継装置111に送信する(S1615)。 The first transmission unit 1105 transmits the converted data to the relay device 111 on the receiving side (S1615).
 第1受信部1103は、クライアント端末101から次の部分データを受信したか否かを判定する(S1617)。クライアント端末101から次の部分データを受信したと判定した場合には、S1601の処理に戻って、上述した処理を繰り返す。 The first receiving unit 1103 determines whether or not the next partial data has been received from the client terminal 101 (S1617). If it is determined that the next partial data has been received from the client terminal 101, the process returns to S1601, and the above-described process is repeated.
 一方、クライアント端末101から次の部分データを受信していないと判定した場合には、第1受信部1103は、受信側の中継装置111から応答を受信したか否かを判定する(S1619)。受信側の中継装置111から応答を受信していないと判定した場合には、S1617の処理に戻って、上述した処理を繰り返す。 On the other hand, if it is determined that the next partial data is not received from the client terminal 101, the first receiving unit 1103 determines whether a response is received from the relay device 111 on the receiving side (S1619). If it is determined that no response has been received from the receiving-side relay device 111, the process returns to S1617 and the above-described process is repeated.
 一方、受信側の中継装置111から応答を受信したと判定した場合には、第1中継部1007は、第3サブルーチン処理を実行する(S1621)。第3サブルーチン処理では、図7に示した判定(S703、S707及びS711)及び切り替え(S713)に相当する処理をおこなう。 On the other hand, if it is determined that a response has been received from the receiving-side relay device 111, the first relay unit 1007 executes a third subroutine process (S1621). In the third subroutine processing, processing corresponding to the determination (S703, S707, and S711) and switching (S713) shown in FIG. 7 is performed.
 本実施の形態では、第3サブルーチン処理(A)が行われる。図18に、第3サブルーチン処理(A)フローの例を示す。第1算出部1119は、第1算出処理を実行する(S1801)。本実施の形態では、第1算出処理(A)が行われる。第1算出処理(A)では、式(2)によって、重複除去を行わない第1中継における推定の所要時間、つまり第1推定時間を算出する。 In the present embodiment, the third subroutine process (A) is performed. FIG. 18 shows an example of the third subroutine processing (A) flow. The first calculation unit 1119 executes a first calculation process (S1801). In the present embodiment, the first calculation process (A) is performed. In the first calculation process (A), the time required for estimation in the first relay that does not perform deduplication, that is, the first estimated time, is calculated according to Equation (2).
 図19に、第1算出処理(A)フローの例を示す。第1算出部1119は、第1推定時間のパラメータ1211に、遅延時間Lのパラメータ1207が示す値を2倍した値を設定する(S1901)。第1算出部1119は、部分データ量の合計Waのパラメータ1201が示す値を通信速度Sのパラメータ1209が示す値で除することによって、重複除去を行わない場合の通信時間の合計Taを算出する(S1903)。第1算出部1119は、重複除去を行わない場合の通信時間の合計Taを第1推定時間のパラメータ1211が示す値に加算する(S1905)。第1算出処理(A)を終えると、図18に示したS1803の処理に移る。 FIG. 19 shows an example of the flow of the first calculation process (A). The first calculator 1119 sets a value obtained by doubling the value indicated by the parameter 1207 of the delay time L in the parameter 1211 of the first estimated time (S1901). The first calculation unit 1119, by dividing the value indicated by the parameter 1209 parts total data amount of W a value the communication speed S represented by the parameter 1201, a total of T a communication time of the case of not performing deduplication Calculate (S1903). The first calculation unit 1119 adds the sum T a communication time of the case of not performing de-duplication of the value indicated by the parameter 1211 of the first estimated time (S1905). When the first calculation process (A) is completed, the process proceeds to S1803 shown in FIG.
 図18の説明に戻る。第2算出部1121は、第2算出処理を実行する(S1803)。本実施の形態では、第2算出処理(A)が行われる。第2算出処理(A)では、式(4)によって、重複除去を行う第1中継における推定の所要時間、つまり第2推定時間を算出する。 Returning to the explanation of FIG. The second calculation unit 1121 executes a second calculation process (S1803). In the present embodiment, the second calculation process (A) is performed. In the second calculation process (A), the required time for estimation in the first relay that performs deduplication, that is, the second estimated time, is calculated by Expression (4).
 図20に、第2算出処理(A)フローの例を示す。第2算出部1121は、第2推定時間のパラメータ1213に、遅延時間Lのパラメータ1207が示す値を2倍した値を設定する(S2001)。第2算出部1121は、変換時間の合計Pのパラメータ1205が示す値を第2推定時間のパラメータ1213が示す値に加算する(S2003)。第2算出部1121は、重複除去を行う場合の通信時間の合計Tbを算出する(S2005)。第2算出部1121は、例えば部分データ量の合計Waのパラメータ1201が示す値から削減量の合計Rのパラメータ1203が示す値を差し引いて、変換されたデータの全体量を求める。変換されたデータの全体量は、データの残存量に相当する。第2算出部1121は、更に、変換されたデータの全体量を通信速度Sのパラメータ1209が示す値で除することによって、重複除去を行う場合の通信時間の合計Tbを求める。 FIG. 20 shows an example of the flow of the second calculation process (A). The second calculator 1121 sets a value obtained by doubling the value indicated by the parameter 1207 of the delay time L in the parameter 1213 of the second estimated time (S2001). The second calculation unit 1121 adds the value indicated by the parameter 1205 of the total conversion time P to the value indicated by the parameter 1213 of the second estimated time (S2003). The second calculation unit 1121 calculates the total communication time T b when performing deduplication (S2005). The second calculating unit 1121, for example, by subtracting the value indicated by the parameter 1203 of the total R in the reductions from the total W value indicated by the parameter 1201 of a partial amount of data to determine the total amount of converted data. The total amount of converted data corresponds to the remaining amount of data. The second calculation unit 1121 further obtains a total communication time T b when performing deduplication by dividing the total amount of the converted data by the value indicated by the parameter 1209 of the communication speed S.
 第2算出部1121は、他の手順によって、変換されたデータの量を算出するようにしてもよい。第2算出部1121は、例えば変換されたデータの量を合計してもよい。 The second calculation unit 1121 may calculate the amount of converted data by another procedure. The second calculation unit 1121 may total the amount of converted data, for example.
 第2算出部1121は、重複除去を行う場合の通信時間の合計Tbを第2推定時間のパラメータ1213が示す値に加算する(S2007)。第2算出処理(A)を終えると、図18に示したS1805の処理に移る。 The second calculation unit 1121 adds the total communication time T b when performing deduplication to the value indicated by the parameter 1213 of the second estimated time (S2007). When the second calculation process (A) is completed, the process proceeds to S1805 shown in FIG.
 図18の説明に戻る。切り替え部1123は、第1推定時間のパラメータ1211が示す値と、第2推定時間のパラメータ1213が示す値とを比較する。この例では、切り替え部1123は、第1推定時間が第2推定時間以下であるか否かを判定する(S1805)。第1推定時間が第2推定時間以下であると判定した場合には、切り替え部1123は、制御フラグにOFFを設定する(S1807)。S1807の処理の前に、既に制御フラグにOFFが設定されていた場合には、重複除去を行わない方式が継続されることになる。一方、S1807の処理の前に、制御フラグにONが設定されていた場合には、重複除去を行う方式から重複除去を行わない方式へ切り替えられることになる。 Returning to the explanation of FIG. The switching unit 1123 compares the value indicated by the parameter 1211 of the first estimated time with the value indicated by the parameter 1213 of the second estimated time. In this example, the switching unit 1123 determines whether or not the first estimated time is equal to or shorter than the second estimated time (S1805). When it is determined that the first estimated time is equal to or shorter than the second estimated time, the switching unit 1123 sets the control flag to OFF (S1807). If the control flag has already been set to OFF before the processing of S1807, a method that does not perform de-duplication is continued. On the other hand, if the control flag is set to ON before the processing of S1807, the method for performing deduplication is switched to the method for not performing deduplication.
 一方、第1推定時間が第2推定時間以下ではないと判定した場合、つまり第1推定時間が第2推定時間より長い場合には、切り替え部1123は、制御フラグにONを設定する(S1809)。S1809の処理の前に、既に制御フラグにONが設定されていた場合には、重複除去を行う方式が継続されることになる。一方、S1809の処理の前に、制御フラグにOFFが設定されていた場合には、重複除去を行わない方式から重複除去を行う方式へ切り替えられることになる。 On the other hand, when it is determined that the first estimated time is not shorter than the second estimated time, that is, when the first estimated time is longer than the second estimated time, the switching unit 1123 sets the control flag to ON (S1809). . If the control flag has already been set to ON before the processing of S1809, the method for performing deduplication is continued. On the other hand, if the control flag is set to OFF before the processing of S1809, the method that does not perform deduplication is switched to the method that performs deduplication.
 第3サブルーチン処理を終えると、図16に示した第1サブルーチン処理も終え、図15に示したS1501の処理に戻る。尚、第1推定時間と第2推定時間とが等しい場合に、S1809の処理を行うようにしてもよい。 When the third subroutine process is finished, the first subroutine process shown in FIG. 16 is also finished, and the process returns to the process of S1501 shown in FIG. Note that the processing of S1809 may be performed when the first estimated time and the second estimated time are equal.
 続いて、第2サブルーチン処理について説明する。図21Aに、第2サブルーチン処理フローの例を示す。制御部1101は、状況をチェックするタイミングに該当するか否かを判定する(S2101)。状況をチェックするタイミングは、例えば前回のチェックから所定時間以上経過したときである。あるいは、状況をチェックするタイミングは、前回のチェックからアプリケーションデータを伝送した回数が所定値を超えたときでもよい。あるいは、状況をチェックするタイミングは、所定周期によって決定されるようにしてもよい。あるいは、他の方法で状況をチェックするタイミングを決めるようにしてもよい。 Subsequently, the second subroutine process will be described. FIG. 21A shows an example of the second subroutine processing flow. The control unit 1101 determines whether or not it corresponds to the timing for checking the situation (S2101). The timing for checking the situation is, for example, when a predetermined time or more has elapsed since the previous check. Alternatively, the timing for checking the situation may be when the number of transmissions of application data from the previous check exceeds a predetermined value. Alternatively, the timing for checking the situation may be determined by a predetermined period. Or you may make it determine the timing which checks a condition by another method.
 状況をチェックするタイミングに該当しないと判定した場合には、第1送信部1105は、部分データをそのまま受信側の中継装置111に送信する(S2103)。 If it is determined that the timing does not correspond to the timing for checking the situation, the first transmission unit 1105 transmits the partial data as it is to the relay device 111 on the reception side (S2103).
 第1受信部1103は、クライアント端末101から次の部分データを受信したか否かを判定する(S2105)。クライアント端末101から次の部分データを受信したと判定した場合には、S2103の処理に戻って、上述した処理を繰り返す。 The first receiving unit 1103 determines whether or not the next partial data has been received from the client terminal 101 (S2105). If it is determined that the next partial data has been received from the client terminal 101, the process returns to S2103 and the above-described process is repeated.
 一方、クライアント端末101から次の部分データを受信していないと判定した場合には、第1受信部1103は、受信側の中継装置111から応答を受信したか否かを判定する(S2107)。受信側の中継装置111から応答を受信していないと判定した場合には、S2105の処理に戻って、上述した処理を繰り返す。そして、受信側の中継装置111から応答を受信したと判定した場合には、第2サブルーチン処理を終える。 On the other hand, if it is determined that the next partial data is not received from the client terminal 101, the first receiving unit 1103 determines whether a response is received from the relay device 111 on the receiving side (S2107). If it is determined that a response has not been received from the receiving-side relay device 111, the process returns to S2105 and the above-described process is repeated. And when it determines with having received the response from the relay apparatus 111 of the receiving side, a 2nd subroutine process is complete | finished.
 一方、S2101において、状況をチェックするタイミングに該当すると判定した場合には、図16に示したS1601からS1615までの場合と同様に、S2109からS2123までの処理を行う。そして、端子Aを介して、図21Bに示したS2125の処理に移る。 On the other hand, if it is determined in S2101 that it corresponds to the timing for checking the situation, the processing from S2109 to S2123 is performed as in the case of S1601 to S1615 shown in FIG. Then, the processing proceeds to the process of S2125 illustrated in FIG.
 S2125からS2129までの処理も、図16に示したS1617からS1621までの場合と同様である。S2125において、クライアント端末101から次の部分データを受信したと判定した場合には、端子Bを介して図21Aに示したS2109の処理に戻って、上述した処理を繰り返す。第3サブルーチン処理は、第1サブルーチン処理において実行される場合(図16のS1621)と同様である。S2129における第3サブルーチン処理を終えると、第2サブルーチン処理も終え、図15に示したS1501の処理に戻る。 The processing from S2125 to S2129 is the same as that from S1617 to S1621 shown in FIG. If it is determined in S2125 that the next partial data has been received from the client terminal 101, the process returns to S2109 shown in FIG. The third subroutine process is the same as that executed in the first subroutine process (S1621 in FIG. 16). When the third subroutine processing in S2129 is finished, the second subroutine processing is also finished, and the processing returns to S1501 shown in FIG.
 次に、第2中継部1009による第2中継処理について説明する。ここでは、説明の便宜のため、受信側の中継装置111における第2中継処理を想定する。図22に、第2中継処理フローの例を示す。第2受信部1301は、待機して、送信側の中継装置109から、変換されたデータ又は部分データを受信する(S2201)。復元部1303は、変換されたデータに対する復元処理を実行する(S2203)。復元処理は、従来の方法による。受信したデータに含まれるチャンクは、そのまま復元後のデータに加えられる。受信したデータに含まれるインデックスについては、当該インデックスをキーとしてハッシュテーブルの探索が行われる。そして、元のチャンクに相当するデータがハッシュ領域から取得され、取得されたデータが復元後のデータに加えられる。復元後のデータは、順次チャンクを追加することによって生成される。このようにして、変換されたデータに対して復元処理を実行すると、元の部分データが得られる。尚、部分データを受信したと判別した場合に、復元処理を行わないようにしてもよい。 Next, the second relay process by the second relay unit 1009 will be described. Here, for convenience of explanation, a second relay process in the receiving-side relay device 111 is assumed. FIG. 22 shows an example of the second relay processing flow. The second receiving unit 1301 waits and receives the converted data or partial data from the transmission-side relay device 109 (S2201). The restoration unit 1303 executes a restoration process on the converted data (S2203). The restoration process is based on a conventional method. The chunk included in the received data is added to the restored data as it is. For the index included in the received data, the hash table is searched using the index as a key. Then, data corresponding to the original chunk is acquired from the hash area, and the acquired data is added to the restored data. The restored data is generated by sequentially adding chunks. In this way, when the restoration process is executed on the converted data, the original partial data is obtained. If it is determined that the partial data has been received, the restoration process may not be performed.
 第2送信部1305は、このようにして復元された部分データを、あて先のモジュール(図6Bに示した例では、第2アプリケーションプログラム107)に送信する(S2205)。以上で、中継装置の構成及び動作の説明を終える。 The second transmission unit 1305 transmits the partial data restored in this way to the destination module (in the example shown in FIG. 6B, the second application program 107) (S2205). This is the end of the description of the configuration and operation of the relay device.
 最後に、本実施の形態の適用例を示す。図23に、スループット倍率の例を示す。枠で示した棒は、本実施の形態を採用した場合のスループット倍率を示している。本実施の形態を採用した場合のスループット倍率は、本実施の形態を採用した場合のスループット、つまり状況に応じて重複除去を行う場合のスループットを、重複除去を行わない場合のスループットで割った値である。 Finally, an application example of this embodiment is shown. FIG. 23 shows an example of the throughput magnification. The bar indicated by the frame indicates the throughput magnification when this embodiment is adopted. The throughput magnification when this embodiment is adopted is a value obtained by dividing the throughput when this embodiment is adopted, that is, the throughput when performing deduplication depending on the situation by the throughput when not performing deduplication. It is.
 塗り潰された棒は、従来技術を採用した場合のスループット倍率を示している。従来技術を採用した場合のスループット倍率は、従来技術を採用した場合のスループット、つまり常に重複除去を行う場合によるスループットを、重複除去を行わない場合のスループットで割った値である。 The filled bar indicates the throughput magnification when the conventional technology is adopted. The throughput magnification in the case of employing the conventional technique is a value obtained by dividing the throughput in the case of employing the conventional technique, that is, the throughput in the case of always performing deduplication, by the throughput in the case of not performing deduplication.
 図23では、5つの通信条件における2つのスループット倍率を示している。比較的低速の状態、つまり通信速度が1Mbpsの場合及び通信速度が10Mbpsの場合は、2つのスループット倍率に差異はない。いずれの場合にも、重複除去を行うことによって、高効率化している。 FIG. 23 shows two throughput magnifications under five communication conditions. In a relatively low speed state, that is, when the communication speed is 1 Mbps and the communication speed is 10 Mbps, there is no difference between the two throughput magnifications. In either case, high efficiency is achieved by performing de-duplication.
 そして、通信速度が20Mbpsの場合に、2つのスループット倍率共に、ほぼ1倍となっている。通信速度が20Mbpsの場合には、重複除去を行う方式と重複除去を行わない方式とにおいて、アプリケーションデータの伝送効率に差異がないことを示している。 And when the communication speed is 20 Mbps, both of the two throughput magnifications are almost one. When the communication speed is 20 Mbps, it is indicated that there is no difference in the transmission efficiency of application data between the method of performing deduplication and the method of not performing deduplication.
 一方、比較的高速の状態、つまり通信速度が50Mbpsの場合及び通信速度が100Mbpsの場合は、従来方式におけるスループット倍率は、1以下になっている。このようになるのは、重複除去を行う方式の伝送効率が、重複除去を行わない方式の伝送効率に比べて低いためである。 On the other hand, in a relatively high speed state, that is, when the communication speed is 50 Mbps and when the communication speed is 100 Mbps, the throughput magnification in the conventional method is 1 or less. This is because the transmission efficiency of the method that performs deduplication is lower than the transmission efficiency of the method that does not perform deduplication.
 それに対して、本実施の形態の場合は、重複除去を行わない方式に切り替えられるので、スループット倍率がほぼ1である。このように、重複除去を行う方式が不利な状況になっても、アプリケーションデータの伝送性能は劣化しない。 On the other hand, in the case of the present embodiment, since the method is switched to a method that does not perform de-duplication, the throughput magnification is almost 1. As described above, even when the method for performing deduplication is disadvantageous, the transmission performance of application data does not deteriorate.
 本実施の形態によれば、状況に応じて重複除去による非効率化を抑制できる。つまり、重複除去を行うことによって伝送効率が劣化する事態を、未然に回避できる。 According to this embodiment, inefficiency due to deduplication can be suppressed depending on the situation. That is, it is possible to avoid a situation in which transmission efficiency is deteriorated by performing deduplication.
 また、データの量を通信速度で除して通信時間を算出するので、通信時間を計測せずに済む。 Also, since the communication time is calculated by dividing the amount of data by the communication speed, it is not necessary to measure the communication time.
[実施の形態2]
 本実施の形態では、遅延時間Lを除いた推定時刻同士を比較する例について説明する。
[Embodiment 2]
In the present embodiment, an example of comparing estimated times excluding the delay time L will be described.
 式(2)に示した第1推定時間の算出式と、式(4)に示した第2推定時間の算出式とは、共に2Lの項を含んでいる。従って、第1推定時間を算出する第1算出処理及び第2推定時間を算出する第3算出処理において共に2Lを推定時間に加えないようにしても、状況の判定において、実施の形態1の場合と同等の判定結果が得られる。 Both the calculation formula for the first estimation time shown in the formula (2) and the calculation formula for the second estimation time shown in the formula (4) include a 2L term. Therefore, in the case of the first embodiment, even if 2L is not added to the estimated time in both the first calculation process for calculating the first estimated time and the third calculation process for calculating the second estimated time, A determination result equivalent to is obtained.
 つまり、本実施の形態における第1推定時間と第2推定時間と、共に遅延時間を除外した第1中継の所要時間の推定値である。本実施の形態における第1推定時間は、以下の式によって求められる。 That is, both the first estimated time and the second estimated time in the present embodiment are estimated values of the required time of the first relay excluding the delay time. The first estimated time in the present embodiment is obtained by the following equation.
第1推定時間=Wa/S 式(5) First estimated time = W a / S Equation (5)
 本実施の形態における第2推定時間は、以下の式によって求められる。 The second estimated time in the present embodiment is obtained by the following equation.
第2推定時間=Wb/S+P 式(6) Second estimated time = W b / S + P Equation (6)
 本実施の形態では、図18に示した第3サブルーチン処理における第1算出処理(S1801)において、実施の形態1で示した第1算出処理(A)に代えて、第1算出処理(B)を実行する。更に、図18に示した第3サブルーチン処理のS1803において、実施の形態1で示した第2算出処理(A)に代えて、第2算出処理(B)を実行する。 In the present embodiment, in the first calculation process (S1801) in the third subroutine process shown in FIG. 18, instead of the first calculation process (A) shown in the first embodiment, the first calculation process (B) Execute. Further, in S1803 of the third subroutine process shown in FIG. 18, the second calculation process (B) is executed instead of the second calculation process (A) shown in the first embodiment.
 図24に、第1算出処理(B)フローの例を示す。第1算出部1119は、第1推定時間のパラメータ1211に「0」を設定する(S2401)。S1903及びS1905の処理は、第1算出処理(A)の場合と同様である。 FIG. 24 shows an example of the first calculation process (B) flow. The first calculation unit 1119 sets “0” to the parameter 1211 of the first estimation time (S2401). The processes in S1903 and S1905 are the same as in the first calculation process (A).
 図25に、第2算出処理(B)フローの例を示す。第2算出部1121は、第2推定時間のパラメータ1213に「0」を設定する(S2501)。S2003乃至S2007の処理は、第2算出処理(A)の場合と同様である。 FIG. 25 shows an example of the flow of the second calculation process (B). The second calculator 1121 sets “0” to the parameter 1213 of the second estimated time (S2501). The processes from S2003 to S2007 are the same as those in the second calculation process (A).
 そして、図14のS1401における遅延時間Lの計測処理を省くようにしてもよい。従って、第2計測部1111を省くようにしてもよい。 Then, the measurement process of the delay time L in S1401 of FIG. 14 may be omitted. Therefore, the second measurement unit 1111 may be omitted.
 尚、図18のS1805に示した判定処理における比較式は、本実施の形態の場合は、以下の式で表される。 Note that the comparison formula in the determination processing shown in S1805 of FIG. 18 is represented by the following formula in the case of the present embodiment.
a/S≦Wb/S+P (7)  W a / S ≦ W b / S + P (7)
 本実施の形態によれば、遅延時間Lを計測する処理を省くことができる。 According to the present embodiment, the process of measuring the delay time L can be omitted.
[実施の形態3]
 本実施の形態では、重複除去によるデータの削減率cあるいは重複除去後におけるデータの残存率k(=1-c)を用いて状況の判定を行う例について説明する。
[Embodiment 3]
In the present embodiment, an example will be described in which the situation is determined using the data reduction rate c by deduplication or the data remaining rate k (= 1-c) after deduplication.
 変換されたデータ量の合計Wbは、削減率cを用いれば、以下の式によって求められる。 If the reduction rate c is used, the total converted data amount W b can be obtained by the following equation.
b=(1-c)Wa (8)  W b = (1−c) W a (8)
 式(8)を式(7)に適用すれば、以下の式が得られる。 Applying equation (8) to equation (7) yields the following equation:
P≧cWa/S (9)  P ≧ cW a / S (9)
 従って、式(9)は、式(7)と同等である。本実施の形態では、式(9)に従って状況の判定を行う。 Therefore, equation (9) is equivalent to equation (7). In the present embodiment, the situation is determined according to Equation (9).
 本実施の形態では、図16に示した第1サブルーチン処理における第3サブルーチン処理(S1621)において、実施の形態1で示した第3サブルーチン処理(A)に代えて、第3サブルーチン処理(B)を実行する。更に、図21Bに示した第2サブルーチン処理における第3サブルーチン処理(S2129)において、実施の形態1で示した第3サブルーチン処理(A)に代えて、第3サブルーチン処理(B)を実行する。 In the present embodiment, in the third subroutine processing (S1621) in the first subroutine processing shown in FIG. 16, the third subroutine processing (B) is substituted for the third subroutine processing (A) shown in the first embodiment. Execute. Further, in the third subroutine processing (S2129) in the second subroutine processing shown in FIG. 21B, the third subroutine processing (B) is executed instead of the third subroutine processing (A) shown in the first embodiment.
 図26に、第3サブルーチン処理(B)フローの例を示す。切り替え部1123は、削減量の合計Rのパラメータ1203が示す値を、部分データ量の合計Waのパラメータ1201が示す値で除することによって、重複除去によるデータの削減率cを算出する(S2601)。尚、データの削減率cが変動しないと想定される場合には、S2601に示した処理を省き、既に算出されているデータの削減率cを用いるようにしてもよい。 FIG. 26 shows an example of the third subroutine processing (B) flow. Switching unit 1123, the value indicated by the parameter 1203 of the total R in the reduction, by dividing the total W value indicated by the parameter 1201 of a partial amount of data to calculate the reduction rate c of the data by de-duplication (S2601 ). If it is assumed that the data reduction rate c does not fluctuate, the processing shown in S2601 may be omitted and the already calculated data reduction rate c may be used.
 切り替え部1123は、図19に示したS1903における処理と同様に、部分データ量の合計Waのパラメータ1201が示す値を通信速度Sのパラメータ1209が示す値で除することによって、重複除去を行わない場合の通信時間の合計Taを算出する(S2603)。 Switching unit 1123, similarly to the processing in S1903 shown in FIG. 19, by dividing the total W value indicated by the parameter 1209 Parameter 1201 speed communication a value indicated by the S of a partial amount of data, perform deduplication If not, the total communication time T a is calculated (S2603).
 切り替え部1123は、重複除去のための変換時間の合計Pが、データの削減率cと重複除去を行わない場合の通信時間の合計Taとの積以上であるか否かを判定する(S2605)。重複除去のための変換時間の合計Pが、データの削減率cと重複除去を行わない場合の通信時間の合計Taとの積以上であると判定した場合の処理は、図18に示したS1807の処理と同様である。重複除去のための変換時間の合計Pが、データの削減率cと重複除去を行わない場合の通信時間の合計Taとの積以上でないと判定した場合の処理は、図18に示したS1809の処理と同様である。データの削減率cと重複除去を行わない場合の通信時間の合計Taとの積は、変換による通信時間の合計の短縮量に相当する。 Switching unit 1123 determines the sum P of the conversion time for the overlap removal, to or greater than the product of the sum T a communication time of the case without the reduction rate c and de-duplication of data (S2605 ). Total P conversion time for the overlap removal, processing when it is determined to be equal to or greater than the product of the sum T a communication time of the case without the reduction rate c and deduplication data are shown in FIG. 18 This is the same as the processing in S1807. Total P conversion time for the duplication removal processing when it is determined that not more than the product of the sum T a communication time of the case without the reduction rate c and deduplication data are shown in FIG. 18 S1809 This is the same as the process. The product of the sum T a communication time of the case without the reduction factor c and de-duplication data corresponds to the shortening of the total communication time by the conversion.
 尚、重複除去によるデータの削減率cに代えて、重複除去後におけるデータの残存率kを用いるようにしてもよい。以下の式は、式(9)と同等である。 Note that the data remaining rate k after deduplication may be used instead of the data reduction rate c by deduplication. The following equation is equivalent to equation (9).
P≧(1-k)Wa/S (10)  P ≧ (1-k) W a / S (10)
 切り替え部1123は、データの削減率cに代えて、データの残存率kを算出するようにしてもよい。この場合、切り替え部1123は、例えば部分データ量の合計Waのパラメータ1201が示す値から削減量の合計Rのパラメータ1203が示す値を引いた差を、部分データ量の合計Waのパラメータ1201が示す値で除することによって、データの残存率kを算出する。 The switching unit 1123 may calculate the data remaining rate k instead of the data reduction rate c. In this case, the switching unit 1123, for example, the difference obtained by subtracting the value indicated by the parameter 1203 of the total R in the reductions from the total W value indicated by the parameter 1201 of a partial amount of data of a total of W a partial data amount parameter 1201 By dividing by the value indicated by, the data remaining rate k is calculated.
 また、切り替え部1123は、S2605において式(9)に代えて式(10)に基づいて判定を行う。また、データの残存率kが変動しないと想定される場合には、既に算出されているデータの残存率kを用いるようにしてもよい。 In addition, the switching unit 1123 makes a determination based on Expression (10) instead of Expression (9) in S2605. In addition, when it is assumed that the data remaining rate k does not fluctuate, the data remaining rate k that has already been calculated may be used.
 本実施の形態によれば、データの削減率cが変動しないと想定される場合に、削減率cの処理量を軽減することができる。同じくデータの残存率kが変動しないと想定される場合に、残存率kの処理量を軽減することができる。 According to the present embodiment, when it is assumed that the data reduction rate c does not fluctuate, the processing amount of the reduction rate c can be reduced. Similarly, when it is assumed that the data remaining rate k does not fluctuate, the processing amount of the remaining rate k can be reduced.
 以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。 Although the embodiment of the present invention has been described above, the present invention is not limited to this. For example, the functional block configuration described above may not match the program module configuration.
 また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。 Further, the configuration of each storage area described above is an example, and the configuration as described above is not necessarily required. Further, in the processing flow, if the processing result does not change, the processing order may be changed or a plurality of processes may be executed in parallel.
 なお、上で述べた中継装置は、コンピュータ装置であって、図27に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーションプログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーションプログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーションプログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーションプログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。 Note that the relay device described above is a computer device. As shown in FIG. 27, the relay device includes a memory 2501, a CPU (Central Processing Unit) 2503, a hard disk drive (HDD: Hard Disk Drive) 2505, and a display device 2509. A display control unit 2507 to be connected, a drive device 2513 for the removable disk 2511, an input device 2515, and a communication control unit 2517 for connecting to a network are connected by a bus 2519. An operating system (OS: Operating System) and an application program for executing the processing in this embodiment are stored in the HDD 2505, and are read from the HDD 2505 to the memory 2501 when executed by the CPU 2503. The CPU 2503 controls the display control unit 2507, the communication control unit 2517, and the drive device 2513 according to the processing content of the application program to perform a predetermined operation. Further, data in the middle of processing is mainly stored in the memory 2501, but may be stored in the HDD 2505. In the embodiment of the present invention, an application program for executing the above-described processing is stored in a computer-readable removable disk 2511 and distributed, and installed in the HDD 2505 from the drive device 2513. In some cases, the HDD 2505 may be installed via a network such as the Internet and the communication control unit 2517. Such a computer apparatus realizes various functions as described above by organically cooperating hardware such as the CPU 2503 and the memory 2501 described above and programs such as the OS and application programs.
 以上述べた本発明の実施の形態をまとめると、以下のようになる。 The embodiments of the present invention described above are summarized as follows.
 本実施の形態に係る通信方法は、伝送データから分割された部分データに対して重複除去の変換を行って、変換されたデータを通信網に送出するコンピュータによって、(A)通信網の通信速度を計測し、(B)上記変換の処理時間の合計を計測し、(C)通信速度、部分データの合計量、上記処理時間の合計及び変換されたデータの合計量に基づいて、上記変換を行わない場合に比べて、上記変換を行うことによって伝送効率が劣化する状況に該当すると判定した場合に、上記変換を行わない方式に切り替える処理を含む。 In the communication method according to the present embodiment, (A) the communication speed of the communication network is obtained by a computer that performs deduplication conversion on the partial data divided from the transmission data and sends the converted data to the communication network. (B) measure the total processing time of the conversion, and (C) convert the conversion based on the communication speed, the total amount of partial data, the total processing time, and the total amount of converted data. When it is determined that the transmission efficiency is deteriorated by performing the conversion as compared with the case where the conversion is not performed, a process of switching to a method in which the conversion is not performed is included.
 このようにすれば、状況に応じて重複除去による非効率化を抑制できる。つまり、重複除去を行うことによって伝送効率が劣化する事態を、未然に回避できる。 In this way, inefficiency due to duplicate removal can be suppressed depending on the situation. That is, it is possible to avoid a situation in which transmission efficiency is deteriorated by performing deduplication.
 更に、部分データの合計量を通信速度で除して、第1通信時間を算出するようにしてもよい。変換されたデータの合計量を通信速度で除して、第2通信時間を算出するようにしてもよい。上記切り替える処理において、第1通信時間を含む第1推定時間と、第2通信時間及び上記処理時間の合計を含む第2推定時間との比較結果に基づいて、上記状況に該当するかを判定するようにしてもよい。 Furthermore, the first communication time may be calculated by dividing the total amount of partial data by the communication speed. The second communication time may be calculated by dividing the total amount of the converted data by the communication speed. In the switching process, it is determined whether the above situation is satisfied based on a comparison result between the first estimated time including the first communication time and the second estimated time including the second communication time and the total of the processing times. You may do it.
 このようにすれば、データの合計量を通信速度で除して通信時間を求めるので、伝送するデータの送出に要する時間及び変換されたデータの送出に要する時間を計測せずに済む。 In this way, since the communication time is obtained by dividing the total amount of data by the communication speed, it is not necessary to measure the time required for sending the data to be transmitted and the time required for sending the converted data.
 また、上記切り替える処理において、上記変換によるデータの削減率又は残存率に基づいて、上記変換による通信時間の合計の短縮量を算出し、上記処理時間の合計と短縮量との比較結果に基づいて、上記状況に該当するかを判定するようにしてもよい。 Further, in the switching process, based on the data reduction rate or remaining rate by the conversion, a total reduction amount of communication time by the conversion is calculated, and based on a comparison result between the total processing time and the reduction amount. It may be determined whether the above situation is applicable.
 このようにすれば、データの削減率及び残存率が変動しないと想定される場合に、削減率又は残存率の処理量を軽減することができる。 In this way, when it is assumed that the data reduction rate and the remaining rate do not fluctuate, the processing amount of the reduction rate or the remaining rate can be reduced.
 なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD-ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。 A program for causing a computer to perform the processing according to the above method can be created. The program can be a computer-readable storage medium such as a flexible disk, a CD-ROM, a magneto-optical disk, a semiconductor memory, or a hard disk. It may be stored in a storage device. Note that intermediate processing results are generally temporarily stored in a storage device such as a main memory.

Claims (5)

  1.  伝送データから分割された部分データに対して重複除去の変換を行って、変換されたデータを通信網に送出するコンピュータにより、
     前記通信網の通信速度を計測し、
     前記変換の処理時間の合計を計測し、
     前記通信速度、前記部分データの合計量、前記処理時間の合計及び前記変換されたデータの合計量に基づいて、前記変換を行わない場合に比べて、前記変換を行うことによって伝送効率が劣化する状況に該当すると判定した場合に、前記変換を行わない方式に切り替える
     処理を実行する通信方法。
    A computer that performs deduplication conversion on the partial data divided from the transmission data, and sends the converted data to the communication network,
    Measure the communication speed of the communication network,
    Measure the total processing time of the conversion,
    Based on the communication speed, the total amount of the partial data, the total of the processing time, and the total amount of the converted data, transmission efficiency is deteriorated by performing the conversion as compared with the case where the conversion is not performed. A communication method for executing a process of switching to a method that does not perform the conversion when it is determined that the situation is applicable.
  2.  更に、
     前記部分データの合計量を前記通信速度で除して、第1通信時間を算出し、
     前記変換されたデータの合計量を前記通信速度で除して、第2通信時間を算出する
     処理を含み、
     前記切り替える処理において、
     前記第1通信時間を含む第1推定時間と、前記第2通信時間及び前記処理時間の合計を含む第2推定時間との比較結果に基づいて、前記状況に該当するかを判定する
     請求項1記載の通信方法。
    Furthermore,
    The first communication time is calculated by dividing the total amount of the partial data by the communication speed,
    Dividing the total amount of the converted data by the communication speed to calculate a second communication time;
    In the switching process,
    The determination is made based on a comparison result between a first estimated time including the first communication time and a second estimated time including a sum of the second communication time and the processing time. The communication method described.
  3.  前記切り替える処理において、
     前記変換によるデータの削減率又は残存率に基づいて、前記変換による通信時間の合計の短縮量を算出し、前記処理時間の合計と前記短縮量との比較結果に基づいて、前記状況に該当するかを判定する
     請求項1記載の通信方法。
    In the switching process,
    Based on the data reduction rate or remaining rate due to the conversion, the total reduction amount of communication time due to the conversion is calculated, and based on the comparison result between the total processing time and the reduction amount, it corresponds to the situation The communication method according to claim 1.
  4.  伝送データから分割された部分データに対して重複除去の変換を行って、変換されたデータを通信網に送出するコンピュータに
     前記通信網の通信速度を計測し、
     前記変換の処理時間の合計を計測し、
     前記通信速度、前記部分データの合計量、前記処理時間の合計及び前記変換されたデータの合計量に基づいて、前記変換を行わない場合に比べて、前記変換を行うことによって伝送効率が劣化する状況に該当すると判定した場合に、前記変換を行わない方式に切り替える
     を実行させるためのプログラム。
    Performs deduplication conversion on the partial data divided from the transmission data, measures the communication speed of the communication network to a computer that sends the converted data to the communication network,
    Measure the total processing time of the conversion,
    Based on the communication speed, the total amount of the partial data, the total of the processing time, and the total amount of the converted data, transmission efficiency is deteriorated by performing the conversion as compared with the case where the conversion is not performed. A program for executing switching to a method that does not perform the conversion when it is determined that the situation is applicable.
  5.  伝送データから分割された部分データに対して重複除去の変換を行って、変換されたデータを通信網に送出する通信装置であって、
     前記通信網の通信速度を計測する第1計測部と、
     前記変換の処理時間の合計を計測する第2計測部と、
     前記通信速度、前記部分データの合計量、前記処理時間の合計及び前記変換されたデータの合計量に基づいて、前記変換を行わない場合に比べて、前記変換を行うことによって伝送効率が劣化する状況に該当すると判定した場合に、前記変換を行わない方式に切り替える切り替え部と
     を有する通信装置。
    A communication device that performs deduplication conversion on partial data divided from transmission data and sends the converted data to a communication network,
    A first measuring unit for measuring a communication speed of the communication network;
    A second measuring unit for measuring the total processing time of the conversion;
    Based on the communication speed, the total amount of the partial data, the total of the processing time, and the total amount of the converted data, transmission efficiency is deteriorated by performing the conversion as compared with the case where the conversion is not performed. And a switching unit that switches to a method that does not perform the conversion when it is determined that the situation is satisfied.
PCT/JP2015/052295 2015-01-28 2015-01-28 Communication method, program, and communication device WO2016121024A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/052295 WO2016121024A1 (en) 2015-01-28 2015-01-28 Communication method, program, and communication device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/052295 WO2016121024A1 (en) 2015-01-28 2015-01-28 Communication method, program, and communication device

Publications (1)

Publication Number Publication Date
WO2016121024A1 true WO2016121024A1 (en) 2016-08-04

Family

ID=56542680

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/052295 WO2016121024A1 (en) 2015-01-28 2015-01-28 Communication method, program, and communication device

Country Status (1)

Country Link
WO (1) WO2016121024A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018037495A1 (en) * 2016-08-24 2018-03-01 株式会社日立製作所 Transfer device and network system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010072746A (en) * 2008-09-16 2010-04-02 Hitachi Ltd Storage system and method for operating storage system
JP2011191933A (en) * 2010-03-12 2011-09-29 Fujitsu Ltd Storage device, and program and method for controlling storage device
WO2013157103A1 (en) * 2012-04-18 2013-10-24 株式会社日立製作所 Storage device and storage control method
JP2014175008A (en) * 2013-03-07 2014-09-22 Postech Academy-Industry Foundation Method and apparatus for de-duplicating data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010072746A (en) * 2008-09-16 2010-04-02 Hitachi Ltd Storage system and method for operating storage system
JP2011191933A (en) * 2010-03-12 2011-09-29 Fujitsu Ltd Storage device, and program and method for controlling storage device
WO2013157103A1 (en) * 2012-04-18 2013-10-24 株式会社日立製作所 Storage device and storage control method
JP2014175008A (en) * 2013-03-07 2014-09-22 Postech Academy-Industry Foundation Method and apparatus for de-duplicating data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018037495A1 (en) * 2016-08-24 2018-03-01 株式会社日立製作所 Transfer device and network system

Similar Documents

Publication Publication Date Title
US20180173732A1 (en) Methods and devices for data de-duplication
CN103248711B (en) A kind of method of files passe and server
EP3761591A1 (en) Tcp link configuration method, apparatus, and computer program product
KR20130095194A (en) Optimization of storage and transmission of data
CN110392025B (en) Method, apparatus and computer readable medium for managing distributed system
WO2020172494A1 (en) Directed and interconnected grid dataflow architecture
EP3015999A1 (en) Data processing method, system and client
GB2572537A (en) Generating or obtaining an updated neural network
CN104378234A (en) Cross-data-center data transmission processing method and system
US20170264682A1 (en) Data movement among distributed data centers
US20220342853A1 (en) Methods for managing storage in a distributed de-duplication system and devices thereof
WO2016121024A1 (en) Communication method, program, and communication device
WO2016086478A1 (en) Active synchronization method and system for rpki data
CN109347674B (en) Data transmission method and device and electronic equipment
CN110609746B (en) Method, apparatus and computer readable medium for managing network system
US10628201B2 (en) Analysis method and analysis apparatus
US20170201602A1 (en) Network utilization improvement by data reduction based migration prioritization
US20190394126A1 (en) Control device and control method
US20190324817A1 (en) Method, apparatus, and computer program product for optimization in distributed system
FI3596602T3 (en) Unobtrusive support for third-party traffic monitoring
US9762706B2 (en) Packet processing program, packet processing apparatus, and packet processing method
US10601444B2 (en) Information processing apparatus, information processing method, and recording medium storing program
CN109981463B (en) Information processing method, device, gateway and storage medium
KR101504191B1 (en) Distributed processing system using of packet sniffing and the method
KR101529877B1 (en) Methods and system for remote data operations

Legal Events

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

Ref document number: 15879921

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15879921

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP