lift round trip time
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 4261
Trip Tracker 0.8.1
Trip Tracker is a position tracking client-server system. more>>
Trip Tracker is a position tracking client-server system. Trip Tracker is designed to assist people in setting up a real-time tracking environment with either a private or public tracking server.
The Trip Tracker GPS client sends coordinates to the tracking server to update its position. In the event that the GPS client loses its Internet connection, it can send all collected coordinates to the tracking server as soon as its back online.
The tracking server saves all the coordinates and can forward them to listening map clients.
Version restrictions:
- The map client can only display a map of Norway, as the WMS server is hardcoded in the server-side PHP script "mapservice.php". This may change in the future. If you know any good WMS servers we might add it to the server-side script, but you still need to add the proper WMS layers in the source code to make it work.
- The GPS client version 0.8 does not set up the Java Communications library properly so it most likely wont find your GPS receiver. We hope to address this issue in the next release quite soon.
- And more...
<<lessThe Trip Tracker GPS client sends coordinates to the tracking server to update its position. In the event that the GPS client loses its Internet connection, it can send all collected coordinates to the tracking server as soon as its back online.
The tracking server saves all the coordinates and can forward them to listening map clients.
Version restrictions:
- The map client can only display a map of Norway, as the WMS server is hardcoded in the server-side PHP script "mapservice.php". This may change in the future. If you know any good WMS servers we might add it to the server-side script, but you still need to add the proper WMS layers in the source code to make it work.
- The GPS client version 0.8 does not set up the Java Communications library properly so it most likely wont find your GPS receiver. We hope to address this issue in the next release quite soon.
- And more...
Download (0.54MB)
Added: 2006-06-06 License: LGPL (GNU Lesser General Public License) Price:
1240 downloads
HTTP Time Protocol 1.0.0
HTTP Time Protocol is a tool for time synchronization with Web servers. more>>
The HTTP Time Protocl (HTP) system is a set of utilities to set and maintain the system clock from the HTTP/1.1 (RFC 2616) "Date:" header. HTP requires Libconfig.
The purpose of HTP is provide a simple to use system that can be used on any system that is connected to the internet and can access atleast one web page (either directly or through a proxy) to be able to maintain an accurate clock.
HTTP Time Protocol uses basic statistical analysis to arrive at the most accurate time possible given enough servers. The more servers HTP is configured to use the more accurate the clock can be.
Enhancements:
- Cleanup/simplification of the code.
- A more robust implementation of the "-p" (precision) switch.
<<lessThe purpose of HTP is provide a simple to use system that can be used on any system that is connected to the internet and can access atleast one web page (either directly or through a proxy) to be able to maintain an accurate clock.
HTTP Time Protocol uses basic statistical analysis to arrive at the most accurate time possible given enough servers. The more servers HTP is configured to use the more accurate the clock can be.
Enhancements:
- Cleanup/simplification of the code.
- A more robust implementation of the "-p" (precision) switch.
Download (0.013MB)
Added: 2007-03-02 License: GPL (GNU General Public License) Price:
969 downloads
Mirro 1.0 Beta
Mirro is an application used to find the closest mirror to your connection. more>>
Mirro is an application used to find the closest mirror to your connection.
Mirro will find the closest mirror to your connection, given a file containing addresses. It pings every site extremely quickly, and sorts the reponses based on the number of hops and the round-trip time.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
<<lessMirro will find the closest mirror to your connection, given a file containing addresses. It pings every site extremely quickly, and sorts the reponses based on the number of hops and the round-trip time.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
Download (0.020MB)
Added: 2007-04-24 License: GPL (GNU General Public License) Price:
913 downloads
Just For Fun Network Management System 0.8.3
Just For Fun Network Management System is a PHP-based network management system. more>>
Just For Fun Network Management System is a PHP-based network management system that features an integrated syslog, Tacacs, TFTP configuration downloading, SNMP polling, SNMP traps, journalling, auto-discovery, performance graphs (RRD), SLAs, and a lot more.
Just For Fun Network Management System uses MySQL or PostgreSQL as the backend and works under Linux and Windows.
Main features:
- Written in PHP4 (works in PHP5 too)
- Fully tested on Linux, FreeBSD and Win2K
- Should work on any other system which supports PHP
- PHP/cron scripts for polling, analizing and consolidating data
- Database Backend MySQL or PostgreSQL
- Configurable Event Types and Severity Levels
- Modular and Extensible
- Advanced Event Filter
- Interface Autodiscovery
- Licensed under the GNU GPL
- Event Console, Shows Events / Tacacs / Syslog / Alarms in the same time-ordered display
- Map & Sub-Map support
- Graphical Interface Traffic, Round Trip Time, Packet Loss Monitoring, and a LOT more
- Variable Time Span in the graphs
- Total Administration via web
- Sound Alerts in your browser
- Events RDF Feed (for newstickers)
- Works with HTTPS
- Traffic Bytes
- Utilization %
- Packets per Second, Errors per Second, Error Rate
- Round Trip Time and Packet Loss (Cisco & Smokeping)
- Drops
- TCP Connections: Incoming, Outgoing, Established, Delay
- Number of Processes, Number of Users
- Used Memory and Disks with Aggregation
- Processor Utilization and Load Average
- Temperature
- Interfaces (Network cards)
- Host (Processor, Load Average)
- Storage (Disks and Memory)
- Applications Running (HostMIB)
- Cisco Ping (RTT & PL on Cisco)
- BGP4 (BGP sessions status)
- TCP (TCP Connections, Delay)
- Cisco MAC Accounting
- Cisco IP Accounting
- Cisco CSS
- Cisco SA Agent
- Cisco Enviormental (Temperature, Voltage, etc)
- Internet Information Server (IIS) MIB
- Livingstone PortMaster3 Serial Line MIB
- Compaq Insight Manager MIB (Disk, Fan and Temperature)
- Apache /server-status monitoring
- TCP Port Content Regexp Checking (or URL)
- Configurable per Circuit SLAs (with RPN logic)
- Internal Authorization Framework
- Per Event Journals and Acknowledge
- Triggers / Actions Framework for email/others alerts.
- Database Abstraction Framework
- CSV Export
- Distributed Polling
- Object Oriented
- Consistent API
Enhancements:
- Better support for PHP 5 and RRDTool 1.2.x, OS/400 integration, Dell Chassis alarm monitoring, and fixes for all reported issues.
<<lessJust For Fun Network Management System uses MySQL or PostgreSQL as the backend and works under Linux and Windows.
Main features:
- Written in PHP4 (works in PHP5 too)
- Fully tested on Linux, FreeBSD and Win2K
- Should work on any other system which supports PHP
- PHP/cron scripts for polling, analizing and consolidating data
- Database Backend MySQL or PostgreSQL
- Configurable Event Types and Severity Levels
- Modular and Extensible
- Advanced Event Filter
- Interface Autodiscovery
- Licensed under the GNU GPL
- Event Console, Shows Events / Tacacs / Syslog / Alarms in the same time-ordered display
- Map & Sub-Map support
- Graphical Interface Traffic, Round Trip Time, Packet Loss Monitoring, and a LOT more
- Variable Time Span in the graphs
- Total Administration via web
- Sound Alerts in your browser
- Events RDF Feed (for newstickers)
- Works with HTTPS
- Traffic Bytes
- Utilization %
- Packets per Second, Errors per Second, Error Rate
- Round Trip Time and Packet Loss (Cisco & Smokeping)
- Drops
- TCP Connections: Incoming, Outgoing, Established, Delay
- Number of Processes, Number of Users
- Used Memory and Disks with Aggregation
- Processor Utilization and Load Average
- Temperature
- Interfaces (Network cards)
- Host (Processor, Load Average)
- Storage (Disks and Memory)
- Applications Running (HostMIB)
- Cisco Ping (RTT & PL on Cisco)
- BGP4 (BGP sessions status)
- TCP (TCP Connections, Delay)
- Cisco MAC Accounting
- Cisco IP Accounting
- Cisco CSS
- Cisco SA Agent
- Cisco Enviormental (Temperature, Voltage, etc)
- Internet Information Server (IIS) MIB
- Livingstone PortMaster3 Serial Line MIB
- Compaq Insight Manager MIB (Disk, Fan and Temperature)
- Apache /server-status monitoring
- TCP Port Content Regexp Checking (or URL)
- Configurable per Circuit SLAs (with RPN logic)
- Internal Authorization Framework
- Per Event Journals and Acknowledge
- Triggers / Actions Framework for email/others alerts.
- Database Abstraction Framework
- CSV Export
- Distributed Polling
- Object Oriented
- Consistent API
Enhancements:
- Better support for PHP 5 and RRDTool 1.2.x, OS/400 integration, Dell Chassis alarm monitoring, and fixes for all reported issues.
Download (0.54MB)
Added: 2006-09-17 License: GPL (GNU General Public License) Price:
1137 downloads
LightWeight Time Tracker 1.0.0pre
LightWeight Time Tracker (LWTT) is a very simple time-tracking program. more>>
LightWeight Time Tracker (LWTT) is a very simple time-tracking program. LightWeight Time Tracker provides independent real-time tracking of multiple tasks (such as programming, lectures, presentations, etc.).
The data are saved to an XML file under the home directory.
<<lessThe data are saved to an XML file under the home directory.
Download (0.080MB)
Added: 2006-06-09 License: GPL (GNU General Public License) Price:
1234 downloads
Bookmark Time 0.2 Alpha
Bookmark Time is an Amarok script that lets you bookmark a point in time in a music file. more>>
Bookmark Time is an Amarok script that lets you bookmark a point in time in a music file.
When you play it again, you can choose the bookmarked times from the mouse menu.
<<lessWhen you play it again, you can choose the bookmarked times from the mouse menu.
Download (0.013MB)
Added: 2007-02-12 License: GPL (GNU General Public License) Price:
984 downloads
Splendid City 5.4
Splendid City Team Sports Scheduler, and Sports Scheduling Software System. more>>
Splendid City Team Sports Scheduler, and Sports Scheduling Software System is useful for people who organize team sports or game events. It can manage sports schedules of any size and complexity. Simply fill in the requested information into the wizard like interface, and Splendid City automates the season, tournament, league, match, round-robin and practice schedules.
A great first step and time saving tool for anyone who frequently does organizational sports scheduling. Splendid City can schedule sports with any user specified combination of dates and times. Create professional double or single elimination tournaments brackets, round-robin league schedules, swiss round tournaments, cross divisional or practice schedules for any sport that requires pairings.
It features options that include the ability to set team and field constraints, game lengths; configurative time management utilities to help you organize events the way you would like; object constraint sharing; automatic schedule generation and re-generation; configurative project web site creation, tournament brackets; publishing via FTP, export to HTML, CSV, iCalendar, XML; import from CSV; standings support with tie-breaker formulas; contact management; import teams, fields, officials, players and player rosters from other users projects ; constraint and conflict checking and resolution.
Users can freely exchange all data associated with projects with other users who have a free copy of Splendid City Lite installed regardless of platform. The application comes with an integrated e-mail client that can aid with the exchange of object files among organization members. There is also a simple FTP client for direct uploading to web domains from within the schedule view frame.
The scheduler gives you complete control over all aspects of the schedule, and creates solutions effortlessly and elegantly in accordance with the user data entered. It can be custom-tailored, and with repeated use via a plugin interface, can be made to automatically accomplish users unique scheduling needs.
The user experience is interactive and straight forward. The application comes fully documented with a built in searchable help system to provide answers to implementation questions.
<<lessA great first step and time saving tool for anyone who frequently does organizational sports scheduling. Splendid City can schedule sports with any user specified combination of dates and times. Create professional double or single elimination tournaments brackets, round-robin league schedules, swiss round tournaments, cross divisional or practice schedules for any sport that requires pairings.
It features options that include the ability to set team and field constraints, game lengths; configurative time management utilities to help you organize events the way you would like; object constraint sharing; automatic schedule generation and re-generation; configurative project web site creation, tournament brackets; publishing via FTP, export to HTML, CSV, iCalendar, XML; import from CSV; standings support with tie-breaker formulas; contact management; import teams, fields, officials, players and player rosters from other users projects ; constraint and conflict checking and resolution.
Users can freely exchange all data associated with projects with other users who have a free copy of Splendid City Lite installed regardless of platform. The application comes with an integrated e-mail client that can aid with the exchange of object files among organization members. There is also a simple FTP client for direct uploading to web domains from within the schedule view frame.
The scheduler gives you complete control over all aspects of the schedule, and creates solutions effortlessly and elegantly in accordance with the user data entered. It can be custom-tailored, and with repeated use via a plugin interface, can be made to automatically accomplish users unique scheduling needs.
The user experience is interactive and straight forward. The application comes fully documented with a built in searchable help system to provide answers to implementation questions.
Download (38MB)
Added: 2005-10-14 License: Freeware Price:
1473 downloads
TRIP 0.98.84
TRIP is a general computer algebra system dedicated to celestial mechanics. more>>
TRIP is a general computer algebra system dedicated to celestial mechanics. TRIP includes a numerical kernel and has interfaces to gnuplot and xmgrace.
Computations can be performed with double, quadruple, or multi-precision. Users can dynamically load external libraries written in C, C++, or Fortran.
Enhancements:
- Several bugs in the frequency analysis functions were fixed.
- The screen refresh on the Windows graphical user interface was improved.
- A problem in the communication with the plotting tool grace was fixed.
<<lessComputations can be performed with double, quadruple, or multi-precision. Users can dynamically load external libraries written in C, C++, or Fortran.
Enhancements:
- Several bugs in the frequency analysis functions were fixed.
- The screen refresh on the Windows graphical user interface was improved.
- A problem in the communication with the plotting tool grace was fixed.
Download (2.7MB)
Added: 2007-02-08 License: Free To Use But Restricted Price:
991 downloads
DataGridField 1.5.0
DataGridField is a product which consists of a table input component for Plone. more>>
DataGridField is a product which consists of a table input component for Plone.
It uses Javascript to make entering tabular data more user friendly process - there are no round trip HTTP requests to the server when inserting or deleting rows.
Main features:
- Any number of columns set by a developer
- Any number of rows filled by a user
- Insert and deleting rows without submitting a form
- Many different column types
<<lessIt uses Javascript to make entering tabular data more user friendly process - there are no round trip HTTP requests to the server when inserting or deleting rows.
Main features:
- Any number of columns set by a developer
- Any number of rows filled by a user
- Insert and deleting rows without submitting a form
- Many different column types
Download (0.11MB)
Added: 2007-03-28 License: LGPL (GNU Lesser General Public License) Price:
940 downloads
WR Time Tracker 0.4
WR Time Tracker is a simple, open source, web-based time tracking system. more>>
WR Time Tracker is a simple, open source, web-based time tracking system.
It is Web-based and allows you to create teams, projects, and activities. Users can enter their work time, generate reports and invoices, and send them via email. Free hosting of this service is also available.
Main features:
- Create user logins and organize them in teams.
- Create and modify projects and activities.
- Input work time.
- Generate reports and send them via e-mail.
<<lessIt is Web-based and allows you to create teams, projects, and activities. Users can enter their work time, generate reports and invoices, and send them via email. Free hosting of this service is also available.
Main features:
- Create user logins and organize them in teams.
- Create and modify projects and activities.
- Input work time.
- Generate reports and send them via e-mail.
Download (0.33MB)
Added: 2006-01-06 License: Freely Distributable Price:
1388 downloads
Trip on the Funny Boat 1.4
Trip on the Funny Boat is a side scrolling shooter game starring a steamboat on the sea. more>>
Trip on the Funny Boat is a side scrolling shooter game starring a steamboat on the sea.
Trip on the Funny Boat is side scrolling arcade shooter game on a steamboat equipped with a cannon and the ability to jump. The player will need to take advantage of waves to defeat the enemies and dodge hazards.
This game was made for the second PyWeek competition during the week from 25.3.2006 to 2.4.2006.
<<lessTrip on the Funny Boat is side scrolling arcade shooter game on a steamboat equipped with a cannon and the ability to jump. The player will need to take advantage of waves to defeat the enemies and dodge hazards.
This game was made for the second PyWeek competition during the week from 25.3.2006 to 2.4.2006.
Download (3.8MB)
Added: 2007-03-14 License: MIT/X Consortium License Price:
959 downloads
Ethiopic::Time 0.20 210102
Ethiopic::Time is a Perl module for conversions of calendar systems to/from Ethiopic and Gregorian. more>>
Ethiopic::Time is a Perl module for conversions of calendar systems to/from Ethiopic and Gregorian.
SYNOPSIS
use LiveGeez::Request;
require Convert::Ethiopic::Time;
my $r = LiveGeez::Request->new;
ReadParse ( %input );
$r->ParseInput ( %input );
my $t = Convert::Ethiopic::Time->new ( $r );
$t->GregorianToEthiopic;
print "$t->{euDay}/$t->{euMonth}/$t->{euYear} = ";
print "$t->{etDay}/$t->{etMonth}/$t->{etYear}n"
Ethiopic::Time and Ethiopic::Cstocs are designed as interfaces to the methods in the Ethiopic:: module and is oriented as services for the LiveGeez:: module. In this version Ethiopic::Time expects to receive an object with hash elements using the keys:
calIn
which can be "euro or "ethio".
date
a comma separated list as "day,month,year".
LCInfo
locale settings see the LibEth man pages.
These keys are set when using a LiveGeez::Request object as shown in the example.
<<lessSYNOPSIS
use LiveGeez::Request;
require Convert::Ethiopic::Time;
my $r = LiveGeez::Request->new;
ReadParse ( %input );
$r->ParseInput ( %input );
my $t = Convert::Ethiopic::Time->new ( $r );
$t->GregorianToEthiopic;
print "$t->{euDay}/$t->{euMonth}/$t->{euYear} = ";
print "$t->{etDay}/$t->{etMonth}/$t->{etYear}n"
Ethiopic::Time and Ethiopic::Cstocs are designed as interfaces to the methods in the Ethiopic:: module and is oriented as services for the LiveGeez:: module. In this version Ethiopic::Time expects to receive an object with hash elements using the keys:
calIn
which can be "euro or "ethio".
date
a comma separated list as "day,month,year".
LCInfo
locale settings see the LibEth man pages.
These keys are set when using a LiveGeez::Request object as shown in the example.
Download (0.021MB)
Added: 2006-08-22 License: Perl Artistic License Price:
1158 downloads
The Wonder Shaper 1.1a
The Wonder Shaper is a very special network shaper script with a lot of features. more>>
The Wonder Shaper is a very special network shaper script with a lot of features. Works on Linux 2.4 & higher.
Goals
I attempted to create the holy grail:
* Maintain low latency for interfactive traffic at all times.
This means that downloading or uploading files should not disturb SSH or even telnet. These are the most important things, even 200ms latency is sluggish to work over.
* Allow surfing at reasonable speeds while up or downloading
Even though http is bulk traffic, other traffic should not drown it out too much.
* Make sure uploads dont harm downloads, and the other way around
This is a much observed phenomenon where upstream traffic simply destroys download speed. It turns out that all this is possible, at the cost of a tiny bit of bandwidth. The reason that uploads, downloads and ssh hurt eachother is the presence of large queues in many domestic access devices like cable or DSL modems.
Why it doesnt work well by default
ISPs know that they are benchmarked solely on how fast people can download. Besides available bandwidth, download speed is influenced heavily by packet loss, which seriously hampers TCP/IP performance. Large queues can help prevent packetloss, and speed up downloads. So ISPs configure large queues.
These large queues however damage interactivity. A keystroke must first travel the upstream queue, which may be seconds (!) long and go to your remote host. It is then displayed, which leads to a packet coming back, which must then traverse the downstream queue, located at your ISP, before it appears on your screen.
This HOWTO teaches you how to mangle and process the queue in many ways, but sadly, not all queues are accessible to us. The queue over at the ISP is completely off-limits, whereas the upstream queue probably lives inside your cable modem or DSL device. You may or may not be able to configure it. Most probably not.
So, what next? As we cant control either of those queues, they must be eliminated, and moved to your Linux router. Luckily this is possible.
Limit upload speed somewhat
By limiting our upload speed to slightly less than the truly available rate, no queues are built up in our modem. The queue is now moved to Linux.
Limit download speed
This is slightly trickier as we cant really influence how fast the internet ships us data. We can however drop packets that are coming in too fast, which causes TCP/IP to slow down to just the rate we want. Because we dont want to drop traffic unnecessarily, we configure a burst size we allow at higher speed.
Now, once we have done this, we have eliminated the downstream queue totally (except for short bursts), and gain the ability to manage the upstream queue with all the power Linux offers.
Let interactive traffic skip the queue
What remains to be done is to make sure interactive traffic jumps to the front of the upstream queue. To make sure that uploads dont hurt downloads, we also move ACK packets to the front of the queue. This is what normally causes the huge slowdown observed when generating bulk traffic both ways. The ACKnowledgements for downstream traffic must compete with upstream traffic, and get delayed in the process.
We also move other small packets to the front of the queue - this helps operating systems which do not set TOS bits, like everything from Microsoft.
Allow the user to specify low priority traffic (new in 1.1!)
Sometimes you may notice low priority OUTGOING traffic slowing down important traffic. In that case, the following options may help you:
NOPRIOHOSTSRC
Set this to hosts or netmasks in your network that should have low priority
NOPRIOHOSTDST
Set this to hosts or netmasks on the internet that should have low priority
NOPRIOPORTSRC
Set this to source ports that should have low priority. If you have an unimportant webserver on your traffic, set this to 80
NOPRIOPORTDST
Set this to destination ports that should have low priority.
See the start of wshaper and wshaper.htb
Results
If we do all this we get the following measurements using an excellent ADSL connection from xs4all in the Netherlands:
Baseline latency:
round-trip min/avg/max = 14.4/17.1/21.7 ms
Without traffic conditioner, while downloading:
round-trip min/avg/max = 560.9/573.6/586.4 ms
Without traffic conditioner, while uploading:
round-trip min/avg/max = 2041.4/2332.1/2427.6 ms
With conditioner, during 220kbit/s upload:
round-trip min/avg/max = 15.7/51.8/79.9 ms
With conditioner, during 850kbit/s download:
round-trip min/avg/max = 20.4/46.9/74.0 ms
When uploading, downloads proceed at ~80% of the available speed. Uploads at around 90%. Latency then jumps to 850 ms, still figuring out why.
What you can expect from this script depends a lot on your actual uplink speed. When uploading at full speed, there will always be a single packet ahead of your keystroke. That is the lower limit to the latency you can achieve - divide your MTU by your upstream speed to calculate. Typical values will be somewhat higher than that. Lower your MTU for better effects!
A small table:
Uplink speed | Expected latency due to upload
--------------------------------------------------
32 | 234ms
64 | 117ms
128 | 58ms
256 | 29ms
So to calculate your effective latency, take a baseline measurement (ping on an unloaded link), and look up the number in the table, and add it. That is about the best you can expect. This number comes from a calculation that assumes that your upstream keystroke will have at most half a full sized packet ahead of it.
This boils down to:
mtu * 0.5 * 10
-------------- + baseline_latency
kbit
The factor 10 is not quite correct but works well in practice.
Your kernel
If you run a recent distribution, everything should be ok. You need 2.4 with QoS options turned on.
If you compile your own kernel, it must have some options enabled. Most notably, in the Networking Options menu, QoS and/or Fair Queueing, turn at least CBQ, PRIO, SFQ, Ingress, Traffic Policing, QoS support, Rate Estimator, QoS classifier, U32 classifier, fwmark classifier.
In practice, I (and most distributions) just turn on everything.
The scripts
The script comes in two versions, one which works on standard kernels and is implemented using CBQ. The other one uses the excellent HTB qdisc which is not in the default kernel. The CBQ version is more tested than the HTB one!
See wshaper and wshaper.htb.
Tuning
These scripts need to know the real rate of your ISP connection. This is hard to determine upfront as different ISPs use different kinds of bits it appears. People report success using the following technique:
Estimate both your upstream and downstream at half the rate your ISP specifies. Now verify if the script is functioning - check interactivity while uploading and while downloading. This should deliver the latency as calculated above. If not, check if the script executed without errors.
Now slowly increase the upstream & downstream numbers in the script until the latency comes back. This way you can find optimum values for your connection. If you are happy, please report to me so I can make a list of numbers that work well. Please let me know which ISP you use and the name of your subscription, and its reputed specifications, so I can list you here and save others the trouble.
Installation
If you dial in, you can copy the script to /etc/ppp/ip-up.d and it will be run at each connect.
If you want to remove the shaper from an interface, run wshaper stop. To see status information, run wshaper status.
KNOWN PROBLEMS
If you get errors, add an -x to the first line, as follows:
#!/bin/bash -x
And retry. This will show you which line gives an error. Before contacting me, make sure that you are running a recent version of iproute!
Recent versions can be found at your Linux distributor, or if you prefer compiling, here:
ftp://ftp.inr.ac.ru/ip-routing/iproute2-current.tar.gz
<<lessGoals
I attempted to create the holy grail:
* Maintain low latency for interfactive traffic at all times.
This means that downloading or uploading files should not disturb SSH or even telnet. These are the most important things, even 200ms latency is sluggish to work over.
* Allow surfing at reasonable speeds while up or downloading
Even though http is bulk traffic, other traffic should not drown it out too much.
* Make sure uploads dont harm downloads, and the other way around
This is a much observed phenomenon where upstream traffic simply destroys download speed. It turns out that all this is possible, at the cost of a tiny bit of bandwidth. The reason that uploads, downloads and ssh hurt eachother is the presence of large queues in many domestic access devices like cable or DSL modems.
Why it doesnt work well by default
ISPs know that they are benchmarked solely on how fast people can download. Besides available bandwidth, download speed is influenced heavily by packet loss, which seriously hampers TCP/IP performance. Large queues can help prevent packetloss, and speed up downloads. So ISPs configure large queues.
These large queues however damage interactivity. A keystroke must first travel the upstream queue, which may be seconds (!) long and go to your remote host. It is then displayed, which leads to a packet coming back, which must then traverse the downstream queue, located at your ISP, before it appears on your screen.
This HOWTO teaches you how to mangle and process the queue in many ways, but sadly, not all queues are accessible to us. The queue over at the ISP is completely off-limits, whereas the upstream queue probably lives inside your cable modem or DSL device. You may or may not be able to configure it. Most probably not.
So, what next? As we cant control either of those queues, they must be eliminated, and moved to your Linux router. Luckily this is possible.
Limit upload speed somewhat
By limiting our upload speed to slightly less than the truly available rate, no queues are built up in our modem. The queue is now moved to Linux.
Limit download speed
This is slightly trickier as we cant really influence how fast the internet ships us data. We can however drop packets that are coming in too fast, which causes TCP/IP to slow down to just the rate we want. Because we dont want to drop traffic unnecessarily, we configure a burst size we allow at higher speed.
Now, once we have done this, we have eliminated the downstream queue totally (except for short bursts), and gain the ability to manage the upstream queue with all the power Linux offers.
Let interactive traffic skip the queue
What remains to be done is to make sure interactive traffic jumps to the front of the upstream queue. To make sure that uploads dont hurt downloads, we also move ACK packets to the front of the queue. This is what normally causes the huge slowdown observed when generating bulk traffic both ways. The ACKnowledgements for downstream traffic must compete with upstream traffic, and get delayed in the process.
We also move other small packets to the front of the queue - this helps operating systems which do not set TOS bits, like everything from Microsoft.
Allow the user to specify low priority traffic (new in 1.1!)
Sometimes you may notice low priority OUTGOING traffic slowing down important traffic. In that case, the following options may help you:
NOPRIOHOSTSRC
Set this to hosts or netmasks in your network that should have low priority
NOPRIOHOSTDST
Set this to hosts or netmasks on the internet that should have low priority
NOPRIOPORTSRC
Set this to source ports that should have low priority. If you have an unimportant webserver on your traffic, set this to 80
NOPRIOPORTDST
Set this to destination ports that should have low priority.
See the start of wshaper and wshaper.htb
Results
If we do all this we get the following measurements using an excellent ADSL connection from xs4all in the Netherlands:
Baseline latency:
round-trip min/avg/max = 14.4/17.1/21.7 ms
Without traffic conditioner, while downloading:
round-trip min/avg/max = 560.9/573.6/586.4 ms
Without traffic conditioner, while uploading:
round-trip min/avg/max = 2041.4/2332.1/2427.6 ms
With conditioner, during 220kbit/s upload:
round-trip min/avg/max = 15.7/51.8/79.9 ms
With conditioner, during 850kbit/s download:
round-trip min/avg/max = 20.4/46.9/74.0 ms
When uploading, downloads proceed at ~80% of the available speed. Uploads at around 90%. Latency then jumps to 850 ms, still figuring out why.
What you can expect from this script depends a lot on your actual uplink speed. When uploading at full speed, there will always be a single packet ahead of your keystroke. That is the lower limit to the latency you can achieve - divide your MTU by your upstream speed to calculate. Typical values will be somewhat higher than that. Lower your MTU for better effects!
A small table:
Uplink speed | Expected latency due to upload
--------------------------------------------------
32 | 234ms
64 | 117ms
128 | 58ms
256 | 29ms
So to calculate your effective latency, take a baseline measurement (ping on an unloaded link), and look up the number in the table, and add it. That is about the best you can expect. This number comes from a calculation that assumes that your upstream keystroke will have at most half a full sized packet ahead of it.
This boils down to:
mtu * 0.5 * 10
-------------- + baseline_latency
kbit
The factor 10 is not quite correct but works well in practice.
Your kernel
If you run a recent distribution, everything should be ok. You need 2.4 with QoS options turned on.
If you compile your own kernel, it must have some options enabled. Most notably, in the Networking Options menu, QoS and/or Fair Queueing, turn at least CBQ, PRIO, SFQ, Ingress, Traffic Policing, QoS support, Rate Estimator, QoS classifier, U32 classifier, fwmark classifier.
In practice, I (and most distributions) just turn on everything.
The scripts
The script comes in two versions, one which works on standard kernels and is implemented using CBQ. The other one uses the excellent HTB qdisc which is not in the default kernel. The CBQ version is more tested than the HTB one!
See wshaper and wshaper.htb.
Tuning
These scripts need to know the real rate of your ISP connection. This is hard to determine upfront as different ISPs use different kinds of bits it appears. People report success using the following technique:
Estimate both your upstream and downstream at half the rate your ISP specifies. Now verify if the script is functioning - check interactivity while uploading and while downloading. This should deliver the latency as calculated above. If not, check if the script executed without errors.
Now slowly increase the upstream & downstream numbers in the script until the latency comes back. This way you can find optimum values for your connection. If you are happy, please report to me so I can make a list of numbers that work well. Please let me know which ISP you use and the name of your subscription, and its reputed specifications, so I can list you here and save others the trouble.
Installation
If you dial in, you can copy the script to /etc/ppp/ip-up.d and it will be run at each connect.
If you want to remove the shaper from an interface, run wshaper stop. To see status information, run wshaper status.
KNOWN PROBLEMS
If you get errors, add an -x to the first line, as follows:
#!/bin/bash -x
And retry. This will show you which line gives an error. Before contacting me, make sure that you are running a recent version of iproute!
Recent versions can be found at your Linux distributor, or if you prefer compiling, here:
ftp://ftp.inr.ac.ru/ip-routing/iproute2-current.tar.gz
Download (MB)
Added: 2007-02-13 License: GPL (GNU General Public License) Price:
994 downloads
Bio::AnnotationCollectionI 1.4
Bio::AnnotationCollectionI is a Perl interface for annotation collections. more>>
Bio::AnnotationCollectionI is a Perl interface for annotation collections.
SYNOPSIS
# get an AnnotationCollectionI somehow, eg
$ac = $seq->annotation();
foreach $key ( $ac->get_all_annotation_keys() ) {
@values = $ac->get_Annotations($key);
foreach $value ( @values ) {
# value is an Bio::AnnotationI, and defines a "as_text" method
print "Annotation ",$key," stringified value ",$value->as_text,"n";
# also defined hash_tree method, which allows data orientated
# access into this object
$hash = $value->hash_tree();
}
}
Annotation Collections are a way of storing a series of "interesting facts" about something. We call an "interesting fact" in Bioperl an Annotation (this differs from a Sequence Feature, which is called a Sequence Feature and may or may not have an Annotation Collection).
The trouble about this is we are not that sure what "interesting facts" someone might want to store: the possibility is endless.
Bioperls approach is that the "interesting facts" are represented by Bio::AnnotationI objects. The interface Bio::AnnotationI guarentees two methods
$obj->as_text(); # string formated to display to users
and
$obj->hash_tree(); # hash with defined rules for data-orientated discovery
The hash_tree method is designed to play well with XML output and other "nested-tag-of-data-values" think BoulderIO and/or Ace stuff. For more info read Bio::AnnotationI docs
Annotations are stored in AnnotationCollections, each Annotation under a different "tag". The tags allow simple discovery of the available annotations, and in some cases (like the tag "gene_name") indicate how to interpret the data underneath the tag. The tag is only one tag deep and each tag can have an array of values.
In addition, AnnotationCollectionIs are guarentee to maintain a consistent set object values under each tag - at least that each object complies to one interface. The "standard" AnnotationCollection insists the following rules are set up
Tag Object
--- ------
comment Bio::Annotation::Comment
dblink Bio::Annotation::DBLink
description Bio::Annotation::SimpleValue
gene_name Bio::Annotation::SimpleValue
ontology_term Bio::Annotation::OntologyTerm
reference Bio::Annotation::Reference
These tags are the implict tags that the SeqIO system needs to round-trip GenBank/EMBL/Swissprot.
However, you as a user and us collectively as a community can grow the "standard" tag mapping over time and specifically for a particular area.
Enhancements:
- Perl
<<lessSYNOPSIS
# get an AnnotationCollectionI somehow, eg
$ac = $seq->annotation();
foreach $key ( $ac->get_all_annotation_keys() ) {
@values = $ac->get_Annotations($key);
foreach $value ( @values ) {
# value is an Bio::AnnotationI, and defines a "as_text" method
print "Annotation ",$key," stringified value ",$value->as_text,"n";
# also defined hash_tree method, which allows data orientated
# access into this object
$hash = $value->hash_tree();
}
}
Annotation Collections are a way of storing a series of "interesting facts" about something. We call an "interesting fact" in Bioperl an Annotation (this differs from a Sequence Feature, which is called a Sequence Feature and may or may not have an Annotation Collection).
The trouble about this is we are not that sure what "interesting facts" someone might want to store: the possibility is endless.
Bioperls approach is that the "interesting facts" are represented by Bio::AnnotationI objects. The interface Bio::AnnotationI guarentees two methods
$obj->as_text(); # string formated to display to users
and
$obj->hash_tree(); # hash with defined rules for data-orientated discovery
The hash_tree method is designed to play well with XML output and other "nested-tag-of-data-values" think BoulderIO and/or Ace stuff. For more info read Bio::AnnotationI docs
Annotations are stored in AnnotationCollections, each Annotation under a different "tag". The tags allow simple discovery of the available annotations, and in some cases (like the tag "gene_name") indicate how to interpret the data underneath the tag. The tag is only one tag deep and each tag can have an array of values.
In addition, AnnotationCollectionIs are guarentee to maintain a consistent set object values under each tag - at least that each object complies to one interface. The "standard" AnnotationCollection insists the following rules are set up
Tag Object
--- ------
comment Bio::Annotation::Comment
dblink Bio::Annotation::DBLink
description Bio::Annotation::SimpleValue
gene_name Bio::Annotation::SimpleValue
ontology_term Bio::Annotation::OntologyTerm
reference Bio::Annotation::Reference
These tags are the implict tags that the SeqIO system needs to round-trip GenBank/EMBL/Swissprot.
However, you as a user and us collectively as a community can grow the "standard" tag mapping over time and specifically for a particular area.
Enhancements:
- Perl
Download (4.7MB)
Added: 2006-10-10 License: Perl Artistic License Price:
1109 downloads
OCERA Real Time Ethernet 0.3.1
The ORTE is an implementation of the RTPS communication protocol defined by Real Time Innovations. more>>
The ORTE is an implementation of the RTPS communication protocol defined by Real Time Innovations.
RTPS is an application layer protocol targeted to the real-time communication area. It is built on top of a standard UDP stack.
This protocol is being submitted to the IETF as an informational RFC and has been adopted by the IDA group.
<<lessRTPS is an application layer protocol targeted to the real-time communication area. It is built on top of a standard UDP stack.
This protocol is being submitted to the IETF as an informational RFC and has been adopted by the IDA group.
Download (1.6MB)
Added: 2005-11-03 License: GPL (GNU General Public License) Price:
1454 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above lift round trip time search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed