Hacker News new | ask | show | jobs
by freedomben 1927 days ago
Not trying to nitpick, but IP handles that just fine (see mosh[1] for a great example of flawless roaming).

It's the TCP that doesn't handle it. Unfortunately HTTP and most other protocols are on top of TCP so suffer from the same problem.

[1]: https://mosh.org/

1 comments

IP doesn't handle it fine.

If I roam from network A to network B, then someone else cannot send me an IP packet till they know my address on network B.

I can only send out a "Hey, I'm now at this address" message to them if I know they will be wanting to contact me, and I know my own address has changed. Neither of those is guaranteed.

You're not wrong about the other party needing to know your changed IP address, but that's still a result of higher level protocols that are leaking the abstraction of IP for addressing. You could use hostnames instead, or put some other addressing method on top of it to adapt. It's not commonly done since you'd have a DNS lookup before each packet, which would be horribly inefficient, but it's possible because IP itself doesn't handle the details of connections. IP itself is connectionless/stateless.

There is no concept in IP of a "user", "client", or other party that exists beyond the lifetime of that packet. IP is basically a stateless logical address sitting on top of some physical address with a few delivery options to facilitate traffic flow (like congestion handling).

Any connection state or concept of user/client/server/etc is held at either the TCP level, or for UDP-based protocol higher up the stack (commonly at the application level).

If you still insist on IP being at fault here, let's consider an analogue. If a user sets up an Amazon subscribe-and-save, and then moves to another city and has a different physical address, but the user does not inform Amazon by updating their address in Amazon's system (the higher level protocol), would you say that the postal service is at fault when the delivery ends up reaching the an incorrect party?

It's unfortunate that WebRTC's use of SCTP doesn't require the multihoming features of SCTP. We had a great chance to sneak that into ubiquitous use, but that ship has sailed at this point. : \

Seamless jumps from mobile networks to wifi were in our grasp.

This is part of the special sauce that LTE adds, so that you can pretend that IP handles roaming just fine. That and also QoS guarantees, which IP also doesn’t do out of the box.
I believe "Mobile IP" was designed to solve this exact problem.