Abstract:
A throughput measuring method includes: acquiring a plurality of data packets at an observation point on a network, the plurality of data packets being transmitted from a transmission source apparatus and received by a transmission destination apparatus; calculating a plurality of round trip times, for each of the data packets, from a time point of acquisition of each of the data packets transmitted from the transmission source apparatus to a time point of acquisition of response packet corresponding to each of the data packets; identifying a measurement time section including the plurality of calculated round trip times increasing in ascending order of identification numbers of the response packets; and calculating a throughput of the identified measurement time section based on data quantities of the plurality of data packets transmitted from the transmission source apparatus during the identified measurement time section.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
       [0001]    This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2015-044965, filed on Mar. 6, 2015, the entire contents of which are incorporated herein by reference. 
       FIELD 
       [0002]    The embodiments discussed herein are related to a throughput measuring method, a recording medium, and an apparatus. 
       BACKGROUND 
       [0003]    In communication between terminals, between a server and a terminal, or the like, communication speed is affected by the state of a terminal, the state of a server, a bandwidth shortage of a network, and the states of the devices through which communication is made. Throughput is used as an indicator indicating a communication speed. 
         [0004]      FIG. 18  is a diagram for explaining throughput. As illustrated in  FIG. 18 , there are two kinds of throughput, that is to say, effective throughput and maximum effective throughput. The effective throughput is a processing capacity (the amount of data transfer) per unit time, which was actually able to be used. On the other hand, the maximum effective throughput is throughput of when a free bandwidth excluding traffic of the other terminals has been used up in a bottleneck section. 
         [0005]    In  FIG. 18 , if it is assumed that the throughput of when the transmission path is fully occupied is 100 Mbps (100 megabits per second), and the other terminals are using a bandwidth for 50 Mbps, the maximum effective throughput is 50 Mbps. On the other hand, the measurable effective throughput is less than the maximum effective throughput and is 30 Mbps, for example. Whether or not the free bandwidth of a network is fully used is determined by the maximum effective throughput. 
         [0006]    In this regard, a related-art technique for achieving data transmission based on a reliable and efficient rate setting is provided. In this technique, rate control is performed with maximum throughput calculated based on a data transmission-and-reception period excluding a data transmission-and-reception non-execution period having no contribution to data transmission and reception as the upper limit. 
         [0007]    Also, a related-art technique for using radio resources efficiently and improving system throughput is provided. In the technique, a NACK is discarded if a time interval obtained based on a NACK reception time and a transmission time of data re-transmitted immediately before the NACK reception is less than the round trip time (RTT). 
         [0008]    As a related-art example, Japanese Laid-open Patent Publication Nos. 2006-279283 and 2013-34048 are known. 
         [0009]    Whether or not a delay in communication is caused by a bandwidth shortage of a network is determined by the fact of whether or not a free bandwidth of the network is fully used. However, throughput that is able to be measured currently is effective throughput. The bandwidth used by the other terminals is not fixed, and thus there is a problem in that it is difficult to measure the maximum effective throughput used for determining whether or not the free bandwidth of the network is fully used. 
       SUMMARY 
       [0010]    According to an aspect of the invention, a throughput measuring method includes: acquiring a plurality of data packets at an observation point on a network, the plurality of data packets being transmitted from a transmission source apparatus and received by a transmission destination apparatus; calculating a plurality of round trip times, for each of the data packets, from a time point of acquisition of each of the data packets transmitted from the transmission source apparatus to a time point of acquisition of response packet corresponding to each of the data packets; identifying a measurement time section including the plurality of calculated round trip times increasing in ascending order of identification numbers of the response packets; and calculating a throughput of the identified measurement time section based on data quantities of the plurality of data packets transmitted from the transmission source apparatus during the identified measurement time section. 
         [0011]    The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims. 
         [0012]    It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed. 
     
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0013]      FIG. 1A  is a first diagram for explaining measurement of maximum effective throughput; 
           [0014]      FIG. 1B  is a second diagram for explaining measurement of maximum effective throughput; 
           [0015]      FIG. 2  is a diagram for explaining a measuring method by a throughput measuring apparatus according to an embodiment; 
           [0016]      FIG. 3A  is a diagram for explaining ACK numbers; 
           [0017]      FIG. 3B  is a diagram for explaining that the difference of ACK numbers represents the number of bytes; 
           [0018]      FIG. 4  is a diagram illustrating a position at which the throughput measuring apparatus according to the embodiment is installed; 
           [0019]      FIG. 5  is a diagram illustrating a functional configuration of the throughput measuring apparatus; 
           [0020]      FIG. 6  is a diagram illustrating an Ethernet (registered trademark, hereinafter the same) header; 
           [0021]      FIG. 7  is a diagram illustrating an IP header; 
           [0022]      FIG. 8  is a diagram illustrating a TCP header; 
           [0023]      FIG. 9  is a diagram illustrating an example of a storage unit; 
           [0024]      FIG. 10  is a diagram for explaining measurement groups; 
           [0025]      FIG. 11  is a diagram illustrating display example#1; 
           [0026]      FIG. 12  is a diagram illustrating display example#2; 
           [0027]      FIG. 13  is a diagram illustrating display example#3; 
           [0028]      FIG. 14  is a diagram illustrating display example#4; 
           [0029]      FIG. 15  is a diagram illustrating display example#5; 
           [0030]      FIG. 16  is a flowchart illustrating a flow of the processing performed by the throughput measuring apparatus; 
           [0031]      FIG. 17  is a diagram illustrating a hardware configuration of a computer that executes a throughput measuring program according to an embodiment; and 
           [0032]      FIG. 18  is a diagram for explaining throughput. 
       
    
    
     DESCRIPTION OF EMBODIMENTS 
       [0033]    According to one aspect of the embodiments, it is desirable to calculate the maximum effective throughput. Following, a detailed description will be given of an embodiment of a throughput measuring program, a throughput measuring method and a throughput measuring apparatus that are disclosed in the application concerned with reference to the drawings. In this regard, the disclosed technique is not limited by the embodiments. 
       EMBODIMENT 
       [0034]    First, a description will be given of measurement of the maximum effective throughput.  FIG. 1A  and  FIG. 1B  are diagrams for explaining measurement of the maximum effective throughput.  FIG. 1A  is an image chart of a transmission path, and  FIG. 1B  is a ladder diagram illustrating a flow of packets. 
         [0035]    As illustrated in  FIG. 1A , values obtained as effective throughput, illustrated by bold frames, are the average values of the throughputs that vary. The maximum effective throughput is obtained by measuring throughput when a free bandwidth excluding traffic of the other terminals has been used up. Accordingly, it is possible to measure the maximum effective throughput by identifying a time section in a state in which a free bandwidth excluding traffic of the other terminals has been used up, and measuring throughput in the identified time section. 
         [0036]    In a time section, which is a bottleneck section, in a state in which a free bandwidth excluding traffic of the other terminals has been used up, as illustrated in  FIG. 1B , waiting for transmitting packets occurs, and thus a time period from transmission of a packet to reception increases for each packet. Accordingly, it is possible to measure the maximum effective throughput by measuring a throughput in a time section  8  in which a time period taken from transmission of a packet to reception increases for each packet. 
         [0037]    Also, when a reception terminal receives a packet, the reception terminal returns an acknowledgment (ACK). Accordingly, it is also possible to measure the maximum effective throughput by measuring throughput in a time section  9  in which a time period taken from transmission of a packet at the transmission side to reception of its ACK increases for each packet. 
         [0038]    Thus, the throughput measuring apparatus according to the embodiment measures throughput in a time section in which a time period taken from transmission of a packet at the transmission side to reception of its ACK increases for each packet.  FIG. 2  is a diagram for explaining a measuring method by the throughput measuring apparatus according to the embodiment. In  FIG. 2 , a server  1  transmits DATA packets denoted by DATA#1 to DATA#5 to a terminal  3  via a base station  2 . The server  1  and the base station  2  are wiredly coupled, and the base station  2  and the terminal  3  are wirelessly coupled. Here, it is assumed that the wireless section between the base station  2  and the terminal  3  is a bottleneck section. 
         [0039]    When a bandwidth is used up in the bottleneck section, waiting for transmitting packets occurs in the base station  2  because of interruption by the other terminal frames due to an increase in the number of terminals communicating with the base station, or a DATA packet is divided into a plurality of frames due to deterioration in the radio wave condition, or the like. 
         [0040]    In  FIG. 2 , DATA#1, DATA#2, and DATA#5 are individually divided into two frames, and waiting for transmitting packets occur. Also, DATA#4 is divided into three frames, and waiting for transmitting the packets occurs. Also, DATA#3, DATA#4, and DATA#5 are interrupted by frames of the other terminals so that waiting for transmitting the packets occurs. 
         [0041]    When the terminal  3  receives DATA#1 to DATA#5, the terminal  3  returns ACKs denoted by ACK#1 to ACK#5, respectively. The server  1  then receives ACK#1 to ACK#5 at time T A1  to T A5 , respectively. Here, if it is assumed that Round Trip Time (RTT)#1 to RTT#5 are time periods from when DATA#1 to DATA#5 are transmitted to the reception of ACK#1 to ACK#5, respectively, there is a relationship in which RTT#1&lt;RTT#2&lt;RTT#3&lt;RTT#4&lt;RTT#5. That is to say, if there is a waiting for transmitting the packets in the base station  2 , the RTT increases. 
         [0042]    Thus, the throughput measuring apparatus according to the embodiment puts together the ACKs (ACK#1 to ACK#5) of when the RTT has increased as one measurement group, and calculates the maximum effective throughput from the interval (reception time difference) between the beginning ACK and the last ACK. That is to say, the throughput measuring apparatus according to the embodiment calculates the maximum effective throughput from 
         [0043]    Throughput [bps]=8×(Ack 5 −Ack 1 )/(T A5 −T A1 ). Here, Ack 5  is the ACK number of ACK#5, and Ack 1  is the ACK number of ACK#1. The difference of the ACK numbers represents the number of bytes of the transmitted data. The reason for this is as follows. 
         [0044]      FIG. 3A  is a diagram for explaining ACK numbers.  FIG. 3B  is a diagram for explaining that the difference of ACK numbers represents the number of bytes. As illustrated in  FIG. 3A , if it is assumed that the sequence number of DATA#1 is 1001, and the packet size is 500, the ACK number of ACK#1, Ack 1 , is 1501. That is to say, the ACK number of Transmission Control Protocol (TCP) is the sequence number of the DATA packet to be sent next, and represents that the reception side has received data up to the sequence number of ACK number−1. 
         [0045]    In the same manner, if it is assumed that the sequence number of DATA#2 is 1501, and the packet size is 500, the ACK number of ACK#2, Ack 2 , is 2001. If it is assumed that the sequence number of DATA#3 is 2001, and the packet size is 500, the ACK number of ACK#3, Ack 3 , is 2501. If it is assumed that the sequence number of DATA#4 is 2501, and the packet size is 500, the ACK number of ACK#4, Ack 4 , is 3001. If it is assumed that the sequence number of DATA#5 is 3001, and the packet size is 500, the ACK number of ACK#5, Ack 5 , is 3501. 
         [0046]    Accordingly, as illustrated in  FIG. 3B , while the transmission side receives ACK#1 to ACK#2, the reception side receives 500 bytes of DATA#2 (Ack 2 −Ack 1 =2001−1501=500). While the transmission side receives ACK#2 to ACK#3, the reception side receives 500 bytes of DATA#3 (Ack 3 −Ack 2 =2501−2001=500). While the transmission side receives ACK#3 to ACK#4, the reception side receives 500 bytes of DATA#4 (Ack 4 −Ack 3 =3001−2501=500). While the transmission side receives ACK#4 to ACK#5, the reception side receives 500 bytes of DATA#5 (Ack 5 −Ack 4 =3501−3001=500). 
         [0047]    To summarize these, while the transmission side receives ACK#1 to ACK#5, the reception side receives DATA#2 to DATA#5, and thus the ACK number of ACK#5−the ACK number of ACK#1=Ack 5 −Ack 1 =the total size of data from DATA#2 to DATA#5. Accordingly, the difference of ACK numbers represents the number of bytes of the transmitted data. 
         [0048]    Next, a description will be given of the throughput measuring apparatus according to the embodiment.  FIG. 4  is a diagram illustrating a position at which the throughput measuring apparatus according to the embodiment is installed. As illustrated in  FIG. 4 , the data transmitted from the server  1  is wirelessly transmitted to the terminal  3 , such as a smartphone, or the like via the base station  2 . Alternatively, the data transmitted from the server  1  is wiredly transmitted to a terminal  5 , such as a personal computer (PC), or the like via a switch  4 . 
         [0049]    In such communication from the server  1  to the terminal  3 , a bottleneck section is sometimes the wireless section between the base station  2  and the terminal  3 . At this time, a part at which the maximum effective throughput is to be measured is between the base station  2  and the terminal  3 . Also, an ACK packet is transmitted from the terminal  3  to the server  1  via the base station  2 . 
         [0050]    Thus, in the throughput measurement according to the embodiment, a throughput measuring apparatus  10  is installed in a wired section between the base station  2  and the server  1 , and the maximum effective throughput of the bottleneck section is presumed using the reception time of ACK packets. The throughput measuring apparatus  10  causes network signals to branch using a TAP  6  to be taken out. However, the throughput measuring apparatus  10  may receive a signal copied to a mirror port using a switch in place of the TAP  6 . 
         [0051]      FIG. 5  is a diagram illustrating a functional configuration of the throughput measuring apparatus  10 . As illustrated in  FIG. 5 , the throughput measuring apparatus  10  includes a reception unit  11 , a packet classification unit  12 , a DATA packet processing unit  13 , an ACK packet processing unit  14 , a storage unit  15 , an RTT calculation unit  16 , a throughput calculation unit  17 , and a display control unit  18 . 
         [0052]    The reception unit  11  receives signals that have been branched from the TAP  6  in the wired section between the server  1  and the base station  2  and passes the signals to the packet classification unit  12 . The packet classification unit  12  extracts a TCP packet to be analyzed based on the header information of the received signal. The packet classification unit  12  extracts the TCP packet by referring an Ethernet header and an Internet Protocol (IP) header. 
         [0053]      FIG. 6  is a diagram illustrating an Ethernet header. As illustrated in  FIG. 6 , the Ethernet header includes a six-byte destination address, a six-byte transmission source address, and a two-byte type. The destination address is the media access control (MAC) address of a destination, and the transmission source address is the MAC address of a transmission source. The type represents a type of a packet, and if the type is 0x0800, the packet is an IP packet of IPv4. 
         [0054]      FIG. 7  is a diagram illustrating an IP header. As illustrated in  FIG. 7 , the IP header includes an eight-bit protocol, a 32-bit transmission source IP address, and a 32-bit destination IP address. The protocol represents a type of a network-protocol of a transport layer, which is an upper layer. If the protocol is 6, the packet is a TCP packet. The transmission source IP address is the IP address of the transmission source, and the destination IP address is the IP address of the destination. 
         [0055]    The packet classification unit  12  identifies a connection by the combination of the transmission source IP address and the destination IP address of the IP header, and the transmission source port number and the destination port number of the TCP header, and classifies a TCP packet for each connection. 
         [0056]      FIG. 8  is a diagram illustrating a TCP header. As illustrated in  FIG. 8 , the TCP header includes a 16-bit transmission source port number, a 16-bit destination port number, a 32-bit sequence number, and a 32-bit ACK number. The transmission source port number is the port number of the transmission source, and the destination port number is the port number of the destination. 
         [0057]    If the data size of the extracted TCP packet is not 0, the packet classification unit  12  determines that the TCP packet is a DATA packet and passes the TCP packet to the DATA packet processing unit  13 . If the data size of the extracted TCP packet is 0, the packet classification unit  12  determines that the TCP packet is an ACK packet and passes the TCP packet to the ACK packet processing unit  14 . 
         [0058]    The DATA packet processing unit  13  processes the DATA packet. The DATA packet processing unit  13  includes a packet information recording unit  13   a . The packet information recording unit  13   a  records the reception time, the transmission source IP address, the transmission source port number, the destination IP address, the destination port number, the sequence number, and the size of the DATA packet that has been passed from the packet classification unit  12  in the storage unit  15 . 
         [0059]    The ACK packet processing unit  14  processes the ACK packet. The ACK packet processing unit  14  includes a packet information recording unit  14   a . The packet information recording unit  14   a  records the reception time, the transmission source IP address, the transmission source port number, the destination IP address, the destination port number, and the ACK number of the ACK packet passed from the packet classification unit  12  in the storage unit  15 . 
         [0060]    The storage unit  15  stores information on the DATA packet and the ACK packet.  FIG. 9  is a diagram illustrating an example of the storage unit  15 . As illustrated in  FIG. 9 , the storage unit  15  stores a reception time, a transmission source IP address, a transmission source port number, a destination IP address, a destination port number, a size, a sequence number, and an ACK number for each packet. 
         [0061]    For example, the storage unit  15  receives a DATA packet at “2015-02-17 17: 42: 22. 065882”, and the IP address and the port number of the transmission source of the DATA packet are “IP address A” and “port number A”, respectively. The IP address and the port number of the destination of the DATA packet are “IP address B” and “port number B”, respectively, the size is “500” (byte), and the sequence number is “1001”. 
         [0062]    Also, the storage unit  15 , for example receives an ACK packet at “2015-02-17 17: 42: 22. 146981”, and the IP address and the port number of the transmission source of the ACK packet are “IP address B” and “port number B”, respectively. The IP address and the port number of the destination the ACK packet are “IP address A” and “port number A”, respectively, and the ACK number is “1501”. 
         [0063]    When the ACK number of the received ACK packet matches the sequence number+the size of the recorded DATA packet, the RTT calculation unit  16  determines that the ACK packet is acknowledgment of the DATA packet. The RTT calculation unit  16  then calculates the difference between the reception time of the ACK packet and the reception time of the DATA packet as an RU. 
         [0064]    The throughput calculation unit  17  identifies an RTT time section having the calculated RTT increasing in ascending order of ACK number for each connection, and calculates the maximum effective throughput of the time section by the data quantity transmitted in the identified time section and the time period of the time section. 
         [0065]    Specifically, the throughput calculation unit  17  considers an RU group having an RTT increasing in ascending order of ACK number, not including a time out value of a delayed ACK, and having the RTT difference of less than 500 ms to be one measurement group whose throughput is measured. If a time out value of a delayed ACK is included, that is the case including a delay at the terminal  3 , and thus the case is excluded from the measurement group. If the RTT difference is not less than 500 ms (millisecond), that is the case where the RTT has increased abruptly. Accordingly, there is a possibility of reconnection of the terminal  3 , and thus the case is excluded from the measurement group. 
         [0066]    Also, if the number of RTTs included the measurement group is less than five, the precision is deteriorated, and thus the throughput calculation unit  17  does not measure throughput. Also, if the ACK intervals are all less than 1 ms, the ACK intervals are too narrow, and thus there is a possibility that ACKs are transmitted together for some reason (the DATA intervals are not reproduced, and thus throughput to be measured originally might not be able to be measured). Accordingly, the throughput calculation unit  17  does not measure throughput. 
         [0067]      FIG. 10  is a diagram for explaining the measurement groups. In  FIG. 10 , the horizontal axis represents relative ACK number, and the vertical axis represents RTT. In each measurement group, the RTT increases in ascending order of ACK number, and the RTT difference is less than 500 ms. However, in measurement group#1 and measurement group#3, five or more RTTs are not included. Accordingly, the throughput calculation unit  17  measures throughput in measurement group#2 and measurement group #4, but do not measure throughput in measurement group#1 and measurement group#3. 
         [0068]    The display control unit  18  displays information on the maximum effective throughput calculated by the throughput calculation unit  17  in various forms in accordance with a user instruction. For example, as illustrated in  FIG. 11 , the display control unit  18  updates the calculated maximum effective throughput every minute. In this regard, in the description so far, the description has been given of the case of transmitting data from the server  1  to the terminal  3 . However, in general, communication is performed bi-directionally, and thus it is possible to measure the maximum effective throughput in the two directions in the same manner. Accordingly, in  FIG. 11 , the maximum effective throughputs in the two directions, uplink and downlink, are displayed. Each row represents the maximum effective throughput for each communication. Here, “for each communication” may be for each connection, or for each session. As an example of “for each connection”, a combination of “client IP address and port number” and “server IP address and port number” is provided. As an example of “for each session”, a combination of “client IP address” and “server IP address and port number” is provided. Also, the values in each row are updated every minute. 
         [0069]    Also, as illustrated in  FIG. 12 , the display control unit  18  graphically displays the time variation of the number of sessions for each value range of the maximum effective throughput. In  FIG. 12 , the horizontal axis represents time, and the vertical axis represents the number of sessions. In  FIG. 12 , the numbers of sessions are displayed in the three ranges, that is to say, the maximum effective throughputs of lower than or equal to 3 Mbps, from 3 Mbps to 5 Mbps, and equal to or higher than 5 Mbps. 
         [0070]    Also, as illustrated in  FIG. 13 , the display control unit  18  graphically displays the variation of the number of IP addresses with respect to a value range of the maximum effective throughput selected by a user in the upper graph, and graphically displays top  10  in descending order of the number of sessions for each IP address. The number of IP addresses represents the total number of users. In  FIG. 13 , the horizontal axis represents time, and the vertical axis represents the number of IP addresses in the upper graph, and represents the number of sessions in the lower graph. In  FIG. 13 , the variation of the number of IP addresses and the variation of the number of sessions are displayed with respect to the maximum effective throughput less than 3 Mbps. In this regard, in the lower graph in  FIG. 13 , the case where there is only the first IP address is displayed as top  10 . Also, the graphs illustrated in  FIG. 13  are updated every minute. 
         [0071]    Also, as illustrated in  FIG. 14 , the display control unit  18  graphically displays the variation of the number of IP addresses with respect to the value range of the maximum effective throughput selected by the user in the upper graph, and displays top  10  in descending order of the number of sessions for each subnet address in the lower graph. In  FIG. 14 , the horizontal axis represents time, and the vertical axis represents the number of IP addresses in the upper graph, and represents the number of sessions in the lower graph. In  FIG. 14 , the variation of the number of IP addresses and the variation of the number of sessions are displayed with respect to the maximum effective throughput less than 3 Mbps. In this regard, in the lower graph in  FIG. 14 , the case where there is only the first subnet address is displayed as top  10 . Also, the graphs illustrated in  FIG. 14  are updated every minute. 
         [0072]    Also, as illustrated in  FIG. 15 , the display control unit  18  graphically displays the variations of the maximum effective throughput and the effective throughput for each TCP connection, for each IP address, or for each subnet address. In  FIG. 15 , the horizontal axis represents time, and the vertical axis represents throughput. In  FIG. 15 , three cases are displayed, that is to say, case (1) in which the free bandwidth is narrow and the effective throughput is low, case (2) in which the free bandwidth is wide and the effective throughput is high, and case (3) in which the free bandwidth is wide, but the effective throughput is low. 
         [0073]    Next, a description will be given of a flow of processing by the throughput measuring apparatus  10 .  FIG. 16  is a flowchart illustrating a flow of the processing performed by the throughput measuring apparatus  10 . Note that, in the processing in  FIG. 16 , it is assumed that the measurement conditions other than the condition that the RTT is continuously increasing are satisfied. 
         [0074]    As illustrated in  FIG. 16 , the throughput measuring apparatus  10  receives a packet (S 1 ). The throughput measuring apparatus  10  then determines whether or not the received packet is a TCP packet (S 2 ). If the received packet is not a TCP packet, the processing returns to S 1 . 
         [0075]    On the other hand, if the received packet is a TCP packet, the packet classification unit  12  classifies the TCP packet for each connection (S 3 ). The packet classification unit  12  then determines whether or not the TCP packet is a DATA packet (S 4 ). If the TCP packet is a DATA packet, the DATA packet processing unit  13  records the reception time, the sequence number, the size, and the like in the storage unit  15  (S 5 ). The processing of the throughput measuring apparatus  10  then returns to S 1 . 
         [0076]    On the other hand, if the TCP packet is not a DATA packet, the packet classification unit  12  determines whether or not the TCP packet is an ACK packet (S 6 ). If the TCP packet is not an ACK packet, the processing of the throughput measuring apparatus  10  returns to S 1 . On the other hand, if the TCP packet is an ACK packet, the ACK packet processing unit  14  records the reception time, the ACK number, and the like in the storage unit  15  (S 7 ). 
         [0077]    The RTT calculation unit  16  then calculates an RTT from the reception time of the ACK packet and the reception time of the DATA packet (S 8 ). The RTT calculation unit  16  then determines whether or not the RTT is continuously increasing (S 9 ). If the RTT is continuously increasing, the RTT calculation unit  16  determines the RTT to be a measurement target, and records the ACK reception time and the ACK number (S 10 ). The processing of the throughput measuring apparatus  10  then returns to S 1 . 
         [0078]    On the other hand, if the RTT is not continuously increasing, the throughput calculation unit  17  does not regard this ACK packet as a measurement target, and measures throughput from information of the first ACK packet to be measured and the last ACK packet (S 11 ). 
         [0079]    The throughput measuring apparatus  10  then determines whether or not a connection, that is to say a totaling period, has been completed (S 12 ). If not completed, the processing returns to S 1 . On the other hand, if completed, the display control unit  18  displays the maximum effective throughput on the display device based on the user&#39;s instruction (S 13 ). 
         [0080]    In this manner, the throughput measuring apparatus  10  measures throughput in a time section in which the RTT is continuously increasing so that it is possible to measure the maximum effective throughput. 
         [0081]    As described above, in the embodiment, the packet classification unit  12  extracts a TCP packet from the packet received by the reception unit  11 , passes a DATA packet to the DATA packet processing unit  13 , and passes an ACK packet to the ACK packet processing unit  14 . The DATA packet processing unit  13  then records information on the DATA packet, such as the reception time, and the like in the storage unit  15 . The ACK packet processing unit  14  records the information on the ACK packet, such as the reception time, the ACK number, and the like in the storage unit  15 . The RTT calculation unit  16  then calculates an RTT based on the information in the storage unit  15 . The throughput calculation unit  17  identifies a time section in which the RTT is increasing in ascending order of ACK number, and calculates throughput of the identified time section. Accordingly, it is possible for the throughput measuring apparatus  10  to calculate the maximum effective throughput. 
         [0082]    Also, in the embodiment, the throughput calculation unit  17  considers a time section not including a time out value of a delayed ACK to be a time section whose throughput is to be calculated. Accordingly, it is possible for the throughput measuring apparatus  10  to correctly calculate throughput by excluding the case of including a delay in the terminal  3 . 
         [0083]    Also, in the embodiment, the throughput calculation unit  17  considers an RTT group having the RTT difference of less than 500 ms to be one measurement group whose throughput is to be measured. Accordingly, it is possible for the throughput measuring apparatus  10  to correctly calculate throughput by excluding the case having a possibility of reconnection of the terminal  3 . 
         [0084]    Also, in the embodiment, the throughput calculation unit  17  does not calculate a throughput in the case where the number of RTTs included in the measurement group is less than five. Accordingly, it is possible for the throughput measuring apparatus  10  to correctly calculate throughput by excluding the case having poor precision. 
         [0085]    Also, in the embodiment, the throughput calculation unit  17  does not measure a throughput if the ACK intervals are all less than 1 ms. Accordingly, it is possible for the throughput measuring apparatus  10  to correctly calculate throughput by excluding the case of having a possibility that ACKs are transmitted together for some reason (the DATA intervals are not reproduced, and thus there is a possibility that throughput to be originally measured fails to be measured). 
         [0086]    Also, in the embodiment, the display control unit  18  graphically displays the time variation of the number of sessions for each value range of the maximum effective throughput. Accordingly, it is possible for the throughput measuring apparatus  10  to support the user&#39;s decision on the determination of whether or not a network analysis, an increase in the communication bandwidth, or the like is indispensable. 
         [0087]    Also, in the embodiment, the display control unit  18  graphically displays the variation of the number of IP addresses with respect to a value range of the maximum effective throughput selected by a user. Accordingly, it is possible for the throughput measuring apparatus  10  to support the user&#39;s decision on the determination of whether or not a network analysis, an increase in the communication bandwidth, or the like is indispensable. 
         [0088]    Also, in the embodiment, the display control unit  18  displays the maximum effective throughput and the effective throughput in an arranged manner. Accordingly, it is possible for the throughput measuring apparatus  10  to support the user&#39;s decision on the determination of whether or not a network analysis, an increase in the communication bandwidth, or the like is indispensable. 
         [0089]    In this regard, in the embodiment, a description has been given of the throughput measuring apparatus  10 . However, it is possible to achieve the configuration of the throughput measuring apparatus  10  by software so as to obtain a throughput measuring program having the same function. Thus, a description will be given of a computer that executes the throughput measuring program. 
         [0090]      FIG. 17  is a diagram illustrating a hardware configuration of a computer that executes the throughput measuring program according to the embodiment. As illustrated in  FIG. 17 , a computer  20  includes a main memory  21 , a central processing unit (CPU)  22 , a local area network (LAN) interface  23 , and a hard disk drive (HDD)  24 . Also, the computer  20  includes a Super Input Output ( 10 )  25 , a Digital Visual Interface (DVI)  26 , and an optical disc drive (ODD)  27 . 
         [0091]    The main memory  21  is a memory that stores programs and an execution intermediate result, and the like. The CPU  22  is a central processing unit that reads the programs from the main memory  21 , and executes the programs. The CPU  22  includes a chip set including a memory controller. 
         [0092]    The LAN interface  23  is an interface for coupling the computer  20  to the other computers via a LAN. The HDD  24  is a disk device that stores programs and data, the Super IO  25  is an interface for coupling an input device, such as a mouse, a keyboard, or the like. The DVI  26  is an interface for coupling a display device, and the ODD  27  is a device for reading and writing on a DVD. 
         [0093]    The LAN interface  23  is coupled to the CPU  22  by PCI Express (PCIe), and the HDD  24  and the ODD  27  are coupled to the CPU  22  by Serial Advanced Technology Attachment (SATA). The Super IO  25  is coupled to the CPU  22  by Low Pin Count (LPC). 
         [0094]    The throughput measuring program to be executed on the computer  20  is stored on a DVD, is read from the DVD by the ODD  27  and is installed in the computer  20 . Alternatively, the throughput measuring program is stored in a database of another computer system, or the like that is coupled via the LAN interface  23 , is read from the database and is installed in the computer  20 . The installed throughput measuring program is then stored on the HDD  24  and is read into the main memory  21  to be executed by the CPU  22 . 
         [0095]    Also, in the embodiment, a description has been given of the case where the throughput measuring apparatus  10  captures packets in order to calculate the maximum effective throughput. However, the present disclosure is not limited to this. It is possible to apply the present disclosure to the case where information on the captured packets is once stored in a file or the like, and the information is read from the file or the like in order to calculate the maximum effective throughput in the same manner. 
         [0096]    Also, in the embodiment, the description has been given of the case where a wireless section is a bottleneck section. However, the present disclosure is not limited to this, and it is possible to apply the present disclosure to the case where a wired section is a bottleneck section in the same manner. 
         [0097]    All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.