Subject: Re: Open issue: DPV relay

From: Peter Sylvester <[email-masked]>
Date: Tue, 16 Apr 2002 13:32:29 +0200 (MET DST)

Similar to Stephen, I also almost agree with Denis, 

just a few nit-pcking remarks.

> 
> > DPV servers that do relay requests MUST be able to detect whether or not
> > the request has been previously relayed, 
> 
> Correct.
> 
> > and the request MUST have the complete list of servers that have received the request.
> 
> No. You are specifying a solution, which would work but there are other
> solutions to this problem: a list of servers is not the single way to solve
> this issue. Since we are writing requirements we should not impose a
> solution.
> 
> I believe that this requirement can be captured by the following sentence:
>    
>    When a server supports a relay mechanism, a mechanism to detect
>    loops or repetition MUST be provided.
> 
> Now, to explain in more details:
> 
> When a DPV server relays a request to another DPV server:
> 
>     1) it must copy already present relay history information (if any),
>     
>     2) it must add relay history information in the relayed request. 
> 
> As an example, the added information can simply be a nonce and thus no
> server name needs to be ever used. A sequence of nonces would thus do the
> job nicely and avoid naming problems or naming conventions. Practically 
> speaking, a sequence of INTEGER would do the job. 

You are also trying to describe a solution which in fact does not 
necessarily work unless the nonces are selected in a correct way,
they must allow a server that either it had already received the
request or will send it again. 

So let us stick with the first sentence: 
> 
> > DPV servers that do relay requests MUST be able to detect whether or not
> > the request has been previously relayed, 

>  
> > DPV servers that relay requests MUST satisfy all the following conditions:
> >            (1) recognize and process relay history if present in a DPV request;
> >            (2) able to generate a relay history 

> 
>  .. information. Full stop.
> 
> > including the complete list of servers that have already forwarded this request; 
> 
> No. As said earlier, the received relay information is blindly copied.
> 
> >            (3) before relaying a request, the DPV server MUST verify that
> > the chosen DPV server
> >            has not already seen the message.  (That is loop detection
> > occurs at the requester,
> >            not the recipient).

Instead of (3) a server may also reject a request because it detects that
it has already received it before. 

> 
> No. The idea is to send back the referral in a non-critical extension so
> that it can be ignored by a client. Clients must be ready to support
> extension fields, but are not mandated to understand any non-critical
> extension.

You are specifying a begin of a solution.

---

From: Denis Pinkas <[email-masked]>
Date: Tue, 16 Apr 2002 14:50:34 +0200

Peter,

> just a few nit-pcking remarks.

Please read again the message. The proposal is to add one sentence 
(i.e. two lines), no more:

Denis