The present invention relates to a session relay device and a session relay method used therefor, and more particularly, to a device for relaying data between TCP (Transmission Control Protocol) sessions.
Generally, in communication applications, a communication session (particularly, a TCP session) is established between a transmission terminal and a reception terminal, and a communication is made on the established session.
The communication bandwidth for the TCP session largely varies depending on a congestion level and a round-trip propagation delay time of the network. For example, if there is a round-trip propagation delay of 30 msec, the throughput of the TCP session is calculatively limited to approximately 20 Mbps, even if a physical bandwidth of 1 Gbps is available, on the assumption that a transmission buffer size is 64 KB.
Also, if there is likewise a round-trip propagation delay of 30 msec, a throughput of 1 Gbps cannot be calculatively achieved, even if a sufficient transmission buffer can be ensured, as long as a discarding ratio in a network is not 0.0001% or less, i.e., packets are not discarded at a frequency of once per 26 seconds or less. Further, there is another problem that even if a particular important TCP session requires a bandwidth, the required bandwidth cannot be ensured due to contention with other TCP sessions.
Thus, as technologies for improving the throughput of the TCP session, the following schemes have conventionally existed. A first scheme is a scheme in which a TCP transmission terminal is provided with a sufficient transmission buffer. In this scheme, since a maximum amount of transmissible data is increased even if a reception confirmation packet (ACK packet) is not received, the throughput can be improved in an environment where the product of the bandwidth and propagation delay (bandwidth delay product) is large.
Also, generally, this scheme can readily increase the maximum amount of data by changing a TCP parameter in the operating system (OS). For example, the following Reference 1 discloses a system which permits a transmission terminal to have a transmission buffer of 64 KB or more, and the following Reference 2 discloses a system which automatically changes the amount of transmission buffer depending on the bandwidth, propagation delay and the like.
Reference 1: V. Jacobson et al., “TCP Extensions for High Performance”, Internet Engineering Task Force, Request for comments 1323, May 1992.
Reference 2: Tom Dunigan et at, “A TCP Tuning Daemon”, in proceedings of SC2002, November 2002.
The second scheme is a scheme in which a TCP session is relayed. In this scheme, a session relay device is installed between a transmission terminal and a reception terminal, such that data is relayed between a session from the transmission terminal to the session relay device and a session from the session relay device to the reception terminal. Thus, the throughput can be improved because the bandwidth delay product is smaller in the respective sessions than in a session in which a communication is directly made between the transmission terminal and the reception terminal. Specific examples of this second scheme are disclosed, for example, in the following References 3 to 7.
Reference 3: JP-A-11-252179
Reference 4: JP-A-2002-281104
Reference 5: JP-A-11-112576
Reference 6: JP-A-2002-312261
Reference 7: Ajay Bakre and B. R. Badrinath, “I-TCP; Indirect TCP for Mobile Host”, Department of Computer Science Rutgers University, DSC-TR-314, 1994 (http://www.it.iitb.ac.in/it644/papers/i-tcp.pdf)
A third scheme is a scheme in which a TCP window flow control algorithm is changed. While the bandwidth for a TCP session is determined by a packet discard ratio as well, this scheme performs, in TCP window flow control, operations for increasing a transmission bandwidth, i.e., a congestion window size when no packets are discarded and for reducing the congestion window size upon detection of discarded packets.
It is therefore possible to improve the throughput of TCP by changing TCP parameters such as an increasing amount and a decrease rate of the congestion window size. These systems attempt to improve the throughput by changing the TCP control parameters such as an increasing width and a decrease rate of a congestion window. Specific examples of this third scheme are disclosed, for example, in the following References 8, 9.
Reference 8: Sally Floyd, “High-Speed TCP for Large Congestion Windows”, Internet draft draft-floyd-tcp-highspeed-01.txt, Internet Engineering Task Force, wok in progress, 2002
Reference 9: Panos Gevros et al., “Analysis of a Method for Differentiated TCP Service”, In proc. of GLOBECOM99, pp. 1699-1708, 1999)
Also, the following Reference 10 discloses a system which does not reduce a congestion window when a congestion is detected once, but reduces the congestion window when congestions are detected a plurality of times.
Reference 10: JP-A-11-122296
A fourth scheme is a scheme in which a particular session is provided with a high throughput by adjusting the bandwidth among a plurality of TCP sessions through queuing.
In this scheme, a queue is provided for each session in a session relay device installed between a transmission terminal and a reception terminal, such that incoming packets of each session are stored in a queue corresponding to the session.
Packets are delivered from the respective queues in bandwidths set for the respective sessions, and packets delivered from the transmission terminal in a bandwidth larger than the set bandwidth are discarded in the session relay device. Specific examples of this fourth scheme are disclosed, for example, in the following References 11, 12.
Reference 11: JP-A-10-126446
Reference 12: JP-A-10-233802
A fifth scheme is a scheme in which a particular session is provided with a high throughput by controlling an ACK (acknowledgement) packet in a session relay device installed between a transmission terminal and a reception terminal to adjust the bandwidth among TCP sessions.
In this scheme, the amount of data transmitted from the transmission terminal to the reception terminal is reduced to control the bandwidth by rewriting an advertisement window size written in the ACK packet, i.e., the amount of data which can be received by the reception terminal to be smaller.
Also, this scheme delays the delivery of next data from the transmission terminal by delaying the ACK packet to control the bandwidth. As systems according to this scheme, there are a system which rewrites an ACK packet with congestion information on an ATM (Asynchronous Transfer Mode) network, as disclosed in the following Reference 13, and a system which delays an ACK packet in accordance with the period of a video frame, as disclosed in the following Reference 14.
Reference 13: JP-A-2001-203697
Reference 14: JP-A-2002-271380
The conventional session relay device described above has a problem that terminals must be modified when the first scheme is used. The users themselves must set a buffer size optimal to respective TCP sessions of respective terminals, and moreover, for automatically setting the buffer size, an application program therefor must be added to the terminals, resulting in an increased management cost for the terminals.
When the second scheme is used, the conventional session relay device has a problem of the inability to achieve a high throughput if a packet discarding ratio is high in a network.
For this reason, the conventional session relay device fails to achieve a high throughput even if a plurality of the session relay devices are used to perform a large number of relays between a transmission terminal and a reception terminal only if the packet discarding ratio Is high even at a single site in a particular section.
When the third scheme is used, the conventional session relay device has a problem of causing a congestion in a network in some cases. In the third scheme, since packets are transmitted in a high bandwidth even at the same network congestion level, as compared with TCP having ordinary control parameters, a congestion can be caused in the network.
Particularly, the congestion is more likely to occur as the control parameters are set to more largely Improve the throughput. Since a range of the control parameters which avoid the congestion varies depending on a variety of conditions and cannot be uniquely determined, it cannot be ensured that the congestion is avoided in a network while improving the throughput. On the other hand, when the control parameters are set moderately enough to avoid the congestion, an improved throughput cannot be expected.
Also, when the third scheme is used, the conventional session relay device has a problem of the inability to explicitly control the throughput. The third scheme cannot uniquely determine the control parameters for a target throughput, thus failing to realize the provision of an equally high throughput independently of a propagation delay time to a destination terminal, the provision of a particular throughput to a particular session, and the like.
Further, even if the third scheme is combined with the aforementioned fourth scheme or fifth scheme, the control parameters must have been set such that a target throughput can be achieved in any situation because the fourth scheme or fifth scheme only conducts the control in a direction in which the throughput is degraded. In this event, the network is highly likely to be congested.
When the fourth scheme or fifth scheme is used alone, it cannot conduct explicit bandwidth control, when the bandwidth delay product is large or when the network is congested, due to its inability to conduct the control in a direction in which the throughput is improved.
When the third scheme and fourth scheme are used, the conventional session relay device has a problem that the bandwidth is reduced between the transmission terminal and the session relay device in some cases.
When the bandwidth between the transmission terminal and the session relay device is smaller than the bandwidth between the session relay device and the reception terminal, a reception buffer of the session relay device is frequently filled up, causing the session relay device to notify the transmission terminal of an advertisement window size of zero byte. Upon notification of the advertisement window size of zero byte, the transmission terminal stops the transmission until it is next notified of the advertisement window size of one byte or more, thus resulting in a lower transmission bandwidth from the transmission terminal.
The conventional session relay device has a problem that this problem of lower transmission bandwidth from the transmission terminal also affects between the session relay device and the reception terminal.
When a bandwidth of data which can be processed by the reception terminal is smaller than a bandwidth between the transmission terminal and the session relay device, a reception buffer of the reception terminal is frequently filled up, causing the reception terminal to notify the session relay device of an advertisement window size of zero byte. Upon notification of the advertisement window size of zero byte, the session relay device stops the transmission until it is next notified of the advertisement window size of one byte or more, thus resulting in a lower transmission bandwidth from the session relay device.
It is therefore an object of the present invention to provide a session relay device which is capable of solving the problems mentioned above, and optimally controlling a bandwidth for a session, while avoiding a congestion, independently of a network congestion situation or a session round-trip propagation delay time, and a session relay method used therefor.
A session relay device according to the present invention is a session relay device for controlling a communication bandwidth between a transmission terminal and a reception terminal by relaying sessions between said transmission terminal and said reception terminal, said session relay device comprising means for changing window flow control for a session between said device itself and said reception terminal.
Another session relay device according to the present invention is a session relay device for realizing a communication between a transmission terminal and a reception terminal by relaying data between a session to said transmission terminal and a session to said reception terminal, said device comprising reception control means for receiving data from the session to said transmission terminal, transmission control means for transmitting data to the session to said reception terminal, means for passing data received and processed by said reception control means to said transmission processing means, observing means for observing a state relating to said transmission control means, and changing means for changing operation of said transmission control means,
wherein the operation of said transmission control means is changed in accordance with the result of the observation of said observing means.
A session relay method according to the present invention is a session relay method for a session relay device for controlling a communication bandwidth between a transmission terminal and a reception terminal by relaying sessions between said transmission terminal and said reception terminal, said method characterized by comprising, on said session relay device side, processing of changing window flow control for a session between said session relay device and said reception terminal.
Another session relay method according to the present invention is a session relay method for a session relay device for realizing a communication between a transmission terminal and a reception terminal by relaying data between a session to said transmission terminal and a session to said reception terminal, said method comprising, on said session relay device side, processing of passing data, which is received and processed by reception control means for receiving data from the session to said transmission terminal, to transmission processing means for transmitting data to a session to said reception terminal; processing of observing a state relating to said transmission control means; and processing of changing operation of said transmission control means, wherein the operation of said transmission control means is changed in accordance with the result of the observation.
Specifically, to solve the problems mentioned above, the session relay device of the present invention controls the throughput by changing the transmission buffer size of the session relay device, a TCP (Transmission Control Protocol) control parameter, and the like without changing the transmission terminal or reception terminal.
Also, to solve the problems mentioned above, the session relay device of the present invention controls the throughput, without being affected by a propagation delay time or a network congestion level, by combining a relay of TCP sessions with a change in the transmission buffer size of the session relay device, the TCP control parameter and the like.
Further, to solve the problems mentioned above, the session relay device of the present invention conducts bandwidth control when data received from a session with a transmission terminal is passed to a session with a reception terminal, and dynamically changes the control parameter in the session for making a transmission to the reception terminal based on the difference between the amount of received data and the amount of actually transmitted data in this session.
In the session relay device of the present invention, for example, the control parameter is changed in a direction in which the throughput increases when the amount of data in the transmission buffer for a session to the reception terminal or an average thereof is equal to or larger than a certain value, while the control parameter is changed in a direction in which the throughput degrades when the data amount or an average thereof is equal to or smaller than the certain value, thereby dynamically changing the control parameter to accomplish the target bandwidth control.
Also, the session relay device of the present invention stops changing the control parameter or changes it in a direction in which the throughput degrades when a throughput improvement effect does not appear even if the control parameter is changed in the direction in which the throughput improves, or when it determines a congestion from the fact that the discarding ratio has increased to a certain value or higher.
To solve the problems mentioned above, the session relay device of the present invention monitors the number of packets staying in the reception buffer for a session between the transmission terminal and the session relay device, and generates a duplicate ACK having the same ACK sequence number to the transmission terminal, when the number of packets or an average value thereof is equal to or larger than a certain value, thereby reducing the transmission rate of the transmission terminal to prevent the reception buffer from being frequently filled up.
Also, in order to resume the transmission earlier even if the reception buffer is filled up, if a certain amount or more of free capacity can be ensured in the reception buffer at the time an ACK packet is received from the reception terminal for confirming the reception of one byte or more, the session relay device of the present invention transmits an ACK packet having an advertisement window size of one or more to the transmission terminal at that time.
To solve the problems mentioned above, the session relay device of the present invention monitors an advertisement window size notified from the reception terminal, and changes the control parameter for a session from the session relay device to the reception terminal if the average of advertisement window size is equal to or larger than a certain value, thereby reducing the transmission rate from the session relay device to prevent the reception buffer from being frequently filled up.
Accordingly, as described above, the present invention can provide an effect of optimally controlling the bandwidth for a session without causing a congestion independently of a network congestion situation or a session round-trip propagation delay time.
Next, embodiments of the present invention will be described with reference to the drawings.
[First Embodiment]
First, when data is sent from transmission terminal 3 to reception terminal 2, a data packet from transmission terminal 3 is processed by a reception session processing unit (not shown) of session relay unit 12-1, and as a result, an ACK packet is returned to transmission terminal 3.
Data received by the reception session processing unit is sent to a transmission session processing unit (not shown) of session relay unit 12-1, and a data packet is transmitted from here to reception terminal 2. On the other hand, the ACK packet returned by reception terminal 2 is processed by the transmission session processing unit of session relay unit 12-1.
Likewise, when data is sent from reception terminal 2 to transmission terminal 3, a data packet from reception terminal 2 is processed by a reception session processing unit (not shown) of session relay unit 12-2, and as a result, an ACK packet is returned to reception terminal 2.
The data received by the reception session processing unit is sent to a transmission session processing unit (not shown) of session relay unit 12-2, and a data packet is transmitted from here to transmission terminal 3. On the other hand, the ACK packet returned by transmission terminal 3 is processed by the transmission session processing unit of session relay unit 12-2.
In this embodiment, the throughput is controlled by changing a transmission buffer size of session relay device 1, TCP (Transmission Control Protocol) control parameters, and the like, without modifying transmission terminal 3 or reception terminal 2.
Also, in this embodiment, the throughput is controlled without affected by a propagation delay time or a network congestion level by combining a TCP session relay with a change in the transmission buffer size of session relay device 1, TCP control parameters, and the like.
Further, in the embodiment of the present invention, the bandwidth is controlled when data received from a session with transmission terminal 3 is passed to a session with reception terminal 2, and in a session for making a transmission to reception terminal 2, control parameters are dynamically changed for the session based on a difference between the amount of received data and the amount of actually transmitted data.
In this embodiment, the control parameters are changed in a direction in which the throughput increases, for example, when the amount of data in a transmission buffer for a session to reception terminal 2 or an average thereof reaches a certain value or more, while the control parameters are changed in a direction in which the throughput degrades when the amount of data or its average falls below the certain value, thereby dynamically changing the control parameters to conduct target bandwidth control.
In this embodiment, when the throughput improving effect does not appear even if the control parameters are changed in the direction in which the throughput improves, or when a congestion is determined from a discarding ratio which has increased to a certain value or more, the control parameters are not changed or changed in a direction in which the throughput degrades.
In this embodiment, the number of packets staying in a reception buffer of a session between transmission terminal 3 and session relay device 1 is monitored, and a duplicate ACK having the same ACK sequence number is delivered to the transmission terminal when the number of packets or an average value thereof reaches a certain value or more, thereby reducing the transmission rate of transmission terminal 3 to prevent the reception buffer from being frequently filled up.
Also, in this embodiment, in order to resume the transmission earlier even when the reception buffer is filled up, if a certain amount or more of free capacity can be ensured in the reception buffer at the time an ACK packet has been received from reception terminal 2 for confirming the reception of one byte or more, an ACK packet having an advertisement window size of one or more is transmitted to transmission terminal 3 at that time.
In this embodiment, the advertisement window size notified from reception terminal 2 is monitored to change the control parameters for a session from session relay device 1 to reception terminal 2 when the average of the advertisement window size is equal to or more than a certain value, thereby reducing the transmission rate from session relay device 1 to prevent the reception buffer from being frequently filled up.
Session identification unit 11 determines a session to which an incoming packet belongs, and session relay unit 12-1 to 12-N relays between a session with session identification unit 11 and transmission terminal 3 and a session 4j with reception terminal 2. Output control unit 13 delivers packets delivered from each of session relay units 12-1 to 12-N to an output line.
Session relay units 12-1 to 12-N comprise reception session processing units 121-1 to 121-N (reception session processing units 121-2 to 121-N are not shown); reception buffers 122-1 to 122-N (reception buffers 122-2 to 122-N are not shown); bandwidth control units 123-1 to 123-N (bandwidth control units 123-2 to 123-N are not shown); transmission buffers 124-1 to 124-N (transmission buffers 124-2 to 124-N are not shown); transmission session processing units 125-1 to 125-N (transmission session processing units 125-2 to 125-N are not shown); transmission resumption ACK (acknowledgement) generation units 126-1 to 126-N (transmission resumption ACK generation units 126-2 to 126-N are not shown); duplicate ACK generation units 127-1 to 127-N (duplicate ACK generation units 127-2 to 127-N are not shown); packet discarding ratio calculation units 128-1 to 128-N (packet discarding ratio calculation units 128-2 to 128-N are not shown); control parameter calculation units 129-1 to 129-N (control parameter calculation units 129-2 to 129-N are not shown); and congestion report signal detection units 130-1 to 130-N (congestion report signal detection units 130-2 to 130-N are not shown).
Reception session processing unit 121-1 to 121-N processes a session for receiving data from transmission terminal 3, and reception buffer 122-1 to 122-N temporarily stores received data. Bandwidth control unit 123-1 to 123-N controls a data movement from reception buffer 122-1 to 122-N to transmission buffer 124-1 to 124-N, and transmission buffer 124-1 to 124-N temporarily stores data to be transmitted. Transmission session processing unit 125-1 to 125-N processes a session for transmitting data to reception terminal 2.
Transmission resumption ACK generation unit 126-1 to 126-N generates an ACK packet for instructing transmission terminal 3 to resume a transmission, and duplicate ACK generation unit 127-1 to 127-N generates a duplicate ACK packet for instructing transmission terminal 3 to reduce the transmission rate.
Packet discarding ratio calculation unit 128-1 to 128-N calculates a packet discarding ratio in a session to reception terminal 2, and control parameter calculation unit 129-1 to 129-N changes control parameters for a session to reception terminal 2 from the amount of data staying in transmission buffer 124-1 to 124-N and the packet discarding ratio. Congestion report signal detection unit 130-1 to 130-N notifies that a set bandwidth cannot be satisfied by a congestion in a network (not shown).
In a TCP (Transmission Control Protocol) session, bidirectional communications are generally made between transmission terminal 3 and reception terminal 2. Thus, assume in this embodiment that two of session relay units 12-1 to 12-N are used for a set of transmission terminal 3 and reception terminal 2, and corresponding session relay units 12-1 to 12-N are used respectively for data communications in the respective directions.
Therefore, session relay units 12-1 to 12-N are provided two by two for a plurality of sets of transmission terminals 3 and reception terminals 2, and each of session relay units 12-1 to 12-N performs processing for relaying data from a session from different transmission terminal 3 to a session to corresponding reception terminal 2, or from a session from different reception terminal 2 to a session to corresponding transmission terminal 3.
In the TCP session, a data packet in a certain direction and an ACK packet in a direction opposite thereto can be integrated onto a single packet (piggy back of ACK), but a description on such an operation is omitted in this embodiment for simplifying the description.
As a packet is fed to session relay device 1 (step S1 in
Session identification unit 11 passes the packet to reception session processing unit 121-1 to 121-N of corresponding session relay unit 12-1 to 12-N when the incoming packet is a data packet (step S3 in
When a received data packet has a correct sequence number (step S4 in
When the incoming data packet does not have a correct sequence number (step S4 in
Since the foregoing processing is described in detail in “TCP/IP Illustrated, Volume 1: The Protocols,” Addison-Wesley, 1994, ISBN 0-201-63346-9 (hereinafter called “Document 1”), a description thereon will not be made in detail here.
Bandwidth control unit 123-1 to 123-N controls a data movement from reception buffer 122-1 to 122-N to transmission buffer 124-1 to 124-N (step S7 In
Transmission session processing unit 125-1 to 125-N performs transmission processing for data from transmission buffer 124-1 to 124-N in accordance with a smaller window size of a congestion window size calculated thereby and an advertisement window size notified from reception terminal 2 (step S9 in
Also, upon receipt of an ACK packet from reception terminal 2, transmission session processing unit 125-1 to 125-N performs data retransmission processing (S11 in
When the ACK packet from reception terminal 2 is not a duplicate ACK (step S10 in
If the reception buffer has been filled up (step S21 in
Accordingly, in session relay device 1 according to this embodiment, the free capacity of transmission buffer 122-1 to 122-N falls short of a certain level or lower (step S23 in
Also, in session relay device 1 according to the present invention, an ACK packet is immediately generated to prompt transmission terminal 3 to resume the transmission (step S27 in
Thus, when data is moved from reception buffer 122-1 to 122-N to transmission buffer 124-1 to 124-N by bandwidth control unit 123-1 to 123-N, transmission resumption ACK generation unit 126-1 to 126-N examines reception buffer 122-1 to 122-N for a free capacity, and generates an ACK packet for transmission to transmission terminal 3 if the free capacity has recovered to a certain value or more.
A bandwidth from session relay device 1 to reception terminal 2 depends on the congestion window size calculated by transmission session processing unit 125-1 to 125-N, and the bandwidth increases as the congestion window size is larger.
The congestion window size is calculated by a TCP window flow control algorithm, wherein the congestion window size is linearly increased when packets are correctly received without discarding any packet (steps S31, S32 in
In this embodiment, the former is referred to as a congestion window increase width, and the latter as a congestion window decrease rate. In this embodiment, these control parameters are dynamically changed to control a bandwidth for a session to reception terminal 2 to be equal to a set bandwidth. Since data is moved within the set bandwidth from bandwidth control unit 123-1 to 123-N to transmission buffer 124-1 to 124-N, an increase in the amount of data staying in transmission buffer 124-1 to 124N means that a bandwidth for a session to reception terminal 2 is smaller than the set bandwidth. Conversely, a decrease in the amount of staying data means that the bandwidth for the session to reception terminal 2 is larger than the set bandwidth.
Therefore, in this embodiment, when the amount of data staying in transmission buffer 124-1 to 124-N increases to predefined certain value A or more (step S34 in
Also, in this embodiment, when the amount of data staying in transmission buffer 124-1 to 124-N falls to another predefined certain value B or less (step S34 in
When it is determined that the set bandwidth cannot be satisfied however the control parameters are changed (step S37 in
In this event, bandwidth control unit 123-1 to 123-N notifies a manager of this session relay device, a management system or the like of the congestion from congestion report signal generation unit 130-1 to 130-N in expectation of resetting of the set bandwidth or resetting of a route (step S39 in
[Second Embodiment]
Average queue length calculation unit 141-1 to 141-N calculates the amount of average data staying in reception buffer 122-1 to 122-N, while average queue length calculation unit 142-1 to 142-N calculates the amount of average data staying in transmission buffer 124-1 to 124-N.
The operation of the session relay device according to the second embodiment of the present invention will be described with reference to this
In the first embodiment of the present invention, duplicate ACK generation unit 127-1 to 127-N determines the generation of a duplicate ACK based on a free capacity of reception buffer 122-1 to 122-N, whereas in this embodiment, the generation of a duplicate ACK is determined on the basis of the amount of average data staying in the reception buffer, calculated by average queue length calculation unit 141-1 to 141-N.
Also, in the first embodiment of the present invention, control parameter calculation unit 129-1 to 129-N updates the control parameters based on the amount of data staying in transmission buffer 124-1 to 124-N, whereas in this embodiment, the control parameters are updated on the bases of the amount of average data staying in the transmission buffer calculated by average queue length calculation unit 142-1 to 142-N.
[Third Embodiment]
Transmission elapsed time calculation unit 151-1 to 151-N calculates an elapsed time from the time a data transmission is started in transmission session processing unit 125-1 to 125-N, and passes the calculated value to control parameter calculation unit 129-1 to 129-N.
The operation of session relay device according to the third embodiment of the present invention will be described with reference to
In the first embodiment of the present invention, the control parameters used by transmission session processing unit 125-1 to 125-N are determined from the amount of data staying in the transmission buffer and the packet discarding ratio, whereas this embodiment additionally uses the elapsed time from the start of a data transmission.
Specifically, for increasing a bandwidth for a session to reception terminal 2, the congestion window increase width is changed in preference to the decrease rate to improve the follow-up characteristic of the bandwidth control for short data if a short time has elapsed from the start of data, whereas the congestion window decrease rate is changed in preference to the increase width to stabilize the bandwidth control if a long time has elapsed from the start of data.
The transmission elapsed time calculated by transmission elapsed time calculation unit 151-1 to 151-N is reset to zero when a new communication is started, i.e., when the congestion window of the TCP session starts operating at low speeds.
[Fourth Embodiment]
Transmission bandwidth calculation unit 161-1 to 161-N measures a data transmission bandwidth from session relay device 1 to reception terminal 2, and passes the measured value to control parameter calculation unit 129-1 to 129-N.
The operation of the session relay device according to the fourth embodiment of the present invention will be described with reference to this
In the first embodiment of the present invention, a data transfer from reception buffer 122-1 to 122-N to transmission buffer 124-1 to 124-N is controlled by bandwidth control unit 123-1 to 123-N, whereas in this embodiment, data stored in reception buffer 122-1 to 122-N is immediately transferred to transmission buffer 124-1 to 124-N by data transfer unit 162-1 to 162-N.
Therefore, in this embodiment, the bandwidth control Is not conducted through the data transfer, but the bandwidth control is conducted by changing the control parameters for a session to reception terminal 2 based on a transmission bandwidth for the session calculated by transmission bandwidth calculation unit 161-1 to 161-N.
Specifically, in this embodiment, a bandwidth for a session from session relay device 1 to reception terminal 2 is calculated in transmission bandwidth calculation unit 161-1 to 161-N, and if this bandwidth is smaller than a target bandwidth or an (weighted) average bandwidth for all sessions, the bandwidth for the session to reception terminal 2 is increased by increasing the congestion window increase width or reducing the congestion window decrease rate, or both.
Otherwise, in this embodiment, the bandwidth for the session to reception terminal 2 is reduced by reducing the congestion window increase width or increasing the congestion window decrease rate, or both. Transmission bandwidth calculation unit 161-1 to 161-N observes an ACK packet from reception terminal 2, and calculates the transmission bandwidth based on the number of bytes, the reception of which has been confirmed per unit time.
Also, in this embodiment, when data is moved from reception buffer 122-1 to 122-N to transmission buffer 124-1 to 124-N, data transfer unit 162-1 to 162-N, rather than bandwidth control unit 123-1 to 123-N examines reception buffer 122-1 to 122-N for a free capacity to generate a transmission resumption ACK.
[Fifth Embodiment]
The operation of the session relay device according to the fifth embodiment of the present invention will be described with reference to this
In the fourth embodiment of the present invention, data received in reception session processing unit 121-1 to 121-N is written into transmission buffer 124-1 to 124N through reception buffer 122-1 to 122-N and data transfer unit 162-1 to 162-N, whereas in this embodiment, data received in reception session processing unit 121-1 to 121-N is directly written into transmission buffer 124-1 to 124-N.
A data transfer from reception buffer 122-1 to 122-N to transmission buffer 124-1 to 124-N is controlled by data transfer unit 162-1 to 162-N, however, in this embodiment, data received in reception session processing unit 121-1 to 121-N is immediately transferred to transmission buffer 124-1 to 124-N.
For this purpose, in this embodiment, the bandwidth control is conducted by changing the control parameters for a session to reception terminal 2 based on a bandwidth for the session calculated in transmission bandwidth calculation unit 161-1 to 161-N in a manner similar to the fourth embodiment of the present invention.
Also, in this embodiment, since data is directly written from reception session processing unit 121-1 to 121-N into transmission buffer 124-1 to 124-N, a free capacity of transmission buffer 124-1 to 124-N is advertised for the advertisement window size which is notified to transmission terminal 3. Further, in this embodiment, duplicate ACK generation unit 127-1 to 127-N generates a duplicate ACK in accordance with the free capacity of transmission buffer 124-1 to 124-N.
Moreover, in this embodiment, when an ACK packet is received from a session to reception terminal 2, a transmission resumption ACK is generated for transmission terminal 3. Specifically, in this embodiment, when transmission buffer 124-1 to 124-N is filled up so that transmission terminal 3 is being advertised of an advertisement window of zero byte, if session relay device 1 receives a reception confirmation ACK from reception terminal 2, data confirmed by this ACK is removed from transmission buffer 124-1 to 124-N, resulting in a free capacity available in transmission buffer 124-1 to 124-N.
In this event, transmission session processing unit 125-1 to 126-N sends a buffer capacity confirmation signal to transmission resumption ACK generation unit 126-1 to 126-N. Upon receipt of this signal, transmission resumption ACK generation unit 126-1 to 126-N examines a transmission buffer capacity, and generates ACK for transmission resumption which is notified to transmission terminal 3 if transmission buffer 124-1 to 124-N has a free capacity equal to or more than a certain value. On the other hand, in the fourth embodiment of the present invention, when data transfer unit 162-1 to 162-N, rather than bandwidth control unit 123-1 to 123-N, moves data from reception buffer 122-1 to 122-N to transmission buffer 124-1 to 124-N, reception buffer 122-1 to 122-N is examined for a free capacity to generate a transmission resumption ACK.
[Sixth Embodiment]
The operation of the session relay device according to the sixth embodiment of the present invention will be described with reference to this
In this embodiment, when the control parameters are calculated for a session to reception terminal 2i control parameter calculation unit 129-1 to 129-N uses an advertisement window size notified from reception terminal 2. Specifically, in this embodiment, the average of advertisement window sizes notified from reception terminal 2 is calculated in average advertisement window calculation unit 181-1 to 181-N at all times, to reduce a bandwidth for a session to reception terminal 2 by reducing the congestion window increase width or increasing the congestion window decrease rate, or both, if the average of the advertisement window size is equal to or larger than a predefined threshold.
[Seventh Embodiment]
In the first to sixth embodiments of the present invention described above, session relay device 1 controls a bandwidth between transmission terminal 3 and reception terminal 2 in accordance with a set bandwidth, whereas in this embodiment, no set bandwidth is provided, but the bandwidth is controlled between transmission terminal 3 and reception terminal 2 with an aim at a bandwidth which can be received by reception terminal 2.
The operation of the session relay device according to the seventh embodiment of the present invention will be described with reference to this
In this embodiment, when control parameter calculation unit 129-1 to 129-N calculates the control parameters for a session to reception terminal 2, the control parameters are not changed in accordance with a bandwidth for the session to reception terminal 2, but the control parameters are changed in accordance with an advertisement window size notified from reception terminal 2.
Specifically, in this embodiment, the average of advertisement window size notified from reception terminal 2 is calculated in average advertisement window calculation unit 181-1 to 181-N at all times to reduce the bandwidth for the session to reception terminal 2 by reducing the congestion window increase width or increasing the congestion window decrease rate, or both, if the average of the advertisement window size is equal to or larger than a predefined threshold.
Further, in this embodiment, If the average of the advertisement window size is equal to or smaller than another predefined threshold, the bandwidth for the session to reception terminal 2 is increased by increasing the congestion window increase width, or reducing the congestion window decrease rate, or both.
[Eighth Embodiment]
Also, session transmission units 41-1 to 41-N comprise transmission data generation units 417-1 to 417-N (transmission data generation units 417-2 to 417-N are not shown); transmission buffers 411-1 to 411-N (transmission buffers 411-2 to 411-N are not shown); transmission session processing units 412-1 to 412-N (transmission session processing units 412-1 to 412-N are not shown); transmission bandwidth calculation units 416-1 to 1416-N (transmission bandwidth calculation units 416-2 to 416-N are not shown); packet discarding ratio calculation units 413-1 to 413-N (packet discarding ratio calculation units 413-2 to 413-N are not shown); control parameter calculation units 414-1 to 414-N (control parameter calculation units 414-2 to 414-N are not shown); and congestion report signal detection units 415-1 to 415-N (congestion report signal detection units 4152 to 415-N are not shown).
Transmission data generation unit 417-1 to 417-N stores transmission data from an application program within the transmission terminal in transmission buffer 411-1 to 411-N, and transmission buffer 411-1 to 411-N temporarily stores data to be transmitted. Transmission session processing unit 412-1 to 412-N processes a session for transmitting data to the reception terminal.
Transmission bandwidth calculation unit 416-1 to 416-N measures a data transmission bandwidth to the reception terminal, packet discarding ratio calculation unit 413-1 to 413-N calculates a packet discarding ratio in a session to the reception terminal, and control parameter calculation unit 414-1 to 414-N changes control parameters for the session to the reception terminal from the transmission bandwidth and packet discarding ratio. Congestion report signal detection unit 415-1 to 415-N notifies that a set bandwidth cannot be satisfied due to a congestion in a network.
Session reception units 42-1 to 42-N comprise reception session processing units 421-1 to 421-N (reception session processing units 421-i to 421-N are not shown); reception buffers 422-1 to 422-N (reception buffers 422-2 to 422-N are not shown); received data processing units 425-1 to 425-N (received data processing units 425-2 to 425-N are not shown); transmission resumption ACK generation units 423-1 to 423-N (transmission resumption ACK generation units 423-2 to 423-N are not shown); and duplicate ACK generation units 424-1 to 424-N (duplicate ACK generation units 424-2 to 424-N are not shown).
Reception session processing unit 421-1 to 421-N performs reception processing for data from a reception terminal, and reception buffer 422-1 to 422-N temporarily stores received data. Received data processing unit 425-1 to 425-N passes received data from reception buffer 422-1 to 422-N to an application program. Transmission resumption ACK generation unit 423-1 to a 423-N generates an ACK packet for instructing the reception terminal to resume a transmission, and duplicate ACK generation unit 424-1 to 424-N generates a duplicate ACK for instructing the reception terminal to reduce a transmission rate.
Generally, since bidirectional communications are made between a transmission terminal and a reception terminal in a TCP session, one of session transmission units and one of session reception units are used for a set of a transmission terminal and a reception terminal in this embodiment. Therefore, in this embodiment, the session relay device additionally serves as a transmission terminal or a reception terminal.
On the other hand, when data is sent from session relay device (reception terminal) 4-1 to session relay device (transmission terminal) 4-2, a data packet delivered from session transmission unit 41-1-1 of session relay device (reception terminal) 4-1 undergoes reception processing in session reception unit 42-1-2 of session relay device (transmission terminal) 4-2. As a result, a generated ACK packet is returned to session transmission unit 41-1-1 of session relay device (reception terminal) 4-1.
Next, the operation of the session relay devices according to the eighth embodiment of the present invention will be described with reference to
Transmission data generated by an application program is written into transmission buffer 411-1 to 411-N by transmission data generation unit 417-1 to 417-N. Transmission session processing unit 412-1 to 412-N performs data transmission processing for data written in transmission buffer 411-1 to 3411-N to session relay device (reception terminal) 4-1. Since this data transmission processing is similar to the aforementioned data transmission processing according to first embodiment of the present invention, a description thereon is omitted. Also, since a change in the control parameters for a session to session relay device (transmission terminal) 4-2 in this embodiment is similar to the fourth embodiment of the present invention described above, a description thereon is also omitted.
Next, a description will be given of a data transfer from session relay device (reception terminal) 4-1 to session relay device (transmission terminal) 4-2.
Received data processing unit 425-1 to 425-N performs reception processing for data transmitted from session relay device (reception terminal) 4-1, and stores data which can be correctly received in reception buffer 422-1 to 422-N. Since this data reception processing is similar to the aforementioned data reception processing according to the first embodiment of the present invention, a description thereon is omitted.
The data written into reception buffer 422-1 to 422-N is retrieved by received data processing unit 425-1 to 425-N, and passed to an application program.
Duplicate ACK generation unit 424-1 to 424-N transmits a sufficient number (generally, “3”) of duplicate AC-K packets in order for the transmission terminal to reduce the congestion window to the transmission terminal when a free capacity of reception buffer 422-1 to 422-N reduces to a certain level or lower, causing the transmission terminal to reduce the data output rate, in a manner similar to the aforementioned first embodiment of the present invention.
On the other hand, when data is moved from reception buffer 422-1 to 422-N to the application program by reception data processing unit 425-1 to 425-N, transmission resumption ACK generation unit 423-1 to 423-N examines reception buffer 422-1 to 422-N for a free capacity, and if the free capacity is equal to or larger than a certain value, generates an ACK packet which is transmitted to the transmission terminal.
Thus, in the present invention, the window flow control is changed for a session between session relay device 1 and reception terminal 2 in session relay device 1 for controlling a communication bandwidth between transmission terminal 3 and reception terminal 2 by relaying sessions between transmission terminal 3 and reception terminal 2, thereby making it possible to improve the throughput between them, and realize the bandwidth control independently of a network congestion situation.
Also, in the present invention, the control parameters can be maintained at appropriate values at all times by, in session relay device 1, monitoring the number of packets staying in the transmission buffer for a session between session relay device 1 and reception terminal 2, and dynamically changing the control parameters based on the number of packets or an average of the number of packets.
Further, in the present invention, the number of packets staying in the reception buffer is monitored in a session between transmission terminal 3 and session relay device 1, and a duplicate ACK having the same ACK sequence number is delivered to transmission terminal 3 when the number of packets or an average of the number of packets is equal to or larger than a certain value, to reduce a transmission rate of transmission terminal 3, thereby making it possible to prevent the reception buffer from frequently being filled up.
Moreover, in the present invention, if a certain amount or more of free capacity can be ensured in the reception buffer at the time an ACK packet is received from reception terminal 2 for confirming the reception of one byte or more, the transmission can be resumed at an earlier stage by transmitting at that time an ACK packet having an advertisement window size of one or more to transmission terminal 3, even if the reception buffer is filled up for a session between transmission terminal 3 and session relay device 1.
In the present invention, the advertisement window size notified from reception terminal 2 is monitored to change the control parameters for a session from session relay device 1 to reception terminal 2 when the averaged advertisement window size is equal to or larger than a certain value, thereby making it possible to reduce a transmission rate from session relay device 1 to prevent the reception buffer from being frequently filled up for the session from session relay device 1 to reception terminal 2.
Number | Date | Country | Kind |
---|---|---|---|
2003-295759 | Aug 2003 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP04/10795 | 7/29/2004 | WO | 2/14/2006 |