wiki:Internal/SystemPrototyping/Workingdocuments/SpecificationsV10
close Warning: Can't synchronize with repository "(default)" ("(default)" is not readable or not a Git repository.). Look in the Trac log for more information.

Version 1 (modified by nkiran, 13 years ago) ( diff )

--

Specifications

The following sections detail the specifications for a prototype MobilityFirst Network, and includes details of overall architecture, network elements, software services, protocols, end-host stack and network API.

Name Resolution Service

                                                                      LNRS servers                          GNRS servers
                                                                           ^                                   ^
                                                                           |                                   |
                                                                           |                                   |
                                                                  +-----------------+                 +-----------------+
  +---------------+   request    +-----------------+              |                 |                 |                 |
  |               |  --------->  |   Local Agent   | ---------->  |   Local Name    |  ----------->   |   Global Name   |
  |  Host/Client  |              |       Or        |              |   Resolution    |                 |   Resolution    |
  |               |  <---------  | Default Gateway | <----------  |   Service(LNRS) |  <-----------   |   Service(GNRS) |
  +---------------+   response   +-----------------+              |     server      |                 |     server      | 
                                                                  +-----------------+                 +-----------------+
                                                                           |                                   |
                                                                           |                                   |
                                                                           v                                   v  
                                                                      LNRS servers                         GNRS servers

Host - GNRS interaction

A host may interact with the name resolution service to either (1) report/update it's present network location binding(s), or, (2) to query corresponding bindings of other network entities. The target of such a query operation may constitute either a host, a service, content or even a named context. Similarly, an update is not limited to the host's location, but of any addressable entity so long as it is authorized to do so.

As illustrated above, an request message to the GNRS may be sent either to a local NRS agent, or to the default gateway if an agent isn't configured or hasn't been established at time of request. The address of such a local agent could be a static system configuration as in a '/etc' file on Unix systems, or established by a periodic broadcast from the agent itself.

Request Messages

The following is the header of a name resolution request message:

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    Version    |Type of Message|          Total Length (L)     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                             Request ID                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ~                                                               ~
      |                       Sender Address N-bytes                  |
      ~                                                               ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ~                                                               ~
      |                          Request Payload                      |
      ~                                                               ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Update Request Message

An update involves reporting new network location bindings to the name resolution service.

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ~                                                               ~
      |                           GUID N-bytes                        |
      ~                                                               ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                            Options                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                            Size (S)                           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -----+
      |                               |                               |      |
      |    Type of Binding            |    Length of Binding (LB)     |      |
      |                               |                               |      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+      |---- Entry for Binding #1
      ~                                                               ~      |
      |                    Network Location Binding                   |      |
      ~                                                               ~      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -----+
      ~                                                               ~
      |                          Bindings #2-#S                       |
      ~                                                               ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Lookup Request Message

A lookup is performed to determine the present network location binding(s) of a network entity.

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ~                                                               ~
      |                           GUID N-bytes                        |
      ~                                                               ~
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                            Options                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Early-binding

  • It is assumed that an end-host has obtained the GUID(s) of the other communication end-point or network entity through an out-of-band mechanism.
  • A host can initiate communication through one of the following API:
    • sendTo(GUID, message, [serviceId], [serviceOptios], ...)
    • get(GUID, ...)
    • ....
  • Implementations of the above API within the end-host's MF stack execute early-binding when requested
  • A GNRS lookup message (GL-msg) is prepared for the dest-GUID. See section on GNRS message specification for included fields.
  • Target NRS server: A default or preferred server may be specified in a local config file, or one obtained by listening to local advertisements
  • GL-msg is sent out on the default interface for GNRS lookups
  • Closest or preferred NRS server will execute the actual lookup on the GNRS service plane
  • A GNRS lookup response (GLR-msg) prepared by server with mapping is routed to the querying entity, and is picked up by the stack
  • End-host stack inserts the network address from GLR-msg into the message header and transmits the packet on appropriate interface

Note: See TracWiki for help on using the wiki.