RE: DoS attack ?

Patrik Fältström <> Fri, 07 December 2001 08:18 UTC

Return-Path: <>
Received: from by (PMDF V6.0-025 #44856) id <> (original mail from; Fri, 07 Dec 2001 03:18:18 -0500 (EST)
Received: from by (PMDF V6.0-025 #44856) id <> for (ORCPT; Fri, 07 Dec 2001 03:18:17 -0500 (EST)
Received: from by (PMDF V6.0-025 #44856) id <> for (ORCPT; Fri, 07 Dec 2001 03:18:17 -0500 (EST)
Received: from ( []) by (PMDF V6.0-025 #44856) with ESMTP id <> for; Fri, 07 Dec 2001 03:18:16 -0500 (EST)
Received: from [] ( []) by (8.8.8+Sun/8.8.8) with ESMTP id JAA02731; Fri, 07 Dec 2001 09:14:06 +0100 (MET)
Date: Fri, 07 Dec 2001 07:33:52 +0100
From: =?ISO-8859-1?Q?Patrik_F=E4ltstr=F6m?= <>
Subject: RE: DoS attack ?
In-reply-to: <>
To: Nicolas Popp <>, 'John C Klensin' <>, YangWoo Ko <>
Message-id: <23656972.1007710432@localhost>
MIME-version: 1.0
X-Mailer: Mulberry/2.1.1 (Mac OS X)
Content-type: text/plain; charset=us-ascii
Content-transfer-encoding: 7BIT
Content-disposition: inline
References: <7FC3066C236FD511BC5900508BAC86FE4364D0@trestles.internal.realna>
List-Owner: <>
List-Post: <>
List-Subscribe: <>, <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Help: <>, <>
List-Id: <>

--On 01-12-06 10.09 -0800 Nicolas Popp <> wrote:

> You can also do what most search engines would.
> You return a (small) range of ranked results in the set of results and
> your last result is a referral back to you for the next range in the
> set...Then you try to detect automated crawlers that recursively follow
> the referrals and slow them down to a halt.
> So, just from that standpoint, it could be useful for the protocol to
> support the notion of results set range (query) as well as referral
> (response).

We have been through this when looking at other protocols....and I would
urge you to learn from earlier mistakes (and successes).

(1) One practical path is to give in the protocol a way for the server to
say "I'm sorry, but I will not do that operation you requested. Instead I
did the following". This generic response can be "you only got 10 records
even though the result set is larger".

(2) As soon as you do "paged results", you force the server to keep state.
Depending on whether the protocol is stateful or stateless, it is harder or
easier for the server to know when to remove the cached search. Further, as
soon as you start doing pages results, you end up getting problems with
sorting the result, handling of database changes between the two fetches
(i.e. can the server re-issue the query for the second fetch, or do the
server really have to cache the result set and return the second part at
the second fetch) and million of other problems.

So, my suggestion is "don't go there".