Mobility - end-point moves (person, virtual machine, or WiFi to/from cellular), may be planned or unplanned - happens all the time, e.g., move laptop from one WiFi hotspot to another, and applications keep working - but, the key question is whether existing sessions continue seamlessly - does this matter? simplifies apps and avoid (re)finding the remote end-point Many proposals - dozens of different proposed solutions - different layers (e.g., Ethernet vs. IP vs. TCP) - different kinds of networks (LAN vs. cellular) - what is the design space? - what stays the same as the device moves, and what changes? - how are session end-points identified? - two main patterns (dynamic routing and session location), and all solutions fall into one of these patterns or a composition of the two Dynamic-routing mobility - example #1: Ethernet MAC learning * name is a MAC address * learned entries expire * MAC learned at new location * costs: forwarding table size (though MACs are flat anyway), update cost * (can have directory approaches like SEATTLE and VL2) - example #2: injecting into IP routing protocol * name is an IP address or prefix * intradomain (e.g., OSPF) or interdomain (e.g., BGP) * breaks hierarchical name space - example #3: mobile IP (home agent, foreign agent) - example #4: multicast MSM-IP (group address, mobile host joins/leaves) - example #5: cellular network (within a single provider) - figure 6 - advantages * it simply works (except for mobile IP and MSM-IP which require host support) * no need for special directories * naturally handles simultaneous mobility of both end-points - disadvantages * breaks hierarchical name space * so, larger forwarding tables and more frequent updates to network * doesn't naturally handle multihoming Session-location mobility - example #1: tell the remote end-point your new address, and update directory - identifier (stays the same) and locator(s) (changes with attachment) - simutaneous handoff? use rendezvous server or directory service - figure 7 and 11 - advantages * keeps hierarchical name space * no need for changes to routing inside the network * can naturally handle multihoming - disadvantages * mobile host must update all (possibly many) correspondents * complex protocol, need to get it right * need a scalable directory * requires changes to endpoints * or middleboxes to interact with legacy end-points * security issues because end-points can initiate updates