Transfer acceleration device and transfer acceleration method
The transfer acceleration device addresses throughput issues in high-latency and loss-prone networks by managing communication data with buffers and retransmissions, enhancing data transfer efficiency.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-13
- Publication Date
- 2026-03-19
AI Technical Summary
Existing communication technologies face challenges in achieving high throughput due to large packet loss and delay in wireless networks, leading to difficulties in ensuring reliable data transfer, particularly when using TCP protocol.
A transfer acceleration device installed on the communication path between two devices, which monitors and manages communication data by storing user data in buffers, deleting confirmed data, and retransmitting lost data based on reception confirmations and retransmission requests, thereby optimizing data transfer.
The device accelerates data transfer by reducing retransmissions, especially in high-latency and loss-prone environments, improving communication throughput and reducing the need for complex protocol processing.
Smart Images

Figure JP2024032962_19032026_PF_FP_ABST
Abstract
Description
Transfer Speed-up Device and Transfer Speed-up Method
[0001] The present invention relates to a transfer speed-up device and a transfer speed-up method for transferring communication data at high speed.
[0002] Use cases that utilize computing resources on the cloud, such as video processing and artificial intelligence / machine learning, are expanding. Here, the computing resources are, for example, servers equipped with GPUs (Graphics Processing Units). In such use cases, a large amount of data transfer occurs. On the other hand, the technology for reducing the latency of the wireless section has advanced, and the utilization of computing resources via a network including wireless has also advanced accordingly. Such a network is composed of a wireless network with a small transfer delay and a large loss and a wired network with a large transfer delay and a small loss.
[0003] In communication that ensures reliability represented by TCP (Transmission Control Protocol), if packet loss occurs when the delay is large, the impact on throughput reduction is significant. Therefore, if there is a section in the network with a large packet loss, there is a problem that it becomes difficult to obtain sufficient throughput.
[0004] As a technology for solving such problems, there is a WAN (Wide Area Network) speed-up device described in Non-Patent Document 1. The WAN speed-up devices are installed opposite each other across the WAN and operate as proxies. Between the WAN speed-up devices, communication on the WAN is made more efficient by using data compression and caching, thereby speeding up the overall (end-to-end) communication.
[0005] "Second WAN Speed-up Device Speed-up Technology - Caching and Protocol Acceleration", [online], Nikkei XTECH, 2007, [searched on August 20, 2024], Internet <URL:https: / / xtech.nikkei.com / it / article / COLUMN / 20070606 / 273783 / >
[0006] The WAN acceleration device described in Non-Patent Document 1 operates as a proxy, requiring an implementation equivalent to a software-based web server. This results in complex processing and difficulties in handling high-bandwidth transfers. The present invention has been made in view of this background, and aims to accelerate the transfer of communication data.
[0007] To solve the aforementioned problems, the transfer acceleration device according to the present invention is a transfer acceleration device installed in the middle of a communication path connecting two communication devices, and includes a connection processing unit that registers a connection between the two communication devices that satisfy predetermined conditions as a registered connection in a connection information database, and a transfer processing unit that, with respect to communication data between two communication devices, one of the two communication devices in the registered connection relationship being designated as a first communication device and the other as a second communication device, when it receives communication data including user data sent from the first communication device to the second communication device, stores the user data in a buffer and transfers the user data to the second communication device, when it receives communication data including a receipt confirmation for the user data sent from the second communication device to the first communication device, deletes the user data from the buffer and transfers the receipt confirmation to the second communication device, and when it receives communication data including a retransmission request or duplicate receipt confirmation for the user data sent from the second communication device to the first communication device, transmits the communication data including the user data stored in the buffer to the second communication device.
[0008] According to the present invention, the transfer of communication data can be accelerated.
[0009] This is a diagram illustrating reception confirmation related to TCP. This is a diagram illustrating reception confirmation when communication data related to TCP is lost. This is a functional block diagram of the transfer acceleration device according to this embodiment. This is a diagram showing the data structure of the buffer database according to this embodiment. This is a flowchart of the transfer acceleration process according to this embodiment. This is a functional block diagram of the transfer acceleration device according to a modified example of this embodiment. This is a flowchart of the transfer acceleration process according to a modified example of this embodiment. This is a hardware configuration diagram showing an example of a computer that implements the functions of the transfer acceleration device according to the above embodiment.
[0010] Before describing the embodiment of the data transfer acceleration device, an overview of data transmission in TCP will be provided. In TCP, a connection (virtual communication path) is established between two communication devices prior to data (user data) transmission. Communication data (TCP segments) is transmitted and received between the two communication devices through this communication path. Once the transmission of user data is complete, the connection is disconnected.
[0011] The transmitting communication device divides the user data received from the application into one or more communication data packets and transmits them. The transmitting communication device transmits while confirming that the receiving communication device has received the communication data. If reception is not confirmed, the transmitting communication device retransmits the communication data. The receiving communication device rearranges the communication data in the order it was received from the application on the transmitting side to reconstruct the user data and passes it to the higher-level application.
[0012] Figure 1 is a diagram illustrating TCP reception confirmation. Assume that the transmitting communication device 811 sends communication data 821 (bytes 1 to 4) to the receiving communication device 812, followed by communication data 822 (bytes 5 to 8). After receiving, communication device 812 receives up to the 8th byte and sends reception confirmation 823, "ACK(9)", indicating that the next byte is the 9th byte. By receiving this reception confirmation 823, communication device 811 can confirm that up to the 8th byte (communication data 821, 822) has been received.
[0013] Figure 2 is a diagram illustrating the confirmation of reception in the event of TCP-related communication data loss (packet loss). Suppose that communication device 811 transmits communication data 831 to 835, but communication data 832 is lost. Communication device 812, having received communication data 833 to 835 but not the fifth byte, transmits reception confirmation 836 to 838 "ACK(5)". In Figure 2, since three communication data 833 to 835 have been received, three reception confirmations 836 to 838 "ACK(5)" are transmitted.
[0014] When communication device 811 receives duplicate acknowledgments, it retransmits the communication data containing the bytes indicated by the acknowledgment. Generally, when it receives three duplicate acknowledgments (see acknowledgments 836-838), the transmitting communication device 811 retransmits the communication data 839. When communication device 812 receives the retransmitted communication data 832, it sorts the received data, including the fifth through eighth bytes, and passes it to the higher-level application.
[0015] In TCP, the transmitting communication device 811 assigns a number (sequence number) to the data (user data) received from the application and transmits it. The receiving communication device 812 sends back a confirmation of receipt that includes the sequence number. If the communication device 811 receives a duplicate confirmation of receipt, it retransmits the communication data indicated by that confirmation of receipt. In this way, TCP is a reliable communication that guarantees the receipt of transmitted user data (transmission / communication of user data). Since the transmitting communication device 811 retransmits the user data when it receives a duplicate confirmation of receipt, a duplicate confirmation of receipt (generally the third confirmation of receipt) will also be referred to as a retransmission request (see confirmation of receipt 838) below.
[0016] ≪Overview of Transfer Acceleration Devices≫ Below, we will explain transfer acceleration devices using TCP-compliant communication as an example. Any communication method other than TCP is acceptable, as long as it ensures the reliability of communication by retransmitting communication data that has been lost during network transmission.
[0017] A data transfer acceleration device is installed on the communication path between two communication devices whose speed needs to be increased, and can monitor the communication data that these devices send to each other. The data transfer acceleration device may be, for example, a router or a switch installed on the communication path.
[0018] When the data transfer acceleration device detects the establishment of a TCP connection between two communication devices, it stores the connection as a target for acceleration. In the following, the first communication device and the second communication device will be described as communication devices that have been targeted for acceleration. When the data transfer acceleration device detects communication data (TCP segment) containing user data from the first communication device to the second communication device, it stores the communication data in a buffer.
[0019] When the transfer acceleration device detects communication data from the second communication device to the first communication device confirming receipt of the user data, it deletes the communication data containing the confirmed user data from the buffer. Furthermore, when the transfer acceleration device detects communication data from the second communication device to the first communication device requesting retransmission of the user data (duplicate receipt confirmation), it transmits the requested communication data to the second communication device. The transfer acceleration device may similarly process the transmission of user data in the reverse direction, from the second communication device to the first communication device.
[0020] With such a data transfer acceleration device, even if user data is lost during communication, the device will retransmit the lost user data, thus accelerating communication from the first communication device to the second communication device. This is particularly effective when there is a large communication delay between the first communication device and the data transfer acceleration device, and when there is a lot of data loss between the data transfer acceleration device and the second communication device, as the device will not retransmit user data that has reached the data transfer acceleration device from the first communication device.
[0021] ≪Configuration of the Transfer Acceleration Device≫ Figure 3 is a functional block diagram of the transfer acceleration device 100 according to this embodiment. The transfer acceleration device 100 is a computer and comprises a control unit 110, a storage unit 120, and a communication unit 180. The communication unit 180 is equipped with communication devices (interfaces 181, 182) and can communicate with communication devices 411 and 421. It is assumed that communication devices 411 and 421 are connected via different interfaces 181 and 182 of the transfer acceleration device 100. In other words, it is assumed that communication data exchanged between communication devices 411 and 421 is transferred via the transfer acceleration device 100. For this reason, the transfer acceleration device 100 can monitor the communication data exchanged between communication devices 411 and 421.
[0022] ≪Transfer Acceleration Device: Storage Unit≫ The storage unit 120 is composed of storage devices such as ROM (Read Only Memory), RAM (Random Access Memory), and SSD (Solid State Drive). The storage unit 120 stores a connection information database 130, a buffer database 140, and a program 128. The program 128 includes a description of the processing to be executed by the functional unit provided in the control unit 110, which will be described later. The various contents of the storage unit 120 may be stored in an external storage device such as a cloud server and read as needed.
[0023] <<Storage Unit: Connection Information Database>> The connection information database 130 stores information (connection information) related to the connection (TCP connection) between the communication devices 411 and 421 that are subject to transfer speed improvement. The connection is treated as identical to the TCP communication path and is shown as connection information consisting of a 4-tuple of the addresses (IP addresses) and port numbers (TCP port numbers) of the respective communication devices 411 and 421.
[0024] <Storage Unit: Buffer Database> Figure 4 shows the data structure of the buffer database 140 according to this embodiment. The buffer database 140 includes buffers 141 and 142 that store communication data (TCP segments) including user data for each connection and for each direction of connection. For example, buffer 141 for a connection of "(IP1, P1) -> (IP2, P2)" stores communication data from the port with port number P1 of the communication device with address "IP1" to the port with port number P2 of the communication device with address "IP2".
[0025] <Transfer Acceleration Device: Control Unit> Returning to Figure 3, the control unit 110 will be explained. The control unit 110 is configured to include a CPU (Central Processing Unit) and is equipped with a connection processing unit 111 and a transfer processing unit 112. The control unit 110 may also be configured to include an NPU (Network Processing Unit), FPGA (Field Programmable Gate Array), ASIC (Application Specific Integrated Circuit), etc.
[0026] ≪Control Unit: Connection Processing Unit≫ The connection processing unit 111 monitors communication between communication devices 411 and 421 and detects a connection (TCP connection). When it detects a connection between communication devices 411 and 421, the connection processing unit 111 registers this connection in the connection information database 130 and sets buffers 141 and 142 for that connection in the buffer database 140 (see Figure 4). There are two buffers, 141 and 142, one for communication data from communication device 411 to communication device 412, and one for communication data in the reverse direction. If the connection (connection information) is already registered in the connection information database 130, the connection processing unit 111 does not re-register or reset the buffer database 140.
[0027] For example, the connection processing unit 111 detects a connection when it receives communication data containing user data between the communication devices 411 and 421, determining that a connection has been established. The connection processing unit 111 may also detect a connection by monitoring the establishment of a TCP connection. The establishment of a TCP connection is performed using a procedure called a three-way handshake.
[0028] ≪Control Unit: Transfer Processing Unit≫ The transfer processing unit 112 monitors communication between the communication devices 411 and 421 whose connection has been established and performs the following processing according to the communication data. For communication data not registered in the connection information database 130, the transfer processing unit 112 does not perform any processing related to the buffer database 140 and simply transfers the communication data. For example, for communication data that does not include a TCP segment or three-way handshake communication data, the transfer processing unit 112 does not perform any processing related to the buffer database 140 and simply transfers the communication data.
[0029] When the transfer processing unit 112 detects (receives) communication data containing user data, it stores the communication data in a buffer corresponding to the connection and orientation. Next, the transfer processing unit 112 transfers the communication data. When it receives a reception confirmation, the transfer processing unit 112 deletes the received communication data corresponding to the reception confirmation from the buffer. The transfer processing unit 112 then transfers the communication data for the reception confirmation. When it receives a retransmission request, the transfer processing unit 112 retrieves the communication data corresponding to the retransmission request from the buffer and transmits it.
[0030] <Example of Transfer Processing: No Loss> Figure 1 shows an example of processing by the transfer processing unit 112. The transfer acceleration device 100 is located between the communication devices 811 and 812. Assume that port number "P1" of communication device 811 (address "IP1") and port number "P2" of communication device 812 (address "IP2") are connected.
[0031] Suppose the communication device 811 transmits communication data 821 and 822. Upon receiving the communication data 821 and 822, the transfer processing unit 112 stores the communication data 821 and 822 in a buffer 141 (see Figure 4) corresponding to the connection and orientation. Next, the transfer processing unit 112 transfers (transmits) the communication data 821 and 822 to the communication device 812.
[0032] Upon receiving the acknowledgment 823, the transfer processing unit 112 deletes the communication data 821 and 822 in the buffer 141 corresponding to the acknowledgment 823. More specifically, since the acknowledgment 823 indicates that up to the 8th byte has been received, the transfer processing unit 112 deletes the communication data 821 and 822, which include up to 8 bytes of user data, from the buffer 141. The transfer processing unit 112 then transfers (transmits) the acknowledgment 823 to the communication device 811.
[0033] ≪Example of Transfer Processing: In Case of Loss≫ The processing in the event of loss of communication data will be explained using Figure 2. Assume that communication device 811 has transmitted communication data 831 to 835. Upon receiving communication data 831 to 835, the transfer processing unit 112 stores the communication data 831 to 835 in buffer 141 corresponding to the connection and orientation. Next, the transfer processing unit 112 transmits the communication data 831 to 835 to communication device 812. Assume that communication data 832 is lost between the transfer acceleration device 100 and communication device 812.
[0034] When the transfer processing unit 112 receives a reception confirmation 838 (retransmission request), it transmits the communication data 822 in the buffer 141 corresponding to the reception confirmation 838 to the communication device 812. More specifically, since the reception confirmation indicates that up to the fourth byte has been received, the transfer processing unit 112 transmits the communication data 832, which includes the fifth byte of user data. In Figure 2, the communication device 811 transmits the communication data 839, which includes the fifth byte of user data. However, if there is a transfer acceleration device 100, the transfer acceleration device 100 transmits the communication data 832.
[0035] <Transfer Acceleration Processing> Figure 5 is a flowchart of the transfer acceleration processing according to this embodiment. In step S11, the transfer processing unit 112 starts processing that repeats steps S12 to S21. In step S12, the transfer processing unit 112 receives communication data exchanged between communication devices 411 and 421. Hereinafter, this communication data will be referred to as the communication data to be processed.
[0036] In step S13, the connection processing unit 111 proceeds to step S17 if the communication data to be processed is communication data for a communication channel already registered in the connection information database 130 (step S13 → YES). If the communication data to be processed is not communication data for a communication channel that is already connected (step S13 → NO), the connection processing unit 111 proceeds to step S14.
[0037] In step S14, if the communication data to be processed includes user data (step S14 → YES), the transfer processing unit 112 proceeds to step S16. If the communication data to be processed does not include user data (step S14 → NO), the transfer processing unit 112 proceeds to step S15.
[0038] In step S15, the transfer processing unit 112 transfers the communication data to be processed and returns to step S12. In step S16, the connection processing unit 111 determines that the communication data to be processed is data from an already connected communication channel. The connection processing unit 111 registers the connection information of this communication channel in the connection information database 130 and sets up the buffer database 140.
[0039] In step S17, the transfer processing unit 112 branches to steps S18 to S21 depending on the content of the communication data to be processed. If the communication data to be processed is user data (step S17 → user data), the transfer processing unit 112 proceeds to step S18. If the communication data to be processed is a reception confirmation (step S17 → ACK), the transfer processing unit 112 proceeds to step S19. If the communication data to be processed is a retransmission request (step S17 → duplicate ACK), the transfer processing unit 112 proceeds to step S20. If the communication data to be processed is data indicating connection disconnection (step S17 → connection disconnection), the transfer processing unit 112 proceeds to step S21.
[0040] In step S18, the transfer processing unit 112 stores the communication data to be processed, which is user data, in a buffer and transfers it. In step S19, the transfer processing unit 112 deletes the received user data indicated in the reception confirmation, which is the communication data to be processed, from the buffer database 140 and transfers the communication data to be processed.
[0041] In step S20, the transfer processing unit 112 retrieves the communication data corresponding to the lost user data indicated in the retransmission request, which is the communication data to be processed, from the buffer and retransmits it. The transfer processing unit 112 does not transfer the retransmission request, which is the communication data to be processed. In step S21, the connection processing unit 111 deletes the connection information corresponding to the disconnected connection indicated in the communication data to be processed from the connection information database 130 and deletes the corresponding buffer in the buffer database 140.
[0042] ≪Features of the Data Transfer Acceleration Device≫ The data transfer acceleration device 100 transfers communication data exchanged between communication devices 411 and 421. If the communication data includes user data, the data transfer acceleration device 100 stores the communication data in the buffer database 140. Upon receiving a reception confirmation, the data transfer acceleration device 100 deletes the received user data from the buffer database 140. Upon receiving a retransmission request, the data transfer acceleration device 100 retrieves the requested user data from the buffer database 140 and retransmits it.
[0043] According to such a transfer speed-up device 100, even if loss of user data occurs during communication, the transfer speed-up device 100 retransmits the user data, so that the communication between the communication devices 411 and 412 is speeded up. In particular, when the communication delay is large between the communication device 411 and the transfer speed-up device 100 and there are many losses of communication data between the transfer speed-up device 100 and the communication device 421, it is effective because there is no retransmission of the user data that has reached from the communication device 411 to the transfer speed-up device 100.
[0044] <<Modification example: retransmission only in one direction>> In the above-described embodiment, user data in both directions is stored in the buffer database 140 in the connected communication path. User data in one direction may be stored in the buffer database 140 and retransmitted if there is a retransmission request. For example, assume that the communication delay is large but the loss is small between the communication device 411 and the transfer speed-up device 100, and the loss is large between the transfer speed-up device 100 and the communication device 421. In such a case, only the user data from the communication device 411 to the communication device 421 may be stored in the buffer database 140.
[0045] By doing so, retransmission of user data between the communication device 411 with a large communication delay and the transfer speed-up device 100 can be reduced, and the throughput is improved (the communication is speeded up). Also, by storing user data only in the direction where the effect of retransmission from the transfer speed-up device 100 is high in the buffer database 140 with limited capacity, communication can be speeded up for more communication paths.
[0046] <<Modification example: communication quality>> In the above-described embodiment, the transfer speed-up device 100 speeds up communication data passing through all the connected communication paths. Instead of all the connected communication paths, communication paths with low communication quality may be targeted for speed-up.
[0047] FIG. 6 is a functional block diagram of a transfer speed-up device 100A according to a modification example of the present embodiment. Compared with the transfer speed-up device 100 (see FIG. 3), the control unit of the transfer speed-up device 100A includes a communication quality calculation unit 113, and the connection processing unit 111A and the transfer processing unit 112A are different.
[0048] The connection processing unit 111A registers the connection instructed by the communication quality calculation unit 113 in the connection information database 130, and sets the buffers 141 and 142 for the connection in the buffer database 140 (see FIG. 4). The processing of the transfer processing unit 112A will be described later while referring to FIG. 7.
[0049] The communication quality calculation unit 113 calculates the communication quality of the connected communication path. For example, the communication quality calculation unit 113 calculates the packet loss rate, which is the communication quality, by calculating the frequency of reception confirmation and retransmission requests. The communication quality calculation unit 113 instructs the connection processing unit 111 to register the connection information of the communication path in the connection information database 130 for a communication path whose communication quality is lower than a predetermined standard. Also, when the communication quality is improved compared to the predetermined standard, the communication quality calculation unit 113 may instruct the connection processing unit 111 to delete the connection information of the communication path from the connection information database 130. Note that in addition to the packet loss rate, the communication quality calculation unit 113 may measure other communication qualities such as communication delay and determine the communication path to be the target of the transfer speed-up processing.
[0050] FIG. 7 is a flowchart of the transfer speed-up processing according to a modification of the present embodiment. Note that the communication quality calculation unit 113 registers the connection information of a communication path whose communication quality is lower than a predetermined standard in the connection information database 130 simultaneously and in parallel with this transfer speed-up processing. Compared with the transfer speed-up processing described in FIG. 5, the transfer speed-up processing described in FIG. 7 does not have the processing related to the connection information in steps S14 and S16. Steps S31 to S32 and S35 to S39 are the same as steps S11 to S12 and S17 to S21 described in FIG. 5.
[0051] In step S33, if the transfer processing unit 112A determines that the processing target communication data is the communication data of a communication path registered in the connection information database 130 (step S33 → YES), the processing proceeds to step S35. If the transfer processing unit 112A determines that the processing target communication data is not the communication data of a connected communication path (step S33 → NO), the processing proceeds to step S34. In step S34, the transfer processing unit 112A transfers the processing target communication data and returns to step S32.
[0052] In this way, only communication channels with low communication quality are subject to high-speed processing, and the usage of the buffer database 140 can be reduced. The communication quality calculation unit 113 may calculate communication quality not on a per-communication-channel basis, but by direction of communication. In this case, the connection processing unit 111A sets buffers only for directions with poor communication quality, and the transfer processing unit 112A stores user data for those directions in the buffer database 140. In this way, the usage of the buffer database 140 can be further reduced.
[0053] <<Variation: Target of Transfer Acceleration>> As explained above, the target of transfer acceleration is not limited to all connected communication channels, but may be limited to one-way only, or only to low-quality communication channels. In addition, the decision of whether or not to target transfer acceleration may be made based on factors such as the network slice, the type of user data (service), the designation of at least one communication device at the communication channel endpoint, and the type of network between the communication device and the transfer acceleration device (e.g., whether or not it includes a wireless section).
[0054] Furthermore, the present invention is also applicable to cases where retransmission control is performed at the application layer using a protocol other than TCP, such as UDP (User Datagram Protocol). By storing user data in a buffer and monitoring the communication data of the application layer's acknowledgment / retransmission request, the user data can be retransmitted, thereby speeding up the transfer of user data.
[0055] The unit of connection may be an address, a quadrivalent indicating the connection, address information in the tunnel header such as a GRE (Generic Routing Encapsulation) indicating a slice, and a service identifier indicating other services, or a combination of these.
[0056] <<Other Modifications>> Although several embodiments of the present invention have been described above, these embodiments are merely illustrative and do not limit the technical scope of the present invention. For example, the calculation / measurement of communication quality may be performed by an external controller instead of the transfer acceleration device 100A. The transfer acceleration device 100A may start the transfer acceleration process upon notification from the controller. The trigger for starting or ending the transfer acceleration process may be time in addition to communication quality. For example, the transfer acceleration device 100A may target the transfer acceleration process in order of the lowest communication quality communication path when there is a predetermined or greater amount of free space in the buffer database 140.
[0057] The present invention can take on various other embodiments, and furthermore, various modifications such as omissions and substitutions can be made without departing from the spirit of the invention. These embodiments and their variations are included in the scope and spirit of the invention as described herein, and are also included in the scope of the invention and its equivalents as described in the claims.
[0058] ≪Hardware Configuration≫ The transfer acceleration devices 100 and 100A according to the above-described embodiment are implemented by a computer 900 having a configuration such as that shown in Figure 8. Figure 8 is a hardware configuration diagram showing an example of a computer 900 that implements the functions of the transfer acceleration devices 100 and 100A according to the above-described embodiment. The computer 900 includes a CPU 901, ROM 902, RAM 903, SSD 904, and an input / output interface 905 (labeled as input / output I / F (Interface) in Figure 8). Furthermore, the computer 900 includes a communication interface 906 (labeled as communication I / F in Figure 8) and a media interface 907 (labeled as media I / F in Figure 8). The computer 900 may be equipped with an HDD (Hard Disk Drive) instead of the SSD 904, or it may be equipped with an HDD in addition to the SSD 904.
[0059] The CPU 901 operates based on programs stored in the ROM 902 or SSD 904 and is controlled by the control unit 110 in Figure 3. The ROM 902 stores boot programs executed by the CPU 901 when the computer 900 starts up, as well as programs related to the computer 900's hardware.
[0060] The CPU 901 controls input devices 910, such as a mouse and keyboard, and output devices 911, such as a display and printer, via the input / output interface 905. The CPU 901 acquires data from the input devices 910 and outputs the generated data to the output devices 911 via the input / output interface 905.
[0061] The SSD 904 stores programs executed by the CPU 901 and data used by those programs. The communication interface 906 receives data from other devices (e.g., communication devices 411, 421, etc.) via the communication network and outputs it to the CPU 901, and also transmits data generated by the CPU 901 to other devices via the communication network.
[0062] The media interface 907 reads a program or data stored in the recording medium 912 and outputs it to the CPU 901 via the RAM 903. The CPU 901 loads the program from the recording medium 912 onto the RAM 903 via the media interface 907 and executes the loaded program. The recording medium 912 can be an optical recording medium such as a DVD (Digital Versatile Disk), a magneto-optical recording medium such as an MO (Magneto Optical Disk), a magnetic recording medium, a conductive memory tape medium, or a semiconductor memory.
[0063] For example, when computer 900 functions as a transfer acceleration device 100, 100A according to the above embodiment, the CPU 901 of computer 900 realizes the functions of the transfer acceleration devices 100, 100A by executing a program 128 (see Figure 3) loaded on RAM 903. The CPU 901 reads the program from the recording medium 912 and executes it. Alternatively, the CPU 901 may read the program from another device via a communication network, or it may install the program 128 from the recording medium 912 onto the SSD 904 and execute it.
[0064] <<Effects>> The effects of the transfer speed acceleration devices 100 and 100A are described below.
[0065] The transfer acceleration devices 100 and 100A according to the above embodiment are installed in the middle of the communication path connecting two communication devices 411 and 412. The transfer acceleration devices 100 and 100A include a connection processing unit 111 that registers connections between two communication devices 411 and 412 that meet predetermined conditions as registered connections in the connection information database 130.
[0066] The transfer acceleration devices 100 and 100A include a transfer processing unit 112 and 112A that, when receiving communication data 821 and 822 containing user data sent from the first communication device (see communication device 811) to the second communication device (see communication device 812) for communication data between two communication devices 411 and 412 that are in a registered connection relationship, store the user data in a buffer 141 and transfer the user data to the second communication device.
[0067] When the transfer processing units 112 and 112A receive communication data including a reception confirmation 823 for user data sent from the second communication device to the first communication device, they delete the user data from the buffer 141 and transfer the reception confirmation to the second communication device. When the transfer processing units 112 and 112A receive communication data including a retransmission request or a duplicate reception confirmation (see reception confirmation 838) for user data sent from the second communication device to the first communication device, they transmit the communication data 832 containing the user data stored in the buffer 141 to the second communication device.
[0068] With such transfer acceleration devices 100 and 100A, if user data (communication data including user data) is lost, the user data is retransmitted from the transfer acceleration devices 100 and 100A to the second communication device, rather than from the first communication device. This speeds up retransmission and, consequently, improves communication throughput. Furthermore, because it does not involve complex protocol processing like a proxy, it can be configured at low cost and with high performance by utilizing hardware accelerators such as FPGAs.
[0069] The predetermined conditions for the first and second communication devices to be in a registered connection relationship are any of the following: the communication is a trusted communication that guarantees the reception of user data transmitted by the first communication device by the second communication device; the communication from the first communication device to the second communication device is a trusted communication and the quality of the communication is below a predetermined standard; the communication from the first communication device to the second communication device is a trusted communication and the type of user data is a predetermined type; or the communication from the first communication device to the second communication device is a trusted communication and either the first or second communication device is specified.
[0070] With such transfer acceleration devices 100 and 100A, the transfer acceleration process is performed according to the state of the communication channel or the communication device, so the amount of buffer (see buffer database 140) used can be reduced. Consequently, the throughput of many communication channels is improved.
[0071] The user data stored in the buffer is either the user data transmitted from the first communication device to the second communication device, or the user data transmitted from the second communication device to the first communication device.
[0072] Such transfer acceleration devices 100 and 100A can reduce the amount of buffer used (see buffer database 140). Consequently, the throughput of many communication channels is improved.
[0073] 100, 100A Transfer acceleration device 111, 111A Connection processing unit 112, 112A Transfer processing unit 113 Communication quality calculation unit 130 Connection information database 140 Buffer database 141, 142 Buffer 411 Communication device (first communication device) 412 Communication device (second communication device) 821-822, 831-835 Communication data (user data) 823, 836, 837 Reception confirmation 838 Reception confirmation (retransmission request, duplicate reception confirmation)
Claims
1. A transfer acceleration device installed in the middle of a communication path connecting two communication devices, comprising: a connection processing unit that registers a connection between the two communication devices that meet predetermined conditions as a registered connection in a connection information database; and a transfer processing unit that, with respect to communication data between two communication devices, one of the two communication devices in the registered connection relationship being designated as the first communication device and the other as the second communication device, receives communication data including user data sent from the first communication device to the second communication device, stores the user data in a buffer, and transfers the user data to the second communication device; receives communication data including a receipt confirmation for the user data sent from the second communication device to the first communication device, deletes the user data from the buffer, and transfers the receipt confirmation to the second communication device; and receives communication data including a retransmission request or duplicate receipt confirmation for the user data sent from the second communication device to the first communication device, transmits the communication data including the user data stored in the buffer to the second communication device.
2. The transfer acceleration device according to claim 1, wherein the predetermined conditions for the first communication device and the second communication device to be in a registered connection relationship are any of the following: the communication is a reliable communication that guarantees the reception of user data transmitted by the first communication device by the second communication device; the communication from the first communication device to the second communication device is a reliable communication and the quality of the communication is below a predetermined standard; the communication from the first communication device to the second communication device is a reliable communication and the type of the user data is a predetermined type; and the communication from the first communication device to the second communication device is a reliable communication and either the first communication device or the second communication device is specified.
3. The transfer acceleration device according to claim 1, wherein the user data stored in the buffer is either user data transmitted from the first communication device to the second communication device, or user data transmitted from the second communication device to the first communication device.
4. A method for accelerating the transfer of a transfer acceleration device installed in the middle of a communication path connecting two communication devices, comprising the steps of: registering a connection between two communication devices that satisfy predetermined conditions as a registered connection in a connection information database; with respect to communication data between two communication devices, one of which is a registered connection is designated as a first communication device and the other as a second communication device, the method includes: receiving communication data including user data sent from the first communication device to the second communication device, storing the user data in a buffer, and transferring the user data to the second communication device; receiving communication data including an acknowledgment of receipt for the user data sent from the second communication device to the first communication device, deleting the user data from the buffer, and transferring the acknowledgment of receipt to the second communication device; and receiving communication data including a retransmission request or duplicate acknowledgment of receipt for the user data sent from the second communication device to the first communication device, and transmitting the communication data including the user data stored in the buffer to the second communication device.
Citation Information
Patent Citations
Packet monitoring device, packet monitoring method, and packet monitoring system
JP2013179486A