Hi John The problem is matching a reply that came from address A2 to a request that was sent to address A1.
Does this matching need to happen before the DTLS layer kicks in? On Tuesday 08 September 2015 08:48:08 Light, John J wrote: > Thiago, > > I don't fully understand how the situation you describe unfolds, so I don't > have a complete answer, but I have a piece of the puzzle. > > Every time IoTivity receives a response concerning a resource, it returns > the latest address in the C API and updates the address in OCResource for > the C++ API. So if a server changes its IP address, a C++ client will use > the new IP address, and a C client will be able to. > > John > > > > -----Original Message----- > From: iotivity-dev-bounces at lists.iotivity.org > [mailto:iotivity-dev-bounces at lists.iotivity.org] On Behalf Of Thiago > Macieira Sent: Monday, September 07, 2015 8:36 AM > To: iotivity-dev at lists.iotivity.org > Subject: [dev] Dealing with IP address changes > > On IPv6 networks with non-link local addresses, it's very common (and > recommended) that devices use a randomly-generated IP address that expires > after a pre-determined time. After that happens, the device will generate > another device and start using it. > > There's also a grace period in which the old address is still available, but > is not preferred. That is to say, it's no longer selected by default as the > outgoing address of any packet. A device can still be reached with this > address, though. > > Question: how does IoTivity deal with this? And how does the OIC protocol do > it? > > Scenario: DeviceA and DeviceB are happily communicating with each other, > over a DTLS-encrypted channel. The type of communication is not relevant, > as it can be: > * regular unicast request-responses > * OBSERVE replies > * UDP-based block transfer > > What happens if the device sending a packet suddenly changes its address? > > Let's say that DeviceA is about to send a reply to DeviceB. DeviceA had > address A1 that it used in the last packet. For the next packet, A1 lost > freshness and A2 is now the preferred address. > > Should > 1) DeviceA send still with A1? If so, how will DeviceB be told that the > address has changed? How long is DeviceB allowed to cache the IP address > for DeviceA for the resource it had discovered? How about the case of a > long- standing OBSERVE reply, how will DeviceB be told that the address is > changing? > > 2) DeviceA send now with A2? In this case, we need to assume that the DTLS > layer will continue to authenticate the sender regardless of IP sender > address. There is no problem here. > > -- > Thiago Macieira - thiago.macieira (AT) intel.com > Software Architect - Intel Open Source Technology Center > > _______________________________________________ > iotivity-dev mailing list > iotivity-dev at lists.iotivity.org > https://lists.iotivity.org/mailman/listinfo/iotivity-dev -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center
