By J. H. Saltzer, March 9, 1999, major revision of a March, 1997 version. March 7, 2000, minor editing for uniform terminology. January 2001, minor additions.
Walk through how a message from a.b to c.e is handled in the normal case:
If a = c then the target is in the same region. The router has an entry for c.e. If a != c then it uses the entry for c.* to forward the packet to a router that knows how to get to region c.
Suppose I unpack a new computer and connect it to an unused network attachment point in region 18. The network manager assigns me the address <18, 142>. I call up and tell a friend to send me a message at this address. How does that message find its may to my attachment point, given that up until a couple of minutes ago there was no address assigned to it? (Advertising. My network layer sends a message down the link saying "Hi, I'm at the other end of this link, and I am known as <18,142>. This is a message from my network layer to the router's network layer, with network layer message type "route-advertise". The router then propagates this fact among the the routers of region 18, and after a litle while every region 18 router knows which link to use to forward packets toward you.)
What if my friend was in region 15? (They follow the same procedure, noticing that a != c, so their network layer forwards it to a router that connects the two regions. Once the packet gets to a router that is in region 18, that router will have heard my advertising and will forward the packet to me.)
What if someone in region 15 tries to send a message to <18,143>, which isn't assigned yet. (They will forward it to the nearest region-18 router, and that router will discover no entry in its routing table for a node 143. It will send back an error packet saying "no such address". In the internet the usual error message is "destination unreachable", to distinguish it from "network unreachable", which is the error you get if you try to send to non-existent region 94.)
Now we can start talking about the mobile case.
(1. My laptop has a telephone line port. I carry the laptop to a hotel room in Peoria, plug it into the phone there, call M.I.T., and want to read my mail.)
(2. My laptop has a telephone line port and I own a cell phone. I carry both to Peoria, and call M.I.T. using the roving feature of the cell phone.)
(3. My laptop has a network socket. I carry the laptop to the lecture hall and plug it into the network socket on the wall. The lecture hall is in a different building, thus in a different region of the routing hierarchy.)
(4. I have a wireless modem in my laptop. Before leaving my office, where the laptop is in communication with a wireless concentrator in Tech Square, I started running a network client that has open connections to four servers. I carry the laptop to the lecture hall, where it is necessary to talk to a different wireless concentrator. We have changed link-level connections, and the new concentrator is in a different addressing region. I want the connections to continue to operate. This is the scenario that this paper envisions when it talks about handoff.)
Compare those scenarios. Which ones are realistic; which ones are important to solve?
So let's suppose that we are going with scenario 3. I plug the laptop into the socket in the lecture hall and start advertising its usual network address. What goes wrong? (Since the address is from a different region, the local routers get very upset. They send all packets that start with your region number to the inter-region router. They should reject or ignore your advertisement.)
Maybe I should ask the network administrator to assign me an address in this region, for use in the lecture hall. Won't that work? (Two problems. 1. you have to do this every place you go. [If DHCP has been implemented on the network and in your computer, then it does this automatically. The only remaining problem is any software in your computer that has squirreled away its own network address.] 2. All those people who sent messages to the old address will get "no such address" responses. Open connections will certainly die.)
The Johnson paper has a proposal at this point. What is it? (When your attempt to advertise is rejected, you realize that things are more complicated. So instead of sending a message with the network-layer type "route-advertise" you instead send a message with the network-layer type "foreign-agent". Assume that the router has a handler for that type.)
What is in the message that I send to the foreign agent? (My network address--from my home region-- and the network address of the local agent in my home region. This message is in effect a request to set up a tunnel between the two agents.)
Interesting question---what is the status of mobile IP in the real world?
The answer, to be brutally honest, is that it really hasn't had as much impact as one might have thought at first sight. Not that many real-world deployments, and the deployment of a similar system at UC Berkeley doesn't have that many users. However, there are implementations available for most OSes.
Why might this be the case? Is it that mobility isn't important? Given the increasing numbers of laptops, handhelds, and such like, this doesn't seem right.
And it isn't. The answer, in my opinion, is that mobile IP's solution is far too heavyweight for the rewards you get in return. The rewards aren't commensurate with the efforts. What are the efforts---kernel change or special routers to support home agent functionality, (optional) kernel changes or special routers to act as foreign agents, and the killer of them all, kernel changes at your end clients.
All these efforts will have been undertaken by Cisco and Microsoft had the rewards been commensurate. (Actually cisco has implementations of home and foreign agents but I doubt that most installations turn them on). Pretty much the only things you can accomplish with Mobile IP that you can't using a very simple mechanism like DHCP are:
1. Acting as a server of information (e.g., a mobile web server). This is not a common application TODAY, although it is likely and certain to change in the future. But it isn't that important today.
2. CONTINUOUS IP connectivity while mobile. E.g., IP cellular telephony or real-time streams to mobile users. Again, a potentially useful application but not a killer one yet.
The result is that the common case for mobile Internet access today, viz. acting as a client in the relocatable (rather than continuously mobile) context, is well-served by a simple mechanism like DHCP that assigns temporary IP addresses.
The rewards aren't commensurate with the efforts for Mobile IP, especially the way it is implemented today.
Having said that, claims are that Windows 2000 may have client support for Mobile IP. That's what they told me when I interviewed a year ago [1998] at Microsoft, but who knows.
Saltzer@mit.edu