| Hi Toke, hi list Here is more on the topic of (potential) ATM quantization on a DSL link. (Note ATM typically is used for all/most ADSL1/DASL2/ADSL2+ links and might also be used with VDSL links, even though for VDSL non-cell quantized packet transfer mode (PTM) hopefully is more likely). Anyway, so here is what I use to collect ping times to test for ATM quantization. Just replace TARGET with the nearest IP on the other side of your DSL link that returns ping packets with low variation. The only potentially clever twist here is to call ping for each packet independently and sleep for a tiny bit in-between to allow non-root to ping rates > 1Hz (based on sleep accepting non-integer inputs). (It is worth mentioning that in my tests to high frequencies to the same host led to very long ping RTTs, as if the host was putting my requests into a slow path, so for each host it might be required to titrate the lowest period to still get typical ping responses...) I typically would let this run overnight, at 0.01 seconds PINGPERIOD period this will take 10100seconds or ~168 minutes. For my ADSL2+ link at 2558kbit uplink and 16402kbit downlink the numbers below give a very noticeable quantization step, for higher link speeds one might need to increase PINGSPERSIZE… Now, I have some reworked matlab code to parse and display the data from the ping log file, that also will attempt to estimate the ATM encapsulation related overhead on an ATM link; let me know whether there is any interest for that… best sebastian #! /bin/bash # TODO use seq or bash to generate a list of the requested sizes (to alow for non-equdistantly spaced sizes) # Telekom Tuebingen Moltkestrasse 6 TECH=ADSL2 # finding a proper target IP is somewhat of an art, just traceroute a remote site # and find the nearest host reliably responding to pings showing the smallet variation of pingtimes TARGET=87.186.197.70 # T DATESTR=`date +%Y%m%d_%H%M%S` # to allow multiple sequential records LOG=ping_sweep_${TECH}_${DATESTR}.txt # by default non-root ping will only end one packet per second, so work around that by calling ping independently for each package # empirically figure out the shortest period still giving the standard ping time (to avoid being slow-pathed by our host) PINGPERIOD=0.01 # in seconds PINGSPERSIZE=10000 # Start, needed to find the per packet overhead dependent on the ATM encapsulation # to reiably show ATM quantization one would like to see at least two steps, so cover a range > 2 ATM cells (so > 96 bytes) SWEEPMINSIZE=16 # 64bit systems seem to require 16 bytes of payload to include a timestamp... SWEEPMAXSIZE=116 n_SWEEPS=`expr ${SWEEPMAXSIZE} - ${SWEEPMINSIZE}` i_sweep=0 i_size=0 while [ ${i_sweep} -lt ${PINGSPERSIZE} ] do (( i_sweep++ )) echo "Current iteration: ${i_sweep}" # now loop from sweepmin to sweepmax i_size=${SWEEPMINSIZE} while [ ${i_size} -le ${SWEEPMAXSIZE} ] do echo "${i_sweep}. repetition of ping size ${i_size}" ping -c 1 -s ${i_size} ${TARGET} >> ${LOG} & (( i_size++ )) # we need a sleep binary that allows non integer times (GNU sleep is fine as is sleep of macosx 10.8.4) sleep ${PINGPERIOD} done done #tail -f ${LOG} echo "Done... ($0) On Jun 17, 2013, at 12:50 , Toke Høiland-Jørgensen <[email protected]> wrote: Sebastian Moeller <[email protected]> writes:I fully believe you that it is flat (graph did not make it into my |
_______________________________________________ Cerowrt-devel mailing list [email protected] https://lists.bufferbloat.net/listinfo/cerowrt-devel

