[go: up one dir, main page]

CN107317728B - Bandwidth measurement method and device - Google Patents

Bandwidth measurement method and device Download PDF

Info

Publication number
CN107317728B
CN107317728B CN201710538056.6A CN201710538056A CN107317728B CN 107317728 B CN107317728 B CN 107317728B CN 201710538056 A CN201710538056 A CN 201710538056A CN 107317728 B CN107317728 B CN 107317728B
Authority
CN
China
Prior art keywords
client device
port
thread
preset
sending
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710538056.6A
Other languages
Chinese (zh)
Other versions
CN107317728A (en
Inventor
刘波
苏睿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Wanxiang Electronics Technology Co Ltd
Original Assignee
Xian Wanxiang Electronics Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian Wanxiang Electronics Technology Co Ltd filed Critical Xian Wanxiang Electronics Technology Co Ltd
Priority to CN201710538056.6A priority Critical patent/CN107317728B/en
Priority to CN202110197273.XA priority patent/CN113014447B/en
Publication of CN107317728A publication Critical patent/CN107317728A/en
Application granted granted Critical
Publication of CN107317728B publication Critical patent/CN107317728B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention discloses a bandwidth measuring method and device. Wherein, the method comprises the following steps: the client equipment establishes a sending thread and a receiving thread; the client device sends a first detection packet sequence through a sending thread and receives a second detection packet sequence through a receiving thread; the client device obtains a measurement result of the first bandwidth according to the time intervals of a plurality of first detection packets in the first detection packet sequence, and obtains a measurement result of the second bandwidth according to the time intervals of a plurality of second detection packets in the second detection packet sequence. The invention solves the technical problems of long measurement time and low measurement efficiency of the bandwidth measurement method in the prior art.

Description

Bandwidth measuring method and device
Technical Field
The invention relates to the field of communication, in particular to a bandwidth measurement method and device.
Background
In order to measure the bandwidth, a common method at present is a Pathchirp algorithm, which sends a sequence of sounding packets with equal sounding packet length and exponentially shortened time interval between two client devices, counts a segment (extension) at a receiving end, and predicts an available bandwidth between the two client devices according to receiving delay information included in the extension.
However, the current bandwidth measurement method can start measurement on another client device only after one client device finishes measurement, which results in long measurement time and low measurement efficiency.
Aiming at the problems of long measurement time and low measurement efficiency of the bandwidth measurement method in the prior art, no effective solution is provided at present.
Disclosure of Invention
The embodiment of the invention provides a bandwidth measuring method and device, which at least solve the technical problems of long measuring time and low measuring efficiency of the bandwidth measuring method in the prior art.
According to an aspect of an embodiment of the present invention, there is provided a bandwidth measurement method including: the client equipment establishes a sending thread and a receiving thread; the client device sends a first detection packet sequence through a sending thread and receives a second detection packet sequence through a receiving thread; the client device obtains a measurement result of the first bandwidth according to the time intervals of a plurality of first detection packets in the first detection packet sequence, and obtains a measurement result of the second bandwidth according to the time intervals of a plurality of second detection packets in the second detection packet sequence.
Further, the client device establishing the receiving thread comprises: the client equipment randomly allocates a first port according to a preset algorithm; the client device creates a control session and a receiving socket by using the port number of the first port; the client device establishes a receiving thread according to the port number of the first port, the control session and the receiving socket.
Further, after the client device creates the control session and the receive socket using the port number of the first port, the client device transmits the port number of the first port.
Further, the client device establishing the sending thread comprises: the client device receives a port number of a second port in a preset time period, wherein the second port is a port randomly allocated according to a preset algorithm; the client device creates a sending socket by using the port number of the second port; and the client equipment establishes a sending thread according to the port number of the second port and the sending socket.
Further, before the client device establishes the sending thread and the receiving thread, the method further includes: the client device establishes communication connection by using a preset port; the client device receives a connection request through a preset port, wherein the connection request is used for representing that the client device is requested to send a first probe packet sequence, and the client device is requested to receive a second probe packet sequence.
Further, after the client device establishes the sending thread and the receiving thread, the client device closes the communication connection.
Further, before the client device sends the first sequence of probe packets through the sending thread and receives the second sequence of probe packets through the receiving thread, the method further includes: the client equipment acquires the type of an operating system; and under the condition that the type of the operating system is a preset type, the client equipment sends a first probe packet sequence through the sending thread by using a preset timer.
Further, the client device sending the first probe packet sequence through the sending thread by using the preset timer includes: the client equipment sends a current probe packet in the first probe packet sequence and obtains an initial count value of a preset timer; the client equipment acquires the current count value of a preset timer; the client device judges whether the difference value between the current counting value and the initial counting value is larger than or equal to a preset value or not; and if the difference value between the current count value and the initial count value is greater than or equal to a preset value, the client equipment sends the next detection packet in the first detection packet sequence.
Further, before the client device sends the first probe packet sequence through the sending thread by using a preset timer, the method further includes: the client device judges whether the operating system has a preset timer or not; and if the preset timer exists in the operating system, the client device sends the first probe packet sequence through the sending thread by using the preset timer.
Further, before the client device establishes the sending thread and the receiving thread, loading a preset dynamic library, and after the preset dynamic library is loaded, starting to execute the step of establishing the sending thread and the receiving thread by the client device.
According to another aspect of the embodiments of the present invention, there is also provided a bandwidth measuring apparatus, including: the establishing module is used for establishing a sending thread and a receiving thread; the communication module is used for sending the first detection packet sequence through the sending thread and receiving the second detection packet sequence through the receiving thread; and the processing module is used for obtaining a measurement result of the first bandwidth according to the time intervals of a plurality of first detection packets in the first detection packet sequence and obtaining a measurement result of the second bandwidth according to the time intervals of a plurality of second detection packets in the second detection packet sequence.
Further, the establishing module comprises: the distribution submodule is used for randomly distributing the first ports according to a preset algorithm; a first creation sub-module for creating a control session and a reception socket using a port number of the first port; and the first establishing submodule is used for establishing a sending thread according to the port number of the first port, the control session and the receiving socket.
Further, the establishing module comprises: the receiving submodule is used for receiving the port number of the second port in a preset time period, wherein the second port is randomly distributed according to a preset algorithm; a second creating sub-module for creating a send socket using the port number of the second port; and the second establishing submodule is used for establishing a receiving thread according to the port number of the second port and the sending socket.
Further, the above apparatus further comprises: the acquisition module is used for acquiring the type of the operating system; the communication module is further used for sending the first probe packet sequence through the sending thread by using a preset timer under the condition that the type of the operating system is a preset type.
Further, the above apparatus further comprises: the loading module is used for loading a preset dynamic library; and the execution module is used for starting to execute the function of the establishment module after the preset dynamic library is loaded.
According to another aspect of the embodiments of the present invention, there is also provided a storage medium, which is characterized in that the storage medium includes a stored program, wherein when the program runs, the apparatus on which the storage medium is located is controlled to execute the bandwidth measuring method in the above embodiments.
According to another aspect of the embodiments of the present invention, there is further provided a processor, wherein the processor is configured to execute a program, and when the program runs, the bandwidth measurement method in the above embodiments is performed.
In the embodiment of the invention, the client device establishes a sending thread and a receiving thread, sends the first detection packet sequence through the sending thread, receives the second detection packet sequence through the receiving thread, obtains the measurement result of the first bandwidth according to the time interval of a plurality of first detection packets in the first detection packet sequence, and obtains the measurement result of the second bandwidth according to the time interval of a plurality of second detection packets in the second detection packet sequence. It is easy to note that, because the client device can establish the sending thread and the receiving thread, and send the first probe packet sequence through the sending thread and receive the second probe packet sequence through the receiving thread at the same time, the purpose of measuring the bandwidth in parallel is achieved, the technical problems of long measuring time and low measuring efficiency of the bandwidth measuring method in the prior art are solved, and the effects of shortening the measuring time and improving the measuring efficiency are achieved.
Drawings
The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this application, illustrate embodiment(s) of the invention and together with the description serve to explain the invention without limiting the invention. In the drawings:
FIG. 1 is a flow chart of a bandwidth measurement method according to an embodiment of the present invention;
FIG. 2 is a flow chart of an alternative method of parallel bandwidth measurement according to an embodiment of the present invention;
FIG. 3 is a flowchart of an alternative method for controlling precise delay in a Windows system according to an embodiment of the present invention; and
fig. 4 is a schematic diagram of a bandwidth measuring apparatus according to an embodiment of the present invention.
Detailed Description
In order to make the technical solutions of the present invention better understood, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
It should be noted that the terms "first," "second," and the like in the description and claims of the present invention and in the drawings described above are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It is to be understood that the data so used is interchangeable under appropriate circumstances such that the embodiments of the invention described herein are capable of operation in sequences other than those illustrated or described herein. Furthermore, the terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or apparatus that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed, but may include other steps or elements not expressly listed or inherent to such process, method, article, or apparatus.
First, terms appearing in the embodiments of the present invention are explained as follows:
pathchirp algorithm: an algorithm for estimating the one-way available bandwidth between two hosts at the receiving end according to the receiving delay of the sequence by directly transmitting the exponentially shortened probe packet sequence with equal length and time interval between the receiving and transmitting hosts. The formula for calculating the bandwidth of a single group of probe packet sequences (chirp) is as follows:
Figure BDA0001341123250000041
wherein, the vector delta identifies the transmission interval between the probe packets in the chirp (i.e. the transmission time scale of the kth +1 th probe packet minus the transmission time scale of the kth probe packet), the vector E represents the bandwidth estimation value occupied by transmitting each probe packet, and the scalar D represents the result of measuring the bandwidth according to the chirp of the round, and the unit is bps.
The length of both vectors E and Δ is less than 1 than the number of probe packets N, where EkThe following three cases can be divided into to calculate separately: if the transmission time of the kth probe packet is within 1 exception and the exception is not at the end of the chirp, EkDivide the length of the kth packet by Δk(ii) a The transmission time of the kth probe packet is within 1 exception, but this exception is located at the end of the chirp and is therefore not complete, EkDivide the length of the first probe packet in this extension by its transmit time interval E1/△1(ii) a The transmission time of the kth probe packet does not belong to any extension, and the earliest probe packet i which is connected with the kth probe packet and does not belong to any extension is selected as Ei/△iAs E of these probe packetsk
A certain sub-sequence of the probe packet transmission delay vector q must satisfy the following three conditions at the same time to form an exception: the time delay of the sub-sequence with an element q [ i ] is more than 0; and (4) circularly searching the elements after i according to the following rules to find the subsequence q [ i ] -q [ j ]: the length of the sub-sequences q [ i ] to q [ j ] is greater than a threshold value L (for example, 5).
The calculation of bandwidth prediction is completely carried out at the receiving end, and the analysis and calculation can be carried out only after each group chirp is completely received.
chirp: the sequence of probe packets delivered at one measurement of available bandwidth is performed according to the Pathchirp algorithm. Each group chirp is composed of a plurality of probe packets, and the transmission time interval between the probe packets is exponentially shortened.
And (2) curing: according to the Pathchirp algorithm, the receiving time delay of the chirp sequence is counted at a receiving end, and a subsequence which is zero-crossing and returns to zero or is zero-crossing and continuously grows is called as an extension. The exclusion and its receive latency are important criteria for calculating the available bandwidth.
Available bandwidth: the maximum available transmission bandwidth between the two hosts in one direction. The bandwidth is calculated by the measuring receiving end after receiving the complete chirp.
Example 1
In accordance with an embodiment of the present invention, there is provided an embodiment of a bandwidth measurement method, it should be noted that the steps illustrated in the flowchart of the figure may be performed in a computer system such as a set of computer executable instructions, and that while a logical order is illustrated in the flowchart, in some cases the steps illustrated or described may be performed in an order different than here.
Fig. 1 is a flow chart of a bandwidth measurement method according to an embodiment of the present invention, as shown in fig. 1, the method including the steps of:
in step S102, the client device establishes a sending thread and a receiving thread.
Specifically, the client device may be a computer device, a smart phone (including an Android phone and an IOS phone), an IPAD, a tablet computer, a palm computer, and the like, which is not specifically limited in the present invention; the sending thread and the receiving thread can be the sending thread and the receiving thread of Pathchirp, the number of the established threads can be one or more, and under the condition of low requirement on measurement accuracy, the client device can establish a plurality of sending threads and a plurality of receiving threads.
Step S104, the client device sends the first probe packet sequence through the sending thread and receives the second probe packet sequence through the receiving thread.
Step S106, the client device obtains a measurement result of the first bandwidth according to the time intervals of a plurality of first detection packets in the first detection packet sequence, and obtains a measurement result of the second bandwidth according to the time intervals of a plurality of second detection packets in the second detection packet sequence.
Specifically, the first bandwidth may be an upstream bandwidth, which is a bandwidth for the client device to transmit data, and the second bandwidth may be a downstream bandwidth, which is a bandwidth for the client device to receive data.
In an optional scheme, when bandwidth measurement is required, the client device a may establish a sending thread and a receiving thread, the two threads may run in parallel, the client device a sends a first probe packet sequence to the client device B through the sending thread, and at the same time, may receive a second probe packet sequence sent by the client device C through the receiving thread, after receiving the first probe packet sequence, the client device B may obtain a measured value of an uplink bandwidth of the client device a according to a time interval of a plurality of probe packets in the first probe packet sequence through a Pathchirp algorithm, and after receiving the second probe packet sequence, the client wadding pen a may obtain a measured value of a downlink bandwidth of the client device a according to a time interval of a plurality of probe packets in the second probe packet sequence through a Pathchirp algorithm, thereby achieving a purpose of parallel bandwidth measurement.
It should be noted that, the client device a may also send the first probe packet sequence to the client device B and receive the second probe packet sequence sent by the client device B, at this time, a sending thread and a receiving thread need to be established on the client device B.
According to the above embodiment of the present invention, the client device establishes a sending thread and a receiving thread, sends the first probe packet sequence through the sending thread, receives the second probe packet sequence through the receiving thread, obtains the measurement result of the first bandwidth according to the time interval of the plurality of first probe packets in the first probe packet sequence, and obtains the measurement result of the second bandwidth according to the time interval of the plurality of second probe packets in the second probe packet sequence. It is easy to note that, because the client device can establish the sending thread and the receiving thread, and send the first probe packet sequence through the sending thread and receive the second probe packet sequence through the receiving thread at the same time, the purpose of measuring the bandwidth in parallel is achieved, the technical problems of long measuring time and low measuring efficiency of the bandwidth measuring method in the prior art are solved, and the effects of shortening the measuring time and improving the measuring efficiency are achieved.
In the prior art, a client device receives a probe packet sequence through a fixed port (UDP (User Datagram Protocol, short for User data program)) and a TCP (Transmission Control Protocol, short for Transmission Control Protocol) so that the same client device can only run a sending thread or a receiving thread at the same time and cannot measure bandwidth in parallel. For the purpose of measuring the bandwidth in parallel, in the embodiment of the present invention, the receiving port and the sending port may allocate the transmission and control ports in a dynamic allocation manner, and no longer occupy the fixed UDP probe packet receiving port and the TCP control port.
Optionally, in the foregoing embodiment of the present invention, in step S102, the establishing, by the client device, a receiving thread includes:
step S1021, the client device randomly allocates the first port according to a preset algorithm.
Specifically, the preset algorithm may be an algorithm for dynamically allocating a port, which is not specifically limited in the present invention; the first port may be a transmission and control port of the client device as a transmitting end.
In step S1022, the client device creates a control session and a receive socket using the port number of the first port.
Specifically, the control session may be a TCP control session, and the receiving socket may be a UDP receiving socket.
In step S1023, the client device establishes a receiving thread according to the port number of the first port, the control session, and the receiving socket.
In an optional scheme, when the client device a is required to receive the second probe packet sequence sent by the client device C, the client device a may receive a connection request sent by the client device C, request the client device a to serve as a receiving end, and the client device a may create a local TCP control session and a UDP receiving socket by using a random port (i.e., the port number of the first port), and then start a PathChirp receiving thread.
Optionally, in the foregoing embodiment of the present invention, in step S1022, after the client device creates the control session and the receive socket by using the port number of the first port, the method further includes: step S1024, the client device sends the port number of the first port.
In an alternative scheme, after the client device a creates a local TCP control session and UDP receiving socket using a random port (i.e., the port number of the first port), the port numbers of TCP and UDP (i.e., the port number of the first port) may be obtained and sent to the client device C, and then a PathChirp receiving thread is started.
Optionally, in the foregoing embodiment of the present invention, in step S102, the establishing, by the client device, a sending thread includes:
in step S1025, the client device receives the port number of the second port within a preset time period, where the second port is a port randomly allocated according to a preset algorithm.
Specifically, the preset time period may be a timeout time preset by the user as needed, and if the port number of the second port is not received after the timeout time, it is determined that the client device does not send the port number of the second port.
In step S1026, the client device creates a send socket using the port number of the second port.
Step S1027, the client device establishes a sending thread according to the port number of the second port and the sending socket.
In an optional scheme, when the client device a is required to send the first probe packet sequence to the client device B, the client device a may receive a connection request sent by the client device B, request the client device a to serve as a sending end, and the client device a may receive, over time, port numbers of TCP and UDP (i.e., the port number of the second port) returned by the client device B, create a sending socket according to the port numbers, and start a PathChirp sending thread.
Optionally, in the foregoing embodiment of the present invention, before the step S102, before the client device establishes the sending thread and the receiving thread, the method further includes:
step S108, the client device establishes communication connection by using the preset port.
Specifically, the preset port may be a TCP connection port.
Step S110, the client device receives a connection request through a preset port, where the connection request is used to represent that the client device is requested to send a first probe packet sequence, and the client device is requested to receive a second probe packet sequence.
In an optional scheme, a TCP short connection (i.e., the above communication connection) may be established between the client device a and the client device B, and between the client device a and the client device C by using one TCP contact port, and information such as a dynamic port number and a measurement parameter may be transmitted through the TCP short connection, which may be implemented by using one contact thread.
Optionally, in the foregoing embodiment of the present invention, after the step S102, the client device establishes the sending thread and the receiving thread, the method further includes:
in step S112, the client device closes the communication connection.
In an alternative scheme, after establishing the sending thread and the receiving thread, the client device a may close the communication connection, i.e. close the TCP short connection.
Optionally, in the foregoing embodiment of the present invention, before the step S104, the client device sends the first sequence of probe packets through the sending thread and receives the second sequence of probe packets through the receiving thread, the method further includes:
in step S114, the client device obtains the type of the operating system.
Step S116, in a case that the type of the operating system is a preset type, the client device sends the first probe packet sequence through the sending thread by using a preset timer.
Specifically, the preset type may be a Windows operating system, and compared with a linux system, the preset type can achieve 10 μ s-level delay, a conventional delay function of the Windows system can only ensure 10 ms-level delay control, and in order to achieve bandwidth measurement with the same range, the Windows system needs to send a larger (3-order-added) probe packet for bandwidth measurement, and has no operability; the preset timer can be a high-precision timer for calling Windows API functions of the series of QueryPerformancefrequency and QueryPerformancecounter, so that 10 mu s-level delay is met, and the measurement of available bandwidth on a Windows platform is realized.
Optionally, in the foregoing embodiment of the present invention, in step S116, the sending, by the client device, the first probe packet sequence through the sending thread by using the preset timer includes:
step S1162, the client device sends the current probe packet in the first probe packet sequence, and obtains an initial count value of the preset timer.
In step S1164, the client device obtains the current count value of the preset timer.
In step S1166, the client device determines whether the difference between the current count value and the initial count value is greater than or equal to a preset value.
Specifically, the preset value may be a count value of a timer corresponding to a transmission time interval between probe packets that needs to be preset for measurement.
Step S1168, if the difference between the current count value and the initial count value is greater than or equal to the preset value, the client device sends the next probe packet in the first probe packet sequence.
In an optional scheme, in the process of sending the first probe packet sequence through the sending thread, the client device a may obtain a count value ts of the high-precision timer as an initial count value while sending each probe packet, obtain a current count value te of the high-precision timer in real time, compare the current count value te with the initial count value ts, and determine that the sending time interval reaches the preset time interval if a difference between the current count value te and the initial count value ts is greater than or equal to a preset value cnt, that is, te-ts is greater than or equal to cnt, and may send the next probe packet to the client device B.
It should be noted that, the above method adopts a round-robin mechanism, because the Windows system is not a real-time operating system, if the context of the thread is switched, the delay control is still at the level of 10ms, and in order to ensure the subtle level delay control, the current thread must be kept running continuously.
Optionally, in the foregoing embodiment of the present invention, in step S116, before the client device sends the first probe packet sequence through the sending thread by using a preset timer, the method further includes:
in step S118, the client device determines whether a preset timer exists in the operating system.
Step S120, if the operating system has a preset timer, the client device sends the first probe packet sequence through the sending thread by using the preset timer.
In an optional scheme, before performing a first packet detection sequence through a sending thread by using a high-precision timer, the client device a first needs to determine whether the high-precision timer exists in the current operating system, that is, whether the client device a supports the high-precision timer, and if the high-precision timer exists in the current operating system, that is, the client device a supports the high-precision timer, perform the first packet detection sequence through the sending thread by using the high-precision timer; and if the high-precision timer does not exist in the current operating system, namely the client device A does not support the high-precision timer, prompting the user that the client device A does not support the precise delay control function.
Optionally, in the foregoing embodiment of the present invention, before the step S102, before the client device establishes the sending thread and the receiving thread, the method further includes: step S122, loading the preset dynamic library, and after loading the preset dynamic library, beginning to execute step S102, where the client device establishes a sending thread and a receiving thread.
Specifically, the preset dynamic library may be a dynamic library storing codes of the bandwidth measurement method.
It should be noted that, with the popularization of mobile devices, bandwidth measurement also requires to be migrated to mobile phones and tablet computers, and although executable files are already binary machine codes, it is difficult to directly migrate to operating systems such as Android, for example, executable files developed by C/C + + cannot directly run. Moreover, although java facilitates development of APK of Android system, code developed by java cannot be reused in linux system. Considering that the dynamic library is also a binary executable module and is easy to be called by application programs developed by different languages, the cross-platform application of the PathChirp algorithm can be realized through the dynamic library.
In an optional scheme, the code of the bandwidth measurement method may be written into a dynamic library, and when the client device a is a device of an Android system, an application program of the Android system starts to execute the code of the bandwidth measurement method by calling a derivation function provided by the dynamic library, so that bandwidth measurement based on a Pathchirp algorithm is performed with the client devices B and C of other operating systems, and an application space of the bandwidth measurement method is further expanded.
Fig. 2 is a flowchart of an optional parallel bandwidth measurement method according to an embodiment of the present invention, fig. 3 is a flowchart of an optional accurate delay control method for a Windows system according to an embodiment of the present invention, and a preferred embodiment of the present invention is described in detail below with reference to fig. 2 and fig. 3.
As shown in fig. 2, the parallel bandwidth measuring method may include the steps of:
step S21, create tcp server on the contact port and listen.
Step S22, receiving tcp client connection of the remote client device.
Optionally, the local client device runs a contact thread, starts to listen to the TCP connection request at the contact port, and determines whether the received request is legal or not when receiving a TCP client connection of the remote client device.
Step S23, determine whether to request the local client device to operate the receiving end.
Optionally, it is determined whether the local client is requested to receive the second probe packet sequence, and if so, the process proceeds to step S24, and if not, the process proceeds to step S27.
Step S24, create a receiving end, create a TCP control session and a UDP receiving socket.
Step S25, the port numbers of the TCP and UDP sessions are returned to the remote client device.
In step S26, the receiving thread is executed.
Alternatively, when it is determined that the received request requests the local client to receive the second probe packet sequence, the local client device may create a local TCP control session and a local UDP receiving socket using a random port, then obtain port numbers of the TCP and the UDP and send the port numbers to the remote host, finally start a PathChirp receiving thread, and then enter step S210.
Step S27, determine whether to request the local client device to operate the sender.
Optionally, it is determined whether to request the local client to send the first probe packet sequence, if yes, step S28 is performed, and if no, step S210 is performed after determining that the request sent by the remote client device is an illegal request.
Step S28, determine whether the port numbers of the TCP and UDP sessions sent by the remote client device are received overtime.
Optionally, determining whether a port number of a TCP and UDP session sent by the remote client device is received within a timeout period, and if so, entering step S29; if not, the process goes to step S210, and the tcp client connection of the remote client device is closed.
In step S29, the send thread is executed.
Optionally, when it is determined that the received request requests the local client to send the first probe packet sequence, the local client device may receive, over time, port numbers of TCP and UDP sent back from the remote end, create a socket of the sending end according to the port numbers, start a PathChirp sending thread, and proceed to step S210.
And step S210, closing tcp client connection at the far end.
Optionally, after the local client device starts the sending thread and the receiving thread, the tcp client connection of the remote client device may be closed, and the next round of loop is entered, returning to step S22.
As shown in fig. 3, the method for controlling the accurate delay of the Windows system may include the following steps:
and step S31, acquiring the delayed microsecond cnt.
Alternatively, a count cnt of the transmission time interval of each probe packet may be acquired.
In step S32, it is determined whether or not a high-precision clock is supported.
Optionally, judging whether the current operating system supports a high-precision clock, that is, whether the high-precision clock exists, if so, entering step S33; if not, the flow proceeds to step S36.
In step S33, the initial high-precision clock count ts is read.
Alternatively, when a probe packet is sent, the count of high precision clocks, i.e., the high precision clock count ts of the read start, is recorded.
In step S34, the current high-precision clock count te is read.
Alternatively, the count of the high accuracy clock can be recorded in real time, i.e. the current high accuracy clock count te is read, after a probe packet is sent.
Step S35, determine whether te-ts is equal to cnt.
Optionally, if te-ts is greater than or equal to cnt, determining that the sending time interval is reached, and sending the next probe packet; if te-ts < cnt, it is determined that the transmission time interval has not been reached, returning to step S34.
Step S36, the system is prompted not to support accurate latency.
Optionally, if the current operating system does not support the high-precision clock, that is, the high-precision clock does not exist, a prompt message may be displayed to prompt the user that the system does not support the precise delay and cannot achieve the microsecond-level delay control.
By the scheme, the problem that the concurrency and the portability of the Pathchirp algorithm in application are poor can be effectively solved, concurrent bandwidth measurement is realized by combining a dynamic port with multithreading, microsecond-level delay control is realized on a Windows platform, and 3) the bandwidth measurement program is compiled into a dynamic library to improve the portability.
Example 2
According to an embodiment of the present invention, an embodiment of a bandwidth measuring apparatus is provided.
Fig. 4 is a schematic diagram of a bandwidth measuring apparatus according to an embodiment of the present invention, as shown in fig. 4, the apparatus including:
the establishing module 41 is configured to establish a sending thread and a receiving thread.
Specifically, the client device may be a computer device, a smart phone (including an Android phone and an IOS phone), an IPAD, a tablet computer, a palm computer, and the like, which is not specifically limited in the present invention; the sending thread and the receiving thread can be the sending thread and the receiving thread of Pathchirp, the number of the established threads can be one or more, and under the condition of low requirement on measurement accuracy, the client device can establish a plurality of sending threads and a plurality of receiving threads.
The communication module 43 is configured to send the first sequence of probe packets through the sending thread and receive the second sequence of probe packets through the receiving thread.
The processing module 45 is configured to obtain a measurement result of the first bandwidth according to a time interval of a plurality of first probe packets in the first probe packet sequence, and obtain a measurement result of the second bandwidth according to a time interval of a plurality of second probe packets in the second probe packet sequence.
Specifically, the first bandwidth may be an upstream bandwidth, which is a bandwidth for the client device to transmit data, and the second bandwidth may be a downstream bandwidth, which is a bandwidth for the client device to receive data.
In an optional scheme, when bandwidth measurement is required, the client device a may establish a sending thread and a receiving thread, the two threads may run in parallel, the client device a sends a first probe packet sequence to the client device B through the sending thread, and at the same time, may receive a second probe packet sequence sent by the client device C through the receiving thread, after receiving the first probe packet sequence, the client device B may obtain a measured value of an uplink bandwidth of the client device a according to a time interval of a plurality of probe packets in the first probe packet sequence through a Pathchirp algorithm, and after receiving the second probe packet sequence, the client wadding pen a may obtain a measured value of a downlink bandwidth of the client device a according to a time interval of a plurality of probe packets in the second probe packet sequence through a Pathchirp algorithm, thereby achieving a purpose of parallel bandwidth measurement.
It should be noted that, the client device a may also send the first probe packet sequence to the client device B and receive the second probe packet sequence sent by the client device B, at this time, a sending thread and a receiving thread need to be established on the client device B.
According to the above embodiment of the present invention, the client device establishes a sending thread and a receiving thread, sends the first probe packet sequence through the sending thread, receives the second probe packet sequence through the receiving thread, obtains the measurement result of the first bandwidth according to the time interval of the plurality of first probe packets in the first probe packet sequence, and obtains the measurement result of the second bandwidth according to the time interval of the plurality of second probe packets in the second probe packet sequence. It is easy to note that, because the client device can establish the sending thread and the receiving thread, and send the first probe packet sequence through the sending thread and receive the second probe packet sequence through the receiving thread at the same time, the purpose of measuring the bandwidth in parallel is achieved, the technical problems of long measuring time and low measuring efficiency of the bandwidth measuring method in the prior art are solved, and the effects of shortening the measuring time and improving the measuring efficiency are achieved.
In the prior art, a client device receives a probe packet sequence through a fixed port (UDP (User Datagram Protocol, short for User data program)) and a TCP (Transmission Control Protocol, short for Transmission Control Protocol) so that the same client device can only run a sending thread or a receiving thread at the same time and cannot measure bandwidth in parallel. For the purpose of measuring the bandwidth in parallel, in the embodiment of the present invention, the receiving port and the sending port may allocate the transmission and control ports in a dynamic allocation manner, and no longer occupy the fixed UDP probe packet receiving port and the TCP control port.
Optionally, in the foregoing embodiment of the present invention, the establishing module 41 includes:
and the distribution submodule is used for randomly distributing the first ports according to a preset algorithm.
Specifically, the preset algorithm may be an algorithm for dynamically allocating a port, which is not specifically limited in the present invention; the first port may be a transmission and control port of the client device as a transmitting end.
And the first creating sub-module is used for creating the control session and the receiving socket by using the port number of the first port.
Specifically, the control session may be a TCP control session, and the receiving socket may be a UDP receiving socket.
And the first establishing submodule is used for establishing a receiving thread according to the port number of the first port, the control session and the receiving socket.
In an optional scheme, when the client device a is required to receive the second probe packet sequence sent by the client device C, the client device a may receive a connection request sent by the client device C, request the client device a to serve as a receiving end, and the client device a may create a local TCP control session and a UDP receiving socket by using a random port (i.e., the port number of the first port), and then start a PathChirp receiving thread.
Optionally, in the above embodiment of the present invention, the apparatus further includes: and the first sending submodule is used for sending the port number of the first port.
Optionally, in the foregoing embodiment of the present invention, the establishing module 41 includes:
and the receiving submodule is used for receiving the port number of the second port in a preset time period, wherein the second port is a port randomly distributed according to a preset algorithm.
Specifically, the preset time period may be a timeout time preset by the user as needed, and if the port number of the second port is not received after the timeout time, it is determined that the client device does not send the port number of the second port.
And the second creating submodule is used for creating the sending socket by using the port number of the second port.
And the second establishing submodule is used for establishing a sending thread according to the port number of the second port and the sending socket.
In an optional scheme, when the client device a is required to send the first probe packet sequence to the client device B, the client device a may receive a connection request sent by the client device B, request the client device a to serve as a sending end, and the client device a may receive, over time, port numbers of TCP and UDP (i.e., the port number of the second port) returned by the client device B, create a sending socket according to the port numbers, and start a PathChirp sending thread.
Optionally, in the foregoing embodiment of the present invention, the establishing module 41 is further configured to establish a communication connection by using a preset port; the communication module is further configured to receive a connection request through the preset port, where the connection request is used to characterize that the requesting client device sends a first probe packet sequence, and the requesting client device receives a second probe packet sequence.
Optionally, in the above embodiment of the present invention, the apparatus further includes:
and the closing module is used for closing the communication connection.
Optionally, in the above embodiment of the present invention, the apparatus further includes:
and the acquisition module is used for acquiring the type of the operating system.
The communication module is further used for sending the first probe packet sequence through the sending thread by using a preset timer under the condition that the type of the operating system is a preset type.
Specifically, the preset type may be a Windows operating system, and compared with a linux system, the preset type can achieve 10 μ s-level delay, a conventional delay function of the Windows system can only ensure 10 ms-level delay control, and in order to achieve bandwidth measurement with the same range, the Windows system needs to send a larger (3-order-added) probe packet for bandwidth measurement, and has no operability; the preset timer can be a high-precision timer for calling Windows API functions of the series of QueryPerformancefrequency and QueryPerformancecounter, so that 10 mu s-level delay is met, and the measurement of available bandwidth on a Windows platform is realized.
Optionally, in the foregoing embodiment of the present invention, the communication module includes:
and the second sending submodule is used for sending the current detection packet in the first detection packet sequence and acquiring the initial count value of the preset timer.
And the obtaining submodule is used for obtaining the current count value of the preset timer.
And the first judgment submodule is used for judging whether the difference value between the current count value and the initial count value is greater than or equal to a preset value.
And the third sending submodule is used for sending the next detection packet in the first detection packet sequence if the difference value between the current counting value and the initial counting value is larger than or equal to a preset value.
Optionally, in the above embodiment of the present invention, the apparatus further includes:
and the judging module is used for judging whether the operating system has a preset timer.
The communication module is further used for sending the first probe packet sequence through the sending thread by using the preset timer if the preset timer exists in the operating system.
Optionally, in the above embodiment of the present invention, the apparatus further includes: and the loading module is used for loading the preset dynamic library. And an execution module, configured to start executing the function of the establishing module 41 after the preset dynamic library is loaded.
Example, 3
According to an embodiment of the present invention, an embodiment of a storage medium is provided, the storage medium including a stored program, wherein when the program runs, a device in which the storage medium is located is controlled to execute the bandwidth measurement method in the above-described embodiment 1.
Example 4
According to an embodiment of the present invention, an embodiment of a processor for running a program is provided, where the program is run to execute the bandwidth measurement method in embodiment 1.
The above-mentioned serial numbers of the embodiments of the present invention are merely for description and do not represent the merits of the embodiments.
In the above embodiments of the present invention, the descriptions of the respective embodiments have respective emphasis, and for parts that are not described in detail in a certain embodiment, reference may be made to related descriptions of other embodiments.
In the embodiments provided in the present application, it should be understood that the disclosed technology can be implemented in other ways. The above-described embodiments of the apparatus are merely illustrative, and for example, the division of the units may be a logical division, and in actual implementation, there may be another division, for example, multiple units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, units or modules, and may be in an electrical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present invention may be embodied in the form of a software product, which is stored in a storage medium and includes instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present invention. And the aforementioned storage medium includes: a U-disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a removable hard disk, a magnetic or optical disk, and other various media capable of storing program codes.
The foregoing is only a preferred embodiment of the present invention, and it should be noted that, for those skilled in the art, various modifications and decorations can be made without departing from the principle of the present invention, and these modifications and decorations should also be regarded as the protection scope of the present invention.

Claims (12)

1.一种带宽测量方法,其特征在于,包括:1. a bandwidth measurement method, is characterized in that, comprises: 客户端设备建立发送线程和接收线程;The client device establishes a sending thread and a receiving thread; 所述客户端设备通过所述发送线程发送第一探包序列至其他客户端设备,并同时通过所述接收线程接收其他客户端设备发送的第二探包序列;The client device sends the first packet detection sequence to other client devices through the sending thread, and simultaneously receives the second packet detection sequence sent by the other client device through the receiving thread; 所述客户端设备根据所述第一探包序列中多个第一探包的时间间隔,得到第一带宽的测量结果,并根据所述第二探包序列中多个第二探包的时间间隔,得到第二带宽的测量结果;The client device obtains the measurement result of the first bandwidth according to the time intervals of the multiple first packet detections in the first packet detection sequence, and obtains the measurement result of the first bandwidth according to the time intervals of the multiple second packet detections in the second packet detection sequence interval to obtain the measurement result of the second bandwidth; 其中,所述发送线程对应的发送端口和所述接收线程对应的接收端口采用动态分配的方式分配传输和控制端口,不占用固定的UDP探包接收端口和TCP控制端口;Wherein, the sending port corresponding to the sending thread and the receiving port corresponding to the receiving thread adopt a dynamic allocation method to allocate transmission and control ports, and do not occupy fixed UDP packet detection receiving ports and TCP control ports; 在客户端设备建立发送线程和接收线程之前,所述方法还包括:Before the client device establishes the sending thread and the receiving thread, the method further includes: 所述客户端设备利用预设端口,建立通信连接,其中,所述预设端口为TCP联络端口;The client device uses a preset port to establish a communication connection, wherein the preset port is a TCP communication port; 所述客户端设备通过所述预设端口接收连接请求,其中,所述连接请求用于表征请求所述客户端设备发送所述第一探包序列,以及请求所述客户端设备接收所述第二探包序列;The client device receives a connection request through the preset port, wherein the connection request is used to represent a request for the client device to send the first packet sniffing sequence, and a request for the client device to receive the first packet detection sequence. The second detection packet sequence; 在客户端设备建立发送线程和接收线程之后,所述方法还包括:After the client device establishes the sending thread and the receiving thread, the method further includes: 所述客户端设备关闭所述通信连接。The client device closes the communication connection. 2.根据权利要求1所述的方法,其特征在于,所述客户端设备建立所述接收线程包括:2. The method according to claim 1, wherein establishing the receiving thread by the client device comprises: 所述客户端设备根据预设算法,随机分配第一端口;The client device randomly assigns the first port according to a preset algorithm; 所述客户端设备利用所述第一端口的端口号,创建控制会话和接收套接字;The client device uses the port number of the first port to create a control session and receive socket; 所述客户端设备根据所述第一端口的端口号、所述控制会话和所述接收套接字,建立所述接收线程。The client device establishes the receive thread according to the port number of the first port, the control session and the receive socket. 3.根据权利要求2所述的方法,其特征在于,在所述客户端设备利用所述第一端口的端口号,创建所述控制会话和所述接收套接字之后,所述客户端设备发送所述第一端口的端口号。3. The method according to claim 2, wherein after the client device uses the port number of the first port to create the control session and the receive socket, the client device The port number of the first port is sent. 4.根据权利要求1所述的方法,其特征在于,所述客户端设备建立所述发送线程包括:4. The method according to claim 1, wherein establishing the sending thread by the client device comprises: 所述客户端设备在预设时间段内接收第二端口的端口号,其中,所述第二端口为根据预设算法,随机分配的端口;The client device receives the port number of the second port within a preset time period, wherein the second port is a port randomly allocated according to a preset algorithm; 所述客户端设备利用所述第二端口的端口号,创建发送套接字;The client device uses the port number of the second port to create a sending socket; 所述客户端设备根据所述第二端口的端口号和所述发送套接字,建立所述发送线程。The client device establishes the sending thread according to the port number of the second port and the sending socket. 5.根据权利要求1所述的方法,其特征在于,在所述客户端设备通过所述发送线程发送所述第一探包序列,并通过所述接收线程接收所述第二探包序列之前,所述方法还包括:5. The method according to claim 1, wherein before the client device sends the first packet sniffing sequence through the sending thread and receives the second sniffing packet sequence through the receiving thread , the method also includes: 所述客户端设备获取操作系统的类型;the client device obtains the type of the operating system; 在所述操作系统的类型为预设类型的情况下,所述客户端设备利用预设计时器,通过所述发送线程发送所述第一探包序列。When the type of the operating system is a preset type, the client device sends the first packet sniffing sequence through the sending thread by using a preset timer. 6.根据权利要求5所述的方法,其特征在于,所述客户端设备利用所述预设计时器,通过所述发送线程发送所述第一探包序列包括:6 . The method according to claim 5 , wherein, using the preset timer by the client device, sending the first packet detection sequence through the sending thread comprises: 6 . 所述客户端设备发送所述第一探包序列中的当前探包,并获取所述预设计时器的初始计数值;The client device sends the current detection packet in the first packet detection sequence, and obtains the initial count value of the preset timer; 所述客户端设备获取所述预设计时器的当前计数值;obtaining, by the client device, the current count value of the preset timer; 所述客户端设备判断所述当前计数值与所述初始计数值的差值是否大于等于预设数值;The client device determines whether the difference between the current count value and the initial count value is greater than or equal to a preset value; 所述客户端设备如果所述当前计数值与所述初始计数值的差值大于等于所述预设数值,则发送所述第一探包序列中的下一个探包。If the difference between the current count value and the initial count value is greater than or equal to the preset value, the client device sends the next packet probe in the first packet probe sequence. 7.根据权利要求1至6中任意一项所述的方法,其特征在于,在所述客户端设备建立所述发送线程和所述接收线程之前,加载预设动态库,并在加载所述预设动态库之后,开始执行所述客户端设备建立所述发送线程和所述接收线程的步骤。7. The method according to any one of claims 1 to 6, wherein before the client device establishes the sending thread and the receiving thread, a preset dynamic library is loaded, and a preset dynamic library is loaded before the client device establishes the sending thread and the receiving thread. After the dynamic library is preset, the steps of establishing the sending thread and the receiving thread by the client device are started. 8.一种带宽测量装置,其特征在于,包括:8. A bandwidth measurement device, comprising: 建立模块,用于建立发送线程和接收线程;Build a module for establishing a sending thread and a receiving thread; 通信模块,用于通过所述发送线程发送第一探包序列至其他客户端设备,并同时通过所述接收线程接收其他客户端设备发送的第二探包序列;a communication module, configured to send the first packet detection sequence to other client devices through the sending thread, and simultaneously receive the second packet detection sequence sent by the other client devices through the receiving thread; 处理模块,用于根据所述第一探包序列中多个第一探包的时间间隔,得到第一带宽的测量结果,并根据所述第二探包序列中多个第二探包的时间间隔,得到第二带宽的测量结果;a processing module, configured to obtain a measurement result of the first bandwidth according to the time intervals of a plurality of first packet detections in the first packet detection sequence, and to obtain a measurement result of the first bandwidth according to the time intervals of a plurality of second packet detections in the second packet detection sequence interval to obtain the measurement result of the second bandwidth; 其中,所述发送线程对应的发送端口和所述接收线程对应的接收端口采用动态分配的方式分配传输和控制端口,不占用固定的UDP探包接收端口和TCP控制端口;Wherein, the sending port corresponding to the sending thread and the receiving port corresponding to the receiving thread adopt a dynamic allocation method to allocate transmission and control ports, and do not occupy fixed UDP packet detection receiving ports and TCP control ports; 所述建立模块还用于利用预设端口,建立通信连接,其中,所述预设端口为TCP联络端口;The establishment module is further configured to use a preset port to establish a communication connection, wherein the preset port is a TCP communication port; 所述通信模块还用于通过所述预设端口接收连接请求,其中,所述连接请求用于表征请求所述客户端设备发送所述第一探包序列,以及请求所述客户端设备接收所述第二探包序列;The communication module is further configured to receive a connection request through the preset port, wherein the connection request is used to represent a request for the client device to send the first packet detection sequence, and a request for the client device to receive the received packet. Describe the second packet detection sequence; 所述装置还包括:The device also includes: 关闭模块,用于关闭所述通信连接。The closing module is used to close the communication connection. 9.根据权利要求8所述的装置,其特征在于,所述建立模块包括:9. The apparatus according to claim 8, wherein the establishing module comprises: 分配子模块,用于根据预设算法,随机分配第一端口;an allocation sub-module for randomly allocating the first port according to a preset algorithm; 第一创建子模块,用于利用所述第一端口的端口号,创建控制会话和接收套接字;The first creation submodule is used for using the port number of the first port to create a control session and a receiving socket; 第一建立子模块,用于根据所述第一端口的端口号、所述控制会话和所述接收套接字,建立所述发送线程。The first establishing submodule is configured to establish the sending thread according to the port number of the first port, the control session and the receiving socket. 10.根据权利要求8所述的装置,其特征在于,所述建立模块包括:10. The apparatus according to claim 8, wherein the establishing module comprises: 接收子模块,用于在预设时间段内接收第二端口的端口号,其中,根据预设算法,随机分配所述第二端口;a receiving sub-module, configured to receive the port number of the second port within a preset time period, wherein the second port is randomly allocated according to a preset algorithm; 第二创建子模块,用于利用所述第二端口的端口号,创建发送套接字;The second creation submodule is used for using the port number of the second port to create a sending socket; 第二建立子模块,用于根据所述第二端口的端口号和所述发送套接字,建立所述接收线程。The second establishment submodule is configured to establish the receiving thread according to the port number of the second port and the sending socket. 11.根据权利要求8所述的装置,其特征在于,所述装置还包括:11. The apparatus of claim 8, wherein the apparatus further comprises: 获取模块,用于获取操作系统的类型;Get module, used to get the type of operating system; 所述通信模块还用于在所述操作系统的类型为预设类型的情况下,利用预设计时器,通过所述发送线程发送所述第一探包序列。The communication module is further configured to use a preset timer to send the first packet sniffing sequence through the sending thread when the type of the operating system is a preset type. 12.根据权利要求8至11中任意一项所述的装置,其特征在于,所述装置还包括:加载模块,用于加载预设动态库;执行模块,用于在加载所述预设动态库之后,开始执行所述建立模块的功能。12. The device according to any one of claims 8 to 11, wherein the device further comprises: a loading module for loading a preset dynamic library; an execution module for loading the preset dynamic library After the library, the function of the building module is executed.
CN201710538056.6A 2017-07-04 2017-07-04 Bandwidth measurement method and device Active CN107317728B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710538056.6A CN107317728B (en) 2017-07-04 2017-07-04 Bandwidth measurement method and device
CN202110197273.XA CN113014447B (en) 2017-07-04 2017-07-04 Bandwidth measuring method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710538056.6A CN107317728B (en) 2017-07-04 2017-07-04 Bandwidth measurement method and device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110197273.XA Division CN113014447B (en) 2017-07-04 2017-07-04 Bandwidth measuring method and device

Publications (2)

Publication Number Publication Date
CN107317728A CN107317728A (en) 2017-11-03
CN107317728B true CN107317728B (en) 2021-03-02

Family

ID=60180147

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710538056.6A Active CN107317728B (en) 2017-07-04 2017-07-04 Bandwidth measurement method and device
CN202110197273.XA Active CN113014447B (en) 2017-07-04 2017-07-04 Bandwidth measuring method and device

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202110197273.XA Active CN113014447B (en) 2017-07-04 2017-07-04 Bandwidth measuring method and device

Country Status (1)

Country Link
CN (2) CN107317728B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101282247A (en) * 2007-04-27 2008-10-08 清华大学 Network application performance measurement method supporting Internet high-bandwidth real-time video applications
CN104270646A (en) * 2014-09-22 2015-01-07 何震宇 Self-adaption transmission method and system based on mobile streaming media
CN106533826A (en) * 2016-10-25 2017-03-22 乐视控股(北京)有限公司 Network state detection method and system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7133368B2 (en) * 2002-02-01 2006-11-07 Microsoft Corporation Peer-to-peer method of quality of service (QoS) probing and analysis and infrastructure employing same
CN101282248B (en) * 2007-05-16 2010-11-10 清华大学 Method for measuring network application performance supporting internet high bandwidth real time video application
CN102325060B (en) * 2011-09-09 2013-11-20 瑞斯康达科技发展股份有限公司 Link bandwidth test method and router
EP2595425A1 (en) * 2011-11-18 2013-05-22 Panasonic Corporation Active bandwidth indicator for power-saving UEs
CN103001835A (en) * 2012-12-29 2013-03-27 电信科学技术第一研究所 Network bandwidth test method and system based on data transmission
CN106209494A (en) * 2016-06-23 2016-12-07 乐视控股(北京)有限公司 The measuring method of available bandwidth, measurement apparatus and measurement system
CN106330600B (en) * 2016-08-18 2019-03-22 成都网优力软件有限公司 A kind of method of small flow quick obtaining network availability bandwidth

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101282247A (en) * 2007-04-27 2008-10-08 清华大学 Network application performance measurement method supporting Internet high-bandwidth real-time video applications
CN104270646A (en) * 2014-09-22 2015-01-07 何震宇 Self-adaption transmission method and system based on mobile streaming media
CN106533826A (en) * 2016-10-25 2017-03-22 乐视控股(北京)有限公司 Network state detection method and system

Also Published As

Publication number Publication date
CN107317728A (en) 2017-11-03
CN113014447B (en) 2022-11-18
CN113014447A (en) 2021-06-22

Similar Documents

Publication Publication Date Title
US20220038362A1 (en) Intercepting and examining a packet header or trailer
CN110611723B (en) Scheduling method and device of service resources
EP3509268B1 (en) User positioning method, information push method, and related apparatus
EP4252875A3 (en) Systems and methods for using a distributed game engine
US10866303B2 (en) Determining the location of a mobile computing device
CN112217831A (en) Information interaction method, device and equipment about Internet of things equipment
CN108173894A (en) Method, device and server equipment for server load balancing
CN111246508B (en) Interference source identification method, related equipment and computer storage medium
JP2019016042A (en) Data acquisition program, device, and method
US10887641B2 (en) Techniques to dynamically configure a sender bitrate for streaming media connections
FI3836637T3 (en) DETERMINATION OF STATUS AND DISCLOSURE OF STATUS IN A WIRELESS NETWORK
GB2582877A (en) Multifactor authentication
CN110832936A (en) Method and device for transmitting data
CN110336713B (en) A method and terminal device for detecting end-to-end delay and rate of cellular Internet of Things
CN107317728B (en) Bandwidth measurement method and device
CN109194706B (en) Network resource dial testing method and terminal
CN111901874B (en) A method, device, equipment and storage medium for configuring reference signal resources
CN104700830B (en) A kind of sound end detecting method and device
CN108512735B (en) A data transmission method and device
US8752101B2 (en) Distribution system
JP2015528260A (en) Method and device for providing communication connections for multiple candidate applications within a mobile device
KR101943932B1 (en) Data transmission method and device
WO2017063177A1 (en) Signal determining method and device
FI20175125A7 (en) Method and apparatus for secure setup of clinical trial client device
KR102216125B1 (en) Method, apparatus and system for scheduling transmission and reception of media contents

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Bandwidth measurement method and device

Granted publication date: 20210302

Pledgee: Pudong Development Bank of Shanghai Limited by Share Ltd. Xi'an branch

Pledgor: XI'AN VANXVM ELECTRONICS TECHNOLOGY Co.,Ltd.

Registration number: Y2024610000022

PE01 Entry into force of the registration of the contract for pledge of patent right