Accessibility

6.033--Computer System Engineering

Suggestions for classroom discussion of:

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).


Comments and suggestions: Saltzer@mit.edu