From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from bifrost.lang.hm (mail.lang.hm [64.81.33.126]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by huchra.bufferbloat.net (Postfix) with ESMTPS id 08ECF21F31F for ; Sat, 26 Jul 2014 13:21:57 -0700 (PDT) Received: from asgard.lang.hm (asgard.lang.hm [10.0.0.100]) by bifrost.lang.hm (8.13.4/8.13.4/Debian-3) with ESMTP id s6QKLlTe010472; Sat, 26 Jul 2014 13:21:47 -0700 Date: Sat, 26 Jul 2014 13:21:47 -0700 (PDT) From: David Lang X-X-Sender: dlang@asgard.lang.hm To: Sebastian Moeller In-Reply-To: Message-ID: References: User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="680960-436311832-1406406107=:19912" Cc: Wes Felter , cerowrt-devel@lists.bufferbloat.net Subject: Re: [Cerowrt-devel] Ideas on how to simplify and popularize bufferbloat control for consideration. X-BeenThere: cerowrt-devel@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: Development issues regarding the cerowrt test router project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Jul 2014 20:21:58 -0000 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --680960-436311832-1406406107=:19912 Content-Type: TEXT/PLAIN; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8BIT On Sat, 26 Jul 2014, Sebastian Moeller wrote: > Hi David, > > > On Jul 25, 2014, at 22:57 , David Lang wrote: > >> On Fri, 25 Jul 2014, Wes Felter wrote: >> >>> The Netgear stock firmware measures bandwidth on every boot or link up (not sure which) and I would suggest doing the same for CeroWRT. >>> >>> Do you need to measure Internet bandwidth or last mile bandwidth? For link bandwidth it seems like you can solve a lot of problems by measuring to the first hop router. Does the packer pair technique work on TDMA link layers like DOCSIS? >> >> The trouble is that to measure bandwidth, you have to be able to send and receive a lot of traffic. > > Well that is what you typically do, but you can get away with less > measurement traffic: in an ideal quiescent network sending two packets back to > back should give you the bandwidth (packet size / incoming time difference of > both packets), or send two packets of different size (needs synchronized > clocks, then difference of packet sizes / difference of transfer times). Except that your ideal network doesn't exist in the real world. You are never going to have the entire network quiescent, the router you are going to be talking to is always going to have other things going on, which can affect it's timing. >> unless the router you are connecting to is running some sort of service to support that, > > But this still requires some service on the other side. You could try to use ICMP packets, but these will only allow to measure RTT not one-way delays (if you do this on ADSL you will find the RTT dominated by the typically much slower uplink path). If network equipment would be guaranteed to use NTP for decent clock synchronization and would respond to timestamp ICMP messages with timestamp reply measuring bandwidth might be “cheap” enough to keep running in the background, though. > Since this looks too simple there must be a simple reason why this would fail. (It would be nice if ping packets with timestamps would have required the echo server top also store its incoming timestamp in the echo, but I digress) > I note that gargoyle uses a sparse stream of ping packets to a close host and uses increases in RTT as proxy for congestion and signal to throttle down stream link… As you say, anything that requires symmetrical traffic (like ICMP isn't going to work, and routers do not currently offer any service that will. you also can't count on time being synced properly. Top Tier companies have trouble doing that in their dedicated datacenters, depending on it for this sort of testing is a non-starter >> you can't just test that link, you have to connect to something beyond that. > > So it would be sweet if we could use services that are running on the machines anyway, like ping. That way the “load” of all the leaf nodes of the internet continuously measuring their bandwidth could be handled in a distributed fashion avoiding melt-downs by synchronized measurement streams… Well, let's talk about what we would like to have on the router As I see it, we want to have two services 1. a service you send a small amount of data to and it responds by sending you a large amount of data (preferrably with the most accurate timestamps it has and the TTL of the packets it received) 2. a service you send a large amount of data to and it responds by sending you small responses, telling you how much data it has received (with a timestamp and what the TTL of the packets it received were) questions: A. Protocol: should these be UDP/TCP/SCTP/raw IP packets/??? TCP has the problem of slow start so it would need substantially more traffic to flow to reach steady-state. anything else has the possibility of taking a different path through the router/switch software and so the performance may not be the same. B. How much data is needed to be statistically accurate? Too many things can happen for 1-2 packets to tell you the answer. The systems on both ends are multi-tasking, and at high speeds, scheduling jitter will throw off your calculations with too few packets. C. How can this be prevented from being used for DoS attacks, either against the thing running the service or against someone else via a reflected attack if it's a forgable protocol (i.e. UDP) One thought I have is to require a high TTL on the packets for the services to respond to them. That way any abuse of the service would have to take place from very close on the network. Ideally these services would only respond to senders that are directly connected, but until these services are deployed and enabled by default, there is going to be a need to be the ability to 'jump over' old equipment. This need will probably never go away completely. Other requirements or restrictions? David Lang --680960-436311832-1406406107=:19912--