[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Simplified REAP description



Iljitsch van Beijnum wrote:

If it is an "event reception report", it indicates that we can terminate the
explore phase.
If the host has not yet sent a "iseeyou=yes" event report, it needs to
send one in response to this packet.


Now suppose:

A1 ----> B1  (data)
A1 <---- B1  (data)
A1 ---|  B1  (data, failure)
             (timeout)
A1 <---- B1  (icu=0)
A1 ---|  B1  (icu=1)
A2 <---- B1  (icu=1, B hasn't timed out from the last message by A)
A1 ----> B2  (icu=1)

Both now think that the other end can see them but this isn't necessarily true because the icu=1 doesn't necessarily apply to the last packet sent by the other side. For instance:

Which is why the REAP Probe contains the sequence numbers. Tells the receiver which REAP Probe the other end has received.

A1 ----> B1  (data)
A1 <---- B1  (data)
A1 ---|  B1  (data, failure)
             (timeout)
A1 <---- B1  (icu=0)
A1 ---|  B1  (icu=1)
A2 <---- B1  (icu=0)
A1 ----> B2  (icu=1)
A2  |--- B1  (icu=1, random packet loss on otherwise working link)
A2 ---|  B2  (icu=1, ingress filtering)
A2 <---- B2  (icu=1)

A will now think that A2->B2 works, which isn't true.

Same comment as above.

I can't see a case where icu=1 (together with the REAP probe sequence numbers that have been received) would not indicate that the sender has seen at least one of the REAP probe packets.

(But having the FBD keepalives be separate messages would make it easier to think about all the cases.)

   Erik