John Ioannidis, Dan Duchamp, and Gerald Q. Maguire, Jr. IP-based protocols for mobile internetworking. ACM SIGCOMM '91 Conference on communication architectures and applications (September, 1991) pages 235-245.
by J. H. Saltzer, March 6, 1996
N. B. This is a rough draft of discussion ideas; it is not complete and it has not been checked out on a real class. Beware of errors and dead ends! 1. A prerequisite to discussion of the mobile internetworking paper is a clear understanding of the operation of the network layer and of the way that IP addresses are structured and used for routing among fixed nodes. A preliminary discussion should have as its goal the placement on the board of a picture that shows an end-to-end layer sending something that requires forwarding through at least one intermediate node. The picture should include forwarding tables of both the starting and intermediate nodes. This picture of how IP forwarding works in the normal case is essential, because the Ioannidis paper begins tinkering with the ground rules of that normal case. The discussion of the paper can then be supported by referring to and modifying the standard picture. Walk through how a message from a.b.c.d to e.f.g.h is handled in the normal case: Simplification, ignoring class A/B/C distinctions and the possibility of subnet masks that don't land on byte boundaries: If a.b.c = e.f.g, then the target is on the same subnet and we use ARP to discover its Ethernet address. Otherwise we send it to the router appropriate for e.f.g. ARP works as follows: a.b.c.d, at drop X, wants to talk to e.f.g.h but doesn't know that node is at drop Y. Because a.b.c = e.f.g, the originating node does no that the target is on the same multidrop network. X -> broadcast {I'm at X. where is e.f.g.h?} Everyone but e.f.g.h ignores the broadcast. e.f.g.h replies Y -> X (I'm e.f.g.h and I'm at X.} a.b.c.d stores this fact (in an ARP cache) and can now route packets to e.f.g.h. 2. What really is the requirement for mobility? What might be changing and why? Can you come up with several possible mobility scenarios? (1. My laptop has a telephone line port. I carry the laptop to a hotel room, 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 an ethernet attachement. I carry the laptop to the lecture hall and plug it into the Ethernet socket on the wall. The lecture hall is in a different building, thus on a different subnet.) (4. I have a wireless modem on my laptop. I carry it to the lecture hall. Before leaving my office I started up a network client that has open connections to four servers. This is the scenario that this paper envisions.) Compare these scenarios. Which ones are realistic; which ones are important to solve? 3. Probably unintelligible jargon: level 2 bridges (operate at link level, such as in autonet) level 3 gateways (operate at network level, such as IP routers) tunnel (a dedicated direct connection between two nodes to make it look as if they are on the same physical network.) ARP (see discussion point 1, above.) source route (the originating network-level node decides not just the first hop but the entire route across the network. N.B., the reference given, RFC 791, is to the mechanics of how IP does it. There is a description of the concept in IEN-144.) subnet mask (defines the boundary between the node number and the network number on the physical network we happen to be using right now. We mask the target address and our own address with the subnet mask. If the result is the same, we ARP. If different, we send the packet to a gateway.) 4. Should the network layer do this job? Why not the link layer? The scenario with the cellphone proves that it can be done. (The cell phone system is duplicating the network layer.) 5. What would be the advantage of doing it in the link layer? (Don't have to change as much preexisting stuff.) 6. What is the fundamental problem that must be solved if a host is mobile? (Sending a message to that host requires asking "where in the world is car 54?" There must be some systematic way of answering that question.) 7. How does this paper answer that question? (by creating a virtual network for mobile hosts, asking hosts to check in to say where they are, and keeping its own map of where everyone is. non-participants can use standard routing protocols to get packets to the nearest gateway to the virtual network.) 8. Why is the proxy-ARP mechanism needed? (Because the mobile node will be looking for other mobile nodes on its virtual network that may not actually be local. It thinks they are local, so it will issue an ARP. Someone has to simulate the answer to avoid modifying the mobile node's network software.) 9. Does this scale well? How well would it work if every host were mobile? The paper explains how it works if you take your laptop to another campus. What makes that scenario different? (Basic problem is that every MSS must know--or be able to find--where any mobile host is. The idea of querying all other MSS's works fine for a few, but if every network node were mobile, the inquiry would have to go out to every subnetwork in the world.) 10. (Suggested by Frans Kaashoek) What are the constraints that mobile computing puts on systems? (size constraints--it has to be small to carry it around with you; power constraints--t runs on batteries with limited lifetime; security issues--you may lose your mobile with all your valuable data).