=== Mobility First Wiki === Welcome to the Mobility First wiki. This wiki covers the software release of key pieces of the !MobilityFirst Future Internet Architecture proposal. To learn about the architecture proposal itself, visit the [http://mobilityfirst.winlab.rutgers.edu MobilityFirst project website]. However, we start with a small overview and few highlights of the architecture that will help form an idea of the different pieces of the software release. == Architecture Highlights == Introduction === Name-based Networking === The MobilityFirst architecture which emerged over the past 2-3 years is centered around a new name-based service layer which services as the “narrow-waist” of the protocol – this name-based services layer makes it possible to build advanced mobility-centric services in a flexible manner while also improving security and privacy properties. The name-based service layer uses the concept of “flat” globally unique identifiers (GUIDs) for network attached objects, a single abstraction which covers a broad range of communicating objects from a simple device such as a smartphone, a person, a group of devices/people, content or even context. ==== GUID is the new ''narrow waist'' ==== [[Image(narrow.png, 10%, align=right)]] A name-based service layer serves as the "narrow waist" of MobilityFirst protocol stack. All the traffic in MobilityFirst internet architecture runs over GUID namespace addressing. GUIDs are public key assigned by a name certification service (NCS) and are long lasting network-level names for objects. The GUID-based communication is assisted by GNRS (Global Name Resolution Service) and is sufficiently flexible to accommodate a variety of endpoint principals including interfaces, devices, users, services, content, context-aware descriptors and location-independent communication primitives such as device-to-device, device-to-service, content retrieval, context-aware delivery, multicast, anycast, and more. ==== Named Service API ==== [[Image(namedAPI.png, 800, align=center)]] === Hybrid GUID/NA Routing and Forwarding === [[Image(hybrid-guid-na.png, 800, align=rightcenterS)]] MobilityFirst naming involves three layers: User level descriptor, such as Joe's car or John's mobile is first translated into a network level identifier. This is the globally unique identifier (GUID) that is a long lasting identifier at the network level. Next, in order to deliver packet to the end points, a GUID needs to be mapped to the current location of the GUID in the network. The mapping of the identifier to its routable network address (NA) is maintained by the global name resolution service (GNRS). [[Image(packet_structure.png, 300, align=right)]] As seen from the packet structure, data for an end-host is addressed both by its GUID and the NA it is currently attached to. Address can be resolved incrementally as the packet progresses through the network. [[Image(multihoming_scenario.png, 500, align=center)]] The figure shows a multihomed vehicle receiving data from a back-end server and highlights three types of binding of GUID to NA. At the source the GUID of Joe's car is resolved into the set of NAs it is currently attached to, through an early or at-source binding. However, while the data is in transit, if the end-host moves an attaches to a new location, a re-resolution occurs on failure, which is referred to as late binding. The hybrid GUID/NA naming also facilitates progressive binding by the network, which means the GUID is not directly bound to the exact port number attachment of the end point, but only to the network the end-point its is currently located in. When the data reaches that network, another lookup is performed that binds it to a local port within that network itself. {{{#!comment * [wiki:GeneralProjectMaterials General Project Materials] * [wiki:Architecture Architecture WG] * [wiki:NamingRouting Naming/Routing WG] * [wiki:SecurityPrivacy Security & Privacy WG] * [wiki:NetworkManagement Network Management WG] * [wiki:PervasiveMobile Pervasive/Mobile WG] * [wiki:Economics Economics WG] * [wiki:SystemPrototyping System Prototyping WG] * [wiki:EvaluationValidation Evaluation/Validation WG] * [wiki:ContentServices Content Services WG] * [wiki:ContextServices Context Services WG] * [wiki:SummerInternship Summer Internship] * [wiki:SummerInternship/2012 Summer Internship 2012] * [wiki:SummerInternship/2013 Summer Internship 2013] * [wiki:WINLABMeetings/Fall2013 WINLAB MF Meetings - Fall 2013] * [wiki:StudentPages Student Pages] }}} == Prototype Development and Documentation == For further details on the details of the MobilityFirst prototype, please visit the [wiki:Proto Prototype Documentation Page]