[0001] This application claims priority to Chinese Patent Application No.
201510545626.5, filed with the Chinese Patent Office on August 31, 2015, and entitled "METHOD AND
APPARATUS FOR MEASURING REMOTE TIME STAMP UNIT", which is incorporated herein by reference
in its entirety.
TECHNICAL FIELD
[0002] Embodiments of the present invention relate to the computer field, and more specifically,
to a method and an apparatus for measuring a remote time stamp unit.
BACKGROUND
[0003] There is a time stamp option in Transmission Control Protocol (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 (tick) 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.
[0004] 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.
[0005] A prior-art method for measuring a remote time stamp unit 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
[0006] Embodiments of the present invention provide a method and an apparatus for measuring
a remote time stamp unit, to obtain a relatively accurate time stamp unit without
requiring network-wide clock synchronization.
[0007] According to a first aspect, a method for measuring a remote time stamp unit is provided,
where the method includes:
obtaining m sets of sampled data, where each set of sampled data includes packet transmission
time stamps and times of arrival 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
packet transmission time stamps 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.
[0008] 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 packet transmission time stamps 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:

where S1
i represents a packet transmission time stamp of a previously transmitted data packet
of the remote device in an i
th set of sampled data, S2
i represents a packet transmission time stamp of a subsequently transmitted data packet
of the remote device in the i
th set of sampled data, t1
i represents a time of arrival at the monitoring point of the previously transmitted
data packet of the remote device in the i
th set of sampled data, t2
i represents a time of arrival at the monitoring point of the subsequently transmitted
data packet of the remote device in the i
th set of sampled data, and U
i represents an estimated time stamp unit calculated according to the i
th set of sampled data.
[0009] With reference to the first aspect or the first possible implementation manner of
the first aspect, 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:

where ΣU
i represents a sum of the selected estimated time stamp unit, q represents a quantity
of the selected estimated time stamp unit, and the function int represents rounding
down.
[0010] 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.
[0011] 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.
[0012] 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 formula:

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.
[0013] 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 formula:

where n represents a quantity of time stamp units included in the packet transmission
interval, U 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.
[0014] 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 packet transmission time stamps and times of arrival
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 packet
transmission time stamps 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.
[0015] 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 packet transmission time stamps 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:

where S1
i represents a packet transmission time stamp of a previously transmitted data packet
of the remote device in an i
th set of sampled data, S2
i represents a packet transmission time stamp of a subsequently transmitted data packet
of the remote device in the i
th set of sampled data, t1
i represents a time of arrival at the monitoring point of the previously transmitted
data packet of the remote device in the i
th set of sampled data, t2
i represents a time of arrival at the monitoring point of the subsequently transmitted
data packet of the remote device in the i
th set of sampled data, and U
i represents an estimated time stamp unit calculated according to the i
th set of sampled data.
[0016] 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:

where ΣU
i represents a sum of the selected estimated time stamp unit, q represents a quantity
of the selected estimated time stamp unit, and the function int represents rounding
down.
[0017] 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.
[0018] 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.
[0019] 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 formula:

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.
[0020] 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 formula:

where n represents a quantity of time stamp units included in the packet transmission
interval, U 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.
[0021] With reference to any one of the first aspect or the first possible implementation
manner of the first aspect to the seventh possible implementation manner of the first
aspect, in an eighth possible implementation manner, a specific implementation is
as follows: the apparatus is located on a server, or the apparatus is located on a
client.
[0022] With reference to any one of the first aspect or the first possible implementation
manner of the first aspect to the eighth possible implementation manner of the first
aspect, in a ninth 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.
BRIEF DESCRIPTION OF DRAWINGS
[0023] To describe the technical solutions in the embodiments of the present invention more
clearly, the following briefly describes the accompanying drawings required for describing
the embodiments or the prior art. Apparently, the accompanying drawings in the following
description show merely some embodiments of the present invention, and a person of
ordinary skill in the art may still derive other drawings from these accompanying
drawings without creative efforts.
FIG. 1 is a flowchart of a method for measuring a remote time stamp unit according
to an embodiment of the present invention;
FIG. 2 is a schematic diagram of a method for estimating a remote time stamp unit
according to an embodiment of the present invention;
FIG. 3 is a schematic structural diagram of a measurement apparatus according to an
embodiment of the present invention; and
FIG. 4 is another schematic structural diagram of a measurement apparatus according
to an embodiment of the present invention.
DESCRIPTION OF EMBODIMENTS
[0024] The following clearly and completely describes the technical solutions in the embodiments
of the present invention with reference to the accompanying drawings in the embodiments
of the present invention. Apparently, the described embodiments are some but not all
of the embodiments of the present invention. All other embodiments obtained by a person
of ordinary skill in the art based on the embodiments of the present invention without
creative efforts shall fall within the protection scope of the present invention.
[0025] 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.
[0026] 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 overall 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.
[0027] 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

A corresponding excel function is STDEVP.
[0028] 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

A corresponding excel function is STDEV.
[0029] Complementary error function: is

[0030] FIG. 1 is a flowchart of a method for measuring a remote time stamp unit according
to an embodiment of the present invention. The method in FIG. 1 is performed by a
measurement apparatus. The measurement apparatus may be located on a server or located
on a client. When the measurement apparatus is located on a server, a remote end is
a client; or when the server is located on a client, a remote end is a server.
[0031] S110. Obtain m sets of sampled data, where each set of sampled data includes packet
transmission time stamps and times of arrival 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.
[0032] 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.
[0033] It should be understood that a packet transmission time stamp of a data packet refers
to a packet transmission time stamp of 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 is TCP time stamp field
of the data packet.
[0034] 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.
[0035] S120. Calculate m estimated time stamp units according to the packet transmission
time stamps 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.
[0036] S130. 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.
[0037] S140. Calculate a time stamp unit of the remote device according to the selected
estimated time stamp unit.
[0038] 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.
[0039] Specifically, step 120 may be implemented as: determining the m estimated time stamp
units according to the following formula:

where S1
i represents a packet transmission time stamp of a previously transmitted data packet
of the remote device in an i
th set of sampled data, S2
i represents a packet transmission time stamp of a subsequently transmitted data packet
of the remote device in the i
th set of sampled data, t1
i represents a time of arrival at the monitoring point of the previously transmitted
data packet of the remote device in the i
th set of sampled data, t2
i represents a time of arrival at the monitoring point of the subsequently transmitted
data packet of the remote device in the i
th set of sampled data, and U
i represents an estimated time stamp unit calculated according to the i
th set of sampled data.
[0040] Optionally, in an embodiment, step S130 may be specifically implemented as: 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. 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 a preferred solution.
[0041] Optionally, in an embodiment, step 140 may be specifically implemented as: determining
the time stamp unit of the remote device according to the following formula:

where ΣU
i represents a sum of the selected estimated time stamp unit, q represents a quantity
of the selected estimated time stamp unit, and the function int represents rounding
down.
[0042] 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 a preferred solution.
[0043] 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.
[0044] 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.
[0045] 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.
[0046] Further, the packet transmission interval meets the following formula:

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.
[0047] Generally, a difference of one order of magnitude may be considered as being much
greater than. That is, D>10L/B.
[0048] Still further, the quantity m of sets of sampled data meets the following formula:

where n represents a quantity of time stamp units included in the packet transmission
interval, U 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.
[0049] The following further describes the method in this embodiment of the present invention
with reference to a specific embodiment.
[0050] FIG. 2 is a schematic diagram of a method for estimating a remote time stamp unit
according to an embodiment of the present invention. As shown in FIG. 2, a set of
sampled data obtained by a client includes packet transmission time stamps and times
of arrival at a monitoring point of two data packets. A data packet sent first may
be referred to as a previously transmitted data packet (PKT1 in FIG. 2), and a data
packet sent afterward may be referred to as a subsequently transmitted data packet
(PKT2 in FIG. 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) S1 of PKT1, a time t1 of arrival at the monitoring point of PKT1, a packet
transmission time stamp count S2 of PKT2, and a time t2 of arrival at the monitoring
point of PKT2. Both t1 and t2 are clocks of the monitoring point.
[0051] 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.
[0052] 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.
[0053] Sampled data obtained during an i
th time of measurement includes a packet transmission time stamp S1
i and a time t1
i of arrival at a monitoring point of a previously transmitted data packet and a packet
transmission time stamp S2
i and a time t2
i of arrival at the monitoring point of a subsequently transmitted data packet.
[0054] A time stamp unit U
i during the i
th time of measurement may be obtained through calculation: U
i=(S2
i-S1
i)/(t2
i-t1
i).
[0055] S2. Calculate an average value: U=1/m(ΣU
i).
[0056] S3. Select a time stamp unit measurement value a difference between which and the
average value U falls within a predetermined range.
[0057] For example, a time stamp unit measurement value a difference between which and U
is between ±5% may be selected.
[0058] 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:

A time stamp unit measurement value that meets a condition -3
s ≤ U
i-
U ≤ 3
s is selected according to the sample standard deviation S. It is assumed that q time
stamp unit measurement values are selected.
[0059] S4. Calculate an average time stamp unit again: U=1/q(ΣU
i).
[0060] S5. Round U to obtain an integer: Û=int(U).
[0061] In this case, Û is a calculated time stamp unit.
[0062] Certainly, if improper sampled data is selected, a relatively large measurement error
is caused.
[0063] 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.
[0064] 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.
[0065] 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.
[0066] 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.
[0067] 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). That is, D>>L/B. Generally, D>10
L/B.
[0068] 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.
[0069] 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).
[0070] 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

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.
[0071] At the measurement point, an unbiased estimate of a time stamp unit U may be performed
by using m sample values:
[0072] In a first step, obtain sample values U: U
i=(t2-t1)/(S2-S1).
[0073] Average value of U
i=k milliseconds. Variance=2/λ
2/n
2.
[0074] In a second step, calculate an average value of m measurements, where an average
value U is equal to k, and a variance is 2/λ
2/(mn
2).
[0075] Distribution of U may approximate to normal distribution Norma{k,[2/λ
2/(mn
2)]
1/2}. An error probability of the normal distribution may be calculated according to
an error function

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

so that Û≠k becomes a small probability event.

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.
[0076] In an example, it is assumed that k=10 milliseconds, MSS=1500 bytes, transmission
bandwidth=100 Mbits, and 1/λ=0.6 milliseconds. It is obtained, by querying a complementary
error table, that a value of

corresponding to a value that is of

and that is less than 0.001 is equal to 2.33, that is,

[0077] 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.
[0078] FIG. 3 is a schematic structural diagram of a measurement apparatus 300 according
to an embodiment of the present invention. The measurement apparatus 300 may be located
on a server or may be located on a client. As shown in FIG. 3, the measurement apparatus
300 may include:
a sampling unit 310, configured to obtain m sets of sampled data, where each set of
sampled data includes packet transmission time stamps and times of arrival 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 320, configured to calculate m estimated time stamp units according
to the packet transmission time stamps 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 330, 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.
[0079] The calculation unit 320 is further configured to calculate a time stamp unit of
the remote device according to the selected estimated time stamp unit.
[0080] In this embodiment of the present invention, the measurement apparatus 300 obtains
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.
[0081] Specifically, in the process of being configured to calculate the m estimated time
stamp units according to the packet transmission time stamps 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 320 may be configured to determine the m estimated
time stamp units according to the following formula:

where S1
i represents a packet transmission time stamp of a previously transmitted data packet
of the remote device in an i
th set of sampled data, S2
i represents a packet transmission time stamp of a subsequently transmitted data packet
of the remote device in the i
th set of sampled data, t1
i represents a time of arrival at the monitoring point of the previously transmitted
data packet of the remote device in the i
th set of sampled data, t2
i represents a time of arrival at the monitoring point of the subsequently transmitted
data packet of the remote device in the i
th set of sampled data, and U
i represents an estimated time stamp unit calculated according to the i
th set of sampled data.
[0082] Optionally, in an embodiment, the selection unit 330 may 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 a preferred
solution.
[0083] 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 unit 320 is specifically configured to determine the time stamp
unit of the remote device according to the following formula:

where ΣU
i represents a sum of the selected estimated time stamp unit, q represents a quantity
of the selected estimated time stamp unit, and the function int represents rounding
down.
[0084] 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 a preferred solution.
[0085] 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.
[0086] Further, the packet transmission interval meets the following formula:

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.
[0087] Generally, a difference of one order of magnitude may be considered as being much
greater than. That is, D>10L/B.
[0088] Still further, the quantity m of sets of sampled data meets the following formula:

where n represents a quantity of time stamp units included in the packet transmission
interval, U 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.
[0089] Optionally, the measurement apparatus 300 may be located on a server or located on
a client.
[0090] 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.
[0091] FIG. 4 is a schematic structural diagram of a measurement apparatus 400 according
to an embodiment of the present invention. The measurement apparatus 400 may include
a path interface 401, a processor 402, and a memory 403.
[0092] The path interface 401, the processor 402, and the memory 403 are mutually connected
by using a bus 404 system. The bus 404 may 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, in FIG. 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.
[0093] The memory 403 is configured to store a program. Specifically, the program may include
program code, and the program code includes a computer operation instruction. The
memory 403 may include a read-only memory and a random access memory, and provide
an instruction and data to the processor 402. The memory 403 may include a high-speed
RAM memory, and may further include a non-volatile memory (non-volatile memory), for
example, at least one magnetic disk memory.
[0094] The processor 402 executes the program stored in the memory 403, and is specifically
configured to perform the following operations:
obtaining m sets of sampled data, where each set of sampled data includes packet transmission
time stamps and times of arrival at a monitoring point that are of a previously transmitted
data packet and a subsequently transmitted data packet of a remote end, 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 a difference between
which and an average value of the m estimated time stamp units falls within a predetermined
range; and calculating an average value and round the calculated average value to
obtain an integer, to obtain an unbiased estimated time stamp unit.
[0095] The foregoing method that is executed by a measurement apparatus and that is disclosed
in either of the embodiments in FIG. 1 and FIG. 2 of the present invention may be
applied to the processor 402 or implemented by the processor 402. The processor 402
may 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 processor 402. The foregoing
processor 402 may 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 memory 403, and the processor
402 reads information in the memory 403 and completes the steps of the foregoing method
in combination with hardware of the processor 402.
[0096] In this embodiment of the present invention, the measurement apparatus 400 obtains
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.
[0097] Specifically, in the process of being configured to calculate the m estimated time
stamp units according to the packet transmission time stamps 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 processor 402 may be configured to determine the m estimated
time stamp units according to the following formula:

where S1
i represents a packet transmission time stamp of a previously transmitted data packet
of the remote device in an i
th set of sampled data, S2
i represents a packet transmission time stamp of a subsequently transmitted data packet
of the remote device in the i
th set of sampled data, t1
i represents a time of arrival at the monitoring point of the previously transmitted
data packet of the remote device in the i
th set of sampled data, t2
i represents a time of arrival at the monitoring point of the subsequently transmitted
data packet of the remote device in the i
th set of sampled data, and U
i represents an estimated time stamp unit calculated according to the i
th set of sampled data.
[0098] 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 processor 402 may 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 a preferred solution.
[0099] 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 processor 402 is specifically configured to determine the time stamp unit
of the remote device according to the following formula:

where ΣU
i represents a sum of the selected estimated time stamp unit, q represents a quantity
of the selected estimated time stamp unit, and the function int represents rounding
down.
[0100] 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 a preferred solution.
[0101] 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.
[0102] Further, the packet transmission interval meets the following formula:

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.
[0103] Generally, a difference of one order of magnitude may be considered as being much
greater than. That is, D>10L/B.
[0104] Still further, the quantity m of sets of sampled data meets the following formula:

where n represents a quantity of time stamp units included in the packet transmission
interval, U 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.
[0105] Optionally, the measurement apparatus 400 may be located on a server or located on
a client.
[0106] 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.
[0107] A person of ordinary skill in the art may be aware that, in combination with the
examples described in the embodiments disclosed in this specification, units and algorithm
steps may be implemented by electronic hardware or a combination of computer software
and electronic hardware. Whether the functions are performed by hardware or software
depends on particular applications and design constraint conditions of the technical
solutions. A person skilled in the art may use different methods to implement the
described functions for each particular application, but it should not be considered
that the implementation goes beyond the scope of the present invention.
[0108] It may be clearly understood by a person skilled in the art that, for the purpose
of convenient and brief description, for a detailed working process of the foregoing
system, apparatus, and unit, reference may be made to a corresponding process in the
foregoing method embodiments, and details are not described herein again.
[0109] In the several embodiments provided in the present application, it should be understood
that the disclosed system, apparatus, and method may be implemented in other manners.
For example, the described apparatus embodiment is merely an example. For example,
the unit division is merely logical function division and may be other division in
actual implementation. For example, a plurality of units or components may be combined
or integrated into another system, or some features may be ignored or not performed.
In addition, the displayed or discussed mutual couplings or direct couplings or communication
connections may be implemented by using some interfaces. The indirect couplings or
communication connections between the apparatuses or units may be implemented in electronic,
mechanical, or other forms.
[0110] 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 position,
or may be distributed on a plurality of network units. Some or all of the units may
be selected according to actual needs to achieve the objectives of the solutions of
the embodiments.
[0111] In addition, functional units in the embodiments of the present invention may be
integrated into one processing unit, or each of the units may exist alone physically,
or two or more units are integrated into one unit.
[0112] When the functions are implemented in the form of a software functional unit and
sold or used as an independent product, the functions may be stored in a computer-readable
storage medium. Based on such an understanding, the technical solutions of the present
invention essentially, or the part contributing to the prior art, or some of the technical
solutions may be implemented in a form of a software product. The software product
is stored in a storage medium, and includes several instructions for instructing a
computer device (which may be a personal computer, a server, or a network device)
to perform all or some of the steps of the methods described in the embodiments of
the present invention. The foregoing storage medium includes: any medium that can
store program code, such as a USB flash drive, a removable hard disk, a read-only
memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory),
a magnetic disk, or an optical disc.
[0113] The foregoing descriptions are merely specific implementation manners of the present
invention, but are not intended to limit the protection scope of the present invention.
Any variation or replacement readily figured out by a person skilled in the art within
the technical scope disclosed in the present invention shall fall within the protection
scope of the present invention. Therefore, the protection scope of the present invention
shall be subject to the protection scope of the claims.
1. A method for measuring a time stamp unit of a remote device, comprising:
obtaining m sets of sampled data, wherein each set of sampled data comprises packet
transmission time stamps and times of arrival at a monitoring point that are of a
previously transmitted data packet and a subsequently transmitted data packet of the
remote device, m is a positive integer, and m>1;
calculating m estimated time stamp units according to the packet transmission time
stamps 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 the time stamp unit of the remote device according to the selected estimated
time stamp unit.
2. The method according to claim 1, wherein the calculating m estimated time stamp units
according to the packet transmission time stamps 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 comprises:
determining the m estimated time stamp units according to the following formula:

wherein S1i represents a packet transmission time stamp of a previously transmitted data packet
of the remote device in an ith set of sampled data, S2i represents a packet transmission time stamp of a subsequently transmitted data packet
of the remote device in the ith set of sampled data, t1i represents a time of arrival at the monitoring point of the previously transmitted
data packet of the remote device in the ith set of sampled data, t2i represents a time of arrival at the monitoring point of the subsequently transmitted
data packet of the remote device in the ith set of sampled data, and Ui represents an estimated time stamp unit calculated according to the ith set of sampled data.
3. The method according to claim 1 or 2, wherein the calculating the time stamp unit
of the remote device according to the selected estimated time stamp unit comprises:
determining the time stamp unit of the remote device according to the following formula:

wherein ΣUi represents a sum of the selected estimated time stamp unit, q represents a quantity
of the selected estimated time stamp unit, and the function int represents rounding
down.
4. The method according to any one of claims 1 to 3, wherein
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 comprises:
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.
5. The method according to any one of claims 1 to 4, wherein
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.
6. The method according to claim 5, wherein the packet transmission interval meets the
following formula:

wherein 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.
7. The method according to claim 5 or 6, wherein the quantity m of sets of sampled data
meets the following formula:

wherein n represents a quantity of time stamp units comprised in the packet transmission
interval, U 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.
8. A measurement apparatus, comprising:
a sampling unit, configured to obtain m sets of sampled data, wherein each set of
sampled data comprises packet transmission time stamps and times of arrival 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 packet transmission time stamps 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, wherein
the calculation unit is further configured to calculate a time stamp unit of the remote
device according to the selected estimated time stamp unit.
9. The apparatus according to claim 8, wherein: in the process of being configured to
calculate the m estimated time stamp units according to the packet transmission time
stamps 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:

wherein S1
i represents a packet transmission time stamp of a previously transmitted data packet
of the remote device in an i
th set of sampled data, S2
i represents a packet transmission time stamp of a subsequently transmitted data packet
of the remote device in the i
th set of sampled data, t1
i represents a time of arrival at the monitoring point of the previously transmitted
data packet of the remote device in the i
th set of sampled data, t2
i represents a time of arrival at the monitoring point of the subsequently transmitted
data packet of the remote device in the i
th set of sampled data, and U
i represents an estimated time stamp unit calculated according to the i
th set of sampled data.
10. The apparatus according to claim 8 or 9, wherein: 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:

wherein ΣU
i represents a sum of the selected estimated time stamp unit, q represents a quantity
of the selected estimated time stamp unit, and the function int represents rounding
down.
11. The apparatus according to any one of claims 8 to 10, wherein 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.
12. The apparatus according to any one of claims 8 to 11, wherein
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.
13. The apparatus according to claim 12, wherein the packet transmission interval meets
the following formula:

wherein 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 on which the apparatus is located.
14. The apparatus according to claim 12 or 13, wherein the quantity m of sets of sampled
data meets the following formula:

wherein n represents a quantity of time stamp units comprised in the packet transmission
interval, U represents the average value of the m estimated time stamp units, a packet
transmission queuing delay from the remote device to the local device on which the
apparatus is located conforms to negative exponential distribution
λe-λt, and the erfc function is a complementary error function.
15. The apparatus according to any one of claims 8 to 14, wherein the apparatus is located
on a server, or the apparatus is located on a client.
16. The apparatus according to any one of claims 8 to 15, wherein the monitoring point
is located on a router between the remote device and the local device, or the monitoring
point is the local device.