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

More REAP cases




I tried to put together 2 more examples of REAP cases to handle.

   Erik

This case is already in the draft, but it makes sense to add the timer and
more packets getting lost to show what happens:

    Peer A                                        Peer B
      |                                             |
      |           (A1,B1) payload packet            |
      |-------------------------------------------->|
      |                                             |
      |           (B1,A1) payload packet            |
      |<--------------------------------------------| Time T1
      |                                             | Path A1->B1
      |           (A1,B1) payload packet            | is now
      |----------------------------------------/    | broken
      |                                             |
      |           (B1,A1) payload packet            |
      |<--------------------------------------------|
      |                                             |
      |           (A1,B1) payload packet            |
      |----------------------------------------/    |
      |                                             |
      |           (B1,A1) payload packet            |
      |<--------------------------------------------|
      |                                             |
      |           (A1,B1) payload packet            |
      |----------------------------------------/    |
      |                                             |
| | 10 seconds after time
      |                                             | T1, sends a com-
      |       (B1,A1) REAP Event id=p,              | plaint that
      |                          iseeyou=no         | it is not rec-
      |<--------------------------------------------| eiving anything
      |                                             |
   A realizes                                       |
   that it needs                                    |
   to start the                                     |
   exploration                                      |
      |                                             |
      |   (A1, B1) REAP Event id=q,                 |
      |                       iseeyou=yes           |
      |                       payload reception rep |
      |                       event reception rep(p)| But it gets lost
      |-------------------------------------/       | due to broken path
      |                                             |
   Retransmission                                   |
   to a different                                   |
   address                                          |
      |                                             |
      |   (A1, B2) REAP Event id=r,                 |
      |                       iseeyou=yes           |
      |                       payload reception rep |
      |                       event reception rep(p)| This one gets
      |-------------------------------------------->| through
      |                                             |
      |                                             |
      |                                             | B now knows
      |                                             | that A has no
      |    (B1,A1) REAP Event id=p,                 | problem to receive
      |                       iseeyou=yes,          | its packets and
      |                       event reception rep(r)| This one gets
      |<--------------------------------------------| that A has found
      |                                             | a new path to B
      |                                             |
      |           (A1,B2) payload packet            |
      |-------------------------------------------->| Payload packets
      |                                             | flow again
      |           (B1,A1) payload packet            |
      |<--------------------------------------------|


This shows when the failure for the current locator pair is in the other
direction.

    Peer A                                        Peer B
      |                                             |
      |           (A1,B1) payload packet            |
      |-------------------------------------------->|
      |                                             |
      |           (B1,A1) payload packet            |
      |   /-----------------------------------------| Time T1
      |                                             | Path B1->A1
      |                                             | is now
      |                                             | broken
      |           (B1,A1) payload packet            |
      |   /-----------------------------------------|
      |                                             |
      |           (B1,A1) payload packet            |
      |   /-----------------------------------------|
      |                                             |
| | 10 seconds after time
      |                                             | T1, sends a com-
      |       (B1,A1) REAP Event id=p,              | plaint that
      |                          iseeyou=no         | it is not rec-
      |   /-----------------------------------------| eiving anything
      |                                             |
      |       (B2,A2) REAP Event id=q,              |
      |                          iseeyou=no         | Next try different
      |<--------------------------------------------| locator pair
      |                                             |
      |   (A2, B2) REAP Event id=r,                 |
      |                       iseeyou=yes           |
      |                       payload reception rep |
      |                       event reception rep(q)| This one gets
      |-------------------------------------------->| through
      |                                             |
      |                                             |
      |                                             | B now knows
      |                                             | that A has no
      |    (B2,A2) REAP Event id=s,                 | problem to receive
      |                       iseeyou=yes,          | its packets and
      |                       event reception rep(r)| This one gets
      |<--------------------------------------------| that A has found
      |                                             | a new path to B
      |                                             |
      |           (A2,B2) payload packet            |
      |-------------------------------------------->| Payload packets
      |                                             | flow again
      |           (B2,A2) payload packet            |
      |<--------------------------------------------|


This case we have even less luck. The response to the REAP event
doesn't make it in the reverse direction, so both ends end up exploring
indepedently.

    Peer A                                        Peer B
      |                                             |
      |           (A1,B1) payload packet            |
      |-------------------------------------------->|
      |                                             |
      |           (B1,A1) payload packet            |
      |   /-----------------------------------------| Time T1
      |                                             | Path B1->A1
      |                                             | is now
      |                                             | broken
      |           (B1,A1) payload packet            |
      |   /-----------------------------------------|
      |                                             |
      |           (B1,A1) payload packet            |
      |   /-----------------------------------------|
      |                                             |
| | 10 seconds after time
      |                                             | T1, sends a com-
      |       (B1,A1) REAP Event id=p,              | plaint that
      |                          iseeyou=no         | it is not rec-
      |   /-----------------------------------------| eiving anything
      |                                             |
      |       (B2,A2) REAP Event id=q,              |
      |                          iseeyou=no         | Next try different
      |<--------------------------------------------| locator pair
      |                                             |
  A know needs to
  start exploring
      |   (A2, B2) REAP Event id=r,                 |
      |                       iseeyou=yes           |
      |                       payload reception rep |
      |                       event reception rep(q)|
      |--------------------------------------/      | Doesn't make it
      |                                             |
      |   (A1, B1) REAP Event id=s,                 |
      |                       iseeyou=yes           |
      |                       payload reception rep |
      |                       event reception rep(q)| This one gets
      |-------------------------------------------->| through
      |                                             |
      |                                             |
      |                                             | B now knows
      |                                             | that A has no
      |    (B2,A2) REAP Event id=t,                 | problem to receive
      |                       iseeyou=yes,          | its packets and
      |                       event reception rep(r)| This one gets
      |<--------------------------------------------| that A has found
      |                                             | a new path to B
      |                                             |
      |           (A1,B1) payload packet            |
      |-------------------------------------------->| Payload packets
      |                                             | flow again
      |           (B2,A2) payload packet            |
      |<--------------------------------------------|