Bandwidth estimation device and bandwidth estimation method

CN115550183BActive Publication Date: 2026-10-30DENSO CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202210735810.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-06-29
Filing Date
2022-06-27
Publication Date
2026-10-30
Estimated Expiration
2042-06-27

AI Technical Summary

Technical Problem

因此,JP 2017-184213 A中公开的技术存在以下问题:由于接收处理而导致的高于某一水平的延迟发生率越高,需要添加的测试包越多,并且随着测试包的数量增加,用于带宽估计的通信数据量和处理负荷增加

Benefits of technology

[0008]本发明的带宽估计设备、方法和非暂态计算机可读存储介质可以在抑制通信数据量和处理负荷的增加的同时进行带宽的有效估计。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115550183B_ABST
    Figure CN115550183B_ABST
Patent Text Reader

Abstract

The present invention relates to a bandwidth estimation device and a bandwidth estimation method. In the bandwidth estimation device, a measurement unit (24) measures a measurement time from reception by a receiver (20) of a first packet of a packet queue including a plurality of packets sequentially transmitted from a transmitter (10) via a communication line to reception by the receiver of a last packet of the packet queue, an estimation validity determination unit (26) compares the measurement time with a threshold time predefined based on a performance of the receiver or a characteristic of the communication line to determine whether or not an effective estimation of an available bandwidth of the communication line can be made. In response to the estimation validity determination unit determining that an effective estimation of the available bandwidth can be made, an estimation unit (28) estimates the available bandwidth of the communication line based on an amount of data in the packet queue and the measurement time.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to bandwidth estimation devices and bandwidth estimation methods. Background Technology

[0002] Conventionally, techniques exist for estimating the available bandwidth in a communication network between a transmitter and a receiver. For example, to measure the available bandwidth between terminals in a communication network, a system for measuring available bandwidth has been proposed, which appropriately adjusts the number of test packets transmitted from the transmitting terminal. In such a system, the receiving terminal performs reception processing on test packets received from the transmitting terminal via the communication network and records the reception time of the corresponding test packets based on the reception processing. Based on the reception and transmission times of the corresponding test packets, the receiving terminal calculates an index value representing the magnitude of the change in transmission delay time for each test packet, and determines, based on the index value, test packets with reception times delayed to a certain level or higher due to the reception processing. Then, based on the number of remaining test packets other than those determined to have reception times delayed to a certain level or higher, the receiving terminal provides instructions to the transmitting terminal to adjust the number of test packets to be transmitted by the transmitting terminal (see JP 2017-184213 A).

[0003] In the technique disclosed in JP 2017-184213 A, the number of test packets is adjusted to maintain the number of test packets required for estimating available bandwidth, wherein test packets with reception times that are delayed to a certain level or higher due to reception processing are excluded. Therefore, the technique disclosed in JP 2017-184213 A has the following problem: the higher the incidence of delays exceeding a certain level due to reception processing, the more test packets need to be added, and as the number of test packets increases, the amount of communication data and processing load used for bandwidth estimation increases.

[0004] In view of the foregoing, there is a need for a technique for effectively estimating bandwidth while suppressing the increase in communication data volume and processing load. Summary of the Invention

[0005] A first aspect of the invention provides a bandwidth estimation apparatus, comprising: a measurement unit configured to measure a measurement time from the reception of the first packet of a packet queue comprising a plurality of packets by a receiver to the reception of the last packet of the packet queue by the receiver, the plurality of packets being sequentially transmitted from a transmitter via a communication line; an estimation validity determination unit configured to compare the measurement time with a predefined threshold time based on the performance of the receiver or the characteristics of the communication line to determine whether an effective estimation of the available bandwidth of the communication line can be made; and an estimation unit configured to estimate the available bandwidth of the communication line based on the amount of data in the packet queue and the measurement time in response to the estimation validity determination unit determining that an effective estimation of the available bandwidth can be made.

[0006] A second aspect of the invention provides a bandwidth estimation method, comprising: a measurement unit measuring the measurement time from the reception of the first packet of a packet queue comprising multiple packets by a receiver to the reception of the last packet of the packet queue by the receiver, the multiple packets being sequentially transmitted from a transmitter via a communication line; an estimation validity determination unit comparing the measurement time with a predefined threshold time based on the performance of the receiver or the characteristics of the communication line to determine whether an effective estimation of the available bandwidth of the communication line can be made; and in response to the estimation validity determination unit determining that an effective estimation of the available bandwidth can be made, the estimation unit estimating the available bandwidth of the communication line based on the amount of data in the packet queue and the measurement time.

[0007] A third aspect of the invention provides a non-transitory computer-readable storage medium having instructions stored thereon, which, when executed by a computer, cause the computer to function as: a measurement unit configured to measure the measurement time from the reception of the first packet of a packet queue comprising multiple packets by a receiver to the reception of the last packet of the packet queue by the receiver, the multiple packets being sequentially transmitted from a transmitter via a communication line; an estimation validity determination unit configured to compare the measurement time with a predefined threshold time based on the performance of the receiver or the characteristics of the communication line to determine whether an effective estimation of the available bandwidth of the communication line can be made; and an estimation unit configured to estimate the available bandwidth of the communication line based on the amount of data in the packet queue and the measurement time in response to the estimation validity determination unit determining that an effective estimation of the available bandwidth can be made.

[0008] The bandwidth estimation device, method, and non-transitory computer-readable storage medium of the present invention can perform efficient bandwidth estimation while suppressing the increase in communication data volume and processing load. Attached Figure Description

[0009] In the attached diagram:

[0010] Figure 1 This is a schematic block diagram of a bandwidth estimation system;

[0011] Figure 2 It is a block diagram of the hardware configuration of the transmitter / receiver;

[0012] Figure 3 This is a functional block diagram of the transmitter according to the first embodiment;

[0013] Figure 4 This is a diagram illustrating the sending and receiving of packets in the queue;

[0014] Figure 5 This is a functional block diagram of the receiver according to the first embodiment;

[0015] Figure 6 This is a diagram illustrating the extension of the reception time interval based on the communication rate;

[0016] Figure 7 This is a flowchart illustrating an example of transmitter receiving and processing;

[0017] Figure 8 This is a flowchart illustrating an example of a transmitter transmission process according to the first embodiment;

[0018] Figure 9 This is a flowchart illustrating an example of bandwidth estimation processing according to the first embodiment;

[0019] Figure 10 This is a functional block diagram of the transmitter according to the second embodiment;

[0020] Figure 11 This is a diagram illustrating an example of a sending table;

[0021] Figure 12 It is a functional block diagram of the receiver according to each of the second to fourth embodiments;

[0022] Figure 13 This is an illustration of an example of a measuring table according to the second embodiment;

[0023] Figure 14 This is a flowchart illustrating an example of a transmitter transmission process according to the second embodiment;

[0024] Figure 15 This is a flowchart illustrating an example of bandwidth estimation processing according to the second embodiment;

[0025] Figure 16 This is an illustration of an example of a measuring table according to the third embodiment;

[0026] Figure 17 This is a diagram illustrating the merging of packet queues;

[0027] Figure 18This is a flowchart illustrating an example of bandwidth estimation processing according to the third embodiment;

[0028] Figure 19 This is a diagram illustrating the upper limit of the package queue;

[0029] Figure 20 This is an illustration of an example of setting an upper limit for the required measurement time; and

[0030] Figure 21 This is a flowchart illustrating an example of bandwidth estimation processing according to the fourth embodiment. Detailed Implementation

[0031] Several embodiments of the present invention will now be described with reference to the accompanying drawings.

[0032] First Implementation Method

[0033] like Figure 1 As shown, the bandwidth estimation system 100 according to the first embodiment includes a transmitter 10 and a receiver 20. The transmitter 10 and the receiver 20 are connected via a communication line 40 and send and receive packets to each other. The number of transmitters 10 included in the bandwidth estimation system 100 and the number of receivers 20 included in the bandwidth estimation system 100 are not limited to... Figure 1 It can be one of the examples, or more than one.

[0034] Figure 2 The hardware configuration of transmitter 10 is shown. For example... Figure 2 As shown, the transmitter 10 includes a central processing unit (CPU) 52, a memory 54, a storage unit 56, an input unit 58, an output unit 60, a storage medium reading unit 62, and a communication interface (I / F) 64. These components are communicatively connected to each other via a bus 66.

[0035] Storage unit 56 stores transmitter-side programs for executing transmitter receive and transmit processes, which will be described later. CPU 52 is the central processing unit that executes various programs and controls each component. That is, CPU 52 reads programs from storage unit 56 and uses memory 54 as its workspace to execute the programs. CPU 52 controls each of the aforementioned components and performs various arithmetic operations according to the programs stored in storage unit 56.

[0036] The memory 54 is formed by random access memory (RAM) to temporarily store programs and data as workspace. The storage unit 56 is formed by read-only memory (ROM), hard disk drive (HDD), solid-state drive (SSD), etc., to store various programs, including the operating system, and various data.

[0037] Input unit 58 is used to perform various inputs, such as a keyboard and mouse. Output unit 60 is used to output various information, such as a display and printer. A touch panel display can be used as output unit 60, which can also be used as input unit 58.

[0038] Storage medium reading unit 62 is configured to read data from or write data to various types of storage media, such as CD-ROM, DVD-ROM, Blu-ray disc, USB memory, and other storage media. Communication I / F 64 is an interface for communicating with other devices, including receiver 20, using standards such as Ethernet™, FDDI, and Wi-Fi™.

[0039] Due to the hardware configuration of receiver 20 and Figure 2 The hardware configuration of the transmitter 10 shown is substantially the same, therefore a description of the hardware configuration of the receiver 20 will be omitted. The storage unit 56 of the receiver 20 has a bandwidth estimation program stored for performing the bandwidth estimation processing described later.

[0040] Now refer to Figure 3 The functional configuration of the transmitter 10 in the first embodiment is described. For example... Figure 3 As shown, the transmitter 10 includes a receiving unit 12 and a transmitting unit 14. Each functional block consists of... Figure 2 The CPU 52 implementation shown.

[0041] The receiving unit 12 receives the available bandwidth estimate transmitted from the receiver 20. The available bandwidth estimate is the amount of data transmitted per unit time, i.e., the communication rate. Hereafter, the available bandwidth estimate is also referred to as the rate estimate. The receiving unit 12 notifies the transmitting unit 14 of the received rate estimate.

[0042] The transmitting unit 14 sequentially transmits a packet queue comprising multiple packets to the receiver 20 via the communication line 40. The number of packets included in the packet queue can be a predefined number, or it can be a dynamically changing number based on rate estimation, packet data volume, etc. In the first embodiment, the transmitting unit 14 is configured to transmit a packet queue comprising N packets, where N is a predefined number.

[0043] Specifically, such as Figure 4 As shown, the sending unit 14 sequentially sends N packets at a predefined time interval Δt1 (where, in Figure 4In the example, N=4), thus sending a packet queue. The time interval Δt1 is set such that packets are sent sequentially at a rate higher than the following communication rate: packets will be sent through communication line 40 at this communication rate. The communication rate can be an estimate notified by receiving unit 12.

[0044] Furthermore, when a predefined time interval Δt2 (Δt2>Δt1) or longer has elapsed since the last packet in the packet queue was sent, sending unit 14 sends the subsequent packet queue. Figure 4 In the diagram, each packet transmitted from transmitter 10 to receiver 20 is indicated by a solid arrow, where the starting point of the arrow maps to a time axis representing the transmission time at transmitter 10, and the ending point maps to a time axis representing the reception time at receiver 20. This also applies to the time axis described later. Figure 6 , Figure 17 and Figure 19 .

[0045] Now refer to Figure 5 The functional configuration of the receiver 20 in the first embodiment is described. For example... Figure 5 As shown, receiver 20 includes a receiving unit 22, a measurement unit 24, an estimation validity determination unit 26, an estimation unit 28, and a transmitting unit 30. Each functional block can be composed of... Figure 2 The CPU 52 implementation shown.

[0046] The receiving unit 22 receives packets sequentially transmitted from the transmitter 10 via the communication line 40. The receiving unit 22 transmits the received packets, along with the corresponding packet reception time, to the measurement unit 24.

[0047] Each time the receiving unit 22 receives a packet queue, i.e., each time N consecutive packets are received, the measurement unit 24 measures the measurement time, which is the time interval from the first packet in the received packet queue to the last packet in the same packet queue. The measurement unit 24 transmits the measured measurement time to the estimation validity determination unit 26, and transmits the data volume of each packet included in the packet queue to the estimation unit 28.

[0048] As described above, transmitting packets at a rate higher than the communication rate of communication line 40 enables receiver 20 to receive the packet queue transmitted from transmitter 10 at an extension of the reception time interval according to the communication rate of communication line 40, such as... Figure 6 As shown. That is, even when packet queues are sent at equal transmission intervals, the measurement time at receiver 20 varies with the communication rate. Figure 6 In the example shown, during periods of low communication rate (by... Figure 6 The measurement time T1 of packet queue 1 (indicated by the dashed line in the diagram) is greater than the period during which the high communication rate is reached (by...). Figure 6The dashed line in the diagram indicates the measurement time T2 for packet queue 2. If this measurement time cannot guarantee the required time based on the performance of receiver 20 or the characteristics of communication line 40, then using this measurement time cannot provide an effective estimate of bandwidth.

[0049] The validity determination unit 26 compares the measurement time received from the measurement unit 24 with a predefined threshold time based on the performance of the receiver 20 or the characteristics of the communication line 40 to determine whether a valid estimate of the available bandwidth can be made.

[0050] For example, if the measurement time is greater than or equal to a threshold time β—which is greater than or equal to a predefined multiple of the resolution of the processing time at receiver 20—the estimation validity determination unit 26 determines that a valid estimate of the available bandwidth can be made. The resolution of the processing time is the granularity of the timestamp at receiver 20 (e.g., 10 ms). For example, for bandwidth estimation errors due to a time resolution of 10% or less, the threshold time β is at least 10 times the time resolution.

[0051] Alternatively, for example, the validity determination unit 26 may set the threshold time β to the time period of each interrupt cycle plus a margin, and perform interrupt processing on packets received at receiver 20 during the interrupt cycle.

[0052] The interruption period is preset to the performance of receiver 20. Alternatively, for example, the estimation validity determination unit 26 can set the threshold time β to the time period of each burst period plus a margin, in which burst traffic occurs on communication line 40. The burst period can be preset based on the characteristics of communication line 40. Also in these cases, if the measurement time is greater than or equal to the threshold time β, the estimation validity determination unit 26 determines that an effective estimation of the available bandwidth can be performed.

[0053] exist Figure 6 In the example, T1 ≥ β and T2 < β. Therefore, the bandwidth estimate using packet queue 1 is determined to be valid (OK), and the bandwidth estimate using packet queue 2 is invalid (NG). The estimation validity determination unit 26 passes the measurement time for which it determines a valid estimate of the available bandwidth can be made to the estimation unit 28.

[0054] The estimation unit 28 estimates the available bandwidth of the communication line 40 based on the measurement time received from the estimation validity determination unit 26 and the amount of data in each packet included in the packet queue received from the measurement unit 24. Specifically, the estimation unit 28 estimates the available bandwidth of the communication line 40 by dividing the sum of the amounts of data in the packets in the packet queue excluding the first packet (i.e., the second to the Nth packets) (hereinafter referred to as the measurement data amount) by the measurement time. The estimation unit 28 then transmits the estimated available bandwidth to the transmission unit 30.

[0055] The sending unit 30 sends the available bandwidth estimate received from the estimation unit 28 to the sender 10, which is the source of the packet queue.

[0056] The operation of the bandwidth estimation system 100 according to the first embodiment will now be described. In the transmitter 10, the following is executed: Figure 7 The transmitter receiving and processing shown Figure 8 The transmitter transmission process is shown in Figure 20. In receiver 20, the following is executed: Figure 9 The bandwidth estimation process shown is an example of a bandwidth estimation method.

[0057] Now refer to Figure 7 Describe the transmitter's receiving and processing.

[0058] In step S10, receiving unit 12 determines whether a rate estimate transmitted from receiver 20 has been received. If a rate estimate has not been received, receiving unit 12 repeats step S10. If a transmitted rate estimate has been received, the process proceeds to step S12. In step S12, receiving unit 12 updates the rate estimate stored in a predefined storage area to the rate estimate received in step S10. The process returns to step S10.

[0059] Now refer to Figure 8 Describe the sending process of the transmitter.

[0060] At step S20, the sending unit 14 determines whether the packet has arrived in the sending queue of the transmitter 10. If the packet has not yet arrived in the sending queue, the sending unit 14 repeats step S20. If the packet has arrived in the sending queue, the process proceeds to step S22. At step S22, the sending unit 14 retrieves the packets preceding it in the sending queue and determines the sending timing based on the rate estimate stored in a predefined storage area. Then, the sending unit 14 sends the retrieved packet to the receiver 20 at the determined sending timing.

[0061] Subsequently, at step S24, the sending unit 14 determines whether the sending queue is empty. If the sending queue is empty, the processing flow returns to step S20. If the sending queue is not empty, the processing flow returns to step S22.

[0062] Now refer to Figure 9 Describe the bandwidth estimation process.

[0063] At step S40, the receiving unit 22 determines whether a packet sent by the transmitter 10 has been received. If a packet sent by the transmitter 10 has been received, the process proceeds to step S42. If a packet sent by the transmitter 10 has not been received, the receiving unit 22 repeats step S40. At step S42, the measuring unit 24 determines whether N packets have been received, where N packets are formed from the first packet to the Nth packet, and the first packet is the packet following the last packet in the previously received packet queue, thereby determining whether a packet queue has been received. If a packet queue has been received, the process proceeds to step S44. If the number of received packets is less than N, that is, if only some of the N packets forming a packet queue have been received, the process returns to step S40.

[0064] At step S44, measurement unit 24 subtracts the reception time of the first packet from the reception time of the last packet in the packet queue to measure the measurement time. Then, at step S46, estimation validity determination unit 26 determines whether the measurement time measured at step S44 is greater than or equal to a predefined threshold time β based on the performance of receiver 20 or the characteristics of communication line 40. If the measurement time ≥ β, estimation validity determination unit 26 determines that the measurement time can be used for effective bandwidth estimation, and the process proceeds to step S48. If the measurement time < β, estimation validity determination unit 26 determines that the measurement time cannot be used for effective bandwidth estimation. Then, the process returns to step S48.

[0065] At step S48, estimation unit 28 estimates the available bandwidth by dividing the amount of measurement data in the packet queue received at steps S40 and S42 by the measurement time measured at step S44. Then, transmission unit 30 sends the rate estimate (i.e., the available bandwidth estimate, which is a rate estimate) to transmitter 10. The processing flow then returns to step S40.

[0066] As described above, in the bandwidth estimation system of the first embodiment, the receiver measures the time from receiving the first packet of a packet queue transmitted from the transmitter via the communication line to receiving the last packet of the packet queue. The receiver then compares the measurement time with a predefined threshold time based on the receiver's performance or the characteristics of the communication line to determine whether an effective estimation of the available bandwidth can be made. In response to determining that an effective estimation of the available bandwidth can be made, the receiver estimates the available bandwidth of the communication line based on the amount of data in the packet queue and the measurement time. This excludes situations where effective estimation is not possible due to environmental changes (such as higher communication rates on the communication line), and allows effective estimation only when a measurement time sufficient for effective estimation is ensured. Therefore, effective bandwidth estimation can be performed while suppressing increases in communication data volume and processing load. Furthermore, using a predefined threshold time based on the receiver's performance or the characteristics of the communication line can suppress erroneous estimations that may occur due to receiver performance limitations or environmental changes in the communication line.

[0067] Second Implementation Method

[0068] The second embodiment will now be described. In the bandwidth estimation system of the second embodiment, components similar to those in the bandwidth estimation system 100 of the first embodiment are assigned the same reference numerals, and detailed descriptions thereof will be omitted. For the last two digits of their reference numerals, which are common functional blocks between the first and second embodiments, detailed descriptions will also be omitted. The hardware configuration of each of the transmitter and receiver in the second embodiment is as follows: Figure 2 The transmitter 10 and receiver 20 of the first embodiment shown have identical hardware configurations. Therefore, a detailed description thereof will be omitted.

[0069] like Figure 1 As shown, the bandwidth estimation system 200 according to the second embodiment includes a transmitter 210 and a receiver 220.

[0070] Now refer to Figure 10 The functional configuration of the transmitter 210 in the second embodiment is described. For example... Figure 10 As shown, the transmitter 210 includes a receiving unit 12, a generating unit 216, and a transmitting unit 214. Each functional block consists of... Figure 2 The CPU 52 implementation shown.

[0071] The generation unit 216 generates a packet queue comprising multiple packets based on a transmission time interval. Specifically, the generation unit 216 sequentially retrieves packets that have arrived in the transmission queue and determines a queue ID, which serves as the identifier information for the packet queue to which the retrieved packet belongs. If the transmission time interval between the transmission time of the last packet and the current time is greater than a predefined value, the generation unit 216 determines a new queue ID. If the transmission time interval is less than or equal to the predefined value, the generation unit 216 determines the queue ID to be the same as the queue ID assigned to the last transmitted packet. For example, the predefined value could be a value obtained by dividing the amount of data in the last transmitted packet by a rate estimate.

[0072] For example, such as Figure 11 As shown, generation unit 216 stores the determined queue ID in the sending table. Specifically, when a new queue ID is determined, generation unit 216 updates the queue ID in the sending table with the new queue ID. Figure 11 In the example shown, in addition to the queue ID, the sending table also stores the sending time, the amount of data in the packet, and a rate estimate as an estimate of the available bandwidth. The sending time and the amount of data in the packet will be described later. When the receiving unit 12 receives the rate estimate from the receiver 20, it stores the rate estimate. The generating unit 216 passes the retrieved packet to the sending unit 214.

[0073] The sending unit 214 assigns the queue ID stored in the sending table and the current time as the sending time to the packet received from the generating unit 216, and sends the packet to the receiver 20. The sending unit 214 also stores the sending time assigned to the packet and the amount of data in the packet in the sending table.

[0074] Now refer to Figure 12 The functional configuration of the receiver 220 in the second embodiment is described. For example... Figure 12 As shown, receiver 220 includes a receiving unit 22, a measurement unit 224, a measurement validity determination unit 232, an estimation validity determination unit 26, an estimation unit 28, and a transmitting unit 30. Each functional block consists of... Figure 2 The CPU 52 implementation shown.

[0075] Measurement unit 224 measures the measurement time of each packet queue identified based on the queue ID assigned to the packets received from receiving unit 22 (hereinafter referred to as incoming packets). Specifically, each time an incoming packet is received, measurement unit 224 adds information about the incoming packet to a measurement table, such as... Figure 13 As shown. In Figure 13In the example shown, the measurement table stores the packet number, queue ID, the sending time assigned to the incoming packet, the receiving time of the incoming packet, and the amount of data in the incoming packet for each incoming packet. The packet number of the incoming packet is the packet number in the packet queue.

[0076] Measurement unit 224 determines whether the queue ID of the current incoming packet is the same as the queue ID of the previous incoming packet. If the queue ID of the current incoming packet is the same as the queue ID of the previous incoming packet, it indicates that packets in the same packet queue can continue to be received. If the queue ID of the current incoming packet is different from the queue ID of the previous incoming packet, it indicates that the previous incoming packet was the last packet in the previous packet queue, and the current incoming packet is the first packet in the new packet queue. Measurement unit 224 uses information about the previous packet queue stored in a measurement table to measure the measurement time. Specifically, measurement unit 224 measures the measurement time by subtracting the reception time of the first packet from the reception time of the last packet in the previous packet queue.

[0077] The measurement unit 224 transmits the measurement time determined as valid by the measurement validity determination unit 232 (described later) to the estimation validity determination unit 26.

[0078] The measurement validity determination unit 232 determines the measurement validity of the measurement time measured by the measurement unit 224. For example, in response to each packet in the packet queue from the first packet to the last packet being assigned identification information indicating that it belongs to the same packet queue, the measurement validity determination unit 232 determines that the measurement time is valid. This determination makes it possible to avoid using different packet queues mixed together to measure the measurement time.

[0079] For reference Figure 6 As described, a packet queue transmitted from transmitter 210 is received by receiver 220, wherein the spread of the distribution of reception times of the packets forming the packet queue depends on the communication rate of communication line 40. A smaller spread means that the communication rate has a smaller impact on the measurement time. That is, the accuracy of the rate estimate based on the measurement time estimate may deteriorate. In view of the foregoing, for example, in response to a packet queue, if the inter-packet reception time interval at receiver 220 is greater than a predefined value or larger than the corresponding inter-packet transmission time interval at transmitter 210, measurement validity determination unit 232 determines that the measurement time is valid. Specifically, measurement validity determination unit 232 calculates the transmission time difference between each pair of consecutive packets as the inter-packet transmission time interval, and calculates the reception time difference between each pair of consecutive packets in the same packet queue. In response to each pair of consecutive packets in the packet queue, if the inter-packet reception time interval divided by the corresponding inter-packet transmission time interval is greater than or equal to a predefined threshold α (where α > 1), measurement validity determination unit 232 determines that the measurement time is valid. Measurement validity determination unit 232 notifies measurement unit 224 of the determination result.

[0080] The operation of the bandwidth estimation system 200 according to the second embodiment will now be described. In the transmitter 210 of the second embodiment, the following is executed: Figure 7 The transmitter receiving and processing shown Figure 14 The transmitter transmission process is shown. In receiver 220, the following is executed: Figure 15 The bandwidth estimation process is shown. Since the transmitter transmission process is similar to that of the first embodiment, its description will be omitted. In the transmitter transmission process and bandwidth estimation process of the second embodiment, the bandwidth estimation process is similar to that of the first embodiment (…). Figure 8 ) and bandwidth estimation processing ( Figure 9 The same processing steps in the figure are assigned the same reference numerals, and their descriptions will be omitted.

[0081] Now refer to Figure 14 Describe the transmitter's receiving and processing.

[0082] At step S220, following step S20, generation unit 216 retrieves the preceding packets in the transmission queue. At step S222, generation unit 216 subtracts the transmission time of the last packet from the current time to calculate the transmission time interval. Subsequently, at step S224, generation unit 216 determines whether the calculated transmission time interval is greater than a predefined value calculated by dividing the amount of data in the last transmitted packet by the rate estimate stored in the transmission table. If the transmission time interval is greater than the predefined value, the process proceeds to step S226. If the transmission time interval is less than or equal to the predefined value, the process proceeds to step S228.

[0083] At step S226, generation unit 216 determines a new queue ID and updates the queue ID in the sending table. Then, at step S228, sending unit 214 assigns the queue ID and sending time stored in the sending table to the packet retrieved in step S221 and sends the packet to receiver 220. At step S230, sending unit 214 stores the assigned sending time and the amount of data in the packet in the sending table. Then, the processing flow proceeds to step S24.

[0084] Now refer to Figure 15 Describe the bandwidth estimation process.

[0085] In step S40, the receiving unit 22 determines whether a packet sent from the transmitter 210 has been received. If a packet sent from the transmitter 210 has been received, the process proceeds to step S242. If not, the receiving unit 22 repeats step S40. In step S242, the measurement unit 224 adds information about the incoming packet to the measurement table. Subsequently, in step S244, the measurement unit 224 determines whether the queue ID of the incoming packet is the same as the queue ID of the previous incoming packet. If the queue ID of the incoming packet is the same as the queue ID of the previous incoming packet, the process returns to step S40. If the queue ID of the incoming packet is different from the queue ID of the previous incoming packet, the process proceeds to S246.

[0086] In step S246, the measurement validity determination unit 232 calculates the transmission time difference between each pair of consecutive packets as the inter-packet transmission time interval for the packet queue including the previous incoming packet, and calculates the reception time difference between each pair of consecutive packets in the same packet queue as the inter-packet reception time interval. Then, in step S248, the measurement validity determination unit 232 determines whether the inter-packet reception time interval divided by the corresponding inter-packet transmission time interval is greater than or equal to a predefined threshold α (where α > 1) for each pair of consecutive packets in the target packet queue. If, for each pair of consecutive packets in the target packet queue, the inter-packet reception time interval divided by the corresponding inter-packet transmission time interval is greater than or equal to the predefined threshold α, the process proceeds to step S44. If, for at least one pair of consecutive packets in the packet queue, the inter-packet reception time interval divided by the corresponding inter-packet transmission time interval is less than the predefined threshold α, the process returns to step S40.

[0087] Subsequently, processing steps S44 to S48 are performed in the same manner as in the first embodiment, and then the processing flow returns to step S40.

[0088] As described above, in the bandwidth estimation system of the second embodiment, the receiver determines the measurement validity of the measurement time and estimates the available bandwidth in response to determining an effective estimate of the available bandwidth based on the effective measurement time within which effective measurements can be performed. This can improve the effectiveness of bandwidth estimation.

[0089] Although the second embodiment has been described (e.g.) Figure 15The bandwidth estimation process (shown) – in which the measurement validity of the measurement time based on the extension of the receive time interval is determined when the reception of a packet queue is completed, but is not limited thereto. In an alternative implementation, each time a packet is received, the transmission time interval and the reception time interval between the current packet and the previous packet can be calculated to determine whether the reception time interval divided by the transmission time interval is greater than or equal to α. If it is determined that the reception time interval divided by the transmission time interval is less than α, further processing of the current packet queue can be stopped, and the bandwidth estimation process can restart when the next packet queue is received.

[0090] In the second embodiment, the measurement validity of the measurement time based on the queue ID identifier and the measurement validity of the measurement time based on the extended reception time interval are both determined. In an alternative embodiment, either the measurement validity of the measurement time based on the queue ID identifier and the measurement validity of the measurement time based on the extended reception time interval are determined.

[0091] Third Implementation Method

[0092] The third embodiment will now be described. In the bandwidth estimation system of the third embodiment, components similar to those in the bandwidth estimation system 200 of the second embodiment are assigned the same reference numerals, and detailed descriptions thereof will be omitted. For the last two digits of their reference numerals, which are common functional blocks between the second and third embodiments, detailed descriptions will also be omitted. The hardware configuration of each of the transmitter and receiver in the third embodiment is as follows: Figure 2 The transmitter 10 and receiver 20 of the first embodiment shown have identical hardware configurations. Therefore, a detailed description thereof will be omitted.

[0093] like Figure 1 As shown, the bandwidth estimation system 300 according to the third embodiment includes a transmitter 210 and a receiver 320.

[0094] Now refer to Figure 12 The functional configuration of the receiver 320 in the third embodiment is described. For example... Figure 12 As shown, the receiver 320 includes a receiving unit 22, a measurement unit 324, a measurement validity determination unit 332, an estimation validity determination unit 326, an estimation unit 328, and a transmitting unit 30. Each functional block consists of... Figure 2 The CPU 52 implementation shown.

[0095] The measurement validity determination unit 332 determines the measurement validity of the measurement time based on the queue ID. Specifically, each time a packet is received, the measurement validity determination unit 332 sends an error message to the queue ID. Figure 16 Add entries to or update entries in the measurement table shown. Figure 16In the example shown, the measurement table stores entries (queue ID), reception start time, reception end time, and measurement data volume. The reception start time is the time when the first packet of the packet queue is received at receiver 320, and the reception end time is the time when the last packet of the same packet queue is received at receiver 320.

[0096] More specifically, the measurement validity determination unit 332 determines whether there is an entry in the measurement table that matches the queue ID assigned to the incoming packet. If there is an entry in the measurement table that matches the queue ID assigned to the incoming packet, the measurement validity determination unit 332 updates the reception end time and measurement data volume in the measurement table based on the incoming packet. Specifically, the measurement validity determination unit 332 updates the reception end time to the reception time of the incoming packet and updates the measurement data volume to the sum of the data volume in the incoming packet and the measurement data volume currently stored in the measurement table.

[0097] If no entry matching the queue ID is found in the measurement table, the measurement validity determination unit 332 adds a new entry to the measurement table based on the incoming packet. Specifically, the measurement validity determination unit 332 adds the queue ID assigned to the incoming packet as the entry number, the reception time of the incoming packet as both the start and end times of reception, and 0 as the amount of measurement data to the measurement table. When the measurement unit 324 measures the measurement time, this ensures the measurement validity of the measurement time identified by the queue ID.

[0098] Measurement unit 324 measures the measurement time of each packet queue identified based on the queue ID assigned to the incoming packets received from receiving unit 22. Specifically, each time the measurement table is updated based on an incoming packet (excluding adding entries), measurement unit 324 measures the measurement time of the packet queue corresponding to the latest entry. Specifically, measurement unit 324 measures the measurement time by subtracting the reception start time from the reception end time stored in the latest entry in the measurement table. If the measurement time is determined to be invalid by the estimation validity determination unit 326, described later, measurement unit 324 calculates the comprehensive measurement time by adding the measurement time of the previous packet queue to the measurement time of the packet queue corresponding to the latest entry.

[0099] If the measurement time of the first packet queue is less than the threshold time β, the estimation validity determination unit 326 compares the comprehensive measurement time, which is the sum of the measurement times of multiple consecutive packet queues, with the threshold time β to determine whether an effective estimation of the available bandwidth can be made. Specifically, if it is determined that the measurement time of the first packet queue measured by the measurement unit 324 is less than the threshold time, the estimation validity determination unit 326 causes the measurement unit 324 to calculate the comprehensive measurement time by adding the measurement times of subsequent packet queues to the measurement time of the first packet queue. Then, the estimation validity determination unit 326 determines whether the comprehensive measurement time is greater than or equal to the threshold time β. The estimation validity determination unit 326 causes the measurement unit 324 to calculate the comprehensive measurement time until the comprehensive measurement time is equal to or greater than the threshold time β.

[0100] For example, such as Figure 17 As shown, if the measurement time T1 of packet queue 1 is less than the threshold time β, then it is determined that a valid bandwidth estimate cannot be made for measurement time T1. If the measurement time T2 of packet queue 2 is also less than the threshold time β, then it is determined that a valid bandwidth estimate cannot be made for measurement time T2 only. However, if the combined measurement time (T1+T2) is greater than or equal to β, then it is determined that a valid bandwidth estimate can be made for the combined measurement time (T1+T2).

[0101] In response to the determination of the validity of the estimation, the estimation unit 326 determines that a valid estimate of the available bandwidth can be made, and the estimation unit 328 estimates the available bandwidth based on the total amount of data and the combined measurement time of the multiple packet queues being merged.

[0102] Specifically, the estimation unit 328 estimates the rate as an estimate of available bandwidth by obtaining the amount of measurement data in each of the multiple packet queues merged from the measurement table and dividing the sum of the measurement data by the overall measurement time.

[0103] The operation of the bandwidth estimation system 300 according to the third embodiment will now be described. In the transmitter 210 of the third embodiment, the following is executed: Figure 7 The transmitter receiving and processing shown Figure 14 The transmitter transmission process is shown. In receiver 320, the following is executed: Figure 18 The bandwidth estimation process is shown. Since the transmitter transmission process and transmitter reception process are similar to those of the second embodiment, their description will be omitted. In the bandwidth estimation process of the third embodiment, the bandwidth estimation process of the first embodiment (…) Figure 9 The same processing steps in the figure are assigned the same reference numerals, and their descriptions will be omitted.

[0104] Now refer to Figure 18The bandwidth estimation process in the third embodiment is described.

[0105] At step S340, following step S40, the measurement validity determination unit 332 sets the variable i, which indicates the queue ID of the packet queue to which the incoming packet belongs, to the queue ID of the packet queue to which the incoming packet belongs. Then, at step S342, the measurement validity determination unit 332 determines whether an entry i matching the value i is stored in the measurement table. If entry i is stored, the process proceeds to step S346. If not, the process proceeds to step S344. The packet queue assigned the queue ID i is hereinafter referred to as "packet queue i".

[0106] At step S344, the measurement validity determination unit 332 adds entry number i, the reception time of the incoming packet (which is the reception start time and reception end time), and 0 (which is the measurement data amount) to the measurement table. Then, the process flow returns to step S40. At step S346, the measurement validity determination unit 332 updates the reception end time of entry i to the reception time of the incoming packet and updates the measurement data amount to the current data amount stored in the measurement table plus the data amount in the incoming packet.

[0107] Subsequently, at step S348, measurement unit 324 sets variable j, which indicates the queue ID of the earliest packet queue among the packet queues to be merged, to i. At step S350, measurement unit 324 calculates the overall measurement time by summing the measurement times from packet queue j to packet queue i. At step S352, estimation validity determination unit 326 determines whether the overall measurement time calculated in step S350 is greater than or equal to a threshold time β. If the overall measurement time is greater than or equal to the threshold time β, the processing flow proceeds to step S358. If the overall measurement time is less than the threshold time β, the processing flow proceeds to S354.

[0108] At step S354, the validity determination unit 326 determines whether j is the queue ID of the first received packet queue. If j is the queue ID of the first received packet queue, the process returns to step S40. If j is not the queue ID of the first received packet queue, the process returns to step S356. At step S356, the validity determination unit 326 updates j to the queue ID of the previously received packet queue, and the process returns to step S350. At step S350, the validity determination unit 326 causes the measurement unit 324 to calculate the overall measurement time.

[0109] At step S358, the estimation unit 328 estimates the rate estimate by dividing the sum of the measurement data in packet queues j to packet queue i by the comprehensive measurement time calculated at step S350.

[0110] Then, the transmitting unit 30 sends the rate estimate to the transmitter 210. After that, the processing flow returns to step S40.

[0111] As described above, in the bandwidth estimation system of the third embodiment, when the receiver cannot effectively estimate the available bandwidth using the measurement time of a single packet queue, the receiver merges multiple packet queues to estimate the available bandwidth. With this configuration, even if the measurement time of a single packet queue is less than a threshold time due to receiver performance or communication line characteristics, increasing the measurement time makes it possible to estimate the available bandwidth. Furthermore, it is not necessary to increase the number of packets in a packet queue to make the measurement time greater than or equal to the threshold time, thereby avoiding an increase in the amount of data in the packet queue.

[0112] Fourth Implementation Method

[0113] The fourth embodiment will now be described. In the bandwidth estimation system of the fourth embodiment, components similar to those in the bandwidth estimation system 300 of the third embodiment are assigned the same reference numerals, and detailed descriptions thereof will be omitted. For functional blocks whose last two digits of their reference numerals are common between the third and fourth embodiments, detailed descriptions will also be omitted. The hardware configuration of each of the transmitter and receiver in the fourth embodiment is as follows: Figure 2 The transmitter 10 and receiver 20 of the first embodiment shown have identical hardware configurations. Therefore, a detailed description thereof will be omitted.

[0114] like Figure 1 As shown, the bandwidth estimation system 400 according to the fourth embodiment includes a transmitter 210 and a receiver 420.

[0115] Now refer to Figure 12 The functional configuration of the receiver 420 in the fourth embodiment is described. For example... Figure 12 As shown, the receiver 420 includes a receiving unit 22, a measurement unit 324, a measurement validity determination unit 332, an estimation validity determination unit 426, an estimation unit 328, and a transmitting unit 30. Each functional block consists of... Figure 2 The CPU 52 implementation shown.

[0116] A third embodiment has been described, in which the ability to effectively estimate bandwidth is determined based on whether the combined measurement time, which is the sum of the measurement times of multiple packet queues, is greater than or equal to a threshold time β. In such an embodiment, the packet queues used to estimate the available bandwidth may include old packet queues due to the time required for changes in the communication rate of communication line 40. If multiple packet queues including such old packet queues are used to estimate the available bandwidth, the estimation accuracy may degrade.

[0117] In this embodiment, similar to the estimation validity determination unit 326 in the third embodiment, the estimation validity determination unit 426 determines the validity of the overall measurement time, which is the sum of the measurement times of multiple packet queues. In response to the measurement time required from receiving the first (or earliest) packet in the merged multiple packet queues to receiving the last packet being within a predefined upper limit, the estimation validity determination unit 426 determines that a valid estimate of the available bandwidth can be performed.

[0118] For example, such as Figure 19 As shown, assume the overall measurement time (T1+T2) is greater than or equal to the threshold time β, where T1 is the measurement time of packet queue 1 and T2 is the measurement time of packet queue 2. In this case, the estimation validity determination unit 426 calculates the required measurement time T(1-2) by subtracting the reception time of the first packet of packet queue 1 from the reception time of the last packet of packet queue 2. If the required measurement time T(1-2) exceeds the upper limit γ, the estimation validity determination unit 426 determines that even if the overall measurement time (T1+T2) is greater than or equal to the threshold time β, an effective estimation of the available bandwidth cannot be performed.

[0119] The upper limit γ is predefined based on the characteristics of the communication line. For example, ... Figure 20 As shown, the upper limit γ can be defined as the time required for the communication rate to change by a predefined value or more.

[0120] The operation of the bandwidth estimation system 400 according to the fourth embodiment will now be described. In the transmitter 210 of the fourth embodiment, the following is executed: Figure 7 The transmitter receiving and processing shown Figure 14 The transmitter transmission process is shown. In receiver 420, the following is executed: Figure 21 The bandwidth estimation process is shown. Since the transmitter transmission process and transmitter reception process are similar to those of the second embodiment, their description will be omitted. In the bandwidth estimation process of the fourth embodiment, the bandwidth estimation process of the third embodiment (… Figure 18 The same processing steps in the figure are assigned the same reference numerals, and their descriptions will be omitted.

[0121] If the answer at step S352 is yes, the process proceeds to step S440. At step S440, the validity determination unit 426 calculates the required measurement time T(ji) by subtracting the reception time of the first packet in packet queue j from the reception time of the last packet in packet queue i. Then, at step S442, the validity determination unit 426 determines whether the required measurement time T(ji) calculated in step S440 is less than or equal to a predefined upper limit γ. If T(ji) ≤ γ, the process proceeds to step S358. If T(ji) > γ, the process proceeds to step S40.

[0122] As described above, in the bandwidth estimation system of the fourth embodiment, the receiver determines that an effective bandwidth estimation cannot be performed when the sum of the measurement time of the multiple packet queues being calculated and the required measurement time of the multiple packet queues exceeds an upper limit. This avoids including old packet queues due to the time required for changes in the communication rate of communication line 40, thereby suppressing the degradation of estimation accuracy.

[0123] The above implementation methods can be combined appropriately.

[0124] Each of the above embodiments has been described, wherein the bandwidth estimation device operates on the receiver, but is not limited thereto. In alternative embodiments, for example, the estimation unit may be incorporated into the transmitter. In such an embodiment, the measurement time determined as valid by the estimation validity determination unit can be transmitted from the receiver to the transmitter. In another alternative embodiment, the estimation validity determination unit and the estimation unit may be incorporated into the transmitter. In such an embodiment, the measurement time measured by the measurement unit can be transmitted from the receiver to the transmitter. In yet another alternative embodiment, the measurement unit, the estimation validity determination unit, and the estimation unit may be incorporated into the transmitter. In such an embodiment, the reception time of each packet received by the receiving unit can be transmitted from the receiver to the transmitter.

[0125] The various processes executed by the CPU reading software (program) in the implementation can be performed by various processors other than the CPU. Examples of such processors include programmable logic devices (PLDs) such as field-programmable gate arrays (FPGAs), whose circuit configuration can be changed after manufacturing; and application-specific circuits such as application-specific integrated circuits (ASICs), which are processors with circuit configurations specifically designed to perform particular processes. The various processes can be performed by one of these different processors or by a combination of two or more processors of the same or different types (e.g., a combination of multiple FPGAs, CPUs, and FPGAs, etc.). More specifically, the hardware structure of these different processors is obtained by combining circuit elements such as semiconductor elements.

[0126] Each of the embodiments has been described, wherein the transmitter program and the bandwidth estimation program are pre-stored (installed) in their respective storage units, but are not limited thereto. The programs can be stored in non-transitory tangible storage media, such as a CD-ROM, a DVD-ROM, or a Universal Serial Bus (USB) memory. The programs can be downloaded from external devices via a network.

Claims

1. A bandwidth estimation device, comprising: A measurement unit configured to measure the time from the first packet of a packet queue comprising multiple packets received by a receiver to the last packet of the packet queue received by the receiver, the multiple packets being sequentially transmitted from a transmitter via a communication line; An estimation validity determination unit is configured to compare the measurement time with a predefined threshold time based on the performance of the receiver or the characteristics of the communication line, and determine that an effective estimate of the available bandwidth of the communication line can be made if the measurement time is greater than or equal to the threshold time. as well as An estimation unit is configured to estimate the available bandwidth of the communication line based on the amount of data in the packet queue and the measurement time, in response to the estimation validity determination unit determining that an effective estimation of the available bandwidth can be performed.

2. The bandwidth estimation device according to claim 1, wherein, The estimation validity determination unit is configured to determine, in response to the measurement time being greater than or equal to the threshold time, that an effective estimation of the available bandwidth can be performed, the threshold time being greater than or equal to a predefined multiple of the resolution of the processing time at the receiver.

3. The bandwidth estimation device according to claim 1, wherein, The estimation validity determination unit is configured to determine whether an effective estimation of the available bandwidth can be performed in response to the measurement time being greater than or equal to the threshold time, the threshold time being a time period per interrupt cycle plus a margin, in which interrupt processing is performed on packets received at the receiver.

4. The bandwidth estimation device according to claim 1, wherein, The estimation validity determination unit is configured to determine, in response to the measurement time being greater than or equal to the threshold time, that an effective estimation of the available bandwidth can be performed, the threshold time being the time period of each burst cycle plus a margin, in which burst traffic occurs on the communication line.

5. The bandwidth estimation device according to any one of claims 1 to 4, further comprising a measurement validity determination unit, the measurement validity determination unit being configured to determine the measurement validity of the measurement time, wherein, The estimation validity determination unit is configured to determine whether an effective estimation of the available bandwidth can be performed based on the effective measurement time, wherein an effective measurement can be performed within the effective measurement time.

6. The bandwidth estimation device according to claim 5, wherein, The measurement validity determination unit is configured to determine the validity of the measurement time in response to each packet in the packet queue from the first packet to the last packet being assigned identification information indicating that it belongs to the same packet queue.

7. The bandwidth estimation device according to claim 5, wherein, Each of the plurality of packets included in the packet queue is assigned a transmission time, the transmission time indicating when the packet is sent from the transmitter, and The measurement validity determination unit is configured to determine that the measurement time is valid in response to the inter-packet reception time interval at the receiver being greater than a predefined value or more than the corresponding inter-packet transmission time interval at the transmitter for each pair of consecutive packets included in the packet queue.

8. The bandwidth estimation device according to any one of claims 1 to 4, wherein, The estimation validity determination unit is configured to compare a combined measurement time, which is the sum of the measurement times of multiple consecutive packet queues, with the threshold time in response to the measurement time of the first packet queue being less than the threshold time, to determine whether an effective estimation of the available bandwidth can be performed. The estimation unit is configured to estimate the available bandwidth based on the total amount of data in the merged multiple packet queues and the combined measurement time, in response to the estimation validity determination unit determining that an effective estimate of the available bandwidth can be made.

9. The bandwidth estimation device according to claim 8, wherein, The estimation validity determination unit is configured to determine whether an effective estimation of the available bandwidth can be performed in response to a time period from the receipt of the first packet of the merged multiple packet queue to the receipt of the last packet of the merged multiple packet queue being within a predefined upper limit.

10. A bandwidth estimation method, comprising: The measurement unit measures the time from the first packet of a packet queue comprising multiple packets received by the receiver to the last packet of the packet queue received by the receiver, the multiple packets being sequentially transmitted from the transmitter via a communication line; The estimation validity determination unit compares the measurement time with a predefined threshold time based on the performance of the receiver or the characteristics of the communication line. If the measurement time is greater than or equal to the threshold time, it determines that an effective estimation of the available bandwidth of the communication line can be performed. as well as In response to the estimation validity determination unit determining that an effective estimation of the available bandwidth can be performed, the estimation unit estimates the available bandwidth of the communication line based on the amount of data in the packet queue and the measurement time.

11. A non-transitory computer-readable storage medium having instructions stored thereon, the instructions, when executed by a computer, causing the computer to function as follows: A measurement unit configured to measure the time from the first packet of a packet queue comprising multiple packets received by a receiver to the last packet of the packet queue received by the receiver, the multiple packets being sequentially transmitted from a transmitter via a communication line; An estimation validity determination unit is configured to compare the measurement time with a predefined threshold time based on the performance of the receiver or the characteristics of the communication line, and determine that an effective estimate of the available bandwidth of the communication line can be made if the measurement time is greater than or equal to the threshold time. as well as An estimation unit is configured to estimate the available bandwidth of the communication line based on the amount of data in the packet queue and the measurement time, in response to the estimation validity determination unit determining that an effective estimation of the available bandwidth can be performed.

Citation Information

Patent Citations

  • Available bandwidth measuring system, reception terminal, available bandwidth measuring method, and computer program

    JP2017184213A

  • System and method to measure available bandwidth in ethernet transmission system using train of ethernet frames

    US20160094428A1

  • Communication system, available-bandwidth estimation method, and recording medium

    US20200313992A1

  • Flexible routing of network data within a programmable integrated circuit

    US20200356514A1