Method and apparatus for measuring time stamp unit of remote device

The method for measuring a time stamp unit of a remote device includes: obtaining m sets of sampled data, m is a positive integer, and m>1; calculating m estimated time stamp units according to the time stamps when packets are transmitted and the time points when the previously transmitted data packets and the subsequently transmitted data packets arrive at the measuring point; selecting, from the m estimated time stamp units, an estimated time stamp unit; and calculating a time stamp unit of the remote device according to the selected estimated time stamp unit.

TECHNICAL FIELD

Embodiments of the present invention relate to the computer field, and more specifically, to a method and an apparatus for measuring a time stamp unit of a remote device.

BACKGROUND

There is a time stamp option in Transmission Control Protocol (TCP). When a TCP flow supports this option, a data packet header includes a record of a data packet transmission time. An implementation method is to place a tick count of a current system clock in a time stamp field when a sending party sends a packet segment. When confirming the packet segment, a receiving party copies a value of the time stamp field to a time stamp echo acknowledgement field. A time stamp (in ticks) is a value that increases monotonically. In a general TCP application, a receiving party only needs to echo back a received time stamp, but does not need to pay attention to a time stamp unit of a peer party, and does not require clock synchronization between the two connected parties, either. System clock frequencies used in operating systems and computers are mutually different. Therefore, time units of a tick count in different servers are also different, and may range from 0.5 millisecond to 1000 milliseconds.

A time stamp in the TCP protocol is just a tick count rather than an absolute time. Therefore, currently, the time stamp can be used locally only, and cannot be used by any remote device on a network.

A prior-art method for measuring a time stamp unit of a remote device is based on time synchronization between a remote end and a local end. In the method, a time stamp unit may be estimated, minus an error caused by a transmission delay, according to comparison between a packet receiving time and a packet header time stamp. In this method, time synchronization on a network is required, and a measurement error caused by the transmission delay cannot be effectively eliminated, resulting in inaccurate measurement.

SUMMARY

Embodiments of the present invention provide a method and an apparatus for measuring a time stamp unit of a remote device, to obtain a relatively accurate time stamp unit without requiring network-wide clock synchronization.

According to a first aspect, a method for measuring a time stamp unit of a remote device is provided, where the method includes:

obtaining m sets of sampled data, where each set of sampled data includes time stamps when packets are transmitted and time points when the packets arrive at a monitoring point that are of a previously transmitted data packet and a subsequently transmitted data packet of a remote device, m is a positive integer, and m>1; calculating m estimated time stamp units according to the time stamps when packets are transmitted and the times of arrival at the monitoring point that are of the previously transmitted data packets and the subsequently transmitted data packets of the remote device and that are in the m sets of sampled data; selecting, from the m estimated time stamp units, an estimated time stamp unit, a difference between which and an average value of the m estimated time stamp units falls within a predetermined range; and calculating a time stamp unit of the remote device according to the selected estimated time stamp unit.

With reference to the first aspect, in a first possible implementation manner, a specific implementation of the calculating m estimated time stamp units according to the time stamps when packets are transmitted and the times of arrival at the monitoring point that are of the previously transmitted data packets and the subsequently transmitted data packets of the remote device and that are in the m sets of sampled data is: determining the m estimated time stamp units according to the following formula:
Ui=(S2i−S1i)/(t2i−t1i),

where S1irepresents a packet transmission time stamp of a previously transmitted data packet of the remote device in an ithset of sampled data, S2irepresents a packet transmission time stamp of a subsequently transmitted data packet of the remote device in the ithset of sampled data, t1irepresents a time of arrival at the monitoring point of the previously transmitted data packet of the remote device in the ithset of sampled data, t2irepresents a time of arrival at the monitoring point of the subsequently transmitted data packet of the remote device in the ithset of sampled data, and Uirepresents an estimated time stamp unit calculated according to the ithset of sampled data.

With reference to the first aspect or the first possible implementation manner of the first aspect, in a second possible implementation manner a specific implementation of the calculating a time stamp unit of the remote device according to the selected estimated time stamp unit is: determining the time stamp unit of the remote device according to the following formula:
U=int(1/q(ΣUi)),

where ΣUirepresents a sum of the selected estimated time stamp unit, q represents a quantity of the selected estimated time stamp unit, and a function int represents rounding down.

With reference to the first aspect or the first possible implementation manner of the first aspect or the second possible implementation manner of the first aspect, in a third possible implementation manner, a specific implementation of the selecting, from the m estimated time stamp units, an estimated time stamp unit, a difference between which and an average value of the m estimated time stamp units falls within a predetermined range is: selecting, from the m estimated time stamp units, an estimated time stamp unit, a difference between which and the average value of the m estimated time stamp units is less than three times of a sample standard deviation of the m estimated time stamp units.

With reference to any one of the first aspect or the first possible implementation manner of the first aspect to the third possible implementation manner of the first aspect, in a fourth possible implementation manner, a specific implementation is as follows: packet lengths of any two data packets in the m sets of sampled data are equal, and packet transmission intervals of any two sets of sampled data in the m sets of sampled data are equal.

With reference to the fourth possible implementation manner of the first aspect, in a fifth possible implementation manner, a specific implementation is as follows: the packet transmission interval meets the following criteria:
D>10L/B,

where D represents an actual time span of the packet transmission interval, L represents the packet length, and B represents a network bottleneck bandwidth between the remote device and a local device.

With reference to the fourth possible implementation manner of the first aspect or the fifth possible implementation manner of the first aspect, in a sixth possible implementation manner, a specific implementation is as follows: the quantity m of sets of sampled data meets the following criteria:

where n represents a quantity of time stamp units included in the packet transmission interval, Ū represents the average value of the m estimated time stamp units, a packet transmission queuing delay from the remote device to the local device conforms to negative exponential distribution λe−λt, and the erfc function is a complementary error function.

According to a second aspect, a measurement apparatus is provided, where the apparatus includes: a sampling unit, configured to obtain m sets of sampled data, where each set of sampled data includes time stamps when packets are transmitted and time points when the packets arrive at a monitoring point that are of a previously transmitted data packet and a subsequently transmitted data packet of a remote device, m is a positive integer, and m>1; a calculation unit, configured to calculate m estimated time stamp units according to the time stamps when packets are transmitted and the times of arrival at the monitoring point that are of the previously transmitted data packets and the subsequently transmitted data packets of the remote device and that are in the m sets of sampled data; and a selection unit, configured to select, from the m estimated time stamp units, an estimated time stamp unit, a difference between which and an average value of the m estimated time stamp units falls within a predetermined range, where the calculation unit is further configured to calculate a time stamp unit of the remote device according to the selected estimated time stamp unit.

With reference to the second aspect, in a first possible implementation manner, in the process of being configured to calculate the m estimated time stamp units according to the time stamps when packets are transmitted and the times of arrival at the monitoring point that are of the previously transmitted data packets and the subsequently transmitted data packets of the remote device and that are in the m sets of sampled data, the calculation unit is specifically configured to determine the m estimated time stamp units according to the following formula:
Ui=(S2i−S1i)/(t2i−t1i),

where S1irepresents a packet transmission time stamp of a previously transmitted data packet of the remote device in an ithset of sampled data, S2irepresents a packet transmission time stamp of a subsequently transmitted data packet of the remote device in the ithset of sampled data, t1irepresents a time of arrival at the monitoring point of the previously transmitted data packet of the remote device in the ithset of sampled data, t2irepresents a time of arrival at the monitoring point of the subsequently transmitted data packet of the remote device in the ithset of sampled data, and Uirepresents an estimated time stamp unit calculated according to the ithset of sampled data.

With reference to the second aspect or the first possible implementation manner of the second aspect, in the process of being configured to calculate the time stamp unit of the remote device according to the selected estimated time stamp unit, the calculation unit is specifically configured to determine the time stamp unit of the remote device according to the following formula:
U=int(1/q(ΣUi)),

where ΣUirepresents a sum of the selected estimated time stamp unit, q represents a quantity of the selected estimated time stamp unit, and a function int represents rounding down.

With reference to the second aspect or the first possible implementation manner of the second aspect or the second possible implementation manner of the second aspect, in a third possible implementation manner, the selection unit is specifically configured to:

select, from the m estimated time stamp units, an estimated time stamp unit, a difference between which and the average value of the m estimated time stamp units is less than three times of a sample standard deviation of the m estimated time stamp units.

With reference to any one of the second aspect or the first possible implementation manner of the second aspect to the third possible implementation manner of the second aspect, in a fourth possible implementation manner, a specific implementation is as follows: packet lengths of any two data packets in the m sets of sampled data are equal, and packet transmission intervals of any two sets of sampled data in the m sets of sampled data are equal.

With reference to the fourth possible implementation manner of the second aspect, in a fifth possible implementation manner, a specific implementation is as follows: the packet transmission interval meets the following criteria:
D>10L/B,

where D represents an actual time span of the packet transmission interval, L represents the packet length, and B represents a network bottleneck bandwidth between the remote device and a local device.

With reference to the fourth possible implementation manner of the second aspect or the fifth possible implementation manner of the second aspect, in a sixth possible implementation manner, a specific implementation is as follows: the quantity m of sets of sampled data meets the following criteria:

where n represents a quantity of time stamp units included in the packet transmission interval, Ū represents the average value of the m estimated time stamp units, a packet transmission queuing delay from the remote device to the local device conforms to negative exponential distribution λe−λt, and the erfc function is a complementary error function.

With reference to any one of the second aspect or the first possible implementation manner of the second aspect to the sixth possible implementation manner of the second aspect, in an seventh possible implementation manner, a specific implementation is as follows: the apparatus is located on a server, or the apparatus is located on a client.

With reference to any one of the second aspect or the first possible implementation manner of the second aspect to the seventh possible implementation manner of the second aspect, in a eighth possible implementation manner, a specific implementation is as follows: the monitoring point is located on a router between the remote device and the local device, or the monitoring point is the local device.

DESCRIPTION OF EMBODIMENTS

To facilitate understanding of the embodiments of the present invention, some elements used in description of the embodiments of the present invention are first described herein.

Standard deviation (Standard Deviation): is a most commonly used measure of a statistical dispersion (statistical dispersion) in probability statistics. The standard deviation is defined as an square root of an arithmetic mean of squares of deviations of unit standard values from a mean of the unit standard values. The standard deviation reflects a degree of dispersion among objects in a set.

Population standard deviation: Assuming that a set of values is x1, x2, x3, . . . , xn (all are real numbers), and an average value (arithmetic mean) of the values is μ, a population standard deviation is

σ=1n⁢∑i=1n⁢(xi-μ)2.
A corresponding excel function is STDEVP.

Sample standard deviation: Assuming that a set of values is x1, x2, x3, . . . , xn (all are real numbers), and an average value (arithmetic mean) of the values is μ, a sample standard deviation is

s=1n-1⁢∑i=1n⁢(xi-μ)2.
A corresponding excel function is STDEV.

Complementary error function: is

FIG. 1is a flowchart of a method for measuring a time stamp unit of a remote device according to an embodiment of the present invention. The method inFIG. 1is performed by a measurement apparatus. The measurement apparatus may be located on a server or on a client. When the measurement apparatus is located on a server, a remote end is a client; or when the measurement apparatus is located on a client, a remote end is a server.

S110. Obtain m sets of sampled data, where each set of sampled data includes time stamps when packets are transmitted and time points when the packets arrive at a monitoring point of a measurement apparatus. The packets can include a previously transmitted data packet and a subsequently transmitted data packet, both being transmitted by a remote device. M is a positive integer, and m>1.

Certainly, it should be understood that the method in this embodiment of the present invention is applicable to a scenario that includes a packet transmission time stamp.

It should be understood that a packet transmission time stamp of a data packet refers to a packet transmission time stamp for the data packet on a transmit end, and is recorded in a packet transmission time stamp field of the data packet. For example, in a TCP data packet, the packet transmission time stamp is recorded in a TCP time stamp field of the data packet.

It should be understood that the monitoring point is a measurement point specified by a local end (the measurement apparatus). The local end (the measurement apparatus) may specify a gateway device on a network path through which a remote data packet reaches the local end as the monitoring point, or specify the local end as the monitoring point.

S120. Calculate m estimated time stamp units according to the sampled time stamps when packets are transmitted and the sampled time points when the packets arrive at the monitoring point that are of the previously transmitted data packets and the subsequently transmitted data packets of the remote device and that are in the m sets of sampled data.

S130. Select, from the m estimated time stamp units, an estimated time stamp unit such that a difference between which and an average value of the m estimated time stamp units falls within a predetermined range.

S140. Calculate a time stamp unit of the remote device according to the selected estimated time stamp unit.

In this embodiment of the present invention, a unit of a remote clock is obtained by comparing a clock of a local monitoring point and a difference between time stamps of two packets, and a method for calculating an unbiased estimate by means of statistical averaging is used, to cancel an error caused by transmission delay randomicity. In this way, a relatively accurate time stamp unit can be obtained without requiring network-wide clock synchronization.

Specifically, step120may be implemented as: determining the m estimated time stamp units according to the following criteria:
Ui=(S2i−S1i)/(t2i−t1i),

where S1irepresents a packet transmission time stamp when a previously transmitted data packet is transmitted by the remote device in an ithset of sampled data, S2irepresents a packet transmission time stamp when a subsequently transmitted data packet is transmitted by the remote device in the ithset of sampled data, t1irepresents a time point when the previously transmitted data packet in the ithset of sampled data arrives at the measuring point, t2irepresents a time point when the subsequently transmitted data packet in the ithset of sampled data arrives at the measuring point, and Uirepresents an estimated time stamp unit calculated according to the ithset of sampled data.

Optionally, in an embodiment, step S130may be specifically implemented as: selecting, from the m estimated time stamp units, an estimated time stamp unit, such that a difference between the selected estimated time stamp and the average value of the m estimated time stamp units is less than three times of a sample standard deviation of the m estimated time stamp units. It should be understood that, in this embodiment of the present invention, another filtering manner may be further used to remove a sample with a relatively large error. This embodiment of the present invention is merely an example.

Optionally, in an embodiment, step140may be specifically implemented as: determining the time stamp unit of the remote device according to the following formula:
U=int(1/q(ΣUi)),

where ΣUirepresents a sum of the selected estimated time stamp unit, q represents a quantity of the selected estimated time stamp unit, and a function int represents rounding down.

It should be understood that, in this embodiment of the present invention, alternatively, another calculation manner may be used to calculate the time stamp unit of the remote device, for example, a square average value of the selected estimated time stamp unit is calculated, and then round-off is performed. This embodiment of the present invention is merely an example.

In some embodiments, packet lengths of any two data packets in the m sets of sampled data are equal, and packet transmission intervals of any two sets of sampled data in the m sets of sampled data are equal.

It should be understood that, in this embodiment of the present invention, that packet lengths of two data packets are equal does not mean that the lengths are strictly equal by mathematical meaning. When a ratio of lengths of two data packets ranges between 1±δ, the lengths of the two data packets may be considered equal, where δ is a value approximating 0, and may be set according to an actual situation. For example, δ may be set to 0.01, 0.05, or 0.1. For example, δ=0.01. When a ratio of lengths of two data packets ranges from 0.99 to 1.01, the lengths of the two data packets may be considered equal.

Similarly, when a ratio of packet transmission intervals of two sets of sampled data ranges between 1±ε, the packet transmission intervals of the two sets of sampled data may be considered equal, where ε is a value approximating 0, and may be set according to an actual situation. For example, ε may be set to 0.01, 0.05, or 0.1.

Further, the packet transmission interval meets the following criteria:
D>>L/B,

where D represents an actual time span of the packet transmission interval, L represents the packet length, and B represents a network bottleneck bandwidth between the remote device and a local device.

Generally, a difference of one order of magnitude may be considered as being much greater than. That is, D>10L/B.

Still further, the quantity m of sets of sampled data meets the following criteria:

where n represents a quantity of time stamp units included in the packet transmission interval, Ū represents the average value of the m estimated time stamp units, a packet transmission queuing delay from the remote device to the local device conforms to negative exponential distribution λe−λt, and the erfc function is a complementary error function.

The following further describes the method in this embodiment of the present invention with reference to a specific embodiment.

FIG. 2is a schematic diagram of a method for estimating a remote time stamp unit according to an embodiment of the present invention. As shown inFIG. 2, a set of sampled data obtained by a client includes time stamps when packets are transmitted and time points when the packets arrive at a monitoring point of two data packets. A data packet sent first may be referred to as a previously transmitted data packet (PKT1inFIG. 2), and a data packet sent subsequently may be referred to as a subsequently transmitted data packet (PKT2inFIG. 2). In this case, a set of sampled data that the client needs to obtain includes a packet transmission time stamp count (referred to as a packet transmission time stamp) S1of PKT1, a time t1of arrival at the monitoring point of PKT1, a packet transmission time stamp count S2of PKT2, and a time t2of arrival at the monitoring point of PKT2. Both t1and t2are clocks of the monitoring point.

If transmission times of two packets are the same, a time interval between the two packets at the monitoring point remains unchanged. A time stamp unit may be directly measured at the monitoring point. That is, the time stamp unit U=(S2−S1)/(t2−t1). However, transmission times of two packets change randomly. As a result, a packet interval observed at the monitoring point and a packet transmission interval are different.

A measurement manner in this embodiment of the present invention is as follows:

S1. Perform measurement for m times to obtain m sets of sampled data.

Sampled data obtained during an ithtime of measurement includes a packet transmission time stamp S1iand a time t1iof arrival at a monitoring point of a previously transmitted data packet and a packet transmission time stamp S2iand a time t2iof arrival at the monitoring point of a subsequently transmitted data packet.

A time stamp unit Uiduring the ithtime of measurement may be obtained through calculation: Ui=(S2i−S11)/(t2i−t1i).

S3. Select a time stamp unit measurement value a difference between which and the average value Ū falls within a predetermined range.

For example, a time stamp unit measurement value a difference between which and Ū is between ±5% may be selected.

For another example, according to a statistics method, a sample value greater than three times of a sample standard deviation is an abnormal error and should be discarded. In this case, a measured sample standard deviation S may be calculated:

s=1m-1⁢∑i=1m⁢(Ui-U_)2.
A time stamp unit measurement value that meets a condition −3s≤Ui−Ū≤3s is selected according to the sample standard deviation S. It is assumed that q time stamp unit measurement values are selected.

S4. Calculate an average time stamp unit again: Ū=1/q(ΣUi).

S5. Round U to obtain an integer: Û=int(Ū).

In this case, Û is a calculated time stamp unit.

Certainly, if improper sampled data is selected, a relatively large measurement error is caused.

For example, if packet lengths of the previously transmitted data packet and the subsequently transmitted data packet are different, transmission times of the previous and subsequent packets are subsequently different, and a difference between a packet interval measured at the monitoring point and a packet interval at a packet transmission position is relatively large. As a result, a difference between a time stamp unit obtained according to the sampled data and an actual time stamp unit is relatively large.

In addition, if packet lengths or packet intervals in different sets of sampled data are different, accuracy of a time stamp unit calculated according to the sampled data is also reduced consequently.

Therefore, during selection of sampled data, it should be ensured, as far as possible, that packet lengths of data packets (including previously transmitted data packets and subsequently transmitted data packets) in all sampled data are equal, so that packet intervals of all the sampled data are equal.

In addition, if a packet interval is too small, a packet interval measured at the monitoring point may become larger due to network bandwidth restriction. Alternatively, because of a traffic change during network transmission, even if there is sufficient bandwidth, a packet interval measured at the monitoring point may become larger due to a packet interval inserted by another contention traffic packet.

Therefore, in terms of packet interval selection, it should be ensured, as far as possible, that a length D (in a unit of millisecond) of a packet interval is much greater than a value obtained by dividing a packet length L (in a unit of B) by a network bottleneck bandwidth B (in a unit of kB/s). That is, D>>L/B. Generally, D>10 L/B.

In addition, in the method for calculating a remote time stamp unit in this embodiment of the present invention, accuracy is also closely related to a quantity of samples and a packet interval.

The following uses an example to describe how to select a packet interval n (in a time stamp unit of tick) and a measure sample data m to ensure accuracy of an obtained time stamp unit (tick).

It is assumed that a tick of a time stamp on a transmit end is equal to k milliseconds, and a packet interval between previous and subsequent packets before packet transmission is D. It is assumed that a queuing delay of a transmission path conforms to negative exponential distribution λe−λt, where λ>0, and λ is a parameter of exponential distribution and is usually referred to as a rate parameter (rate parameter), that is, a quantity of times the event occurs in each unit time. An average value of the distribution is equal to 1/λ, and a variance of the distribution is equal to 1/λ2. For example, assuming that, on average, there are five packets waiting for transmission in front of a packet being studied, 1/λ=5×MSS/Bandwidth, where MSS represents a length of the data packets, and the bandwidth is a bottleneck bandwidth of network transmission. Distribution of a packet interval (t2−t1) between a previously transmitted data packet and a subsequently transmitted data packet at a measurement point is

D+λ2⁢e-λ⁢t,
where t represents a queuing delay. An average value of the distribution is equal to D, and a variance of the distribution is equal to 2/λ2.

At the measurement point, an unbiased estimate of a time stamp unit U may be performed by using m sample values:

In a first step, obtain sample values U: Ui=(t2−t1)/(S2−S1).

Average value of Ui=k milliseconds. Variance=2/λ2/n2.

In a second step, calculate an average value of m measurements, where an average value Ū is equal to k, and a variance is 2/λ2/(mn2).

Distribution of Ū may approximate to normal distribution Norma{k,[2/λ2/(mn2)]1/2}. An error probability of the normal distribution may be calculated according to an error function

erf⁡(z)=1-2π⁢∫z∞⁢e-t2⁢dt.
To ensure that rounded Û is equal to k milliseconds, it needs to ensure that an error is less than 0.5 k. In this case, values of n and m may be selected, to ensure that

erfc⁡(λ⁢⁢n2⁢k⁢m2)<0.001,
so that Û≠k becomes a small probability event.

erfc⁡(z)=1-erf⁡(z)=2π⁢∫z∞⁢e-t2⁢dt
is referred to as a complementary error function, and a value of the function may be obtained by querying a common mathematical table or a common project table.

In an example, it is assumed that k=10 milliseconds, MSS=1500 bytes, transmission bandwidth=100 Mbit/s, and 1/λ=0.6 milliseconds. It is obtained, by querying a complementary error table, that a value of

x=λ⁢⁢n2⁢k⁢m2
corresponding to a value that is of

erfc⁡(λ⁢⁢n2⁢k⁢m2)
and that is less than 0.001 is equal to 2.33, that is, n√{square root over (m)}=4.66√{square root over (2)}×10×0.6≈40.

It may be assumed that m=25 and n=8. That is, accuracy of a time unit may be basically ensured when calculation is performed based on only samples with a packet interval greater than 80 milliseconds. Alternatively, it is assumed that m=36 and n=7. That is, calculation is performed based on only samples with a packet interval greater than 70 milliseconds. If n=2, m needs to be greater than or equal to 400.

FIG. 3is a schematic structural diagram of a measurement apparatus300according to an embodiment of the present invention. The measurement apparatus300may be located on a server or may be located on a client. As shown inFIG. 3, the measurement apparatus300may include:

a sampling unit310, configured to obtain m sets of sampled data, where each set of sampled data includes time stamps when packets are transmitted and time points when the packets arrive at a monitoring point, the packets including a previously transmitted data packet and a subsequently transmitted data packet of a remote device, and m being a positive integer, and m>1;

a calculation unit320, configured to calculate m estimated time stamp units according to the sampled time stamps when packets are transmitted and the sampled time points when the packets arrive at the measuring point; and

a selection unit330, configured to select, from the m estimated time stamp units, an estimated time stamp unit, such that a difference between the selected estimated time stamp and an average value of the m estimated time stamp units falls within a predetermined range.

The calculation unit320is further configured to calculate a time stamp unit of the remote device according to the selected estimated time stamp unit.

In this embodiment of the present invention, the measurement apparatus300obtains a unit of a remote clock by comparing a clock of a local monitoring point and a difference between time stamps of two packets, and uses a method for calculating an unbiased estimate by means of statistical averaging, to cancel an error caused by transmission delay randomicity. In this way, a relatively accurate time stamp unit can be obtained without requiring network-wide clock synchronization.

Specifically, calculating m estimated time stamp units according to the sampled time stamps when packets are transmitted and sampled time points when the packets arrive at a monitoring point comprises: determining the m estimated time stamp units according to the following formula:
Ui=(S2i−S1i)/(t2i−t1i),

where S1irepresents a time stamp when a previously transmitted data packet by the remote device in an ithset of sampled data, S2irepresents a time stamp when a subsequently transmitted data packet by the remote device in the ithset of sampled data, t1irepresents a time point when the previously transmitted data packet in the ithset of sampled data arrives at the monitoring point, t2irepresents a time point when the subsequently transmitted data packet in the ithset of sampled data arrives at the monitoring point, and Uirepresents an estimated time stamp unit calculated according to the ithset of sampled data.

Optionally, in an embodiment, the selection unit330may be specifically configured to: select, from the m estimated time stamp units, an estimated time stamp unit, a difference between which and the average value of the m estimated time stamp units is less than three times of a sample standard deviation of the m estimated time stamp units. The sample standard deviation is a sample standard deviation of the m estimated time stamp units. It should be understood that, in this embodiment of the present invention, another filtering manner may be further used to remove a sample with a relatively large error. This embodiment of the present invention is merely an example.

Optionally, in an embodiment, in the process of being configured to calculate the time stamp unit of the remote device according to the selected estimated time stamp unit, the calculation unit320is specifically configured to determine the time stamp unit of the remote device according to the following formula:
U=int(1/q(ΣUi)),

where ΣUirepresents a sum of the selected estimated time stamp unit, q represents a quantity of the selected estimated time stamp unit, and a function int represents rounding down.

It should be understood that, in this embodiment of the present invention, alternatively, another calculation manner may be used to calculate the time stamp unit of the remote device, for example, a square average value of the selected estimated time stamp unit is calculated, and then round-off is performed. This embodiment of the present invention is merely an example.

Preferably, packet lengths of any two data packets in the m sets of sampled data are equal, and packet transmission intervals of any two sets of sampled data in the m sets of sampled data are equal.

Further, the packet transmission interval meets the following criteria:
D>>L/B,

where D represents an actual time span of the packet transmission interval, L represents the packet length, and B represents a network bottleneck bandwidth between the remote device and a local device.

Generally, a difference of one order of magnitude may be considered as being much greater than. That is, D>10L/B.

Still further, the quantity m of sets of sampled data meets the following criteria:

where n represents a quantity of time stamp units included in the packet transmission interval, Ū represents the average value of the m estimated time stamp units, a packet transmission queuing delay from the remote device to the local device conforms to negative exponential distribution λe−λt, and the erfc function is a complementary error function.

Optionally, the measurement apparatus300may be located on a server or on a client.

Optionally, the monitoring point is located on a router between the remote device and the local device, or the monitoring point is the local device.

FIG. 4is a schematic structural diagram of a measurement apparatus400according to an embodiment of the present invention. The measurement apparatus400may include a path interface401, a processor402, and a memory403.

The path interface401, the processor402, and the memory403are mutually connected by using a bus404system. The bus404may be an ISA bus, a PCI bus, an EISA bus, or the like. The bus may be classified into an address bus, a data bus, a control bus, and the like. For ease of representation, inFIG. 4, only a line with an arrow on both sides is used to represent the bus, but this does not mean that there is only one bus or one type of bus.

The memory403is configured to store a program. Specifically, the program may include program code, and the program code includes a computer operation instruction. The memory403may include a read-only memory and a random access memory, and provide an instruction and data to the processor402. The memory403may include a high-speed RAM, and may further include a non-volatile memory (non-volatile memory), for example, at least one magnetic disk memory.

The processor402executes the program stored in the memory403, and is specifically configured to perform the following operations:

obtaining m sets of sampled data, wherein each set of sampled data comprises time stamps when packets are transmitted by a remote device and time points when the packets arrive at a monitoring point, the packets including a previously transmitted data packet and a subsequently transmitted data packet, the subsequently transmitted data packet being transmitted by the remote device subsequently to the previously transmitted data packet, wherein m is a positive integer, and m>1; and calculating m estimated time stamp units according to the m sets of sampled data; selecting, from the m estimated time stamp units, a time stamp unit, such that a difference between the selected estimated time stamp and an average value of the m estimated time stamp units is within a predetermined range; and calculating an average value of the selected estimated time stamp unit and round the calculated average value to obtain an integer, to obtain an unbiased estimated time stamp unit.

The foregoing method that is executed by a measurement apparatus and that is disclosed in either of the embodiments inFIG. 1andFIG. 2of the present invention may be applied to the processor402or implemented by the processor402. The processor402may an integrated circuit chip having a signal processing capability. In an implementation process, the steps of the foregoing method may be completed by using a hardware integrated logic circuit or an instruction in a form of software in the processor402. The foregoing processor402may be a general-purpose processor, including a central processing unit (Central Processing Unit, CPU for short), a network processor (Network Processor, NP for short), or the like, or may be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or another programmable logical device, a discrete gate or a transistor logic device, or a discrete hardware component. The processor may implement or perform the methods, steps, and logical block diagrams disclosed in the embodiments of the present invention. The general-purpose processor may be a micro processor, or the processor may be any conventional processor or the like. The steps of the method disclosed with reference to the embodiments of the present invention may be directly embodied as being performed and completed by a hardware decoding processor, or being performed and completed by a combination of hardware and software modules in the decoding processor. The software module may be located in a mature storage medium in the art, such as a random memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, or a register. The storage medium is located in the memory403, and the processor402reads information in the memory403and completes the steps of the foregoing method in combination with hardware of the processor402.

In this embodiment of the present invention, the measurement apparatus400obtains a unit of a remote clock by comparing a clock of a local monitoring point and a difference between time stamps of two packets, and uses a method for calculating an unbiased estimate by means of statistical averaging, to cancel an error caused by transmission delay randomicity. In this way, a relatively accurate time stamp unit can be obtained without requiring network-wide clock synchronization.

Specifically, in the process of being configured to calculate the m estimated time stamp units according to the time stamps when packets are transmitted and the times of arrival at the monitoring point that are of the previously transmitted data packets and the subsequently transmitted data packets of the remote device and that are in the m sets of sampled data, the processor402may be configured to determine the m estimated time stamp units according to the following formula:
Ui=(S2i−S1i)/(t2i−t1i),

where S1irepresents a time stamp when a previously transmitted data packet by the remote device in an ithset of sampled data, S2irepresents a time stamp when a subsequently transmitted data packet by the remote device in the ithset of sampled data, t1irepresents a time point when the previously transmitted data packet in the ithset of sampled data arrives at the monitoring point, t2irepresents a time point when the subsequently transmitted data packet in the ithset of sampled data arrives at the monitoring point, and Uirepresents an estimated time stamp unit calculated according to the ithset of sampled data.

Optionally, in an embodiment, in the process of being configured to select, from the m estimated time stamp units, the estimated time stamp unit, a difference between which and the average value of the m estimated time stamp units falls within the predetermined range, the processor402may be specifically configured to: select, from the m estimated time stamp units, an estimated time stamp unit, a difference between which and the average value of the m estimated time stamp units is less than three times of a sample standard deviation of the m estimated time stamp units. It should be understood that, in this embodiment of the present invention, another filtering manner may be further used to remove a sample with a relatively large error. This embodiment of the present invention is merely an example.

Optionally, in an embodiment, in the process of being configured to calculate the time stamp unit of the remote device according to the selected estimated time stamp unit, the processor402is specifically configured to determine the time stamp unit of the remote device according to the following formula:
U=int(1/q(ΣUi)),

where ΣUirepresents a sum of the selected estimated time stamp unit, q represents a quantity of the selected estimated time stamp unit, and a function int represents rounding down.

It should be understood that, in this embodiment of the present invention, alternatively, another calculation manner may be used to calculate the time stamp unit of the remote device, for example, a square average value of the selected estimated time stamp unit is calculated, and then round-off is performed. This embodiment of the present invention is merely an example.

Preferably, packet lengths of any two data packets in the m sets of sampled data are equal, and packet transmission intervals of any two sets of sampled data in the m sets of sampled data are equal.

Further, the packet transmission interval meets the following criteria:
D>>L/B,

where D represents an actual time span of the packet transmission interval, L represents the packet length, and B represents a network bottleneck bandwidth between the remote device and a local device.

Generally, a difference of one order of magnitude may be considered as being much greater than. That is, D>10L/B.

Still further, the quantity m of sets of sampled data meets the following criteria:

where n represents a quantity of time stamp units included in the packet transmission interval, Ū represents the average value of the m estimated time stamp units, a packet transmission queuing delay from the remote device to the local device conforms to negative exponential distribution λe−λt, and the erfc function is a complementary error function.

Optionally, the measurement apparatus400may be located on a server or on a client.

Optionally, the monitoring point is located on a router between the remote device and the local device, or the monitoring point is the local device.