📄 readme
字号:
README for pathrate-2.4.1Contents--------Overview of pathrateHow pathrate worksBuilding pathrateRunning pathrateExamplesChanges from previous pathrate releaseContact and other infoOverview of pathrate--------------------pathrate measures the capacity of a network path from host S (sender) to host R(receiver). The capacity of a path, aka bottleneck bandwidth, is the maximumIP-layer throughput that a flow can get in the path from S to R. The capacitydoes not depend on the load of the path. * The capacity of a path is not the same metric as the available bandwidthof a path. The later takes into account the cross traffic load in the path, andit is less than the capacity. Also, the capacity is different than the BulkTransfer Capacity (BTC) metric, currently standardized by the IETF. The BTC isthe maximum throughput that a TCP connection can get in the path, when it isonly limited by the network.* pathrate requires that you have access at both end-points of the network path (i.e., you have to be able to run pathrate at both S and R). Thismakes the tool harder to use, but it is the only way to avoid distorting themeasurements with the reverse path from R to S. * You can run pathrate from user-space, and you don't need any superuser privileges.* Pathrate takes normally about 15 minutes to run. Even though we couldsimplify the measurement process so that it takes much shorter, we chose tofocus on accuracy rather than on execution speed. Notice that the capacity ofa path is a static metric that does not change unless if there are routing orinfrastructure changes in the path. Consequently, the long execution time ofpathrate should not be a concern. * It is important to run pathrate from relatively idle hosts. Before running pathrate, make sure that there are no other CPU or I/O intensiveprocesses running. If there are, it is likely that they will interact withpathrate's user-level packet timestamping, and the results that you'll get maybe quite inaccurate.* Certain links use load balancing (e.g., Cisco's standard CEF load-sharing). In those cases, even though a certain "fat link" may have a capacity X, an IPflow will only be able to see a maximum bandwidth of X/n, where n is the numberof "sub-links" (e.g., ATM PVCs) that make up the "fat link". * In paths that are limited by Gigabit Ethernet interfaces,the Pathrate final capacity estimate is often less than 1000Mbps. The majorissue there is whether the two end-hosts can truly saturate a Gigabit Ethernetpath, even when they transfer MTU UDP packets. We have observed that in orderto saturate a GigE interface, it is important that end-hosts have a 64-bit PCIbus (together with a GHz processor and a decent GigE NIC of course). In otherwords, Pathrate cannot measure a nominal network capacity if the end-hosts arenot really able to use that capacity.* Some links perform traffic shaping, providing a certainpeak rate P, while if the burst size is larger than a certain amount of bytes,the maximum rate is reduced to a lower ("sustainable") rate S. In such paths,Pathrate should measure P, not S. Thanks to Tom Dunigan from ORNL that runPathrate in such paths and gave us feedback.* In previous versions, Pathrate would sometimes report that itcannot produce a final capacity estimate (especially, in high-bandwidthpaths). In the new version, Pathrate will report instead a lower-bound on thecapacity of a path. * Internet paths are often asymmetric. The capacity of the path from S to R is not necessarily the same with the capacity of the path from R to S.* For heavily loaded paths, pathrate can take a while until it reports a final estimate. "A while" means about half an hour. The good news is that thecapacity of a path does not change very often, unless if there is routeflapping. * pathrate uses UDP packets for probing the path's bandwidth, and it also establishes a TCP connection between the two hosts for control purposes. TheUDP port number is 48698 (at the receiver) and the TCP port number is 48699 (atthe sender).* pathrate does some primitive form of congestion avoidance (it will abortafter many packet losses).* pathrate assumes that the IP and UDP headers (28 bytes totally) arefully transmitted together with the packet payload. For links that do headercompression (RFC 1144) this will cause a slight capacity overestimation. * pathrate v2.x is significantly different than the first version, released in November 2000. Also, pathrate v2.x differs in certain points with thedescription given in our Infocom 2001 paper.How pathrate works------------------Pathrate consists of the following "run phases":1) Initially, the tool discovers the maximum train-length that the path cancarry. The idea is that we do not want to overload the path with very longpacket trains that would cause buffer overflows. The maximum train length thatwe try is 50 packets. We stop increasing the train length after three lossypacket trains at a given train length.2) Then, pathrate sends a number of packet trains of increasing length (called"preliminary measurements" phase). The goal here is to detect if the narrowlink has parallel sub-channels, or if it performs traffic shaping. You canignore this phase until you become an "advanced user". This phase also checkswhether the path is "easy to measure" (very lightly loaded). In that case,pathrate reports its final estimate and exits. An important part of this phaseis that pathrate computes the "bandwidth resolution" (think of it as ahistogram bin width). The final capacity estimate will be a range of thiswidth.3) In this phase, called Phase I, pathrate generates a large number (1000) ofpacket-pairs. The goal here is to discover all local modes in the packet-pairbandwidth distribution. One of the Phase I modes is expected to be the capacityof the path. The packets that pathrate sends in Phase I are of variable size,in order to make the non-capacity local modes weaker and wider. 4) Finally, in Phase II, pathrate generates a number (500) of packet trains oflarge length. The goal here is to discover which of the Phase I local modes isthe capacity of the path. To do so, Phase II estimates the AsymptoticDispersion Rate (ADR) metric R, measured from the dispersion of long packettrains. We know (see our Infocom 2001 paper) that the capacity is larger thanR. If there are several Phase I modes that are larger than R, the capacityestimate is the mode that maximizes a certain "figure of merit" M. M depends onthe "narrowness" and the "strength" of each candidate mode in the underlyingbandwidth distribution of Phase I. The capacity mode should be narrow andstrong, i.e., to have a large value of M. The very final outcome of pathrate is the capacity estimate for the path. Building pathrate-----------------pathrate uses the standard configure/make approach.$> ./configure$> makeAfter you have extracted the pathrate code in a directory,run configure in that directory. Then run make.You should then have two executables in the pathrate directory.1. pathrate_snd (to be run at the sender)2. pathrate_rcv (to be run at the receiver)Running pathrate----------------sender For capacity estimation, first run pathrate_snd at the sender S: $> pathrate_snd By default, pathrate_snd will exit after 1 measurement. Use switch -i to run sender in iterative mode. Other options are, -q : quite mode -v : verbose mode -o <file> : print log in user specified file -H|-h : print help and exit receiver Then, run pathrate_rcv at the receiver R: $> pathrate_rcv [-q|-v] [-Q] [-o|-O <filename>] [-N <filename>] [-H] -h <sender> -s : hostname/ipaddress of sender -q : quite mode -v : verbose mode -Q : Quick termination mode -o <file> : print log in user specified file -O <file> : append log in user specified file [default is pathrate.output] -N <file> : print output in ULM format to <file> -H|-h : print help and exit [-o,-O] By default, receiver always appends detailed output to file "pathrate.output". output file can be changed by specifying a filename with -o switch. Remember, if the specified file already exits, it will be over-written. To append the output to a file use -O switch. [-q,-v] By default, receiver sends minimal output (Progress report, Local modes and final output) to terminal (stdout). To completely disable any message on stdout, please use -q (quite mode). To enable detailed output on screen, use -v (Verbose mode). Note that, log file (user specified or "pathrate.output") contains exactly the same output as -v. [-N] Specify a file name to store output in netlogger compatible format. [-Q] If used, terminates at the end of phase 0 and give rough estimate of capacity by getting the average of the estimates so far. It also reports the coefficient of variation (standard deviation/ average). If this variation is large, complete run of pathrate is suggested for more accurate capacity estimate.Examples--------Say, you want to measure the capacity from host A to host B, then run pathrate_snd at A and pathrate_rcv at B.At host A,$> ./pathrate_snd -i -q &At host B,$> ./pathrate_rcv -s A Now, if you wanted to change the default log file at receiver B,$> ./pathrate_rcv -s A -o testrun.logNext if you also wanted detailed output on screen and netloggeroutput, $> ./pathrate_rcv -s A -o testrun.log -N netlogger.log -vChanges from previous pathrate release--------------------------------------1) A command line options are added for users to choose different levels of verbose output on the screen. It also has options for redirecting output to different files and appending to file instead of overwriting.2) Current version has been tested to work at high capacity paths. (OC-3, OC-12, Gigabit). It can detect interrupt coalescing at Gigabit NICs and adopt different methodology for capacity estimation.3) It can report final estimation in Universal Logger Message (ULM) format.Authors-------1. Constantinos Dovrolis dovrolis@cis.udel.edu2. Ravi S Prasad ravi@cc.gatech.eduImportant Disclaimer--------------------pathrate is based on statistical techniques, and so there is no guarantee thatit will always estimate the correct capacity value. If you get wrong results, please let us know, including also the corresponding <pathrate.output> file.Please report any problems or suggestions to dovrolis@cc.gatech.edu and ravi@cc.gatech.edu. Also, please let us know if you want to receive email announcements about future pathrate releases. Acknowledgments---------------This work was supported by the SciDAC program of the US Department of Energy (award # DE-FC02-01ER25467).References ---------- "What do packet dispersion techniques measure?", C. Dovrolis, P. Ramanathan, D.Moore, Proceedings of IEEE Infocom 2001 http://www.cc.gatech.edu/~dovrolis/Papers/infocom01.psand "Packet dispersion techniques and capacity estimation", C. Dovrolis, P. Ramanathan, D.Moore, submitted for publication, http://www.cc.gatech.edu/~dovrolis/Papers/ton_dispersion.ps
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -