WO2015045080A1 - 計測装置、通信装置、中継装置、計測方法および計測プログラム - Google Patents

計測装置、通信装置、中継装置、計測方法および計測プログラム Download PDF

Info

Publication number
WO2015045080A1
WO2015045080A1 PCT/JP2013/076157 JP2013076157W WO2015045080A1 WO 2015045080 A1 WO2015045080 A1 WO 2015045080A1 JP 2013076157 W JP2013076157 W JP 2013076157W WO 2015045080 A1 WO2015045080 A1 WO 2015045080A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
communication device
transmission
time
rate
Prior art date
Application number
PCT/JP2013/076157
Other languages
English (en)
French (fr)
Inventor
哲明 鶴岡
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2015538721A priority Critical patent/JP6004116B2/ja
Priority to PCT/JP2013/076157 priority patent/WO2015045080A1/ja
Publication of WO2015045080A1 publication Critical patent/WO2015045080A1/ja
Priority to US15/081,410 priority patent/US10129123B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/087Jitter

Definitions

  • the present invention relates to a measurement device, a communication device, a relay device, a measurement method, and a measurement program.
  • Patent Document 1 discloses a technique of observing a reception rate at a receiver and notifying the sender of this.
  • a function for performing measurement is also added to the communication device on the receiving side.
  • the sender estimates the reception rate at the receiver by measuring the arrival rate of the confirmation response that the receiver returns to the sender and the RTT (Round Trip Time). It is disclosed.
  • the network capability can be estimated only from information obtained by the sender.
  • this measurement method has a problem that it is easily affected by the network condition in the return path to which the confirmation response is returned.
  • Patent Documents 3 and 4 Non-Patent Documents 1 and 2
  • this method has a problem that it takes time to converge and cannot cope with dynamic fluctuations in the network.
  • the present invention provides a measuring device and a communication device capable of estimating an appropriate transmission rate by improving the measurement accuracy of an arrival rate that can be performed only by information obtained based on a data transfer procedure on the transmission side.
  • An object of the present invention is to provide a relay device, a measurement method, and a measurement program.
  • a change in time on the reception side is acquired from transmission time information given to a message returned by the reception side. Then, the relative time lapse on the receiving terminal side is transmitted by estimating how the receiving side converted the transmission time information from the actual time by monitoring the change per time on the transmitting side. Convert to the side time scale.
  • First information indicating a change amount in each response message of transmission time information attached by the second communication device in each response message from the second communication device to the first communication device;
  • Third information indicating the progress of data transfer confirmed by two confirmation response messages corresponding to transmission data from the first communication device to the second communication device;
  • 4th information which shows the difference of the transmission time information attached
  • the first communication device calculates the arrival rate in the second communication device by multiplying the data rate per unit change amount of the transmission time information of the second communication device obtained based on the time conversion coefficient.
  • a measuring device, a communication device, a relay device, a measuring method, and a measuring program are proposed.
  • FIG. 1 is a diagram illustrating an example of a communication system according to the first embodiment.
  • FIG. 2 is a diagram of an example of the communication system according to the second embodiment.
  • FIG. 3A is a diagram illustrating an example of a server according to the second embodiment.
  • FIG. 3B is a diagram illustrating an example of a signal flow in the server illustrated in FIG. 3A.
  • FIG. 3C is a diagram illustrating an example of a hardware configuration of the server.
  • FIG. 4A is a diagram illustrating an example of a format of a TCP packet header.
  • FIG. 4B is a diagram illustrating an example of a time stamp encoding method.
  • FIG. 4C is a diagram illustrating another example of the time stamp encoding method.
  • FIG. 4A is a diagram illustrating an example of a format of a TCP packet header.
  • FIG. 4B is a diagram illustrating an example of a time stamp encoding method.
  • FIG. 4C is a diagram
  • FIG. 5 is a diagram illustrating an example of signal transmission / reception between the server and the client.
  • FIG. 6 is a diagram illustrating an example of fluctuations in the arrival rate.
  • FIG. 7 is a diagram illustrating an example of a recording table and a calculation result according to the second embodiment.
  • FIG. 8 is a diagram illustrating an example of a table stored in the server according to the third embodiment.
  • FIG. 9 is a diagram of an example of a table stored in the server according to the fourth embodiment.
  • FIG. 10 is a diagram of an example of a recording table according to the eighth embodiment.
  • FIG. 11 is a diagram illustrating an example of a recording table and a calculation result according to the eighth embodiment.
  • FIG. 12 is a diagram illustrating an example of signal transmission / reception between the server and the client.
  • FIG. 13A is a diagram illustrating an example of a relay device according to the twenty-third embodiment.
  • FIG. 13B is a diagram illustrating an example of a signal flow in the relay apparatus illustrated in FIG. 13A.
  • FIG. 14 is a diagram illustrating an example of a connection management table.
  • FIG. 1 is a diagram illustrating an example of a communication system according to the first embodiment.
  • the communication system 100 according to the first embodiment includes a first communication device 110, a second communication device 120, and a measurement device 101.
  • the first communication device 110 and the second communication device 120 are communication devices that communicate with each other.
  • the measuring device 101 is a device that measures, for example, the arrival rate of the transmission data transmitted from the first communication device 110 in the second communication device 120.
  • the measuring device 101 may be a device capable of communicating with the first communication device 110 or may be a device provided in the first communication device 110.
  • the measurement device 101 sends information about the response message received by the first communication device 110 from the second communication device 120 from the first communication device 110. Receive and measure the arrival rate.
  • the measurement device 101 is a device provided in the first communication device 110 will be described.
  • the transmission data 111 is each transmission data transmitted from the first communication device 110 to the second communication device 120. To distinguish each transmission data, subscripts (1 to 3, i, j, k) are given.
  • the response message 121 is a response message transmitted from the second communication device 120 to the first communication device 110 with respect to the corresponding transmission data 111. Similarly, subscripts (1 to 3, i, j, k) are given to distinguish each message.
  • Each response message 121 is given transmission time information T21 by the second communication device 120 (corresponding subscripts (1 to 3, i, j, k) are assigned to the time information attached to each message). Waving).
  • the transmission time information T21 is given according to the time at which the corresponding response message 121 is transmitted from the second communication device 120. Therefore, the transmission time information T21 is time information generated based on the time reference (internal time) of the second communication device 120.
  • the measuring device 101 can acquire the transmission time information T21 from the response message 121 received by the first communication device 110.
  • the relationship between the transmission time information T21 and the actual time depends on the implementation of the second communication device 120, and the first communication device 110 indicates the time at which the second communication device 120 transmits the response message as the transmission time information T21. It cannot be obtained directly from the value.
  • the arrival time T11 is the arrival time of each response message 121 in the first communication device 110.
  • the same subscripts (1 to 3, i, j, k) are assigned to each corresponding response message.
  • the arrival time T11 is a transmission time based on the time reference of the first communication device 110.
  • the measurement apparatus 101 measures the arrival rate of the transmission data 111-i to 111-k in the second communication apparatus 120 .
  • the measurement apparatus 101 acquires transmission time information T21-i and T21-k of response messages 121-i and 121-k for the transmission data 111-i and 111-k.
  • (T21-k)-(T21-i) (fourth information) indicates time information based on the time reference of the second communication device 120, which depends on the arrival of the transmission data 111-i to 111-k. .
  • the measuring apparatus 101 acquires the total data amount D (third information) between the transmission data 111-i to 111-k.
  • D third information
  • the information included in the confirmation response includes information indicating which data the response is for. In general, by analyzing this information, It is possible to know only how much data has arrived. Thereby, the measuring apparatus 101 calculates the arrival rates of the transmission data 111-i to 111-k based on the time reference of the second communication apparatus 120 by D / ((T21-k)-(T21-i)). be able to.
  • the measuring device 101 calculates a ratio (time conversion coefficient) between the time reference of the first communication device 110 and the time reference of the second communication device 120.
  • the measuring apparatus 101 acquires, for example, transmission time information T21-1 and T21-2 of response messages 121-1 and 121-2 for the transmission data 111-1 to 111-2.
  • the measuring apparatus 101 acquires arrival times T11-1 and T11-2 of the response messages 121-1 and 121-2.
  • the measuring apparatus 101 compares the difference between the acquired transmission time information T21-1 and T21-2 (first information) and the acquired difference between the arrival times T11-1 and T11-2 (second information).
  • the time conversion coefficient is calculated by calculating ((T21-2)-(T21-1)) / ((T11-2)-(T11-1)).
  • the measuring apparatus 101 may adopt the first two response messages for obtaining the time conversion coefficient as in the above example, but as another example, the transmission data 111-1, 111-k.
  • the time conversion coefficient may be calculated for the response messages 121-1 and 121-k.
  • the time conversion coefficient between the first communication device 110 and the second communication device 120 can be accurately calculated. Can be calculated.
  • the measuring apparatus 101 may measure the time conversion coefficient a plurality of times and sequentially average it. Thereby, even if the delay amount until the arrival of each response message 121 varies, the time conversion coefficient between the first communication device 110 and the second communication device 120 can be accurately calculated.
  • the measuring apparatus 101 calculates the arrival rate per unit change amount of the transmission time information based on the time reference of the second communication apparatus 120 of the calculated transmission data 111-i to 111-k and the calculated first communication apparatus 110 and Multiply the time conversion coefficient with the second communication device 120. As a result, the arrival rates of the transmission data 111-i to 111-k based on the time reference of the first communication device 110 can be calculated.
  • the measuring apparatus 101 sets (/ (T21-k)-() to D / ((T21-k)-(T21-i)).
  • the arrival rate of the transmission data 111-i to 111-k based on the time reference of the first communication device 110 can be calculated by multiplying by (T21-1)) / ((T11-k)-(T11-1)). it can.
  • the above calculation procedure is merely an example, and it is optional to carry out an arithmetic modification for the purpose of holding each numerical value, optimizing the number of significant digits or the number of operation steps, and the like.
  • the measuring apparatus 101 receives the response rate at which the first communication apparatus 110 as the transmission side receives the arrival rate at the second communication apparatus 120 as the reception side in the two response messages.
  • Time conversion coefficient obtained from the relationship between the response data amount obtained by analyzing the acknowledgment information in the message, the change amount of the transmission time information indicated in the response message, and the transmission time information and arrival time of the response message.
  • the time stamp embeds information related to the packet transmission time in the packet, and has recently been adopted as a specification for the purpose of clarifying the temporal context between messages and measuring the RTT in data transfer protocols. Has been.
  • the transmission time of the response packet Can be determined from the time stamp
  • the arrival rate on the receiving side can be estimated from the progress of the time stamp and the progress of the ACKed data amount.
  • TCP Transmission Control Protocol: Transmission Control Protocol, RFC793
  • RFC1323 it is prescribed in RFC1323 as an option to include time stamp information in a packet.
  • a time stamp in which the time information at the time of packet transmission is digitized in a form that matches the field size defined in the protocol specification is embedded. Further, this time stamp is embedded in the TCP header in the packet in TCP (see, for example, FIGS. 4A to 4C).
  • RFC 1323 stipulates that the time stamp value of the corresponding data packet is stored in the response packet in addition to storing and transmitting the time stamp corresponding to the transmission time point for the packet. Is required. For this reason, in RFC 1323, a field (TSval) for storing a time stamp on the packet transmission side and a field (TSecr) for the data packet receiving side to store the time stamp of the data packet as an echo back in a response packet to the data packet. (See FIGS. 4B and 4C).
  • the time stamp generally indicates, for example, a time relationship with the other party (for example, the value monotonically increases), and it is only necessary that the RTT can be measured with a predetermined accuracy using the echoed back value.
  • the relationship between the time stamp value and the time is defined only as “a value substantially proportional to the actual time (elapsed)”. For this reason, how much time one unit of the time stamp indicates how much time elapses is implementation-dependent, and it does not guarantee that the increasing pace of the time stamp is constant.
  • the transmission side of the data packet changes the time stamp on the reception side from the progress of the time stamp included in the response packet to the data packet and the time lapse of the arrival time of the response packet on the transmission side. Measure speed.
  • each communication device generally has a time reference with crystal oscillation (clock) accuracy. For this reason, the time stamp maintains a stable increase pace over a long period of time, although there are fluctuating factors (for example, fluctuations in response time to a timer interrupt) derived from the mechanism that generates the time stamp.
  • the one-way delay from when the data packet receiving side transmits the response packet to when the data packet transmitting side receives the response packet can also change due to a change in the queuing delay. However, even if there is a temporary change in this, the effect on the measured value will be reduced if it is averaged over a long period of time.
  • the rate of change (clock ratio) of the time stamp included in the response packet is known by such a method, the passage of time can be known from the time stamp included in each response packet. As a result, the arrival rate on the receiving side can be measured from the difference between the transmission times of the two response packets and the data amount of the transmission packet.
  • the clock ratio should in principle be the same, so the measurement time may be increased to reduce the error in measuring the clock ratio.
  • the time interval of the response packet used when calculating the arrival rate assumes that the arrival rate constantly changes, so it is inconvenient if it is too smooth.
  • the clock ratio and arrival rate can be calculated based on the different packet pairs. Good.
  • FIG. 2 is a diagram of an example of the communication system according to the second embodiment.
  • the communication system 200 according to the second embodiment includes servers 211 to 214 and clients 221, 222.
  • Servers 211 to 214 are connected to the Internet 201.
  • the clients 221 and 222 are connected to the Internet 201 via the wireless access network 202.
  • the measurement device 101 and the first communication device 110 illustrated in FIG. 1 can be applied to the server 211, for example.
  • the second communication device 120 illustrated in FIG. 1 can be applied to the client 221, for example.
  • the server 211 measures the arrival rate at the client 221 of the data packet from the server 211 to the client 221. Further, the server 211 controls the transmission rate of the data packets to the client 221 according to the arrival rate measurement rate.
  • the data packet from the server 211 to the client 221 is transmitted using TCP, for example.
  • FIG. 3A is a diagram illustrating an example of a server according to the second embodiment.
  • FIG. 3B is a diagram illustrating an example of a signal flow in the server illustrated in FIG. 3A.
  • the server 211 shown in FIG. 2 can be realized by the server 300 shown in FIGS. 3A and 3B, for example.
  • the server 300 includes a link layer processing unit 310, a reception data assembly unit 321, a reception data buffer 322, a communication application execution unit 330, a transmission data buffer 341, a transmission packet construction unit 342, and a transmission queue 343. Prepare.
  • the server 300 also includes an Ack information analysis unit 351, an Ack information recording unit 352, a clock ratio measurement unit 353, and a partner arrival rate measurement unit 354.
  • the server 300 also includes a transmission delay variation measuring unit 355, an RTT measuring unit 356, a transmission rate control unit 357, a retransmission control unit 358, and a response waiting buffer 359.
  • the link layer processing unit 310 includes a link layer receiving unit 311 and a link layer transmitting unit 312.
  • the link layer receiving unit 311 receives a packet from a network (for example, the Internet 201 in FIG. 2).
  • the packet received by the link layer receiving unit 311 includes, for example, a data packet from another communication device (for example, the client 221 in FIG. 2) or another communication device (for example, the client in FIG. 2) for the data packet transmitted by the server 300.
  • Response packet from 221) is included.
  • the link layer reception unit 311 outputs the received packet to the reception data assembly unit 321 and the Ack information analysis unit 351.
  • the link layer transmission unit 312 sequentially reads out the packets stored in the transmission queue 343 and transmits them to the network (for example, the Internet 201 in FIG. 2).
  • the reception data assembling unit 321 acquires a data packet among the packets output from the link layer reception unit 311. The reception data assembling unit 321 then assembles the acquired data packet and outputs the data obtained by the assembly to the reception data buffer 322. The reception data buffer 322 temporarily stores the data output from the reception data assembling unit 321, and sequentially outputs the stored data to the communication application execution unit 330.
  • the communication application execution unit 330 executes a communication application.
  • the communication application exchanges data with the communication partner.
  • processing based on data output from the reception data buffer 322 or processing for generating data to be transmitted to another communication device and outputting the data to the transmission data buffer 341 is performed.
  • the transmission data buffer 341 temporarily stores the data output from the communication application execution unit 330 and sequentially outputs the stored data to the transmission packet construction unit 342.
  • the transmission packet construction unit 342 constructs a packet to be transmitted to the communication partner based on the data output from the transmission data buffer 341. Then, the transmission packet construction unit 342 stores the constructed packet in the transmission queue 343. The rate of packets stored in the transmission queue 343 by the transmission packet construction unit 342 is controlled by the transmission rate control unit 357.
  • the retransmission control unit 358 Based on the Ack / SACK (Selective Ack; Ack with partial confirmation response to data halfway) information output from the Ack information analysis unit 351, the retransmission control unit 358 sends a packet from the response waiting buffer 359 to the transmission queue 343. The retransmission control is performed by reading out.
  • the response waiting buffer 359 temporarily stores packets that have been transmitted by the server 300. Then, the response waiting buffer 359 stores, in the transmission queue 343, a packet corresponding to the Ack number output from the Ack information analysis unit 351 among the stored packets based on the control from the retransmission control unit 358. .
  • the response waiting buffer 359 outputs the packet transmission time from the server 300 to the Ack information recording unit 352 and the RTT measurement unit 356.
  • the Ack information analysis unit 351 acquires a response packet among the packets output from the link layer reception unit 311 and analyzes the acquired response packet. Then, the Ack information analysis unit 351 outputs Ack information indicating the contents of the Ack packet in the acquired response packet to the Ack information recording unit 352. Further, the Ack information analysis unit 351 outputs Ack / SACK information indicating the acquired response packet to the retransmission control unit 358. Further, the Ack information analysis unit 351 outputs the Ack number of the Ack packet among the acquired response packets to the response waiting buffer 359.
  • the Ack information recording unit 352 records the Ack information output from the Ack information analysis unit 351 in the recording table 352a.
  • the recording table 352a is a table stored in the memory of the server 300 (see, for example, FIG. 7).
  • the Ack information recording unit 352 outputs each Ack information for two Ack packets among the Ack information recorded in the recording table 352a to the clock ratio measuring unit 353. Further, the Ack information recording unit 352 may output each Ack information for a plurality of sets of Ack packets to the clock ratio measuring unit 353. In addition, the Ack information recording unit 352 outputs Ack information for a plurality of Ack packets in the measurement target period among the Ack information recorded in the recording table 352 a to the counterpart arrival rate measuring unit 354.
  • the Ack information recording unit 352 transmits Ack information (including data packet transmission times) for a plurality of Ack packets in the measurement target period among the Ack information recorded in the recording table 352a. You may output to 355.
  • the Ack information recording unit 352 records the transmission time output from the response waiting buffer 359 in the recording table 352a in association with the Ack packet of the corresponding transmission data.
  • the Ack information recording unit 352 may record the RTT output from the RTT measurement unit 356 in the recording table 352a in association with the Ack packet of the corresponding transmission data.
  • the clock ratio measurement unit 353 generates a clock between the server 300 and the client 221 based on each Ack information for two Ack packets output from the Ack information recording unit 352 or each Ack information for a plurality of sets of Ack packets. The ratio (time conversion factor) is measured. Then, the clock ratio measuring unit 353 outputs the measured clock ratio to the counterpart arrival rate measuring unit 354.
  • the counterpart arrival rate measuring unit 354 calculates the arrival rate in the server 300 based on each Ack information about the plurality of Ack packets output from the Ack information recording unit 352 and the clock ratio output from the clock ratio measuring unit 353. measure. Then, the opponent arrival rate measuring unit 354 outputs the measured arrival rate to the transmission rate control unit 357.
  • the transmission delay variation measuring unit 355 Based on the Ack information (including the transmission time of the data packet) for the plurality of Ack packets in the measurement target period output from the Ack information recording unit 352, the transmission delay variation measuring unit 355 transmits the transmission data from the server 300. Measure the delay time variation. Then, transmission delay fluctuation measuring section 355 outputs the measurement result of the delay time fluctuation to transmission rate control section 357.
  • the RTT measuring unit 356 measures the RTT based on the transmission time output from the response waiting buffer 359. Then, the RTT measurement unit 356 outputs the measured RTT to the Ack information recording unit 352 and the transmission rate control unit 357.
  • the sending rate control unit 357 controls the sending rate of packets from the server 300 based on the arrival rate output from the counterpart arrival rate measuring unit 354. Specifically, the transmission rate control unit 357 controls the transmission rate by controlling the transmission packet construction unit 342 and the retransmission control unit 358.
  • the transmission delay variation measuring unit 355 and the RTT measuring unit 356 of the server 300 may be omitted.
  • FIG. 3C is a diagram illustrating an example of a hardware configuration of the server.
  • the server 300 shown in FIGS. 3A and 3B can be realized by the communication device 380 shown in FIG. 3C, for example.
  • the communication device 380 includes a CPU 381 (Central Processing Unit), a RAM 382 (Random Access Memory), a nonvolatile memory 383, and a communication interface 384.
  • the CPU 381, RAM 382, nonvolatile memory 383, and communication interface 384 are connected by a bus 389.
  • the CPU 381 controls the entire communication device 380.
  • the RAM 382 is used as a work area for the CPU 381.
  • the nonvolatile memory 383 is a nonvolatile memory such as a magnetic disk, an optical disk, or a flash memory.
  • the nonvolatile memory 383 stores various programs for operating the communication device 380.
  • the program stored in the nonvolatile memory 383 is loaded into the RAM 382 and executed by the CPU 381.
  • the communication interface 384 is a communication interface that communicates with the outside of the communication device 380 (for example, the client 221) by, for example, a wired connection.
  • the communication interface 384 is controlled by the CPU 381.
  • the communication interface 384 can be realized by the communication interface 384, for example.
  • the reception data assembly unit 321, the communication application execution unit 330, and the transmission packet construction unit 342 illustrated in FIGS. 3A and 3B can be realized by the CPU 381, for example.
  • the Ack information analysis unit 351, Ack information recording unit 352, clock ratio measurement unit 353, counterpart arrival rate measurement unit 354, transmission delay variation measurement unit 355, and RTT measurement unit 356 shown in FIGS. 3A and 3B are realized by, for example, the CPU 381. can do.
  • the transmission rate control unit 357 and the retransmission control unit 358 shown in FIGS. 3A and 3B can be realized by the CPU 381, for example.
  • the reception data buffer 322, the transmission data buffer 341, the transmission queue 343, and the response waiting buffer 359 shown in FIGS. 3A and 3B can be realized by the RAM 382, for example.
  • the recording table 352a shown in FIGS. 3A and 3B is stored in the RAM 382, for example.
  • calculation unit for calculating the arrival rate of the measuring apparatus 101 shown in FIG. 1 can be realized by the CPU 381, for example.
  • FIG. 4A is a diagram illustrating an example of a format of a TCP packet header.
  • a packet header format 410 shown in FIG. 4A is defined.
  • the sequence number of the data packet is stored by the side that transmits the data packet.
  • the side that has received the data packet sets a flag “ACK” and returns a response packet in which the sequence number of the received data packet is stored in “Acknowledgement Number”.
  • the flag “ACK” is not set are limited to special cases.
  • the sequence number on the packet header has an initial value that is larger than the original order of the data packets because the initial value is determined by a random value. However, the initial value can be ignored in the processing based on the sequence number difference.
  • the side receiving the data packet stores the time stamp in a predetermined encoding method (see, for example, FIGS. 4B and 4C) in the option area 411 of “Options” of the response packet to be transmitted.
  • FIG. 4B is a diagram illustrating an example of a time stamp encoding method.
  • the encoding method 420 shown in FIG. 4B can be used for the time stamp stored in the option area 411 of the response packet by the side receiving the data packet.
  • TSval is a time stamp given by the packet transmitting side.
  • TSecr is a time stamp (TSval value) stored in the received packet, and is a time stamp to be echoed back to the other party.
  • FIG. 4C is a diagram illustrating another example of a time stamp encoding method.
  • the encoding method 430 shown in FIG. 4C may be used for the time stamp stored in the option area 411 of the response packet by the side receiving the data packet.
  • the NOP (No Operation) option is used together with the encoding method 430 to adjust the position so that the time stamp does not cross the word boundary. Good. Thereby, alignment of data can be taken.
  • FIG. 5 is a diagram illustrating an example of signal transmission / reception between the server and the client.
  • Data (x) indicated by a solid arrow is an x-th data packet transmitted from the server 211 to the client 221.
  • Ack (x) indicated by a dotted arrow is a response packet from the client 221 to the server 211 for Data (x).
  • TSv (x) is a time stamp given to Ack (x) by the client 221. Therefore, TSv (x) indicates a time based on a time reference (clock) in the client 221.
  • ⁇ Tas (i, j) is the difference between the transmission time of Ack (i) by the client 221 and the transmission time of Ack (j) by the client 221 (i ⁇ j).
  • the server 211 cannot directly acquire ⁇ Tas (i, j). Therefore, the server 211 uses ⁇ Tar (i, j) as a value close to ⁇ Tas (i, j).
  • ⁇ Tar (i, j) is the difference between the arrival time of Ack (i) at the server 211 and the arrival time of Ack (j) at the server 211.
  • the server 211 calculates TSv (j) ⁇ TSv (i) as a difference between the time stamps attached to the arrived Ack (i) and Ack (j). Then, the server 211 divides the calculated TSv (j) ⁇ TSv (i) by ⁇ Tar (i, j). Thereby, the ratio (clock ratio) of the clock of the server 211 to the clock of the client 221 can be calculated.
  • the server 211 calculates a plurality of clock ratios based on a plurality of sets of Ack (i) and Ack (j) having a certain time difference, and calculates a clock ratio obtained by averaging the calculated plurality of clock ratios. Also good.
  • a simple calculation average may be used, or averaging by a recurrence formula such as EWMA (Exponentially Weighed Moving Average) may be used.
  • the fluctuation of the arrival delay time of Ack (x) is at most shorter than RTT. For this reason, even if there is a variation in the arrival delay time of Ack (x), the clock ratio can be accurately calculated by averaging a plurality of clock ratios if the RTT is generally stable.
  • the server 211 calculates a rate obtained by dividing the total data amount of the measurement target data packet group by the difference between the time stamps of the response packets with respect to the first and last data packets of the measurement target data packets. For example, the total data amount of the data packet group to be measured is equal to the difference (or difference +1) of the Ack number of each response packet with respect to the first and last data packet among the data packets to be measured. It can be obtained by multiplying the amount of data.
  • the server 211 can calculate the arrival rate at the client 221 of the data packet group to be measured based on the time reference at the server 211 by multiplying the calculated rate by the calculated clock ratio.
  • FIG. 6 is a diagram illustrating an example of fluctuations in the arrival rate.
  • the horizontal axis represents elapsed time
  • the vertical axis represents the arrival rate of data packets from the server 211 to the client 221.
  • the physical bandwidth upper limit 610 is an upper limit of the physical bandwidth in data packet transmission from the server 211 to the client 221.
  • the arrival rate 601 is an arrival rate measured when the window size is made sufficiently small. As shown in the arrival rate 601, when the window size is small, the micro is as shown in FIG.
  • the measurement result 602 is an arrival rate measured when the window size is ⁇ W1 having a certain size. As shown in the measurement result 602, when the window size has a certain size, the physical bandwidth upper limit 610 can be measured.
  • the measurement result 603 is an arrival rate measured when the window size is ⁇ W2 (> ⁇ W1). As shown in the measurement result 603, when the window size is larger, the detection sensitivity with respect to the physical band upper limit 610 becomes dull.
  • the measurement result 604 is an arrival rate measured when the window size is a width corresponding to RTT. As shown in the measurement result 604, when the window size is set to a width corresponding to RTT, only a low rate can be measured.
  • Other traffic 620 is other traffic that squeezes the bandwidth of the data packet from the server 211 to the client 221.
  • the measurement result 605 is an arrival rate measured when the window size is ⁇ W3 having a certain size. As shown in the measurement result 605, when the window size has a certain size, the peak value of the arrival rate is measured by the amount of other traffic 620.
  • FIG. 7 is a diagram illustrating an example of a recording table and a calculation result according to the second embodiment.
  • the Ack information recording unit 352 records, for example, a recording table 710 shown in FIG.
  • the arrival time, the Ack number, and the TS (TSval) value are associated with each response packet.
  • the arrival time is shown in units of seconds, but this is implementation-dependent and may be replaced with, for example, the internal clock of the server 211.
  • the number of entries in the recording table 710 is 32.
  • the number of entries in the recording table 710 may be the minimum value in which Ack information to be referred to retroactively remains.
  • the number of entries in the recording table 710 may be a power of two.
  • the Ack information recording unit 352 overwrites old entries.
  • the calculation result 720 shown in FIG. 7 is a clock ratio calculation result based on the recording table 710.
  • the calculation result 720 indicates the calculation result in each entry, and not all of the calculation results 720 corresponding to each entry need be held. In the example shown in FIG. 7, a case where the clock ratio is measured by the difference from the Ack reception information for the past 16 entries will be described.
  • the calculation result 720 indicates arrival time (j) ⁇ arrival time (j ⁇ 16), TS (j) ⁇ TS (j ⁇ 16), clock ratio, and average clock ratio.
  • the server 211 calculates a clock ratio based on Ack (30) and Ack (14), a clock ratio based on Ack (29) and Ack (13), and so on, and averages the calculated clock ratios.
  • the number of entries going back in the past is a fixed value.
  • the Ack reception amount also increases. Therefore, the frequency of recording information of Ack packets is thinned out according to the data transmission amount. May be.
  • the past clock ratio is simply averaged.
  • averaging based on a recurrence formula such as EWMA may be used.
  • the ratio of the elapsed time from the first Ack packet and the TS change amount may be taken. That is, by increasing the total time, the fluctuation component when taking the ratio can be reduced.
  • the server 211 can measure the arrival rate at the client 221 without adding a function to the client 221 side. Moreover, the measurement result suitable for the utilization form of the data rate measured by adjustment of the measurement method can be obtained.
  • this measurement result for controlling the transmission rate of the protocol for performing data transfer, it is possible to estimate the available bandwidth to the client 221 and to detect the available bandwidth. For this reason, the transmission rate can be adjusted more appropriately according to the available bandwidth, and communication throughput and network utilization efficiency can be improved.
  • the clock ratio can be estimated with high accuracy by using the clock ratio table 800 indicating a plurality of candidates for the clock ratio and replacing it with a value closest to the calculated clock ratio.
  • FIG. 8 is a diagram illustrating an example of a table stored in the server according to the third embodiment.
  • a clock ratio table 800 illustrated in FIG. 8 is stored in the memory (for example, the RAM 382 in FIG. 3C) of the server 211 according to the third embodiment.
  • clock ratio table 800 clock conversion coefficients and comments are associated with a plurality of clock ratio candidates. Note that comments may be omitted from the clock ratio table 800.
  • the clock conversion coefficient is a coefficient that converts the amount of time stamp change into time.
  • the clock ratio table 800 shown in FIG. 8 it is assumed that the arithmetic operation by the processor can be executed faster than the division in many cases, and the clock conversion coefficient is the reciprocal of the clock ratio.
  • Each value of the clock ratio table 800 is scaled by a value that is a power of 2 (1024 in the example shown in FIG. 8) so that it can be easily executed by an integer operation in the processor.
  • the server 211 identifies the clock ratio closest to the calculated clock ratio from the clock ratio candidates indicated by the clock ratio table 800. Then, the server 211 multiplies the clock conversion coefficient corresponding to the specified clock ratio by the rate based on the calculated time reference of the client 221 and divides the multiplication result by 1024. Thereby, the arrival rate based on the server 211 can be calculated.
  • the server 211 specifies 1024 closest to 910 among the clock ratio candidates indicated by the clock ratio table 800. Then, the server 211 multiplies the clock conversion coefficient 1024 corresponding to 1024 in the clock ratio table 800 by a rate based on the calculated time reference of the client 221 and divides the multiplication result by 1024.
  • the server 211 identifies the clock ratio closest to the calculated clock ratio from among a plurality of candidates for the clock ratio (time conversion coefficient). Then, the server 211 can calculate the arrival rate by multiplying the specified clock ratio by the rate based on the time reference of the client 221. As a result, the clock ratio can be accurately measured, and the arrival rate based on the clock can be accurately measured.
  • FIG. 9 is a diagram of an example of a table stored in the server according to the fourth embodiment.
  • a clock ratio table 800 illustrated in FIG. 9 is stored in the memory (for example, the RAM 382 in FIG. 3C) of the server 211 according to the fourth embodiment.
  • ranges (min) and ranges (max) are associated with a plurality of clock ratio candidates.
  • the range (min) and the range (max) are ranges in which the clock ratio of the corresponding candidate is the median value.
  • the server 211 specifies a range including the calculated clock ratio from the range (min) and the range (max) indicated by the clock ratio table 800. Then, the server 211 multiplies the clock conversion coefficient corresponding to the specified range by the rate based on the calculated time reference of the client 221 and divides the multiplication result by 1024. Thereby, the arrival rate based on the server 211 can be calculated.
  • the server 211 processes, for example, a clock ratio measurement error. In this case, the server 211 does not control the transmission rate using the arrival rate based on the clock ratio.
  • the server 211 when the calculated clock ratio is not included in the plurality of ranges of the clock ratio, the server 211 according to the fourth embodiment controls the transmission rate using the arrival rate based on the calculated clock ratio. Do not do. As a result, for example, when the client 221 uses a clock that cannot be assumed, the transmission rate is controlled using a low-accuracy arrival rate based on an inappropriate clock ratio to avoid a decrease in transmission efficiency. it can.
  • the fifth embodiment will be described with respect to differences from the second embodiment.
  • the server 211 according to the fifth embodiment measures the clock ratio a plurality of times, and calculates the variation amount of the clock ratio measured a plurality of times. For example, variance, standard deviation, average deviation, or the like can be used to calculate the amount of variation in the clock ratio.
  • the server 211 processes, for example, a clock ratio measurement error when the calculated fluctuation amount is a predetermined magnitude or more. In this case, the server 211 does not measure the arrival rate based on the clock ratio. Thereby, for example, when the time stamp of the client 221 does not show a constant increase pace (that is, cannot be used on a time scale), it is possible to avoid measuring the arrival rate based on the time stamp of the client 221.
  • the server 211 does not control the transmission rate using the arrival rate based on the clock ratio when the variation in the clock ratio (time conversion coefficient) is equal to or larger than a predetermined magnitude. .
  • the variation in the clock ratio time conversion coefficient
  • the server 211 measures the clock ratio from the start of communication with the client 221, and stops measuring the clock ratio once the clock ratio is measured. Then, the server 211 uses the measured clock ratio for calculating the arrival rate for a plurality of subsequent times. Thereby, the processing amount for calculating the clock ratio in the server 211 can be reduced.
  • the clock ratio is also constant when the implementation of the time stamp at the partner communication terminal (including server and gateway) can guarantee a certain change based on time, for example, the communication partner is limited to a terminal in the corporate network. Therefore, it is effective.
  • a plurality of arrival rates in different periods are calculated using the calculated one clock ratio (time conversion coefficient). Thereby, the processing amount for calculating the clock ratio in the server 211 can be reduced.
  • the server 211 according to the seventh embodiment measures the clock ratio from the start of communication with the client 221 and continues measuring the clock ratio even after measuring the clock ratio once.
  • the server 211 continuously calculates the clock ratio (time conversion coefficient) during communication between the server 211 and the client 221. Thereby, even if the clock ratio between the server 211 and the client 221 fluctuates, the arrival rate at the client 221 can be accurately measured.
  • FIG. 10 is a diagram of an example of a recording table according to the eighth embodiment.
  • the memory for example, the RAM 382 in FIG. 3C
  • a recording table 352a shown in FIG. 10 is stored.
  • the Ack number and time stamp of the recording table 352a are values stored in the flag “ACK” of the TCP header of FIG. 4A and the TSval field of FIGS. 4B and 4C of the response packet.
  • the server 211 uses, for example, the latest response packet and the response packet received in the past.
  • the server 211 uses, for example, a recording table 352a as shown in FIG. 10 in order to be able to flexibly determine how far a past response packet is to be a response packet that is earlier than the latest response packet. .
  • the server 211 when receiving the response packet, the server 211 records the entries in the recording table 352a while proceeding sequentially. As a result, if the arrival interval of response packets is known to some extent, information about each response packet having a desired time difference can be secured. Therefore, it is easy to appropriately change the time width used for the calculation.
  • the server 211 acquires each Ack number corresponding to the i-th data packet and the j-th data packet. Then, the server 211 multiplies the difference (or difference +1) between the acquired Ack numbers by the data amount for one data packet. Thereby, the total amount of data from the i-th data packet to the j-th data packet can be calculated.
  • FIG. 11 is a diagram illustrating an example of a recording table and a calculation result according to the eighth embodiment.
  • the Ack information recording unit 352 records, for example, a recording table 1110 shown in FIG.
  • the arrival time, the Ack number, and the TS (TSval) value are associated with each response packet.
  • the arrival time is shown in units of seconds, but this is implementation-dependent and may be replaced with, for example, the internal clock of the server 211.
  • the number of entries in the recording table 1110 is 32 as in the example shown in FIG. 7.
  • the example shown in FIG. The response packet is thinned out and recorded. Specifically, in the example shown in FIG. 11, only one response packet is recorded per six response packets.
  • the number of entries in the recording table 1110 may be a power of two.
  • the Ack information recording unit 352 overwrites old entries.
  • the calculation result 1120 shown in FIG. 11 is the calculation result of the arrival rate (byte / second) based on the recording table 1110 when the time width used for rate observation is four entries.
  • a calculation result 1130 shown in FIG. 11 is a calculation result of the arrival rate (bytes / second) based on the recording table 1110 when the time width used for rate observation is eight entries. Note that the calculation results 1120 and 1130 indicate the calculation results for each entry, and all of the calculation results 1120 and 1130 corresponding to each entry need not be held.
  • Ack number in TCP is in bytes. Therefore, the total data amount of each data packet corresponding to the response packet of entry # 27 to the response packet of entry # 31 is 69504 bytes.
  • the clock ratio between the server 211 and the client 221 is 1/500 based on the example shown in FIG.
  • the server 211 shown in the eighth embodiment for the response message from the client 221 to each transmission data from the server 211 to the client 221, the Ack number (sequence number) corresponding to the transmission data for which the response has been confirmed. The time stamp and arrival time of the response message are stored. Then, the server 211 calculates each information used for calculating the arrival rate based on the stored contents.
  • the client 221 may not immediately return a response packet in response to the arrival of a transmission packet from the server 211 due to a delayed response.
  • the delayed response is defined in RFC1122, for example.
  • a time stamp that is later in time than the time stamp corresponding to the original packet arrival time is stored in the response packet, and the time stamp does not correctly indicate the arrival time difference.
  • the server 211 determines whether or not the received response packet is transmitted by a delayed response. Then, the server 211 does not store the information of the response packet determined to be transmitted by the delay response in the recording table 352a. As a result, response packets that are determined to have been transmitted by delayed responses are excluded from the measurement target, and time lag due to delayed response packets being transmitted is avoided from adversely affecting arrival rate measurement. can do.
  • the server 211 can determine whether or not the response packet is transmitted by a delayed response by determining whether or not the response packet is a response to a single segment.
  • the server 211 can determine that the response packet has been transmitted by a delayed response when the TSval value has increased from the previous response packet but the TSecr value has not changed. .
  • the server 211 stores each piece of information for each of the response messages excluding the response message transmitted from the client 221 by the delayed response among the response messages from the client 221. Thereby, the arrival rate can be calculated by excluding the response message transmitted by the delay response. For this reason, the accuracy of the arrival rate calculation based on the time stamp (transmission time information) of the response message can be improved.
  • the server 211 thins out the received response packets and records them in the recording table 352a according to the arrival frequency of the response packets. Since the arrival frequency of the response packet conforms to the transmission rate of the data packet, the server 211 determines a thinning rate according to the transmission rate, for example.
  • the server 211 determines a rate of thinning out response packets according to, for example, a congestion window size that is a parameter for controlling a transmission rate.
  • the server 211 records the congestion packet size / 64 response packets once in the entry of the recording table 352a so that the 64 packets can hold the response packet corresponding to the RTT. Just thin out the rest.
  • the server 211 responds to a response message from the client 221 according to information indicating the rate at which the server 211 transmits data to the client 221 (for example, a congestion window size).
  • the sequence number, transmission time information, and arrival time are stored by thinning out the message.
  • the processing load in the server 211 can be reduced.
  • the size of the recording table 352a can be reduced.
  • the transmission rate needs to reach the usable rate in order to obtain the burst size required to measure the usable bandwidth in such a situation. It is not necessary to search for a free band.
  • the server 211 determines that the target response packet is sufficiently shorter than the number of packets that can be transmitted in the RTT period. To do.
  • the number of packets that can be transmitted in the RTT period generally corresponds to the congestion window size in the case of TCP.
  • the entry difference to be used can be 8 entries or 16 entries.
  • the server 211 is configured so that the response amount of the third information / fourth information acquisition target is determined by the server 211 within the round trip time.
  • the response message pair is selected so that it is less than the amount of data that can be transmitted to the client 221.
  • the server 211 adjusts the interval of response packets for measuring the arrival rate according to the degree of network fluctuation. For example, the server 211 shortens the interval between response packets for measuring the arrival rate when the network fluctuation is large and short when it is small. Thereby, the control which took the safety degree can be performed in the situation with a risk.
  • the server 211 sets the entry difference (difference between i and j) to 8 entries when the network fluctuation is small, and 16 entries when the network fluctuation is large. Adjust the packet interval.
  • the calculation result of the arrival rate (byte / second) is as shown in the calculation result 1120 shown in FIG.
  • the calculation result of the arrival rate (bytes / second) is the calculation result 1130 shown in FIG.
  • the time difference of the response packets to be subjected to the difference is also approximately doubled, and the arrival rate is calculated with a longer time width.
  • the entry difference is 8 entries, the peak is suppressed more than when the entry difference is 4 entries (3021913 at the maximum).
  • the response message pair that is the third information / fourth information acquisition target has an elapsed time indicated by the fourth information according to the magnitude of the network fluctuation. Select response message pairs to vary. Thereby, the arrival rate can be accurately measured according to the fluctuation of the network.
  • the server 211 uses the arrival rate calculation result to control the TCP transmission rate.
  • the transmission rate is generally controlled by the value of CWND.
  • the server 211 controls the data packet transmission rate so that the value of CWND / RTT approaches the peak value of the arrival rate calculation result.
  • the peak value of the arrival rate can be seen when the interval between the response packet pairs used for calculating the arrival rate is narrowed. For this reason, if transmission is performed so that transmission burstiness occurs (that is, if the packet transmission rate is intentionally uniform at the time of transmission), measurement is performed if the available bandwidth of the bottleneck link is used up. The rate is a peak value, and if it is not used up, a lower value is obtained.
  • the available bandwidth can be roughly estimated by measuring the peak value of the arrival rate. For this reason, if the transmission rate is controlled using the estimated value of the usable bandwidth as the control target value of the transmission rate, it is possible to control the transmission rate so as to quickly converge to the usable bandwidth.
  • the server 211 controls the data packet transmission rate so that the calculated peak value of the arrival rate becomes the upper limit value of the transmittable bandwidth. Thereby, a data packet can be transmitted efficiently while suppressing congestion.
  • the server 211 discards the peak value after a certain period of time (peak value aging). For example, when measuring the available rate for TCP, the peak value should basically be able to be measured once within the RTT. Therefore, for example, the server 211 holds the maximum value of the arrival rates for the past 1 RTT to 2 RTT, and controls the transmission rate of the data packets so that the held maximum value becomes the upper limit value of the transmittable bandwidth.
  • the server 211 controls the transmission rate based on the peak value of the arrival rate excluding the arrival rate before the predetermined period among the calculated arrival rates. Thereby, the load of the server 211 can be reduced. Further, it is possible to avoid a decrease in transmission efficiency by controlling the transmission rate based on the old arrival rate.
  • the server 211 stores, for example, the recording table 352a illustrated in FIG. 10 including the item of transmission time.
  • FIG. 12 is a diagram illustrating an example of signal transmission / reception between the server and the client.
  • the server 211 calculates ⁇ Tds (i, j), which is the difference between the transmission time of Data (i) corresponding to Ack (i) and the transmission time of Data (j) corresponding to Ack (j).
  • the server 211 calculates the difference between ⁇ Tar (i, j) multiplied by the calculated clock ratio and the calculated ⁇ Tds (i, j), so that the delay time of the data packet from the server 211 is calculated. Measure fluctuations.
  • ⁇ Tar (i, j) increases with time relative to ⁇ Tds (i, j), it can be determined that the delay time of the data packet from the server 211 has increased. On the other hand, if ⁇ Tar (i, j) is reduced with respect to ⁇ Tds (i, j), it can be determined that the delay time of the data packet from the server 211 is reduced.
  • the server 211 controls the transmission rate of the data packet based on the measurement result of the delay time variation. For example, when the delay time increases, the server 211 does not increase or decreases the data packet transmission rate. Thereby, network congestion can be suppressed.
  • the server 211 obtains the difference in transmission time between the first and last transmission data to be measured in the server 211.
  • the server 211 also obtains a value obtained by multiplying the time stamp difference of each response message from the client 221 with respect to the first and last transmission data to be measured, and the calculated clock ratio (time conversion coefficient). , Get.
  • the server 211 measures the variation in the delay time of the transmission data from the server 211 based on the difference between the acquired difference and the value. Then, the server 211 controls the transmission rate of the data packet based on the measurement result of the delay time fluctuation. Thereby, it is possible to control the transmission rate according to the congestion state in the network, and it is possible to efficiently transmit data packets while suppressing the congestion.
  • Embodiment 16 The difference between the sixteenth embodiment and the thirteenth or fifteenth embodiment will be described.
  • TCP free bandwidth search and congestion detection are performed.
  • a free band search method for example, as shown in the thirteenth embodiment, there is a method of using a peak value as an available band estimated value as a transmission rate control target.
  • a congestion detection method there is a method using the variation (particularly increasing tendency) in the transmission direction delay shown in the fifteenth embodiment. As a result, it is possible to quickly detect available bandwidth in the path to the communication partner in the network and to perform transfer control that suppresses network congestion.
  • the transmission rate is adjusted by the value of the congestion window.
  • the value of the congestion window is suddenly increased, high burst traffic may occur and the network may be congested. In this case, it is required to control the transmission rate or the parameter for controlling the transmission rate so that the transmission rate becomes the target rate.
  • TCP congestion control is performed as shown in the thirteenth embodiment and an increase in delay in the transmission direction is detected by the configuration shown in the fifteenth embodiment, if the increase in delay is performed only by one measurement, There is a possibility that it reacts even with packet arrival fluctuation. For this reason, for example, a plurality of measurement results are accumulated, and when the accumulated value exceeds a threshold value, it is determined as congestion.
  • the server 211 adjusts the value of the congestion window, for example. For example, the server 211 adjusts the value of the congestion window by reducing the transmission rate by half. When the sending rate is halved, for example, the server 211 controls the value of the congestion window so that one packet can be sent when the response data size reaches two packets.
  • the method for adjusting the value of the congestion window is not limited to this, and various methods can be used.
  • the server 211 reduces the data packet transmission rate when the delay time of the data packet increases. Thereby, congestion in the network can be suppressed.
  • the server 211 controls the transmission rate larger when the difference from the available bandwidth is large, and controls the transmission rate smaller when the difference from the available bandwidth is small.
  • the transmission rate may be controlled so as to converge exponentially with the rate.
  • the server 211 sets the congestion window value so that the congestion window value per RTT is doubled when the target congestion window value is at least twice the current congestion window value. adjust. Further, when the congestion window value that is the target value is less than twice the current congestion window value, the server 211 sets the congestion window value so that the difference from the target value of the congestion window per RTT is halved. adjust.
  • burst traffic will occur if the TCP congestion window value is suddenly changed, so the congestion window value is increased so that the number of packets that can be newly transmitted per response packet is about 2 to 4. You may let them.
  • the server 211 determines the control amount of the transmission rate according to the difference (difference or ratio) between the target value of the transmission rate based on the calculated arrival rate and the current transmission rate. Change. For example, the server 211 increases the control amount of the transmission rate as the difference between the target value of the transmission rate based on the calculated arrival rate and the current transmission rate increases. Thereby, a rapid increase in traffic can be avoided.
  • the server 211 adjusts the value of the congestion window so that the transmission rate approaches the measured value of the arrival rate when congestion is detected. For example, when the transmission rate is halved, the server 211 controls the value of the congestion window so that one packet can be sent when the response data size reaches two packets.
  • the server 211 controls the transmission rate of the data packet so as to approach the calculated arrival rate.
  • data packets can be sent at the latest arrival rate indicating the actual available bandwidth when the network is congested. For this reason, a data packet can be transmitted efficiently while suppressing congestion.
  • the server 211 uses a conventional algorithm (for example, reno or cubic) for TCP congestion control.
  • the server 211 controls the transmission rate by an alternative means different from the transmission rate control using the arrival rate based on the clock ratio. Do. As a result, the transmission rate can be controlled even if the clock ratio of the client 221 is not obtained.
  • the server 211 controls the transmission rate using the data rate calculated by the data amount with respect to the arrival time difference of the response packet. .
  • the server 211 controls the transmission rate by an alternative means different from the transmission rate control using the arrival rate based on the clock ratio. Do. As a result, the transmission rate can be controlled even if the clock ratio of the client 221 is not obtained.
  • the server 211 uses a conventional algorithm (for example, slow start, reno, or cubic) for TCP congestion control until a predetermined period elapses from the start of communication.
  • a conventional algorithm for example, slow start, reno, or cubic
  • the server 211 transmits by an alternative means different from the control of the transmission rate using the arrival rate based on the clock ratio until a predetermined period has elapsed since the start of communication with the client 221. Control the rate. As a result, the transmission rate can be quickly controlled after the start of communication.
  • time stamp is optional in TCP, there is a possibility that it is not used as a result of negotiation with the other party. For this reason, arrival rate cannot be measured if communication that does not use a time stamp is started.
  • the server 211 uses a conventional algorithm (for example, reno or cubic) for TCP congestion control in such a case.
  • a conventional algorithm for example, reno or cubic
  • the server 211 according to the twenty-second embodiment controls the transmission rate by an alternative means different from the transmission rate control using the arrival rate based on the clock ratio. I do.
  • the server 211 according to the twenty-second embodiment controls the transmission rate by an alternative means different from the transmission rate control using the arrival rate based on the clock ratio when the client 221 does not give the time stamp.
  • the transmission rate can be set by an alternative means different from the transmission rate control using the arrival rate based on the clock ratio. Take control.
  • FIG. 13A is a diagram illustrating an example of a relay device according to the twenty-third embodiment.
  • FIG. 13B is a diagram illustrating an example of a signal flow in the relay apparatus illustrated in FIG. 13A. 13A and 13B, the same parts as those shown in FIGS. 3A and 3B are denoted by the same reference numerals, and description thereof is omitted.
  • a relay device 1300 shown in FIGS. 13A and 13B is a relay device that is provided in, for example, the Internet 201 or the wireless access network 202 shown in FIG. 2 and relays each connection including communication between the server 211 and the client 221. is there.
  • the relay apparatus 1300 includes link layer processing units 1310 and 1330, a connection identification processing unit 1321, a transmission queue 1322, a connection management unit 1323, a connection identification processing unit 1341, and a transmission packet scheduling unit 1342.
  • the relay apparatus 1300 includes an Ack information recording unit 352, a clock ratio measurement unit 353, a counterpart arrival rate measurement unit 354, a transmission delay variation measurement unit 355, an RTT measurement unit 356, and a connection transmission rate control unit 1351. .
  • the link layer processing unit 1310 includes a link layer receiving unit 1311, a transmission queue group 1312, a scheduler 1313, and a link layer transmitting unit 1314.
  • the link layer receiving unit 1311 receives a packet from a network (for example, the server 211 in FIG. 2).
  • the packet received by the link layer receiving unit 1311 includes, for example, a data packet from the server 211.
  • the link layer reception unit 1311 outputs the received packet to the connection identification processing unit 1321.
  • the transmission queue group 1312 includes a transmission queue for each connection relayed by the relay device 1300.
  • the scheduler 1313 sequentially reads out the packets stored in the transmission queue group 1312 while performing scheduling between connections, and outputs the packets to the link layer transmission unit 1314.
  • the link layer transmission unit 1314 transmits the packet output from the scheduler 1313 to the network (for example, the server 211 in FIG. 2).
  • connection identification processing unit 1321 identifies the connection of the packet output from the link layer receiving unit 1311. Then, the connection identification processing unit 1321 outputs the identification result to the connection management unit 1323. In addition, the connection identification processing unit 1321 stores the packet that identifies the connection in the transmission queue 1322.
  • the link layer processing unit 1330 includes a link layer transmission unit 1331 and a link layer reception unit 1332.
  • the link layer transmission unit 1331 sequentially reads out the packets stored in the transmission queue 1322 and transmits them to the local link (for example, the client 221 in FIG. 2).
  • the link layer receiving unit 1332 receives a packet from a local link (for example, the client 221 in FIG. 2).
  • the packet received by the link layer receiving unit 1332 includes a response packet from the client 221 to the server 211, for example.
  • the link layer reception unit 1332 outputs the received packet to the connection identification processing unit 1341.
  • connection identification processing unit 1341 identifies the connection of the packet output from the link layer reception unit 1332. Then, the connection identification processing unit 1341 outputs the identification result to the connection management unit 1323. Further, the connection identification processing unit 1341 stores the packet that identifies the connection in the transmission packet scheduling unit 1342.
  • the transmission packet schedule unit 1342 schedules the packet output from the connection identification processing unit 1341 and the transmission rate control packet, and stores each packet in the transmission queue group 1312 based on the scheduling result.
  • connection management unit 1323 manages a connection management table 1323a (see, for example, FIG. 14) indicating the state of each connection based on the connection identification information output from the connection identification processing units 1321 and 1341. Further, the connection management unit 1323 outputs information about the response packet to the Ack information recording unit 352 together with the identification information based on the identification information about the response packet.
  • the Ack information recording unit 352 records a recording table 352a provided for each connection based on the information output from the connection management unit 1323.
  • the clock ratio measuring unit 353 measures the clock ratio for each connection.
  • the counterpart arrival rate measurement unit 354 measures the arrival rate for each connection.
  • the transmission delay variation measuring unit 355 measures transmission delay variation for each connection.
  • the RTT measurement unit 356 measures RTT for each connection.
  • the connection transmission rate control unit 1351 determines the packet transmission rate for each connection based on the arrival rate output from the counterpart arrival rate measurement unit 354. Then, the connection transmission rate control unit 1351 indicates the determined transmission rate, and outputs a transmission rate control packet destined for the transmission side (for example, the server 211) of the target connection to the transmission packet scheduling unit 1342. Thereby, based on the arrival rate measurement result in the counterpart arrival rate measuring unit 354, the transmission rate of the packet transmission side can be controlled.
  • the target of the arrival rate measurement and the transmission rate control is a part of the connections relayed by the relay device 1300. It may be.
  • the measurement result of the arrival rate may be used as a parameter for monitoring the network state.
  • the arrival rate measurement result may be used for QoS (Quality of Service) control in the relay apparatus 1300.
  • the measurement result of the arrival rate may be used for bandwidth control and packet scheduling that can be controlled by the relay apparatus 1300.
  • the relay device 1300 shown in FIGS. 13A and 13B can be realized by the communication device 380 shown in FIG. 3C, for example.
  • the link layer processing units 1310 and 1330 shown in FIGS. 13A and 13B can be realized by the communication interface 384, for example.
  • the connection identification processing unit 1321, the connection management unit 1323, the connection identification processing unit 1341, and the transmission packet scheduling unit 1342 illustrated in FIGS. 13A and 13B can be realized by the CPU 381, for example.
  • the Ack information recording unit 352, the clock ratio measuring unit 353, and the opponent arrival rate measuring unit 354 shown in FIGS. 13A and 13B can be realized by the CPU 381, for example.
  • the transmission delay variation measurement unit 355, the RTT measurement unit 356, and the connection transmission rate control unit 1351 shown in FIGS. 13A and 13B can be realized by the CPU 381, for example.
  • the transmission queue 1322 shown in FIGS. 13A and 13B can be realized by the RAM 382, for example.
  • the recording table 352a and the connection management table 1323a shown in FIGS. 13A and 13B are stored in the RAM 382, for example.
  • FIG. 14 is a diagram illustrating an example of a connection management table.
  • the connection management unit 1323 manages, for example, the connection management table 1323a illustrated in FIG. 14 based on the connection identification information output from the connection identification processing units 1321 and 1341.
  • a connection management table 1323a By managing such a connection management table 1323a, it is possible to extract information of each packet regarding the connection whose arrival rate is to be measured among the connections relayed by the relay apparatus 1300.
  • a connection tracking technique can be used for generating and managing the connection.
  • the arrival rate at the client 221 can be measured by the relay device 1300 between the server 211 and the client 221 without adding a function to the client 221 side. Become. Moreover, the measurement result suitable for the utilization form of the data rate measured by adjustment of the measurement method can be obtained.
  • this measurement result for controlling the transmission rate of the protocol for performing data transfer, it is possible to estimate the available bandwidth to the client 221 and to detect the available bandwidth. For this reason, the transmission rate can be adjusted more appropriately according to the available bandwidth, and communication throughput and network utilization efficiency can be improved.
  • the measurement device As described above, according to the measurement device, the communication device, the relay device, the measurement method, and the measurement program, it is possible to improve the measurement accuracy of the arrival rate.
  • the measurement apparatus 101 and the first communication apparatus 110 shown in FIG. 1 are applied to the server 211, and the second communication apparatus 120 shown in FIG. explained.
  • application modes of the measurement device 101, the first communication device 110, and the second communication device 120 are not limited to this.
  • the measurement device 101 and the first communication device 110 shown in FIG. 1 can be applied to the client 221, and the second communication device 120 shown in FIG. 1 can be applied to the server 211.
  • connection Each communication using an end-to-end transport layer service is called a connection.
  • congestion control that adjusts the transmission rate to the other party while searching for available throughput that changes due to network congestion and link capacity fluctuation, while avoiding sudden traffic fluctuations. Desired.
  • the available communication band constantly fluctuates, it is required to quickly know the available communication band in order to constantly obtain a good throughput.
  • TCP which is widely used as a protocol for realizing transport layer services
  • a congestion control algorithm called tahoe and its improved version reno / new reno is implemented as a congestion control algorithm for avoiding congestion.
  • the method of detecting congestion by increasing the delay even if it knows that the available bandwidth has been exceeded, it will not be able to know how much is available when there is enough available bandwidth, so congestion will not occur after all So, I had to take a method of slowly increasing the throughput.
  • Such control limitations can be improved by proactively knowing the available bandwidth, but this measurement is not easy.
  • the bandwidth that reaches the receiving side is limited by the thinnest link (bottleneck link) on the way, so the available bandwidth can be determined by measuring the reception rate. There is a way to know.
  • the transmission side there is known a method of measuring the arrival rate at the other party based on the progress of the Ack number notified by the Ack packet. If the receiving side returns a response packet immediately after receiving the data, the response packet interval indicates the arrival interval of the data packet.
  • this measurement method is easily affected by the queue delay in the path where the Ack packet is returned.
  • the Ack packet is returned quickly because of its short length, and is returned to the data transmission source with almost a propagation delay.
  • the arrival time easily fluctuates due to the influence of other traffic. For example, the queuing delay occurs at a level where there is only a long packet of other traffic in the return path direction and cannot be ignored.
  • the queue delay is at most one packet level, fluctuations can be suppressed by measuring the data arrival rate based on a plurality of Ack packets.
  • the arrival interval of the Ack packet continues to increase with respect to the data arrival interval and vice versa. Therefore, in such a situation, it is difficult to accurately measure the arrival rate.
  • the arrival rate can be measured based on each information that can be easily acquired on the transmission side by using the transmission time information and the arrival time of the response message. . Therefore, the arrival rate can be measured without adding a function to the receiving side. Further, the influence of the queue delay of the Ack packet on the arrival rate measurement result can be suppressed.
  • the arrival rate can be accurately measured even if the time standards on the transmission side and the reception side do not match. it can.
  • the measurement method described in the present embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation.
  • This program is recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM, an MO, and a DVD, and is executed by being read from the recording medium by the computer.
  • the program may be a transmission medium that can be distributed via a network such as the Internet.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

 計測装置(101)は、送信データ(111)に対応する、任意の2つの応答メッセージ(121-i,121-k)について、その2つの間で到達した合計データ量Dを、その送信時刻情報(T21-i,T21-k)の差で除算することにより、第2通信装置(120)の時間基準に基づくレートを算出する。また、計測装置(101)は、第1通信装置(110)と第2通信装置(120)との間の時間換算係数を算出する。また、計測装置(101)は、算出したレートに算出した時間換算係数を乗じることにより、第1通信装置(110)の時間基準に基づく送信データ(111)の到着レートを算出する。

Description

計測装置、通信装置、中継装置、計測方法および計測プログラム
 本発明は、計測装置、通信装置、中継装置、計測方法および計測プログラムに関する。
 インターネットなどのネットワークを介した通信において、効率的な通信を行うには、送信者はネットワークがどのぐらいのトラフィックを流す能力があるかを把握し、その能力内で送信することが重要となる。しかし、これを直接知る方法はないため、従来さまざまな計測手法が用いられてきた(たとえば、下記特許文献1~4、非特許文献1~2参照。)。
特許第4853319号公報 特許第4367505号公報 特開2006-074773号公報 特開2006-340081号公報
S.Floyd,T.Henderson,A.Gurtov、"The NewReno Modification to TCP’s Fast Recovery Algorithm"、RFC2582、Internet Engineering Task Force(IETF)、2003年 Lawrence S.Brakmo,Larry L.Peterson、"TCP Vegas:End to End Congestion Avoidance on a Global Internet"、IEEE Journal on Selected Areas in Communications,Vol.13,No.8、pg.1465-1480、1995年
 たとえば、特許文献1においては、受信者において受信レートを観測し、これを送信者に通知する手法が開示されている。しかしながら、既存の通信手順にそのような送信帯域制御を導入する場合、受信側の通信機器においても測定を行うための機能を追加することになる。また、特許文献2においては、受信者が送信者に返送する確認応答の到着ペースやそのRTT(Round Trip Time:ラウンドトリップタイム)を計測することによって、受信者における受信レートを送信者が推定することが開示されている。この方法であれば、送信者が得られる情報だけでネットワークの能力を推定することができる。しかし、この計測方法は、確認応答が返送される戻りパスでのネットワークの状況の影響を受けやすいという問題がある。また、別の従来技術として、パケットのロスや伝播遅延の増加といった、ネットワークの能力を超えた、あるいは超えつつある兆候を監視しながら、徐々に送信レートを上げていくようなフィードバック制御が用いられている(特許文献3,4、非特許文献1,2)が、この手法は本質的に収束に時間がかかるのと、ネットワークの動的な変動に対応できない、という問題がある。
 1つの側面では、本発明は、送信側でデータ転送手順に基づいて得られる情報だけで実施可能な到着レートの計測精度の向上を図ることで、適正な送信レートを推定できる計測装置、通信装置、中継装置、計測方法および計測プログラムを提供することを目的とする。
 上述した課題を解決し、目的を達成するため、本発明の一側面によれば、受信側における時刻の変化を、受信側が返信するメッセージに付与される送信時刻情報から取得する。
 そして、受信側が送信時刻情報を実際の時間からどういう換算を行ったものか、を送信側でその時間当たり変化を監視しることで推定することで受信端末側での相対的な時間経過を送信側の時間尺度に換算する。
 すなわち、
 第1通信装置から第2通信装置へのデータ転送手順によるデータ転送において、
 前記第2通信装置から前記第1通信装置への各応答メッセージにおける前記第2通信装置により付された送信時刻情報の、各応答メッセージにおける変化量を示す第1情報と、前記各応答メッセージの前記第1通信装置への到着時刻の差を示す第2情報と、に基づいて算出する、前記第1通信装置と前記第2通信装置との間の時間換算係数と、
 前記第1通信装置から前記第2通信装置への送信データに対応する、ある2つの確認応答メッセージにより確認されたデータ転送の進行量を示す第3情報と、
 前記2つの確認応答メッセージにおける、第2通信装置からの各応答メッセージの前記第2通信装置により付された送信時刻情報の差を示す第4情報と、
 に基づき得られる前記第2通信装置の送信時刻情報の単位変化量あたりのデータレートに対し、前記時間換算係数を乗じることにより、前記第1通信装置において、前記第2通信装置における到着レートを算出する計測装置、通信装置、中継装置、計測方法および計測プログラムが提案される。
 本発明の一側面によれば、送信側でデータ転送手順に基づいて得られる情報だけで実施可能な、戻りパスの影響を受けない到着レートの計測ができるという効果を奏する。
図1は、実施の形態1にかかる通信システムの一例を示す図である。 図2は、実施の形態2にかかる通信システムの一例を示す図である。 図3Aは、実施の形態2にかかるサーバの一例を示す図である。 図3Bは、図3Aに示したサーバにおける信号の流れの一例を示す図である。 図3Cは、サーバのハードウェア構成の一例を示す図である。 図4Aは、TCPのパケットヘッダのフォーマットの一例を示す図である。 図4Bは、タイムスタンプのエンコード方式の一例を示す図である。 図4Cは、タイムスタンプのエンコード方法の他の例を示す図である。 図5は、サーバとクライアントとの間の信号の送受信の一例を示す図である。 図6は、到着レートの変動の一例を示す図である。 図7は、実施の形態2にかかる記録テーブルおよび算出結果の一例を示す図である。 図8は、実施の形態3にかかるサーバに記憶されるテーブルの一例を示す図である。 図9は、実施の形態4にかかるサーバに記憶されるテーブルの一例を示す図である。 図10は、実施の形態8にかかる記録テーブルの一例を示す図である。 図11は、実施の形態8にかかる記録テーブルおよび算出結果の一例を示す図である。 図12は、サーバとクライアントとの間の信号の送受信の一例を示す図である。 図13Aは、実施の形態23にかかる中継装置の一例を示す図である。 図13Bは、図13Aに示した中継装置における信号の流れの一例を示す図である。 図14は、コネクション管理テーブルの一例を示す図である。
 以下に図面を参照して、本発明にかかる計測装置、通信装置、中継装置、計測方法および計測プログラムの実施の形態を詳細に説明する。
(実施の形態1)
(実施の形態1にかかる通信システム)
 図1は、実施の形態1にかかる通信システムの一例を示す図である。図1に示すように、実施の形態1にかかる通信システム100は、第1通信装置110と、第2通信装置120と、計測装置101と、を含む。第1通信装置110および第2通信装置120は、互いに通信を行う各通信装置である。
 計測装置101は、たとえば、第1通信装置110から送信される送信データの第2通信装置120における到着レートを計測する装置である。計測装置101は、第1通信装置110と通信可能な装置であってもよいし、第1通信装置110に設けられた装置であってもよい。計測装置101が第1通信装置110と通信可能な装置である場合は、計測装置101は、第1通信装置110が第2通信装置120から受信する応答メッセージに関する情報等を第1通信装置110から受信して到着レートを計測する。以下の説明においては、計測装置101が第1通信装置110に設けられた装置である場合について説明する。
 送信データ111は、第1通信装置110から第2通信装置120へ送信される各送信データである。各々の送信データを区別するため、添字(1~3、i、j、k)を振っている。応答メッセージ121は、対応する送信データ111に対して第2通信装置120から第1通信装置110へ送信される応答メッセージである。同様に各々のメッセージを区別するため、添字(1~3、i、j、k)を振っている。
 応答メッセージ121のそれぞれには、第2通信装置120によって送信時刻情報T21が付される(各々のメッセージに付されている時刻情報について、対応する添字(1~3、i、j、k)を振っている)。送信時刻情報T21は、対応する応答メッセージ121が第2通信装置120から送信される時刻に応じ付与されたものである。したがって、送信時刻情報T21は、第2通信装置120の時間基準(内部時刻)に基づき生成された時刻情報である。計測装置101は、第1通信装置110が受信した応答メッセージ121から送信時刻情報T21を取得することができる。送信時刻情報T21と実際の時刻との関係は第2通信装置120の実装依存であり、第1通信装置110は第2通信装置120がその応答メッセージを送信した時刻を、その送信時刻情報T21の値から直接得ることはできない。
 到着時刻T11は、応答メッセージ121各々の第1通信装置110における到着時刻である。各々の対応する応答メッセージと同一の添字(1~3、i、j、k)を振っている。ただし、到着時刻T11は、第1通信装置110の時間基準に基づく送信時刻である。
 図1に示す例では、計測装置101が、送信データ111-i~111-kの第2通信装置120における到着レートを計測する場合について説明する。この場合は、計測装置101は、送信データ111-i、111-kに対する応答メッセージ121-i、121-kの送信時刻情報T21-i,T21-kを取得する。ここで、(T21-k)-(T21-i)(第4情報)は、送信データ111-i~111-kの到着にかかった、第2通信装置120の時間基準に基づく時間情報を示す。
 また、計測装置101は、送信データ111-i~111-k間の合計のデータ量D(第3情報)を取得する。伝播遅延あるいは応答遅延がある2者間でのデータ転送手順において、データ転送を効率的に行うには相手から確認応答を受けずに一定量データを送ることを許容する必要がある。また、その場合データ転送手順においては受け手の返信する確認応答がどの送信データに対する応答であるかを区別できる必要がある。そのような仕組みを実装しているデータ転送手順においては、確認応答に含まれる情報に、どのデータに対する応答かを示す情報があり、一般にこの情報を解析することにより、2つの応答メッセージ間でどれだけデータ量が届いているかを知ることが可能である。これにより、計測装置101は、D/((T21-k)-(T21-i))によって、第2通信装置120の時間基準に基づく送信データ111-i~111-kの到着レートを算出することができる。
 また、計測装置101は、第1通信装置110の時間基準と、第2通信装置120の時間基準と、の比(時間換算係数)を算出する。そのために、計測装置101は、たとえば送信データ111-1~111-2に対する応答メッセージ121-1,121-2の送信時刻情報T21-1,T21-2を取得する。また、計測装置101は、応答メッセージ121-1,121-2の到着時刻T11-1,T11-2を取得する。そして、計測装置101は、取得した送信時刻情報T21-1,T21-2の差(第1情報)と、取得した到着時刻T11-1,T11-2の差(第2情報)と、の比((T21-2)-(T21-1))/((T11-2)-(T11-1))を算出することにより時間換算係数を算出する。
 たとえば、計測装置101は、時間換算係数を得る対象とする応答メッセージについて、上記の例のように最初の2つを採用してもよいが、別の例として送信データ111-1,111-kの応答メッセージ121-1,121-kを対象とし時間換算係数を算出してもよい。このように、計測対象の期間よりも互いの送信間隔が長い各送信データについて時間換算係数を算出することにより、第1通信装置110と第2通信装置120との間の時間換算係数を精度よく算出することができる。
 または、計測装置101は、前記時間換算係数を複数回計測しそれを逐次平均化してもよい。これにより、各応答メッセージ121の到着までの遅延量がばらついても、第1通信装置110と第2通信装置120との間の時間換算係数を精度よく算出することができる。
 計測装置101は、たとえば、算出した送信データ111-i~111-kの第2通信装置120の時間基準に基づく送信時刻情報の単位変化量あたりの到着レートに、算出した第1通信装置110と第2通信装置120との間の時間換算係数を乗じる。これにより、第1通信装置110の時間基準に基づく送信データ111-i~111-kの到着レートを算出することができる。
 たとえば、応答メッセージ121-1,121-kに基づく時間換算係数を用いる場合は、計測装置101は、D/((T21-k)-(T21-i))に((T21-k)-(T21-1))/((T11-k)-(T11-1))を乗じることによって第1通信装置110の時間基準に基づく送信データ111-i~111-kの到着レートを算出することができる。
 以上の算出手順は一例であり、実施に際し各数値の保持の方法や有効桁数あるいは演算ステップ数の最適化等を理由に算術的な変形をして用いることは任意である。
 このように、実施の形態1にかかる計測装置101は、ある2つの応答メッセージにおける、受信側である第2通信装置120の側における到着レートを、送信側である第1通信装置110が受け取る応答メッセージ中の確認応答情報を解析して得られる応答されたデータ量と、応答メッセージで示された送信時刻情報の変化量、そして応答メッセージの送信時刻情報および到着時刻の関係から得られる時間換算係数を用いることにより、第2通信装置120の側に機能を追加しなくても、第1通信装置110において容易に取得可能な各情報に基づいて到着レートを計測することができる。
(実施の形態2)
 送信時刻情報の具体的な実装形態として、タイムスタンプがある。相手の付与するタイムスタンプ情報から、受信側における時間経過を送信側で算出することで、データ到着レートの計測を、送信側のみの処理で計測可能で、かつ戻りパスのネットワーク状態を受けない(受けにくい)方法によって実現することができる。
 タイムスタンプは、たとえばパケットの送信時刻に関する情報をパケットに埋め込むものであり、近年、データ転送プロトコルなどで、各メッセージ間の時間的前後関係の明確化や、RTTの計測を目的に、仕様として採用されている。
 送信データがパケット化されて伝達され、その応答メッセージもパケットとして返信される構成において、データパケットに対する応答パケット(たとえばAckパケット)を受信側が迅速に返信することを仮定すれば、応答パケットの送信時刻をタイムスタンプから判断できれば、タイムスタンプの進み具合とAckされたデータ量の進み具合から、受信側における到着レートを推定することができる。
 TCP(Transmission Control Protocol:伝送制御プロトコル、RFC793)においては、タイムスタンプ情報をパケットに含むことがオプションとしてRFC1323にて規定されている。このオプションにおいては、パケットを送信するときの時刻情報をプロトコル仕様で定められたフィールドサイズに合う形で数値化したタイムスタンプが埋め込まれる。また、このタイムスタンプは、TCPにおいてはパケット内のTCPヘッダ内に埋め込まれる(たとえば図4A~図4C参照)。
 RTTの計測に用いるために、RFC1323の規定においては、パケットに対し送信時点に対応したタイムスタンプを格納して送信することに加え、応答パケットに、対応するデータパケットのタイムスタンプ値を格納することが求められている。このため、RFC1323においては、パケット送信側のタイムスタンプを格納するフィールド(TSval)と、データパケットの受信側が、データパケットのタイムスタンプを、データパケットに対する応答パケットにエコーバックとして格納するフィールド(TSecr)を用意している(図4B,図4C参照)。
 しかし、タイムスタンプは、一般的に、たとえば相手側に対して時間の前後関係を示し(たとえば値が単調増加)、エコーバックした値を使ってRTTが所定の精度で計測可能であればよい。前記RFC1323においても、タイムスタンプの値と時刻の関係については「実際の時間(経過)に対しほぼ比例した値」とだけ規定されている。このため、タイムスタンプの1単位がどの程度の時間経過を示すのかについては実装依存であるし、タイムスタンプの増加ペースが一定であることを保障するものでもない。
 そこで、実施の形態2においては、データパケットの送信側が、データパケットに対する応答パケットに含まれるタイムスタンプの進み具合と、送信側における応答パケットの到着時刻の時間経過から、受信側のタイムスタンプの変化速度を計測する。近年の通信システムにおいては、各通信装置が水晶発振(クロック)の精度で時刻の基準を持つのが一般的である。このため、タイムスタンプは、タイムスタンプを生成するメカニズムに由来する変動要素(たとえばタイマ割り込みに対する応答時間の変動)はあるものの、長時間にわたり安定した増加ペースを維持する。
 また、データパケットの受信側が応答パケットを送信してからデータパケットの送信側が応答パケットを受信するまでの片方向遅延も途中のキューイングディレイの変動で変化し得る。しかし、これについても一時的な変動はあっても長時間で平均化すれば計測値への影響は小さくなる。
 そして、このような方法で応答パケットに含まれるタイムスタンプの変化率(クロック比)が分かれば、各応答パケットに含まれるタイムスタンプから時間の経過を知ることができる。これにより、2つの応答パケットについて、その送信時刻の差と、送信パケットのデータ量と、から受信側における到着レートを計測することが可能となる。
 タイムスタンプがクロックに基づき生成されたものである場合は、クロック比は、原理的に同じ値が得られるはずであるため、クロック比の計測の誤差を減らすには計測時間を長くしてもよい。一方、到着レートに算出する際に使用する応答パケットの時間的間隔は、到着レートが絶えず変化することを想定しているため、平滑化されすぎると不都合である。このように、クロック比の算出に用いる応答パケットの対と、到着レートの算出に使用する応答パケットの対は要件が異なるため、それぞれ異なるパケット対に基づいてクロック比および到着レートを算出してもよい。
(実施の形態2にかかる通信システム)
 図2は、実施の形態2にかかる通信システムの一例を示す図である。図2に示すように、実施の形態2にかかる通信システム200は、サーバ211~214と、クライアント221,222と、を含む。サーバ211~214は、インターネット201に接続されている。クライアント221,222は、無線アクセス網202を介してインターネット201に接続されている。
 一例として、サーバ211からクライアント221へデータパケットを送信する場合において、図1に示した計測装置101および第1通信装置110は、たとえばサーバ211に適用することができる。また、図1に示した第2通信装置120は、たとえばクライアント221に適用することができる。ここでは、サーバ211において、サーバ211からクライアント221へのデータパケットのクライアント221における到着レートを計測する場合について説明する。また、サーバ211は、到着レートの計測レートに応じて、クライアント221へのデータパケットの送出レートを制御する。
 サーバ211からクライアント221へのデータパケットは、たとえばTCPなどを用いて伝送される。
(サーバ)
 図3Aは、実施の形態2にかかるサーバの一例を示す図である。図3Bは、図3Aに示したサーバにおける信号の流れの一例を示す図である。図2に示したサーバ211は、たとえば図3A,図3Bに示すサーバ300によって実現することができる。サーバ300は、リンクレイヤ処理部310と、受信データ組立部321と、受信データバッファ322と、通信アプリケーション実行部330と、送信データバッファ341と、送信パケット構築部342と、送信キュー343と、を備える。
 また、サーバ300は、Ack情報解析部351と、Ack情報記録部352と、クロック比計測部353と、相手到着レート計測部354と、を備える。また、サーバ300は、送信遅延変動計測部355と、RTT計測部356と、送出レート制御部357と、再送制御部358と、応答待バッファ359と、を備える。
 リンクレイヤ処理部310は、リンクレイヤ受信部311と、リンクレイヤ送信部312と、を備える。リンクレイヤ受信部311は、ネットワーク(たとえば図2のインターネット201)からのパケットを受信する。リンクレイヤ受信部311が受信するパケットには、たとえば、他の通信装置(たとえば図2のクライアント221)からのデータパケットや、サーバ300が送信したデータパケットに対する他の通信装置(たとえば図2のクライアント221)からの応答パケットが含まれる。リンクレイヤ受信部311は、受信したパケットを受信データ組立部321およびAck情報解析部351へ出力する。リンクレイヤ送信部312は、送信キュー343に格納されたパケットを順次読み出してネットワーク(たとえば図2のインターネット201)へ送信する。
 受信データ組立部321は、リンクレイヤ受信部311から出力されたパケットのうちのデータパケットを取得する。そして、受信データ組立部321は、取得したデータパケットの組立を行い、組立により得られたデータを受信データバッファ322へ出力する。受信データバッファ322は、受信データ組立部321から出力されたデータを一次格納し、格納したデータを順次、通信アプリケーション実行部330へ出力する。
 通信アプリケーション実行部330は、通信アプリケーションを実行する。通信アプリケーションは、通信相手とのデータ授受を行う。その一環として、受信データバッファ322から出力されたデータに基づく処理や、他の通信装置へ送信するためのデータを生成して送信データバッファ341へ出力する処理を行う。送信データバッファ341は、通信アプリケーション実行部330から出力されたデータを一次格納し、格納したデータを順次、送信パケット構築部342へ出力する。
 送信パケット構築部342は、送信データバッファ341から出力されたデータに基づいて、通信相手へ送信するためのパケットを構築する。そして、送信パケット構築部342は、構築したパケットを送信キュー343へ格納する。また、送信パケット構築部342によって送信キュー343へ格納されるパケットのレートは送出レート制御部357によって制御される。
 再送制御部358は、Ack情報解析部351から出力されたAck/SACK(Selective Ack;データ中途に対する部分的な確認応答を伴うAck)情報に基づいて、応答待バッファ359から送信キュー343へのパケットの読み出しを行うことによって再送制御を行う。
 応答待バッファ359は、サーバ300が送信済みのパケットを一時的に格納する。そして、応答待バッファ359は、再送制御部358からの制御に基づいて、格納しているパケットのうちの、Ack情報解析部351から出力されたAck番号に対応するパケットを送信キュー343へ格納する。また、応答待バッファ359は、サーバ300からのパケットの送信時刻をAck情報記録部352およびRTT計測部356へ出力する。
 Ack情報解析部351は、リンクレイヤ受信部311から出力されたパケットのうちの応答パケットを取得し、取得した応答パケットの解析を行う。そして、Ack情報解析部351は、取得した応答パケットのうちのAckパケットの内容を示すAck情報をAck情報記録部352へ出力する。また、Ack情報解析部351は、取得した応答パケットを示すAck/SACK情報を再送制御部358へ出力する。また、Ack情報解析部351は、取得した応答パケットのうちのAckパケットのAck番号を応答待バッファ359へ出力する。
 Ack情報記録部352は、Ack情報解析部351から出力されたAck情報を記録テーブル352aに記録する。記録テーブル352aは、サーバ300のメモリに記憶されるテーブルである(たとえば図7参照)。
 また、Ack情報記録部352は、記録テーブル352aに記録されたAck情報のうちの、2つのAckパケットについての各Ack情報をクロック比計測部353へ出力する。また、Ack情報記録部352は、複数組のAckパケットについての各Ack情報をクロック比計測部353へ出力してもよい。また、Ack情報記録部352は、記録テーブル352aに記録されたAck情報のうちの、計測対象の期間における複数のAckパケットについてのAck情報を相手到着レート計測部354へ出力する。
 また、Ack情報記録部352は、記録テーブル352aに記録されたAck情報のうちの、計測対象の期間における複数のAckパケットについてのAck情報(データパケットの送信時刻を含む)を送信遅延変動計測部355へ出力してもよい。
 また、Ack情報記録部352は、応答待バッファ359から出力された送信時刻を、該当する送信データのAckパケットと対応付けて記録テーブル352aに記録する。または、Ack情報記録部352は、RTT計測部356から出力されたRTTを、該当する送信データのAckパケットと対応付けて記録テーブル352aに記録してもよい。
 クロック比計測部353は、Ack情報記録部352から出力された2つのAckパケットについての各Ack情報、または複数組のAckパケットについての各Ack情報に基づいて、サーバ300とクライアント221の間のクロック比(時間換算係数)を計測する。そして、クロック比計測部353は、計測したクロック比を相手到着レート計測部354へ出力する。
 相手到着レート計測部354は、Ack情報記録部352から出力された複数のAckパケットについての各Ack情報と、クロック比計測部353から出力されたクロック比と、に基づいてサーバ300における到着レートを計測する。そして、相手到着レート計測部354は、計測した到着レートを送出レート制御部357へ出力する。
 送信遅延変動計測部355は、Ack情報記録部352から出力された計測対象の期間における複数のAckパケットについてのAck情報(データパケットの送信時刻を含む)に基づいて、サーバ300からの送信データの遅延時間の変動を計測する。そして、送信遅延変動計測部355は、遅延時間の変動の計測結果を送出レート制御部357へ出力する。
 RTT計測部356は、応答待バッファ359から出力された送信時刻に基づくRTTを計測する。そして、RTT計測部356は、計測したRTTをAck情報記録部352および送出レート制御部357へ出力する。
 送出レート制御部357は、相手到着レート計測部354から出力された到着レートに基づいて、サーバ300からのパケットの送出レートを制御する。具体的には、送出レート制御部357は、送信パケット構築部342および再送制御部358を制御することによって送出レートを制御する。
 なお、実施の形態2においては、サーバ300の送信遅延変動計測部355およびRTT計測部356を省いた構成としてもよい。
(サーバのハードウェア構成)
 図3Cは、サーバのハードウェア構成の一例を示す図である。図3A,図3Bに示したサーバ300は、たとえば図3Cに示す通信装置380によって実現することができる。通信装置380は、CPU381(Central Processing Unit)と、RAM382(Random Access Memory:ランダムアクセスメモリ)と、不揮発メモリ383と、通信インタフェース384と、を備える。CPU381、RAM382、不揮発メモリ383および通信インタフェース384は、バス389によって接続される。
 CPU381は、通信装置380の全体の制御を司る。RAM382は、CPU381のワークエリアとして使用される。不揮発メモリ383は、たとえば磁気ディスク、光ディスク、フラッシュメモリなどの不揮発メモリである。不揮発メモリ383には、通信装置380を動作させる各種のプログラムが記憶されている。不揮発メモリ383に記憶されたプログラムは、RAM382にロードされてCPU381によって実行される。
 通信インタフェース384は、たとえば有線によって通信装置380の外部(たとえばクライアント221)との間で通信を行う通信インタフェースである。通信インタフェース384は、CPU381によって制御される。
 図3A,図3Bに示したリンクレイヤ処理部310は、たとえば通信インタフェース384によって実現することができる。図3A,図3Bに示した受信データ組立部321、通信アプリケーション実行部330および送信パケット構築部342は、たとえばCPU381によって実現することができる。
 図3A,図3Bに示したAck情報解析部351、Ack情報記録部352、クロック比計測部353、相手到着レート計測部354、送信遅延変動計測部355およびRTT計測部356は、たとえばCPU381によって実現することができる。図3A,図3Bに示した送出レート制御部357および再送制御部358は、たとえばCPU381によって実現することができる。
 図3A,図3Bに示した受信データバッファ322、送信データバッファ341、送信キュー343および応答待バッファ359は、たとえばRAM382によって実現することができる。図3A,図3Bに示した記録テーブル352aは、たとえばRAM382に記憶される。
 また、図1に示した計測装置101の到着レートを算出する算出部は、たとえばCPU381によって実現することができる。
(TCPのパケットヘッダのフォーマット)
 図4Aは、TCPのパケットヘッダのフォーマットの一例を示す図である。TCPにおいては、たとえば図4Aに示すパケットヘッダのフォーマット410が定義されている。たとえば、フォーマット410の“Sequence Number”には、データパケットを送信する側によってデータパケットのシーケンス番号が格納される。
 一方、データパケットを受信した側は、フラグ“ACK”をセットし、受信済みのデータパケットのシーケンス番号を“Acknowledgement Number”に格納した応答パケットを返送する。なお、TCPは双方向のデータ通信をサポートするため、フラグ“ACK”がセットされないパケットは特殊なケースに限られる。また、パケットヘッダ上のシーケンス番号は、初期値がランダムな値で決まるため、データパケットの本来の順序に対して初期値分多い値となる。ただし、シーケンス番号の差分に基づく処理においては初期値を無視することができる。
 また、データパケットを受信した側は、たとえば、送信する応答パケットの“Options”のオプション領域411に、所定のエンコード方式(たとえば図4B,図4C参照)でタイムスタンプを格納する。
(タイムスタンプのエンコード方式)
 図4Bは、タイムスタンプのエンコード方式の一例を示す図である。データパケットを受信した側が応答パケットのオプション領域411に格納するタイムスタンプには、たとえば図4Bに示すエンコード方式420を用いることができる。“TSval”は、パケットを送信する側が付与するタイムスタンプである。“TSecr”は、受信したパケットに格納されたタイムスタンプ(TSval値)であり、相手にエコーバックするタイムスタンプである。
 図4Cは、タイムスタンプのエンコード方法の他の例を示す図である。データパケットを受信した側が応答パケットのオプション領域411に格納するタイムスタンプには、たとえば図4Cに示すエンコード方式430を用いてもよい。
 オプション領域411にタイムスタンプのみが格納される場合は、エンコード方式430のようにNOP(No Operation)オプションを併用し、タイムスタンプがワード境界をまたがらないように位置の調整を行うようにしてもよい。これにより、データのアライメントを取ることができる。
(サーバとクライアントとの間の信号の送受信)
 図5は、サーバとクライアントとの間の信号の送受信の一例を示す図である。図5において、実線矢印によって示すData(x)は、サーバ211からクライアント221へ送信されるx番目のデータパケットである。点線矢印によって示すAck(x)は、Data(x)に対するクライアント221からサーバ211への応答パケットである。
 TSv(x)は、クライアント221によってAck(x)に付与されたタイムスタンプである。したがって、TSv(x)は、クライアント221における時間基準(クロック)に基づく時間を示す。
 ΔTas(i,j)は、クライアント221によるAck(i)の送信時刻と、クライアント221によるAck(j)の送信時刻と、の差である(i<j)。ただし、サーバ211はΔTas(i,j)を直接取得することができない。このため、サーバ211は、ΔTas(i,j)に近い値としてΔTar(i,j)を用いる。ΔTar(i,j)は、Ack(i)のサーバ211への到着時刻と、Ack(j)のサーバ211への到着時刻と、の差である。
 サーバ211は、到着したAck(i)およびAck(j)に付された各タイムスタンプの差としてTSv(j)-TSv(i)を算出する。そして、サーバ211は、算出したTSv(j)-TSv(i)をΔTar(i,j)で除算する。これにより、クライアント221のクロックに対するサーバ211のクロックの比(クロック比)を算出することができる。
 また、サーバ211は、ある程度の時間差を有する複数組のAck(i)およびAck(j)に基づいて複数のクロック比を算出し、算出した複数のクロック比を平均化したクロック比を算出してもよい。平均化には、単なる算出平均を用いてもよいし、EWMA(Exponentially Weighted Moving Average)のような漸化式による平均化を用いてもよい。
 Ack(x)の到着遅延時間の変動は、高々RTTより短い時間である。このため、Ack(x)の到着遅延時間の変動があっても、RTTが概ね安定していれば、複数のクロック比を平均化することによって、クロック比を精度よく算出することができる。
 また、サーバ211は、計測対象のデータパケット群の合計のデータ量を、計測対象のデータパケットのうちの最初と最後のデータパケットに対する各応答パケットのタイムスタンプの差で除算したレートを算出する。計測対象のデータパケット群の合計のデータ量は、たとえば、計測対象のデータパケットのうちの最初と最後のデータパケットに対する各応答パケットのAck番号の差(または差+1)に、1つのデータパケットのデータ量を乗算することによって得ることができる。
 そして、サーバ211は、算出したレートに、算出したクロック比を乗じることにより、サーバ211における時間基準に基づく、計測対象のデータパケット群のクライアント221における到着レートを算出することができる。
(到着レートの変動)
 図6は、到着レートの変動の一例を示す図である。図6において、横軸は経過時間を示し、縦軸はサーバ211からクライアント221へのデータパケットの到着レートを示している。物理帯域上限610は、サーバ211からクライアント221へのデータパケットの伝送における物理帯域の上限である。到着レート601は、ウィンドウサイズを十分に小さくした場合に計測される到着レートである。到着レート601に示すように、ウィンドウサイズが小さい場合は、ミクロには図6に示すようになる。
 計測結果602は、ウィンドウサイズをある程度の大きさを有するΔW1とした場合に計測される到着レートである。計測結果602に示すように、ウィンドウサイズがある程度の大きさを有する場合は、物理帯域上限610が計測可能になる。
 計測結果603は、ウィンドウサイズをΔW2(>ΔW1)とした場合に計測される到着レートである。計測結果603に示すように、ウィンドウサイズがさらに大きい場合は、物理帯域上限610に対する検出感度が鈍くなる。
 計測結果604は、ウィンドウサイズをRTT相当の幅とした場合に計測される到着レートである。計測結果604に示すように、ウィンドウサイズをRTT相当の幅とする場合は、低いレートしか計測できなくなる。
 他トラフィック620は、サーバ211からクライアント221へのデータパケットの帯域を圧迫する他トラフィックである。計測結果605は、ウィンドウサイズをある程度の大きさを有するΔW3とした場合に計測される到着レートである。計測結果605に示すように、ウィンドウサイズがある程度の大きさを有する場合は、到着レートのピーク値は他トラフィック620の分だけ下がって計測される。
(実施の形態2にかかる記録テーブルおよび算出結果)
 図7は、実施の形態2にかかる記録テーブルおよび算出結果の一例を示す図である。Ack情報記録部352は、たとえば図7に示す記録テーブル710を記録する。記録テーブル710においては、各応答パケットについて、到着時刻と、Ack番号と、TS(TSval)値と、が対応付けられている。図7に示す例では到着時刻を秒単位で示しているが、これは実装依存であり、たとえばサーバ211の内部クロックなどに置き換えてもよい。
 また、図7に示す例では、記録テーブル710のエントリ数は32である。ただし、記録テーブル710のエントリ数は過去に遡って参照したいAck情報が残っている最小限の値でもよい。実装の容易性から、記録テーブル710のエントリ数は2のべき乗としてもよい。また、Ack情報記録部352は、記録テーブル710のエントリがすべて埋まると、古いエントリから上書きしていく。
 図7に示す算出結果720は、記録テーブル710に基づくクロック比の算出結果である。なお、算出結果720は、各エントリでの算出結果を示しているものであり、各エントリに対応する算出結果720のすべてが保持されなくてもよい。図7に示す例では、過去16エントリ分のAck受信情報との差でクロック比を計測する場合について説明する。算出結果720は、到着時刻(j)-到着時刻(j-16)と、TS(j)-TS(j-16)と、クロック比と、平均クロック比と、を示している。
 たとえば、サーバ211は、Ack(31)とAck(15)について(j=16)、到着時刻(31)-到着時刻(15)=0.405108-0.304262=0.100846を算出する。また、サーバ211は、TS(31)-TS(15)=39062-39012=50を算出する。そして、サーバ211は、Ack(31)とAck(15)に基づくクロック比として50/0.100846≒495.8を算出する(小数点第2位以下四捨五入)。
 同様に、サーバ211は、Ack(30)とAck(14)に基づくクロック比、Ack(29)とAck(13)に基づくクロック比、…と算出し、算出した各クロック比を平均化する。図7に示す例では過去に遡るエントリ数を固定値としているが、単位時間あたりパケット送信量が増えればAck受信量も増えるので、Ackパケットの情報を記録する頻度をデータ送信量に応じて間引いてもよい。
 また、図7に示す例では過去のクロック比を単純に平均化しているが、上述のようにEWMAのような漸化式による平均化を用いてもよい。また、スライディングウィンドウ的な手法でクロック比を計算するのでなく、最初のAckパケットからの経過時間とTS変化量の比を取ってもよい。すなわち、集計時間を長くすることにより、比を取る際の変動成分を小さくすることができる。
 このように、実施の形態2によれば、クライアント221の側に機能を追加しなくても、サーバ211においてクライアント221における到着レートを計測することが可能になる。また、その計測方法の調整により計測するデータレートの利用形態に合った計測結果を得ることができる。
 また、この計測結果を、データ転送を行うプロトコルの送出レートの制御に用いることにより、クライアント221への可用帯域の推定や可用帯域の空きの検出を行うことができる。このため、送出レートを可用帯域にあわせてより適切に調整することが可能となり、通信スループットの向上やネットワークの利用効率の向上を図ることができる。
(実施の形態3)
 実施の形態3について、実施の形態2と異なる部分について説明する。クロックが水晶発振により生成され、たとえば1[ms]周期や10[ms]周期といった一定の時間間隔をクロックで得てカウントを増やすことによりタイマが実装されている場合は、想定されるクロック比は限られた値に限定される。
 そこで、実施の形態3においては、クロック比の複数の候補を示すクロック比テーブル800を用いて、算出したクロック比にもっとも近い値に置換することにより、クロック比を精度よく推定することができる。
(実施の形態3にかかるサーバに記憶されるテーブル)
 図8は、実施の形態3にかかるサーバに記憶されるテーブルの一例を示す図である。実施の形態3にかかるサーバ211のメモリ(たとえば図3CのRAM382)には、たとえば図8に示すクロック比テーブル800が記憶される。クロック比テーブル800においては、クロック比の複数の候補について、クロック換算係数およびコメントが対応付けられている。なお、クロック比テーブル800からコメントを省いてもよい。
 クロック換算係数は、タイムスタンプ変化量を時間に換算する係数である。図8に示すクロック比テーブル800では、プロセッサによる算術演算が除算より乗算の方が高速に実行できる場合が多いことを想定し、クロック換算係数はクロック比の逆数としている。また、クロック比テーブル800の各値は、プロセッサにおける整数演算で実行しやすいように、2のべき乗になる値(図8に示す例では1024)でスケーリングされている。
 サーバ211は、クロック比テーブル800が示すクロック比の候補の中から、算出したクロック比に最も近いクロック比を特定する。そして、サーバ211は、特定したクロック比に対応するクロック換算係数を、算出したクライアント221の時間基準に基づくレートに乗算し、乗算結果を1024で除算する。これにより、サーバ211に基づく到着レートを算出することができる。
 たとえば、サーバ211は、算出したクロック比が910であった場合は、クロック比テーブル800が示すクロック比の候補の中で910に最も近い1024を特定する。そして、サーバ211は、クロック比テーブル800において1024に対応するクロック換算係数である1024を、算出したクライアント221の時間基準に基づくレートに乗算し、乗算結果を1024で除算する。
 このように、実施の形態3にかかるサーバ211は、クロック比(時間換算係数)の複数の候補の中から、算出したクロック比に最も近いクロック比を特定する。そして、サーバ211は、特定したクロック比と、クライアント221の時間基準に基づくレートと、を乗じることにより到着レートを算出することができる。これにより、クロック比を精度よく計測し、クロックに基づく到着レートを精度よく計測することができる。
(実施の形態4)
 実施の形態4について、実施の形態3と異なる部分について説明する。
(実施の形態4にかかるサーバに記憶されるテーブル)
 図9は、実施の形態4にかかるサーバに記憶されるテーブルの一例を示す図である。実施の形態4にかかるサーバ211のメモリ(たとえば図3CのRAM382)には、たとえば図9に示すクロック比テーブル800が記憶される。図9に示すクロック比テーブル800においては、図8に示した各項目に加えて、クロック比の複数の候補について範囲(min)および範囲(max)が対応付けられている。範囲(min)および範囲(max)は、対応する候補のクロック比を中央値とする範囲である。
 サーバ211は、クロック比テーブル800が示す範囲(min)および範囲(max)の中から、算出したクロック比が含まれる範囲を特定する。そして、サーバ211は、特定した範囲に対応するクロック換算係数を、算出したクライアント221の時間基準に基づくレートに乗算し、乗算結果を1024で除算する。これにより、サーバ211に基づく到着レートを算出することができる。
 また、サーバ211は、算出したクロック比がいずれの範囲にも含まれていない場合は、たとえばクロック比計測エラーとして処理する。この場合は、サーバ211は、クロック比に基づく到着レートを用いた送出レートの制御を行わない。
 このように、実施の形態4にかかるサーバ211は、算出したクロック比がクロック比の複数の範囲の中に含まれていない場合は、算出したクロック比に基づく到着レートを用いた送出レートの制御を行わない。これにより、たとえばクライアント221が想定しえないクロックを用いていた場合に、不適切なクロック比に基づく精度の低い到着レートを用いて送出レートを制御して伝送効率が低下することを避けることができる。
(実施の形態5)
 実施の形態5について、実施の形態2と異なる部分について説明する。実施の形態5にかかるサーバ211は、クロック比を複数回計測し、複数回計測したクロック比の変動量を算出する。クロック比の変動量の算出には、たとえば分散、標準偏差、平均偏差などを用いることができる。
 サーバ211は、算出した変動量が所定の大きさ以上である場合は、たとえばクロック比計測エラーとして処理する。この場合は、サーバ211は、クロック比に基づく到着レートの計測を行わない。これにより、たとえばクライアント221のタイムスタンプが一定の増加ペースを示さない(すなわち時間尺度で使えない)場合に、クライアント221のタイムスタンプに基づいて到着レートを計測してしまうことを避けることができる。
 このように、実施の形態5にかかるサーバ211は、クロック比(時間換算係数)のばらつきが所定の大きさ以上である場合は、クロック比に基づく到着レートを用いた送出レートの制御を行わない。これにより、精度の低いクロック比に基づく精度の低い到着レートを用いて送出レートを制御して伝送効率が低下することを避けることができる。
(実施の形態6)
 実施の形態6について、実施の形態2と異なる部分について説明する。実施の形態6にかかるサーバ211は、クロック比の計測をクライアント221との通信開始から行い、クロック比を一度計測したらクロック比の計測を止める。そして、サーバ211は、計測したクロック比を、以降の複数回の到着レートの算出に用いる。これにより、サーバ211におけるクロック比の算出のための処理量を低減することができる。
 たとえば通信相手が企業内網の端末に限られるなど、相手となる通信端末(サーバやゲートウェイを含む)におけるタイムスタンプの実装が時間に基づき一定の変化が保証できるときは、クロック比も一定であるため、有効である。
 このように、実施の形態6にかかるサーバ211によれば、算出した1つのクロック比(時間換算係数)を用いて、異なる期間の複数の到着レートを算出する。これにより、サーバ211におけるクロック比の算出のための処理量を低減することができる。
(実施の形態7)
 実施の形態7について、実施の形態2と異なる部分について説明する。実施の形態7にかかるサーバ211は、クロック比の計測をクライアント221との通信開始から行うとともに、クロック比を一度計測した後もクロック比の計測を継続する。
 このように、実施の形態7にかかるサーバ211は、サーバ211とクライアント221との間の通信中に継続的にクロック比(時間換算係数)を算出する。これにより、サーバ211とクライアント221との間のクロック比が変動しても、クライアント221における到着レートを精度よく計測することができる。
(実施の形態8)
 実施の形態8について、実施の形態2と異なる部分について説明する。
(実施の形態8にかかる記録テーブル)
 図10は、実施の形態8にかかる記録テーブルの一例を示す図である。実施の形態8のサーバ211のメモリ(たとえば図3CのRAM382)には、たとえば図10に示す記録テーブル352aが記憶される。記録テーブル352aのAck番号およびタイムスタンプは、応答パケットの、図4AのTCPヘッダのフラグ“ACK”および図4B,図4CのTSvalフィールドに納められた値である。
 送信時刻は、応答パケットに対応するデータパケットのサーバ211における送信時刻である。なお、送信時刻を直接取得することが困難な処理系においては、たとえば、タイムスタンプのエコーバック値TSecrから送信時刻を取得してもよい。または、応答パケットに対するRTT計測結果をシステムから取得し、応答パケットの到着時刻からRTTを減算することにより送信時刻を逆算してもよい。なお、実施の形態8においては、記録テーブル352aから送信時刻の項目を省いてもよい。
 サーバ211は、クロック比の計測において、たとえば、最新の応答パケットと、過去に受信した応答パケットと、を用いる。この場合に、サーバ211は、過去の応答パケットについて、最新の応答パケットからどのぐらい遡った応答パケットとするかを柔軟に行えるようにするために、たとえば図10に示すような記録テーブル352aを用いる。
 そして、サーバ211は、応答パケット受信の際に、記録テーブル352aの格納エントリを順次進めながら記録する。これにより、応答パケットの到着間隔がある程度分かっていれば、所望の時間差のある各応答パケットについての情報を確保することができる。したがって、算出に用いる時間幅を適宜変えることも容易となる。
 また、i番目のデータパケットからj番目のデータパケットまでの合計のデータ量を算出する場合に、サーバ211は、i番目のデータパケットおよびj番目のデータパケットに対応する各Ack番号を取得する。そして、サーバ211は、取得した各Ack番号の差分(または差分+1)を、データパケット1つ分のデータ量に乗じる。これにより、i番目のデータパケットからj番目のデータパケットまでの合計のデータ量を算出することができる。
(実施の形態8にかかる記録テーブルおよび算出結果)
 図11は、実施の形態8にかかる記録テーブルおよび算出結果の一例を示す図である。Ack情報記録部352は、たとえば図11に示す記録テーブル1110を記録する。記録テーブル1110においては、各応答パケットについて、到着時刻と、Ack番号と、TS(TSval)値と、が対応付けられている。図11に示す例では到着時刻を秒単位で示しているが、これは実装依存であり、たとえばサーバ211の内部クロックなどに置き換えてもよい。
 図11に示す例でも図7に示した例と同様に記録テーブル1110のエントリ数を32としているが、応答パケットの到着頻度に対してエントリへの記録頻度を下げるために、図11に示す例では応答パケットが間引かれて記録されている。具体的には、図11に示す例では、6個の応答パケットに付き1個の応答パケットのみが記録されている。
 実装の容易性から、記録テーブル1110のエントリ数は2のべき乗としてもよい。また、Ack情報記録部352は、記録テーブル1110のエントリがすべて埋まると、古いエントリから上書きしていく。
 図11に示す算出結果1120は、レート観測に用いる時間幅を4エントリ分とした場合の記録テーブル1110に基づく到着レート(バイト/秒)の算出結果である。図11に示す算出結果1130は、レート観測に用いる時間幅を8エントリ分とした場合の記録テーブル1110に基づく到着レート(バイト/秒)の算出結果である。なお、算出結果1120,1130は、各エントリでの算出結果を示しているものであり、各エントリに対応する算出結果1120,1130のすべてが保持されなくてもよい。
 ここでは、算出結果1120を例として、エントリ#31の応答パケットの受信時における到着レートの算出手順を説明する。サーバ211は、エントリ#31の応答パケットと、4エントリ遡ったエントリ#27の応答パケットと、のTS値の差を算出する。この場合は、サーバ211は、TS(j)-TS(j-4)=TS(31)-TS(27)=39697-39685=12を算出する。
 また、サーバ211は、エントリ#31の応答パケットと、4エントリ遡ったエントリ#27の応答パケットと、のAck番号の差を算出する。この場合は、サーバ211は、Ack(j)-Ack(j-4)=Ack(31)-Ack(27)=2277729-2208225=69504を算出する。
 TCPにおけるAck番号はバイト単位である。したがって、エントリ#27の応答パケットからエントリ#31の応答パケットまでに対応する各データパケットの合計のデータ量は69504バイトとなる。
 ここで、サーバ211とクライアント221との間のクロック比は、たとえば図7に示した例に基づく1/500であるとする。
 サーバ211は、TS値の差にクロック比を乗じることにより、12/500=0.024000を経過時間として算出する。そして、サーバ211は、合計のデータ量を経過時間で除算することにより、69504/0.024000=2896000≒29[メガバイト/秒]を到着レートとして算出する。
 このように、実施の形態8に示すサーバ211は、サーバ211からクライアント221への各送信データに対するクライアント221からの応答メッセージについて、その応答確認された送信データに対応するAck番号(シーケンス番号)と、その応答メッセージのタイムスタンプおよび到着時刻と、を記憶する。そして、サーバ211は、記憶内容に基づいて、到着レートの算出に用いる各情報を算出する。
(実施の形態9)
 実施の形態9について、実施の形態8と異なる部分について説明する。クライアント221は、転送制御プロトコルおよびその実装によっては、遅延応答(delayed ack)により、サーバ211からの送信パケットの到着に対して即時に応答パケットを返さない場合がある。遅延応答は、たとえばRFC1122において規定されている。
 遅延応答が行われると、本来のパケット到着時間に対応するタイムスタンプより時間的に後を示すタイムスタンプが応答パケットに格納されることになり、タイムスタンプが到着時間差を正しく示さなくなる。
 これに対して、実施の形態9にかかるサーバ211は、受信した応答パケットが遅延応答によって送信されたものか否かを判定する。そして、サーバ211は、遅延応答によって送信されたものであると判定した応答パケットの情報については、記録テーブル352aに格納しない。これにより、遅延応答によって送信されたものであると判定した応答パケットを計測対象から除外し、応答パケットが遅延されて送信されることによる時間的ずれが到着レートの計測に悪影響を与えることを回避することができる。
 たとえば、サーバ211は、応答パケットが単一セグメントに対する応答であるか否かを判定することによって、応答パケットが遅延応答によって送信されたものであるか否かを判定することができる。または、サーバ211は、TSvalの値が前の応答パケットより増えているにも関わらず、TSecrの値に変化がない場合は応答パケットが遅延応答によって送信されたものであると判定することができる。
 このように、実施の形態9にかかるサーバ211は、クライアント221からの応答メッセージのうちの、遅延応答によってクライアント221から送信された応答メッセージを除く応答メッセージのそれぞれについて各情報を記憶する。これにより、遅延応答によって送信された応答メッセージを除外して到着レートを算出することができる。このため、応答メッセージのタイムスタンプ(送信時刻情報)に基づく到着レートの算出の精度を向上させることができる。
(実施の形態10)
 実施の形態10について、実施の形態8と異なる部分について説明する。パケットレートが高く、応答パケットの到着頻度が高いと、サーバ211における処理負荷が高くなる。また、たとえば図10に示した記録テーブル352aで所望の時間差を得るために、テーブルサイズが大きくなる。
 これに対して、実施の形態10にかかるサーバ211は、応答パケットの到着頻度に応じて、到着した応答パケットを間引いて記録テーブル352aに記録する。応答パケットの到着頻度は、データパケットの送出レートに準じるため、サーバ211は、たとえば送出レートに応じて間引く割合を決定する。
 転送制御プロトコルとしてTCPを用いる場合は、送出レートは直接制御されず、CWND(congestion window:輻輳ウィンドウ)サイズでRTTあたりの送信パケット数が制御される。このため、サーバ211は、TCPあるいはその類のプロトコルを使っている場合は、たとえば、送出レートを制御するパラメータである輻輳ウィンドウサイズに応じ、応答パケットを間引く割合を決定する。
 たとえば、記録テーブル352aのエントリ数が64であるとする。この場合は、サーバ211は、64個のエントリでRTT相当の期間の応答パケットを保持できるようにするには、輻輳ウィンドウサイズ/64個の応答パケットに一回、記録テーブル352aのエントリに記録し残りを間引けばよい。
 このように、実施の形態10にかかるサーバ211は、クライアント221からの応答メッセージについて、サーバ211がクライアント221へデータを送信するレートを示す情報(たとえば輻輳ウィンドウサイズ)に応じて記録対象とする応答メッセージを間引いて、シーケンス番号と、送信時刻情報および到着時刻と、を記憶する。これにより、サーバ211における処理負荷を低減することができる。また、記録テーブル352aのサイズを小さくすることができる。
(実施の形態11)
 実施の形態11について、実施の形態8と異なる部分について説明する。上述のように、TCPにおいては、RTTあたりの送信パケット数が輻輳ウィンドウサイズで制限される。このため、差を取る応答パケットがちょうどRTT分の時間差にある場合は、応答パケットのシーケンスはちょうど輻輳ウィンドウサイズ分になり、計測レートは送出レートで支配されてしまう。
 すなわち、計測時間をRTTになるぐらいの幅にする場合は、可用帯域の計測に要するバーストサイズを得るためには、送出レートが可用レートに達していることを要し、このような状況においては空き帯域を探索しなくてもよい。
 したがって、現在の送出レートに対し、どのぐらい可用帯域があるかを知るために本計測方法を用いる場合は、サーバ211は、対象となる応答パケットはRTT期間に送出し得るパケット数より十分に短くする。ここで、RTT期間に送出し得るパケット数は、TCPの場合は一般に輻輳ウィンドウサイズに相当する。
 たとえば、実施の形態10のように応答パケットを間引いて記録を行う場合は、ほぼ64エントリがRTT相当になる。このため、用いるエントリ差(iとjの差)を8エントリ分、あるいは16エントリ分とすることができる。
 このように、実施の形態11にかかるサーバ211は、第3情報/第4情報取得対象とした応答メッセージの対を、その第3情報で示されるデータ量が、ラウンドトリップタイム内においてサーバ211がクライアント221へ送信し得るデータ量以下であるように応答メッセージの対を選択する。これにより、RTTあたりの送信パケット数が輻輳ウィンドウサイズで制限されていても、到着レートを精度よく計測することができる。
(実施の形態12)
 実施の形態12について、実施の形態11と異なる部分について説明する。到着レートの算出に使用する応答パケットの対の間隔は、短いと本来の可用レートより高いレートを計測してしまうリスクがある。ネットワークの変動、より具体的には、RTTの変動、あるいは後述の送信遅延の変動が大きい場合は、他トラフィックの影響を受けやすいと想定されるため、より安定志向の計測方法の方が実用的である。
 これに対して、実施の形態12にかかるサーバ211は、ネットワークの変動度合いに応じて到着レートを計測する応答パケットの間隔を調整する。たとえば、サーバ211は、到着レートを計測する応答パケットの間隔を、ネットワークの変動が大きいときに長く、小さいときには短くする。これにより、リスクのある状況下では安全度を取った制御を行うことができる。
 一例として、実施の形態10のように応答パケットを間引いて記録を行う場合について説明する。この場合は、サーバ211は、たとえばネットワークの変動が小さい場合はエントリ差(iとjの差)を8エントリ分とし、ネットワークの変動が大きい場合は16エントリ分、といった具合に評価対象とする応答パケット間隔を調整する。
 たとえば、エントリ差(iとjの差)を4エントリ分とする場合は、到着レート(バイト/秒)の算出結果は図11に示した算出結果1120のようになる。また、エントリ差(iとjの差)を8エントリ分とする場合は、到着レート(バイト/秒)の算出結果は図11に示した算出結果1130のようになる。
 算出結果1120,1130に示すように、エントリ数の差を取る間隔を倍にすると、差分対象とする応答パケットの時間差も約2倍となり、到着レートの算出がより長い時間幅で行われる。その結果、エントリ差を8エントリ分とした場合の方が、エントリ差を4エントリ分とした場合よりもピークが抑えられた結果が得られている(最大で3021913)。
 たとえば複数のトラフィックが混在して流れる場合は、経路上の送信キューにおけるパケットスケジューリングのバースト性によっては、長めの計測時間を取らないと一時的に許容されたバースト性によって本来より高いピークレートが見えることがある。このため、RTTの観測値の分散などによってトラフィック変動を評価し、評価結果に応じて遡るエントリ数の幅を変えることにより、到着レートをより精度よく計測することができる。
 このように、実施の形態12にかかるサーバ211は、第3情報/第4情報取得対象とする応答メッセージの対は、ネットワークの変動の大きさに応じ、その第4情報で示される時間経過が変動するように応答メッセージの対を選択する。これにより、ネットワークの変動に応じて到着レートを精度よく計測することができる。
(実施の形態13)
 実施の形態13について、実施の形態8と異なる部分について説明する。実施の形態13にかかるサーバ211は、TCPの送出レートの制御に到着レートの算出結果を用いる。上述のように、TCPにおいては一般にCWNDの値で送出レートが制御される。サーバ211は、たとえば、CWND/RTTの値が到着レートの算出結果のピーク値に近づくように、データパケットの送出レートの制御を行う。
 上述のように、到着レートの算出に用いる応答パケットの対の間隔を狭くすると、到着レートのピーク値が見える。このため、送信のバースト性が発生するような送り方をしていれば(すなわち送信時点で意図的にパケットの送信ペースを均一化しなければ)、ボトルネックリンクの可用帯域を使い切っていれば計測レートはピーク値、使い切っていなければより低い値が得られる。
 したがって、到着レートのピーク値を計測することによって、可用帯域を概ね推定することができる。このため、可用帯域の推定値を送出レートの制御目標値として送出レートを制御すれば、可用帯域に迅速に収束するような送出レート制御が可能となる。
 このように、実施の形態13にかかるサーバ211は、算出した到着レートのピーク値が送信可能帯域の上限値となるように、データパケットの送出レートを制御する。これにより、輻輳を抑えつつ効率よくデータパケットを伝送することができる。
(実施の形態14)
 実施の形態14について、実施の形態13と異なる部分について説明する。計測したピーク値はどこかで捨てること(エージング)をしないと、値が残ってしまう。
 これに対して、実施の形態14にかかるサーバ211は、一定期間経過したピーク値は捨てる(ピーク値のエージング)。たとえばTCP用の可用レートの計測を行う場合は、ピーク値は基本的にRTT内に一度は計測できるはずである。このため、サーバ211は、たとえば、過去1RTT~2RTT分の到着レートの最大値を保持し、保持した最大値が送信可能帯域の上限値となるように、データパケットの送出レートを制御する。
 このように、実施の形態14にかかるサーバ211は、算出した到着レートのうちの、所定期間以前の到着レートを除いた到着レートのピーク値に基づいて送出レートの制御を行う。これにより、サーバ211の負荷を低減することができる。また、古い到着レートに基づいて送出レートを制御して伝送効率が低下することを避けることができる。
(実施の形態15)
 実施の形態15について、実施の形態2と異なる部分について説明する。実施の形態15にかかるサーバ211は、たとえば図10に示した記録テーブル352aを、送信時刻の項目を含めて記憶する。
(サーバとクライアントとの間の信号の送受信)
 図12は、サーバとクライアントとの間の信号の送受信の一例を示す図である。サーバ211は、Ack(i)に対応するData(i)の送信時刻と、Ack(j)に対応するData(j)の送信時刻と、の差であるΔTds(i,j)を算出する。
 また、サーバ211は、ΔTar(i,j)に算出したクロック比を乗算した値と、算出したΔTds(i,j)と、の差を算出することにより、サーバ211からのデータパケットの遅延時間の変動を計測する。
 ΔTds(i,j)に対してΔTar(i,j)が時間的に増加している場合は、サーバ211からのデータパケットの遅延時間が増加していると判断することができる。一方、ΔTds(i,j)に対してΔTar(i,j)が時間的に低下している場合は、サーバ211からのデータパケットの遅延時間が低下していると判断することができる。
 パケットネットワークでの伝播遅延の増加は、通常、キュー滞留時間の増加により起こるため、このように計測した遅延時間の変動は、ネットワークにおける輻輳状態の指標として用いることが可能である。サーバ211は、遅延時間の変動の計測結果に基づいて、データパケットの送出レートを制御する。たとえば、サーバ211は、遅延時間が増加している場合は、データパケットの送出レートを増加させないようにしたり、低下させたりする。これにより、ネットワークの輻輳を抑えることができる。
 このように、実施の形態15にかかるサーバ211は、計測対象の最初と最後の各送信データのサーバ211における送信時刻の差を取得する。また、サーバ211は、計測対象の最初と最後の各送信データに対するクライアント221からの各応答メッセージのタイムスタンプの差と、算出したクロック比(時間換算係数)と、を乗算して得られる値と、を取得する。
 また、サーバ211は、取得した差と値との差に基づいてサーバ211からの送信データの遅延時間の変動を計測する。そして、サーバ211は、遅延時間の変動の計測結果に基づいて、データパケットの送出レートの制御を行う。これにより、ネットワークにおける輻輳状態に応じた送出レートの制御が可能になり、輻輳を抑えつつ効率よくデータパケットを伝送することができる。
(実施の形態16)
 実施の形態16について、実施の形態13または実施の形態15と異なる部分について説明する。TCPにおいては、空き帯域探索と輻輳検出が行われる。ここで、空き帯域探索の方法として、たとえば実施の形態13で示したように、ピーク値を可用帯域推定値として送出レートの制御目標に用いる方法がある。また、輻輳検出の方法として、実施の形態15で示した送信方向遅延の変動(とくに増加傾向)を用いる方法がある。これにより、ネットワークにおける通信相手までのパスにおける可用帯域の空きを迅速に検出するとともに、ネットワークの輻輳を抑える転送制御が可能となる。
 ここで、転送制御プロトコルの送出レート制御の方法によっては、直接ターゲットレートに送出レートを変更することが難しいケースもある。たとえば、上述のようにTCPにおいては輻輳ウィンドウの値で送出レートが調整されるが、輻輳ウィンドウの値をいきなり増やすと高いバーストトラフィックが発生し、ネットワークを輻輳させてしまう可能性がある。この場合は送出レートあるいは送出レートを制御するためのパラメータを、送出レートがターゲットレートになるように制御することが求められる。
 実施の形態13で示したようにTCPの輻輳制御を実施し、実施の形態15で示した構成により送信方向の遅延増加を検出する場合は、遅延の増加を一回の計測だけで行うと単なるパケット到着揺らぎ程度でも反応してしまう可能性がある。このため、たとえば複数の計測結果を累計し、その累計値が閾値を超えた場合に輻輳と判断する。
 輻輳への対応として、サーバ211は、たとえば輻輳ウィンドウの値を調整する。たとえば、サーバ211は、送出レートを半分に落とすことによって輻輳ウィンドウの値を調整する。送出レートを半分にする場合に、たとえば、サーバ211は、応答されたデータサイズが2パケット分に達したとき1パケット送ることが可能となるように輻輳ウィンドウの値を制御する。ただし、輻輳ウィンドウの値を調整する方法についてはこれに限らず、各種の方法を用いることができる。
 このように、実施の形態16にかかるサーバ211は、データパケットの遅延時間が増加している場合は、データパケットの送出レートを低下させる。これにより、ネットワークにおける輻輳を抑えることができる。
(実施の形態17)
 実施の形態17について、実施の形態16と異なる部分について説明する。実施の形態16に示したように、計測した利用可能帯域を一気に使うような制御をすると、その制御遅延の間での、ネットワーク内、とくにボトルネックリンクをシェアするようなトラフィックが急に増えた場合に急激なトラフィック増加が発生する場合がある。このため、バッファ溢れによるパケット廃棄を招く可能性がある。
 これに対して、実施の形態17にかかるサーバ211は、可用帯域との差が大きいときは大きめに送出レートを制御し、可用帯域との差が小さいときは小さめに送出レートを制御し、目標レートに指数的に収束するように送出レートを制御してもよい。
 ここでは、輻輳ウィンドウの値の調整により輻輳制御を実施する場合について説明する。この場合は、サーバ211は、目標値となる輻輳ウィンドウの値が現在の輻輳ウィンドウの値の2倍以上であるときに、RTTあたりの輻輳ウィンドウの値が倍になるように輻輳ウィンドウの値を調整する。また、サーバ211は、目標値となる輻輳ウィンドウの値が現在の輻輳ウィンドウの値の2倍未満のときはRTTあたりの輻輳ウィンドウの目標値との差が半分になるように輻輳ウィンドウの値を調整する。
 ここで、TCPの輻輳ウィンドウの値を急激に変えるとバーストトラフィックが発生してしまうため、1つの応答パケットあたり新規送信可能となるパケット数が2~4程度になるように輻輳ウィンドウの値を増加させてもよい。
 このように、実施の形態17にかかるサーバ211は、算出した到着レートに基づく送出レートの目標値と、現在の送出レートと、の相違(差または比)に応じて、送出レートの制御量を変化させる。たとえば、サーバ211は、算出した到着レートに基づく送出レートの目標値と、現在の送出レートと、の相違が大きいほど、送出レートの制御量を大きくする。これにより、急激なトラフィックの増加を回避することができる。
(実施の形態18)
 実施の形態18について、実施の形態16と異なる部分について説明する。実施の形態16に示したようにTCPの輻輳制御を実施している場合は、輻輳検出時に、計測されるクライアント221の到着レートは輻輳により低下していると想定される。この場合は、適正な利用可能帯域は、到着レートのピーク値ではなく、最新の到着レートがもっとも現実に近い利用可能帯域を示していると考えられる。
 これに対して、実施の形態18にかかるサーバ211は、輻輳検出時に、送出レートが到着レートの計測値に近づくように輻輳ウィンドウの値を調整する。たとえば、送出レートを半分にする場合は、サーバ211は、応答されたデータサイズが2パケット分に達したとき1パケット送ることが可能となるように輻輳ウィンドウの値を制御する。
 このように、実施の形態18にかかるサーバ211は、データパケットの遅延時間が増加している場合は、算出した到着レートに近づくようにデータパケットの送出レートを制御する。これにより、ネットワークの輻輳時に、実際の利用可能帯域を示す最新の到着レートによってデータパケットを送出することができる。このため、輻輳を抑えつつ効率よくデータパケットを伝送することができる。
(実施の形態19)
 実施の形態19について、実施の形態16と異なる部分について説明する。サーバ211がたとえば実施の形態16のような制御機能を有する場合であっても、クライアント221のクロック比が得られなければ正確な到着レートを算出することができない。
 これに対して、実施の形態19にかかるサーバ211は、クライアント221のクロック比が得られない場合は、TCPの輻輳制御に従来型アルゴリズム(たとえばrenoやcubic)を用いる。
 このように、実施の形態19にかかるサーバ211は、クライアント221のクロック比が得られない場合は、クロック比に基づく到着レートを用いた送出レートの制御とは異なる代替手段によって送出レートの制御を行う。これにより、クライアント221のクロック比が得られなくても送出レートの制御を行うことができる。
(実施の形態20)
 実施の形態20について、実施の形態16と異なる部分について説明する。サーバ211がたとえば実施の形態16のような制御機能を有する場合であっても、クライアント221のクロック比が得られなければ正確な到着レートを算出することができない。
 これに対して、実施の形態20にかかるサーバ211は、クライアント221のクロック比が得られない場合は、応答パケットの到着時刻差に対するデータ量によって算出されるデータレートを用いて送出レートを制御する。
 このように、実施の形態20にかかるサーバ211は、クライアント221のクロック比が得られない場合は、クロック比に基づく到着レートを用いた送出レートの制御とは異なる代替手段によって送出レートの制御を行う。これにより、クライアント221のクロック比が得られなくても送出レートの制御を行うことができる。
(実施の形態21)
 実施の形態21について、実施の形態16と異なる部分について説明する。サーバ211がたとえば実施の形態16のような制御機能を有する場合であっても、通信開始後しばらくは到着レートの算出結果が得られない。
 これに対して、実施の形態21にかかるサーバ211は、通信開始から所定の期間が経過するまでは、TCPの輻輳制御に従来型アルゴリズム(たとえばスロースタートあるいはrenoやcubic)を用いる。
 このように、実施の形態21にかかるサーバ211は、クライアント221との通信開始から所定の期間が経過するまでは、クロック比に基づく到着レートを用いた送出レートの制御とは異なる代替手段によって送出レートの制御を行う。これにより、通信開始後に迅速に送出レートの制御を行うことができる。
(実施の形態22)
 実施の形態22について、実施の形態16と異なる部分について説明する。サーバ211がたとえば実施の形態16のような制御機能を有する場合であっても、RTTの計測値がサーバ211の時刻計測分解能に比べて十分大きくないと、到着レートの算出の除数の有効桁数が十分に取れない。
 また、TCPではタイムスタンプはオプションのため、相手とのネゴシエーションの結果使用しないという運用も有り得る。このため、そもそもタイムスタンプを使わない通信を始めてしまった場合は到着レート計測が行えない。
 これに対して、実施の形態22にかかるサーバ211は、このような場合に、TCPの輻輳制御に従来型アルゴリズム(たとえばrenoやcubic)を用いる。
 このように、実施の形態22にかかるサーバ211は、RTTの計測値が一定値以内である場合に、クロック比に基づく到着レートを用いた送出レートの制御とは異なる代替手段によって送出レートの制御を行う。または、実施の形態22にかかるサーバ211は、クライアント221がタイムスタンプを付与しない場合に、クロック比に基づく到着レートを用いた送出レートの制御とは異なる代替手段によって送出レートの制御を行う。または、実施の形態22にかかるサーバ211は、サーバ211のクロック情報の分解能に比べて十分大きくない場合に、クロック比に基づく到着レートを用いた送出レートの制御とは異なる代替手段によって送出レートの制御を行う。
(実施の形態23)
 実施の形態23について、実施の形態2と異なる部分について説明する。
(実施の形態23にかかる中継装置)
 図13Aは、実施の形態23にかかる中継装置の一例を示す図である。図13Bは、図13Aに示した中継装置における信号の流れの一例を示す図である。図13A,図13Bにおいて、図3A,図3Bに示した部分と同様の部分については同一の符号を付して説明を省略する。
 図13A,図13Bに示す中継装置1300は、たとえば図2に示したインターネット201や無線アクセス網202に設けられ、サーバ211とクライアント221との間の通信を含む各コネクションの中継を行う中継装置である。
 中継装置1300は、リンクレイヤ処理部1310,1330と、コネクション識別処理部1321と、送信キュー1322と、コネクション管理部1323と、コネクション識別処理部1341と、送信パケットスケジュール部1342と、を備える。
 また、中継装置1300は、Ack情報記録部352と、クロック比計測部353と、相手到着レート計測部354と、送信遅延変動計測部355と、RTT計測部356と、コネクション送出レート制御部1351と、を備える。
 リンクレイヤ処理部1310は、リンクレイヤ受信部1311と、送信キュー群1312と、スケジューラ1313と、リンクレイヤ送信部1314と、を備える。リンクレイヤ受信部1311は、ネットワーク(たとえば図2のサーバ211)からのパケットを受信する。リンクレイヤ受信部1311が受信するパケットには、たとえば、サーバ211からのデータパケットがある。リンクレイヤ受信部1311は、受信したパケットをコネクション識別処理部1321へ出力する。
 送信キュー群1312は、中継装置1300が中継する各コネクションのそれぞれについての送信キューを含む。スケジューラ1313は、送信キュー群1312に格納されたパケットを、コネクション間のスケジューリングを行いながら順次読み出してリンクレイヤ送信部1314へ出力する。リンクレイヤ送信部1314は、スケジューラ1313から出力されたパケットをネットワーク(たとえば図2のサーバ211)へ送信する。
 コネクション識別処理部1321は、リンクレイヤ受信部1311から出力されたパケットのコネクションを識別する。そして、コネクション識別処理部1321は、識別結果をコネクション管理部1323へ出力する。また、コネクション識別処理部1321は、コネクションを識別したパケットを送信キュー1322に格納する。
 リンクレイヤ処理部1330は、リンクレイヤ送信部1331と、リンクレイヤ受信部1332と、を備える。リンクレイヤ送信部1331は、送信キュー1322に格納されたパケットを順次読み出してローカルリンク(たとえば図2のクライアント221)へ送信する。
 リンクレイヤ受信部1332は、ローカルリンク(たとえば図2のクライアント221)からのパケットを受信する。リンクレイヤ受信部1332が受信するパケットには、たとえば、クライアント221からサーバ211への応答パケットがある。リンクレイヤ受信部1332は、受信したパケットをコネクション識別処理部1341へ出力する。
 コネクション識別処理部1341は、リンクレイヤ受信部1332から出力されたパケットのコネクションを識別する。そして、コネクション識別処理部1341は、識別結果をコネクション管理部1323へ出力する。また、コネクション識別処理部1341は、コネクションを識別したパケットを送信パケットスケジュール部1342に格納する。
 送信パケットスケジュール部1342は、コネクション識別処理部1341から出力されたパケットと、送出レート制御パケットと、のスケジューリングを行い、スケジューリング結果に基づいて各パケットを送信キュー群1312へ格納する。
 コネクション管理部1323は、コネクション識別処理部1321,1341から出力されたコネクションの識別情報に基づいて、各コネクションの状態などを示すコネクション管理テーブル1323a(たとえば図14参照)を管理する。また、コネクション管理部1323は、応答パケットについての識別情報に基づいて、応答パケットに関する情報を識別情報とともにAck情報記録部352へ出力する。
 Ack情報記録部352は、コネクション管理部1323から出力された情報に基づいて、コネクションごとに設けられる記録テーブル352aを記録する。クロック比計測部353は、クロック比をコネクションごとに計測する。相手到着レート計測部354は、到着レートをコネクションごとに計測する。送信遅延変動計測部355は、送信遅延変動をコネクションごとに計測する。RTT計測部356は、RTTをコネクションごとに計測する。
 コネクション送出レート制御部1351は、相手到着レート計測部354から出力された到着レートに基づいて、パケットの送出レートをコネクションごとに決定する。そして、コネクション送出レート制御部1351は、決定した送出レートを示し、対象のコネクションの送信側(たとえばサーバ211)を宛先とする送出レート制御パケットを送信パケットスケジュール部1342へ出力する。これにより、相手到着レート計測部354における到着レートの計測結果に基づいて、パケットの送信側に対して送出レートを制御させることができる。
 ここではコネクションごとに到着レートを計測して送出レートを制御する場合について説明したが、到着レートの計測および送出レートの制御の対象は、中継装置1300が中継する各コネクションのうちの一部のコネクションであってもよい。
 また、ここでは到着レートの計測結果によって送信側の送出レートを制御する場合について説明したが、到着レートの計測結果をネットワーク状態監視のパラメータとして用いてもよい。また、到着レートの計測結果を中継装置1300の内部でのQoS(Quality of Service)制御に用いてもよい。また、到着レートの計測結果を中継装置1300が制御可能な帯域制御やパケットスケジューリングに用いてもよい。
 図13A,図13Bに示した中継装置1300は、たとえば図3Cに示した通信装置380によって実現することができる。この場合は、図13A,図13Bに示したリンクレイヤ処理部1310,1330は、たとえば通信インタフェース384によって実現することができる。図13A,図13Bに示したコネクション識別処理部1321、コネクション管理部1323、コネクション識別処理部1341および送信パケットスケジュール部1342は、たとえばCPU381によって実現することができる。
 図13A,図13Bに示したAck情報記録部352、クロック比計測部353および相手到着レート計測部354は、たとえばCPU381によって実現することができる。図13A,図13Bに示した送信遅延変動計測部355、RTT計測部356およびコネクション送出レート制御部1351は、たとえばCPU381によって実現することができる。
 図13A,図13Bに示した送信キュー1322は、たとえばRAM382によって実現することができる。図13A,図13Bに示した記録テーブル352aおよびコネクション管理テーブル1323aは、たとえばRAM382に記憶される。
(コネクション管理テーブル)
 図14は、コネクション管理テーブルの一例を示す図である。コネクション管理部1323は、コネクション識別処理部1321,1341から出力されたコネクションの識別情報に基づいて、たとえば図14に示すコネクション管理テーブル1323aを管理する。このようなコネクション管理テーブル1323aを管理することにより、中継装置1300が中継する各コネクションのうち、到着レートの計測対象のコネクションについての各パケットの情報を抽出することができる。このコネクションの生成や管理には、たとえばコネクショントラッキング(connection tracking)の技術などを用いることができる。
 このように、実施の形態23によれば、クライアント221の側に機能を追加しなくても、サーバ211とクライアント221との間の中継装置1300によってクライアント221における到着レートを計測することが可能になる。また、その計測方法の調整により計測するデータレートの利用形態に合った計測結果を得ることができる。
 また、この計測結果を、データ転送を行うプロトコルの送出レートの制御に用いることにより、クライアント221への可用帯域の推定や可用帯域の空きの検出を行うことができる。このため、送出レートを可用帯域にあわせてより適切に調整することが可能となり、通信スループットの向上やネットワークの利用効率の向上を図ることができる。
 以上説明したように、計測装置、通信装置、中継装置、計測方法および計測プログラムによれば、到着レートの計測精度の向上を図ることができる。
 上述した実施の形態2~23においては、図1に示した計測装置101および第1通信装置110をサーバ211に適用し、図1に示した第2通信装置120をクライアント221に適用する場合について説明した。ただし、計測装置101、第1通信装置110および第2通信装置120の適用態様はこれに限らない。たとえば、図1に示した計測装置101および第1通信装置110をクライアント221に適用し、図1に示した第2通信装置120をサーバ211に適用することも可能である。
 近年のネットワークは、ネットワーク層以下はデータをパケット化し、データグラムとして宛先まで配送し、エンド-エンドの転送保証は、ネットワーク層の上位においてエンドーエンドでTCPなどのトランスポート層サービスを用いて実現されることが多い。エンドーエンドのトランスポート層サービスを用いた個々の通信をコネクションと称する。
 このようなネットワーク構成においては、特にネットワークの規模が大きくなると、ネットワークとして個々のトラフィックを厳密に制御することは難しく、一部の特定用途を除き、ベストエフォート型でネットワークを利用することになる。
 したがって、ネットワークの容量を超えるようなトラフィックが発生し、その過剰分をキュー等により吸収しきれない場合は、ネットワーク内でパケットの廃棄が発生する。ここで、ベストエフォートだからといって、個々のコネクションが無秩序にデータを流すと容易に各リンクの容量を超えたトラフィックが発生し、その結果パケット廃棄が大量に発生し、実効的な通信が行えなくなる場合がある。
 過剰な送信を行うとネットワーク内でバッファ溢れを起こし、自身のデータ転送効率を下げるだけでなく、ほかのトラフィックの通信も妨げてしまう。一方、控えめに送信しすぎると、ネットワークの容量を余らせてしまいデータ転送時間がその分長くかかる。なお、この特性はインターネットでなくても合流や分岐があるようなパケット網でベストエフォート型通信をする場合であれば生じるものである。
 また、近年は別の要因でも利用可能な通信帯域が変動する。技術の進展により、データ通信に供するリンクレイヤ技術にさまざまなものが登場し、さらに混在や多段接続で使われる。そのようなリンクにおいては、たとえば無線通信を用いる場合、昨今は電波状況に応じて最適な変調方式を動的に切り替えるような制御が一般化しているため、他にトラフィックが流れてなくても利用可能帯域は変動しうる。
 したがって、ベストエフォートで通信を行うネットワークにおいては、急激なトラフィック変動を避けつつ、ネットワークの混み具合やリンク容量の変動により変化する利用可能なスループットを探りながら相手への送出レートを調整する輻輳制御が求められる。しかし、利用可能な通信帯域は絶えず変動するため、絶えず良好なスループットを得るには、利用可能な通信帯域を迅速に知ることが求められる。
 トランスポート層サービスを実現するプロトコルとして多く利用されているTCPにおいては、輻輳を回避するための輻輳制御アルゴリズムとして、tahoeおよびその改良版reno/new renoと称される輻輳制御アルゴリズムが実装されている。
 しかし、これらアルゴリズムは、廃棄を検出するまでは、RTTあたり送信パケット数を1つずつ増やし、廃棄を検出したらRTTあたり送信パケット数を半分あるいは最小値にするといった単純なものである。このため、RTTが大きいとなかなかスループットが上がらず、実行通信速度が得られない場合がある。
 このため、パケット廃棄が検出されない場合により積極的にパケット送信量を増やすような提案や、さらにネットワークの輻輳をRTTの変化を用いて検出するような提案がこれまでなされてきた。しかし、廃棄検出をスループットの抑制に用いるような方法は、絶えずパケット廃棄を発生させるため、ネットワークの効率を低下させ、またバッファ滞留を定常的に起こす場合がある。
 また、輻輳を遅延増加で検出する方法は、可用帯域を超えたことは分かっても、可用帯域に余裕があるときにどのぐらい空きがあるかを知ることができないため、結局は輻輳が発生しないよう、ゆっくりスループットを上げる手法を取らざるを得なかった。
 こうした制御の限界は、可用帯域を積極的に知ることにより改善できることが考えられるが、この計測は容易ではない。よく知られている方法としては、送信側が過剰に送信すれば、受信側に届く帯域は途中の一番細いリンク(ボトルネックリンク)に律速されるため、受信レートを計測することにより可用帯域を知る方法がある。
 しかし、受信レートを直接計測することができるのは受信側であり、この実現には受信側で計測して結果を送信側に伝えることを要する。特にTCPのようなすでに広く使われるプロトコルがある状況では、送受信側双方に実装しないと機能しない方法は普及させるのが難しい。これまでのTCPの輻輳制御アルゴリズムも、送信側のみに適用されるものであるため、効果を得やすいという状況があった。
 一方、送信側だけの対応で可能な制御として、Ackパケットで通知されるAck番号の進み具合によって相手への到着レートを計測する方法が知られている。受信側が、データ受信後速やかに応答パケットを返信すれば、応答パケット間隔はデータパケットの到着間隔を示す。
 しかし、この計測方法は、Ackパケットが返送されるパスでのキュー遅延の影響を受けやすい。ネットワーク上に他のパケットが流れていないような理想的な条件では、Ackパケットはその長さ自体が短いため迅速に返送され、ほぼ伝播遅延でデータ送信元に返される。しかし、現実には他のトラフィックの影響で到着時間が容易に変動する。たとえば、戻りパスの方向に他トラフィックの長いパケットがあるだけでキューイングディレイが無視できないレベルで発生する。
 高々1パケットレベルでのキュー遅延であれば、複数のAckパケットをもとにデータ到着レートを計測することにより変動を抑えることが可能である。しかし、戻りパス自体に輻輳が起き始め徐々に遅延が増加していくような状況ではAckパケットの到着間隔はデータ到着間隔に対し広がり続けるしその逆も起こりうる。したがって、このような状況では到着レートを精度よく計測することが困難である。
 これに対して、上述した各実施の形態によれば、応答メッセージの送信時刻情報および到着時刻を用いることにより、送信側において容易に取得可能な各情報に基づいて到着レートを計測することができる。このため、受信側に機能を追加しなくても到着レートを計測することができる。また、到着レートの計測結果に対する、Ackパケットのキュー遅延の影響を抑えることができる。
 さらに、送信側と受信側の間の時間比(時間換算係数)を算出して用いることにより、送信側と受信側の各時間基準が一致していなくても到着レートを精度よく計測することができる。
 なお、本実施の形態で説明した計測方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
 100,200 通信システム
 101 計測装置
 110 第1通信装置
 111-1~111-k 送信データ
 120 第2通信装置
 121-1~121-k 応答メッセージ
 201 インターネット
 202 無線アクセス網
 211~214,300 サーバ
 221,222 クライアント
 310,1310,1330 リンクレイヤ処理部
 311,1311,1332 リンクレイヤ受信部
 312,1314,1331 リンクレイヤ送信部
 321 受信データ組立部
 322 受信データバッファ
 330 通信アプリケーション実行部
 341 送信データバッファ
 342 送信パケット構築部
 343,1322 送信キュー
 351 Ack情報解析部
 352 Ack情報記録部
 352a,710,1110 記録テーブル
 353 クロック比計測部
 354 相手到着レート計測部
 355 送信遅延変動計測部
 356 RTT計測部
 357 送出レート制御部
 358 再送制御部
 359 応答待バッファ
 380 通信装置
 381 CPU
 382 RAM
 383 不揮発メモリ
 384 通信インタフェース
 389 バス
 410 フォーマット
 411 オプション領域
 420,430 エンコード方式
 601 到着レート
 602~605 計測結果
 610 物理帯域上限
 620 他トラフィック
 720,1120,1130 算出結果
 800 クロック比テーブル
 1300 中継装置
 1312 送信キュー群
 1313 スケジューラ
 1321,1341 コネクション識別処理部
 1323 コネクション管理部
 1323a コネクション管理テーブル
 1342 送信パケットスケジュール部
 1351 コネクション送出レート制御部

Claims (23)

  1.  第1通信装置から第2通信装置への2つの送信データに対する前記第2通信装置からの応答メッセージのうち任意の2つの応答メッセージの前記第2通信装置により付された送信時刻情報の差を示す第1情報と、
     前記2つの応答メッセージの前記第1通信装置への到着時刻の差を示す第2情報と、
     前記第1通信装置から前記第2通信装置への送信データに対する、前記第1情報/第2情報取得対象としたものと同じ、あるいは異なる任意の2つの応答メッセージに対し、その2つの応答メッセージの間において前記第2通信装置へ到着した送信データの合計のデータ量を示す第3情報と、
     その第3情報算出の対象とした2つの応答メッセージの前記第2通信装置により付された送信時刻情報の差を示す第4情報と、
     に基づいて、前記第1情報と前記第2情報とに基づく前記第1通信装置と前記第2通信装置との間の時間換算係数と、前記第3情報と前記第4情報とに基づくレートと、を乗じて得られる値を算出することにより前記第2通信装置における到着レートを算出する算出部を備えることを特徴とする計測装置。
  2.  前記算出部は、
     前記時間換算係数算出において、前記2つの応答メッセージ対を複数組について対応する前記第1情報/第2情報を取得し平均化する、
     ことを特徴とする請求項1に記載の計測装置。
  3.  前記第1情報/第2情報取得対象の2つの応答メッセージは、前記第3情報/第4情報取得対象とした応答メッセージの間隔よりも長い時間間隔のものを使用することを特徴とする請求項1に記載の計測装置。
  4.  前記算出部は、時間換算係数の複数の候補の中から前記第1情報と前記第2情報との比に最も近い時間換算係数を特定し、特定した前記時間換算係数と前記レートとを乗じることにより前記到着レートを算出することを特徴とする請求項1~3のいずれか一つに記載の計測装置。
  5.  前記算出部は、算出した1つの前記時間換算係数を用いて異なる期間の複数の前記到着レートを算出することを特徴とする請求項1~4のいずれか一つに記載の計測装置。
  6.  前記算出部は、前記第1通信装置と前記第2通信装置との間の通信中に継続的に前記時間換算係数を算出することを特徴とする請求項1~4のいずれか一つに記載の計測装置。
  7.  前記第1通信装置から前記第2通信装置への各送信データに対する前記第2通信装置からの応答メッセージについて、その応答確認された送信データに対応するシーケンス番号と、その応答メッセージの前記送信時刻情報および前記第1通信装置への到着時刻と、を記憶する記憶部を備え、
     前記算出部は、前記記憶部の記憶内容に基づいて、前記第1情報、前記第2情報、前記第3情報および前記第4情報を算出することを特徴とする請求項1~6のいずれか一つに記載の計測装置。
  8.  前記記憶部は、前記第2通信装置からの応答メッセージのうちの、遅延応答によって前記第2通信装置から送信された応答メッセージを除く応答メッセージのそれぞれについて、前記シーケンス番号と、前記送信時刻情報および前記第1通信装置への到着時刻と、を記憶することを特徴とする請求項7に記載の計測装置。
  9.  前記記憶部は、前記第2通信装置からの応答メッセージについて、前記第1通信装置が前記第2通信装置へデータを送信するレートを示す情報に応じて記録対象とする応答メッセージを間引いて、前記シーケンス番号と、前記送信時刻情報および前記第1通信装置への到着時刻と、を記憶することを特徴とする請求項7または8に記載の計測装置。
  10.  前記第3情報/第4情報取得対象とした応答メッセージの対を、その第3情報で示されるデータ量が、ラウンドトリップタイム内において前記第1通信装置が前記第2通信装置へ送信し得るデータ量以下であるように応答メッセージの対を選択することを特徴とする請求項1~9のいずれか一つに記載の計測装置。
  11.  前記第3情報/第4情報取得対象とする応答メッセージの対は、ネットワークの変動の大きさに応じ、その第4情報で示される時間経過が変動するように応答メッセージの対を選択することを特徴とする請求項1~10のいずれか一つに記載の計測装置。
  12.  自装置から宛先通信装置へデータの送信を行う通信装置において、そのデータ送信に対する前記宛先通信装置からの任意の2つの応答メッセージについて、前記宛先通信装置により付されたそれぞれの送信時刻情報の差を示す第1情報と、
     前記2つの応答メッセージの自装置への到着時刻の差を示す第2情報と、
     自装置から前記宛先通信装置への送信データに対する、前記第1情報/第2情報取得対象としたものと同じ、あるいは異なる任意の2つの応答メッセージに対し、その2つの応答メッセージの間において宛先通信装置へ到着した送信データの合計のデータ量を示す第3情報と、
     その第3情報算出の対象とした2つの応答メッセージの前記宛先通信装置により付された送信時刻情報の差を示す第4情報と、
     に基づいて、前記第1情報と前記第2情報とに基づく自装置と前記宛先通信装置との間の時間換算係数と、前記第3情報と前記第4情報とに基づくレートと、を乗じて得られる値を算出することにより前記宛先通信装置における到着レートを算出する算出部と、
     前記算出部によって算出された到着レートに基づく、自装置から前記宛先通信装置への送信データの送出レートの制御を行う制御部と、
     を備えることを特徴とする通信装置。
  13.  前記制御部は、前記第1情報と前記第2情報との比が、時間換算係数の複数の範囲の中に含まれていない場合は、前記到着レートに基づく前記送出レートの制御を行わないことを特徴とする請求項12に記載の通信装置。
  14.  前記制御部は、複数組の前記2つの応答メッセージについての前記時間換算係数を算出し、算出した各時間換算係数のばらつきが所定の大きさ以上である場合は前記到着レートに基づく前記送出レートの制御を行わないことを特徴とする請求項12または13に記載の通信装置。
  15.  前記制御部は、前記算出部によって算出された到着レートのピーク値が送信可能帯域の上限値となるように前記送出レートの制御を行うことを特徴とする請求項12~14のいずれか一つに記載の通信装置。
  16.  前記制御部は、前記算出部によって算出された到着レートのうちの、所定期間以前の到着レートを除いた到着レートのピーク値に基づいて前記送出レートの制御を行うことを特徴とする請求項15に記載の通信装置。
  17.  前記制御部は、
     送信データの受領に対応し前記宛先通信装置が送信する任意の2つの応答メッセージにおける前記送信時刻情報の差と前記時間換算係数とを乗算して得られる値に対する、前記2つの応答メッセージそれぞれに対応する送信データを自装置が送信を行った時刻の差に基づいて自装置からの送信信号の遅延時間の変動を計測し、
     前記遅延時間の変動の計測結果に基づいて前記送出レートの制御を行う、
     ことを特徴とする請求項12~16のいずれか一つに記載の通信装置。
  18.  前記制御部は、前記遅延時間の変動の計測結果に基づいて、前記遅延時間が増加している場合は前記送出レートを低下させることを特徴とする請求項17に記載の通信装置。
  19.  前記制御部は、前記到着レートに基づく前記送出レートの目標値と現在の前記送出レートとの相違に応じて、前記送出レートの制御量を変化させることを特徴とする請求項12~18のいずれか一つに記載の通信装置。
  20.  前記制御部は、前記遅延時間の変動の計測結果に基づいて、前記遅延時間が増加している場合は、前記算出部によって算出された到着レートに近づくように前記送出レートを制御することを特徴とする請求項17に記載の通信装置。
  21.  第1通信装置と第2通信装置との間の通信を中継する中継装置であって、
     前記第1通信装置から前記第2通信装置への送信データに対する前記第2通信装置からの任意の2つの応答メッセージにおける前記第2通信装置により付された送信時刻情報の差を示す第1情報と、
     前記2つの応答メッセージの前記中継装置への到着時刻の差を示す第2情報と、
     前記第1通信装置から前記第2通信装置への送信データに対する、前記第1情報/第2情報取得対象としたものと同じ、あるいは異なる任意の2つの応答メッセージに対し、その2つの応答メッセージの間において前記第2通信装置へ到着した送信データの合計のデータ量を示す第3情報と、
     その第3情報算出の対象とした2つの応答メッセージの前記第2通信装置により付された送信時刻情報の差を示す第4情報と、
     に基づいて、前記第1情報と前記第2情報とに基づく前記第1通信装置と前記第2通信装置との間の時間換算係数と、前記第3情報と前記第4情報とに基づくレートと、を乗じて得られる値を算出することにより前記第2通信装置における到着レートを算出する算出部と、
     を備えることを特徴とする中継装置。
  22.  第1通信装置から第2通信装置への送信データに対する前記第2通信装置からの応答メッセージのうち任意の2つの応答メッセージに対し、前記第2通信装置により付されたそれぞれの送信時刻情報の差を示す第1情報と、
     前記2つの応答メッセージの前記第1通信装置への到着時刻の差を示す第2情報と、
     前記第1通信装置から前記第2通信装置への送信データに対する、前記第1情報/第2情報取得対象としたものと同じ、あるいは異なる任意の2つの応答メッセージに対し、その2つの応答メッセージの間において前記第2通信装置へ到着した送信データの合計のデータ量を示す第3情報と、
     その第3情報算出の対象とした2つの応答メッセージの前記第2通信装置により付された送信時刻情報の差を示す第4情報と、
     に基づいて、前記第1情報と前記第2情報とに基づく前記第1通信装置と前記第2通信装置との間の時間換算係数と、前記第3情報と前記第4情報とに基づくレートと、を乗じて得られる値を算出することにより前記第2通信装置における到着レートを算出することを特徴とする計測方法。
  23.  コンピュータに、
     第1通信装置から第2通信装置への送信データに対する前記第2通信装置からの応答メッセージのうち任意の2つの応答メッセージに対し、前記第2通信装置により付されたそれぞれの送信時刻情報の差を示す第1情報と、
     前記2つの応答メッセージの前記第1通信装置への到着時刻の差を示す第2情報と、
     前記第1通信装置から前記第2通信装置への送信データに対する、前記第1情報/第2情報取得対象としたものと同じ、あるいは異なる任意の2つの応答メッセージに対し、その2つの応答メッセージの間において前記第2通信装置へ到着した送信データの合計のデータ量を示す第3情報と、
     その第3情報算出の対象とした2つの応答メッセージの前記第2通信装置により付された送信時刻情報の差を示す第4情報と、
     に基づいて、前記第1情報と前記第2情報とに基づく前記第1通信装置と前記第2通信装置との間の時間換算係数と、前記第3情報と前記第4情報とに基づくレートと、を乗じて得られる値を算出することにより前記第2通信装置における到着レートを算出する処理を実行させることを特徴とする計測プログラム。
PCT/JP2013/076157 2013-09-26 2013-09-26 計測装置、通信装置、中継装置、計測方法および計測プログラム WO2015045080A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015538721A JP6004116B2 (ja) 2013-09-26 2013-09-26 計測装置、通信装置、中継装置、計測方法および計測プログラム
PCT/JP2013/076157 WO2015045080A1 (ja) 2013-09-26 2013-09-26 計測装置、通信装置、中継装置、計測方法および計測プログラム
US15/081,410 US10129123B2 (en) 2013-09-26 2016-03-25 Measurement apparatus, communications apparatus, and relay apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/076157 WO2015045080A1 (ja) 2013-09-26 2013-09-26 計測装置、通信装置、中継装置、計測方法および計測プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/081,410 Continuation US10129123B2 (en) 2013-09-26 2016-03-25 Measurement apparatus, communications apparatus, and relay apparatus

Publications (1)

Publication Number Publication Date
WO2015045080A1 true WO2015045080A1 (ja) 2015-04-02

Family

ID=52742284

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/076157 WO2015045080A1 (ja) 2013-09-26 2013-09-26 計測装置、通信装置、中継装置、計測方法および計測プログラム

Country Status (3)

Country Link
US (1) US10129123B2 (ja)
JP (1) JP6004116B2 (ja)
WO (1) WO2015045080A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017117671A1 (en) * 2016-01-06 2017-07-13 Fathom Systems Inc. Range determination without prior synchronization between transceivers
JP2018067788A (ja) * 2016-10-19 2018-04-26 日本電気株式会社 受信トラヒックの高速化装置、高速化方法、および高速化プログラム
WO2023170778A1 (ja) * 2022-03-08 2023-09-14 日本電気株式会社 帯域計測装置、データ送信装置、方法、及びコンピュータ可読媒体

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10547699B2 (en) * 2013-11-21 2020-01-28 Xandr Inc. Methods and apparatus for statistical mobile device identification
CN107211310B (zh) * 2014-12-15 2020-08-18 诺基亚通信公司 用于通信中的测量协调的方法和装置
US10148543B2 (en) * 2015-12-23 2018-12-04 EMC IP Holding Company LLC Connection-oriented communication devices with round trip time estimation
US9813299B2 (en) * 2016-02-24 2017-11-07 Ciena Corporation Systems and methods for bandwidth management in software defined networking controlled multi-layer networks
US20180041415A1 (en) * 2016-08-03 2018-02-08 Qualcomm Incorporated Mitigation of transmission control protocol throughput degradation in communication devices due to predictable radio impairment events
US10389644B2 (en) * 2017-02-14 2019-08-20 The United States Of America As Represented By The Secretary Of The Air Force Method and apparatus for waveform independent congestion control
US11395112B2 (en) * 2018-06-14 2022-07-19 Sumitomo Electric Industries, Ltd. Wireless sensor system, wireless terminal device, communication control method and communication control program
CN110134628B (zh) * 2019-05-17 2021-02-02 北京百度网讯科技有限公司 消息传输方法、装置、设备及存储介质
US11115308B2 (en) * 2020-01-07 2021-09-07 Alibaba Group Holding Limited System and method for congestion control using time difference congestion notification
NO346434B1 (en) * 2021-11-18 2022-08-08 Pexip AS Method, system and computer program product for initiating downspeeding in a videoconferencing session
EP4184885B1 (en) * 2021-11-18 2024-03-13 Pexip AS Method, system and computer program product for determining congestion of a communication link transmitting a media stream over the communication link

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009077442A (ja) * 2008-12-22 2009-04-09 Nec Corp 通信端末、通信システム、輻輳制御方法、及び輻輳制御用プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999025085A1 (en) * 1997-11-07 1999-05-20 Visual Networks Technologies, Inc. Method and apparatus for performing service level analysis of communications network performance metrics
WO2001091375A2 (en) 2000-05-19 2001-11-29 Williams Communications Llc Method and system for measuring one-way delay variation
US7551560B1 (en) * 2001-04-30 2009-06-23 Opnet Technologies, Inc. Method of reducing packet loss by resonance identification in communication networks
KR100640492B1 (ko) 2004-08-31 2006-10-30 삼성전자주식회사 네트워크의 가용 대역폭 측정 방법
JP4402619B2 (ja) 2005-06-02 2010-01-20 日本電信電話株式会社 マルチキャスト通信フロー制御方法および装置
US8345561B2 (en) * 2006-08-22 2013-01-01 Rueters America Inc. Time monitor
JP4853319B2 (ja) 2007-02-14 2012-01-11 日本電気株式会社 リアルタイム通信におけるメディア品質制御方法、品質制御通信システム、品質制御装置、及び制御プログラム
JP4367505B2 (ja) 2007-03-06 2009-11-18 日本電気株式会社 通信端末、通信システム、輻輳制御方法、及び輻輳制御用プログラム
US20140056157A1 (en) * 2012-08-24 2014-02-27 Ascom Network Testing Ab Systems and Methods for Measuring Available Bandwidth in Mobile Telecommunications Networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009077442A (ja) * 2008-12-22 2009-04-09 Nec Corp 通信端末、通信システム、輻輳制御方法、及び輻輳制御用プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
XU, K. ET AL.: "Stability and fairness of rate estimation-based AIAD congestion control in TCP.", COMMUNICATIONS LETTERS, vol. 9, no. 4, 2005, pages 378 - 380 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017117671A1 (en) * 2016-01-06 2017-07-13 Fathom Systems Inc. Range determination without prior synchronization between transceivers
JP2018067788A (ja) * 2016-10-19 2018-04-26 日本電気株式会社 受信トラヒックの高速化装置、高速化方法、および高速化プログラム
WO2023170778A1 (ja) * 2022-03-08 2023-09-14 日本電気株式会社 帯域計測装置、データ送信装置、方法、及びコンピュータ可読媒体

Also Published As

Publication number Publication date
US10129123B2 (en) 2018-11-13
JP6004116B2 (ja) 2016-10-05
US20160212032A1 (en) 2016-07-21
JPWO2015045080A1 (ja) 2017-03-02

Similar Documents

Publication Publication Date Title
JP6004116B2 (ja) 計測装置、通信装置、中継装置、計測方法および計測プログラム
US9674095B2 (en) Communication node
EP2522109B1 (en) Method of estimating congestion
US9900357B2 (en) Rate control
EP1382219B1 (en) Method and device for robust real-time estimation of bottleneck bandwidth
US10057147B2 (en) Apparatus and method for controlling data flow in communication system
US7782767B1 (en) Method and system for calculating burst bit rate for IP interactive applications
JP2006014329A (ja) 通信端末
JP2007335994A (ja) 無線通信装置及び送信制御方法
CN112054965A (zh) 一种拥塞控制方法、设备及计算机可读介质
US9510354B2 (en) Method and a device for low intrusive fast estimation of the bandwidth available between two IP nodes
KR20060100512A (ko) 전송제어 프로토콜 기반의 네트워크에서 평균 대역폭 추정방법 및 시스템
KR20160028792A (ko) 무선 통신 시스템에서 전송 제어를 위한 방법 및 장치
Amponis et al. Introducing a New TCP Variant for UAV networks following comparative simulations
Zhong et al. Performance evaluation of CQIC and TCP BBR in mobile network
JP2006279730A (ja) 輻輳制御方法および送信装置および受信装置
JP6418169B2 (ja) 遅延最小値算出装置、情報送信装置、遅延最小値算出方法およびコンピュータプログラム
KR102176176B1 (ko) 전송 제어 프로토콜을 이용하는 무선 네트워크에서 혼잡 제어 방법 및 장치
WO2019124290A1 (ja) 送信データ量制御装置、方法および記録媒体
Adhari et al. Eclipse: A new dynamic delay-based congestion control algorithm for background traffic
Harhalakis et al. An experimental study of the efficiency of explicit congestion notification
EP4221144A1 (en) Determining optimized data rates for a communication path
US11184803B2 (en) Data transmission device, method and recording medium
JP2009124551A (ja) 監視装置
Mikkelsen et al. Performance evaluation of methods for estimating achievable throughput on cellular connections

Legal Events

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

Ref document number: 13894223

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015538721

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13894223

Country of ref document: EP

Kind code of ref document: A1