Time::Skew 0.1
Sponsored Links
Time::Skew 0.1 Ranking & Summary
File size:
0.044 MB
Platform:
Any Platform
License:
Perl Artistic License
Price:
Downloads:
927
Date added:
2007-04-10
Publisher:
Augusto Ciuffoletti
Time::Skew 0.1 description
Time::Skew is a Perl module that computes local clock skew with respect to a remote clock.
SYNOPISI
use Time::Skew
# Init Convex Hull and timing data
my $hull=[];
my $result={};
# Iterate data point introduction
Time::Skew::convexhull($result,$datapoint,$hull);
This module supports the computation of the skew between two clocks: the (relative) skew is the speed with which two clocks diverge. For instance, if yesterday two clocks, at the same time, showed respectively 10:00 and 10:05, while today when the former shows 10:00 the latter shows 10:04, we say that their relative skew is 1 minute/24 hours, roughly 7E-4.
The module contains one single subroutine, which accepts as input a pair of timestamps, associated to a message from host A to host B: the timestamps correspond to the time when the message was sent, and to the time when message is received. Each timestamp reflects the value of the local clock where the operation takes place: the clock of host A for the send, the clock of B for the receive.
Please note that the module does _not_ contain any message exchange facility, but only the mathematics needed to perform the skew approximation, once timestamps are known.
The subroutine takes as argument:
a reference to a hash where values related to the timing of the network path from A to B;
a 2-elems array (a data point in the sequel) containing the timestamp of the receive event, and the differece between the send timestamp and the receive timestamp for one message;
a stack containing some data points, those that form the convex hull.
The usage is very simple, and is illustrated by the following example:
#!/usr/bin/perl -w
use strict;
use Time::Skew;
# Initialize data
my $hull=[];
my $result={};
while ( 1 ) {
# Exchange message and acquire a new data point
my $datapoint = acquire();
# Call the convexhull subroutine
Time::Skew::convexhull($result,$datapoint,$hull);
# After first message some results are still undefined
( defined $result->{skewjitter} ) || next;
# here you can use the results
};
}
The data returned in the "result" hash is the following:
result->{skew} the clock skew;
result->{skewjitter} the variance of the skew estimate, used to estimate convergence;
result->{jitter} difference between the current delay and the previous delay;
result->{delay} the communication delay, decremented by a constant (yet unknown) value, used to compute communication jitter;
result->{elems} the number of data points in the convex hull;
result->{select} the index of the data point in the convex hull used to compute the skew;
result->{itimestamp} the timestamp, first element in the data point just passed to the subroutine;
result->{delta} the timestamp difference, second element in the data point just passed to the subroutine;
The data returned in the "hull" stack is a series of data points, selected from those passed to successive calls of the subroutine. The number of data points in the "hull" stack usually does not exceed 20 units.
The algorithm is very fast: each call consists in scanning at most all data points in the "hull" stack, performing simple arithmetic operations for each element.
The algorithm must be fed with a sequence of data points before returning significant results. The accuracy of the estimate keeps growing while new data points are passed to the subroutine. A rough rule of thumb to evaluate estimate accuracy is to observe the skew jitter, and assume it corresponds to the skew estimate accuracy. Paths with quite regular communication delay (small jitter) converge faster.
SYNOPISI
use Time::Skew
# Init Convex Hull and timing data
my $hull=[];
my $result={};
# Iterate data point introduction
Time::Skew::convexhull($result,$datapoint,$hull);
This module supports the computation of the skew between two clocks: the (relative) skew is the speed with which two clocks diverge. For instance, if yesterday two clocks, at the same time, showed respectively 10:00 and 10:05, while today when the former shows 10:00 the latter shows 10:04, we say that their relative skew is 1 minute/24 hours, roughly 7E-4.
The module contains one single subroutine, which accepts as input a pair of timestamps, associated to a message from host A to host B: the timestamps correspond to the time when the message was sent, and to the time when message is received. Each timestamp reflects the value of the local clock where the operation takes place: the clock of host A for the send, the clock of B for the receive.
Please note that the module does _not_ contain any message exchange facility, but only the mathematics needed to perform the skew approximation, once timestamps are known.
The subroutine takes as argument:
a reference to a hash where values related to the timing of the network path from A to B;
a 2-elems array (a data point in the sequel) containing the timestamp of the receive event, and the differece between the send timestamp and the receive timestamp for one message;
a stack containing some data points, those that form the convex hull.
The usage is very simple, and is illustrated by the following example:
#!/usr/bin/perl -w
use strict;
use Time::Skew;
# Initialize data
my $hull=[];
my $result={};
while ( 1 ) {
# Exchange message and acquire a new data point
my $datapoint = acquire();
# Call the convexhull subroutine
Time::Skew::convexhull($result,$datapoint,$hull);
# After first message some results are still undefined
( defined $result->{skewjitter} ) || next;
# here you can use the results
};
}
The data returned in the "result" hash is the following:
result->{skew} the clock skew;
result->{skewjitter} the variance of the skew estimate, used to estimate convergence;
result->{jitter} difference between the current delay and the previous delay;
result->{delay} the communication delay, decremented by a constant (yet unknown) value, used to compute communication jitter;
result->{elems} the number of data points in the convex hull;
result->{select} the index of the data point in the convex hull used to compute the skew;
result->{itimestamp} the timestamp, first element in the data point just passed to the subroutine;
result->{delta} the timestamp difference, second element in the data point just passed to the subroutine;
The data returned in the "hull" stack is a series of data points, selected from those passed to successive calls of the subroutine. The number of data points in the "hull" stack usually does not exceed 20 units.
The algorithm is very fast: each call consists in scanning at most all data points in the "hull" stack, performing simple arithmetic operations for each element.
The algorithm must be fed with a sequence of data points before returning significant results. The accuracy of the estimate keeps growing while new data points are passed to the subroutine. A rough rule of thumb to evaluate estimate accuracy is to observe the skew jitter, and assume it corresponds to the skew estimate accuracy. Paths with quite regular communication delay (small jitter) converge faster.
Time::Skew 0.1 Screenshot
Time::Skew 0.1 Keywords
Skew 0.1
Data points
data point
Clock skew
respect to
Perl module
passed to
data
skew
clock
hull
message
subroutine
Time::Skew
TimeSkew
Time::Skew 0.1
Bookmark Time::Skew 0.1
Time::Skew 0.1 Copyright
WareSeeker periodically updates pricing and software information of Time::Skew 0.1 full version from the publisher, so some information may be slightly out-of-date. You should confirm all information before relying on it. Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future development of Time::Skew 0.1 Edition. Download links are directly from our publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed
Featured Software
Want to place your software product here?
Please contact us for consideration.
Contact WareSeeker.com
Related Information
line plot graph data points
scatter plot graph data points
example of line graph data points
data points include
datapoint
line graph example data points
clock kits
define graph data points algebra
what is clock skew
world clock
data point definition
dana point ca
clock repair
clock skew detected
point sale data
entry data point
dataquick
skewers restaurant
Related Software
DPKG::Make is a Perl module for cleanly generate an Debian package (.dpkg). Free Download
File::Maker is a Perl module that mimics a make by loading a database and calling targets methods. Free Download
Devel::Messenger is a Perl module who let your code talk to you. Free Download
movieinfo is a Perl module created to dump information about movie file(s). Free Download
Tie::Form is a Perl module to access a machine readable database file that minics a hardcopy form. Free Download
ebXML::Message is a Perl module to encapsulate an ebMS message. Free Download
Tie::FormA is a Perl module that can access a machine readable database file that minics a hardcopy form. Free Download
Data::Stag is a Perl module with structured tags datastructures. Free Download
Latest Software
Popular Software
Favourite Software