GET byte-range abuse

From: Philippe Strauss <philippe.strauss@dont-contact.us>
Date: Mon, 26 Jul 1999 01:03:33 +0200

Hi,

With the neat Range request option of HTTP, it is possible
to slice a request of an object in a number of request you want.

Let say I have a 1MB file to download with http, I may use:

telnet www.domain.com 80
GET /bigfile.tar.gz HTTP/1.1
Host: www.domain.com
Range: bytes=0-100000

[A TCP connection]

telnet www.domain.com 80
GET /bigfile.tar.gz HTTP/1.1
Host: www.domain.com
Range: bytes=100001-200000

[Another TCP connection]

etc.., you could end up with 10 TCP connection with the values above.

It's a good way of using an unfair share of bandwidth, especially
on high speed network (leased line, CATV).

I use delay pools to prevent such abuse, giving an equal bandwidth to
each client IP.
But a customer may have 30 boxes sitting behind a firewall using only one
ip, and delay pools in such a sitation are not a good solution.

A way to stop such abuse, would be to track each request using
Range: and put all the Ranged request refering the same URL into a delay
pool, or a bandwidth shaper of any kind.

Is it a sensible idea?
Does anyone stumble on the same problem with their user abusing
Range: request?

Later,

-- 
Philippe Strauss, ingenieur reseau/systemes, Urbanet SA
philippe.strauss@urbanet.ch
tel +41 21 623 30 20
--
Received on Sun Jul 25 1999 - 16:39:06 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:47:33 MST