home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / rfc / 2000s / rfc2009.txt < prev    next >
Text File  |  1996-11-05  |  66KB  |  1,516 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                 T. Imielinski
  8. Request for Comments: 2009                                 J. Navas
  9. Category: Experimental                           Rutgers University
  10.                                                       November 1996
  11.  
  12.  
  13.                     GPS-Based Addressing and Routing
  14.  
  15. Status of this Memo
  16.  
  17.    This memo defines an Experimental Protocol for the Internet
  18.    community.  This memo does not specify an Internet standard of any
  19.    kind.  Discussion and suggestions for improvement are requested.
  20.    Distribution of this memo is unlimited.
  21.  
  22. IANA Note:
  23.  
  24.    This document describes a possible experiment with geographic
  25.    addresses.  It uses several specific IP addresses and domain names in
  26.    the discussion as concrete examples to aid in understanding the
  27.    concepts.  Please note that these addresses and names are not
  28.    registered, assigned, allocated, or delegated to the use suggested
  29.    here.
  30.  
  31. Table of Contents
  32.  
  33.    1.      Introduction......................................    2
  34.    1b.             General Architecture......................    3
  35.    1c.             Scenarios of Usage: Interface Issues......    3
  36.    2.      Addressing Model..................................    4
  37.    2a.             Using GPS for Destination Addresses.......    5
  38.    3.      Routing...........................................    7
  39.    3a.              GPS Multicast Routing Scheme (GPSM)......    7
  40.    3a-i.                   Multicast Trees...................    8
  41.    3a-ii.                  Determining the GPS Multicast
  42.                            Addressing........................   10
  43.    3a-iii.                 Building Multicast Trees..........   11
  44.    3a-iv.                  Routing...........................   12
  45.    3a-v.                   DNS Issues........................   12
  46.    3a-vi.                  Estimations.......................   12
  47.    3b.              "Last Mile"  Routing.....................   13
  48.    3b-i.                   Application Level Filtering.......   13
  49.    3b-ii.                  Multicast Filtering...............   13
  50.    3b-iii.                 Computers on Fixed Networks.......   14
  51.    3c.              Geometric Routing Scheme (GEO)...........   14
  52.    3c-i.                   Routing Overview..................   14
  53.    3c-ii.                  Supporting Long-Duration GPScasts.   16
  54.    3c-iii.                 Discovering A Router's Service Area  17
  55.  
  56.  
  57.  
  58. Imielinski & Navas            Experimental                      [Page 1]
  59.  
  60. RFC 2009            GPS-Based Addressing and Routing       November 1996
  61.  
  62.  
  63.    3c-iv.                  Hierarchical Router Structure and
  64.                            Multicast Groups..................   18
  65.    3c-v.                   Routing Optimizations.............   19
  66.    3c-vi.                  Router-Failure Recovery Scheme....   19
  67.    3c-vii.                 Domain Name Service Issues........   20
  68.    4.      Router Daemon and Host Library....................   21
  69.    4a.             GPS Address Library - SendToGPS().........   21
  70.    4b.             Establishing A Default GPS Router.........   22
  71.    4c.             GPSRouteD.................................   22
  72.    4c-i.                  Configuration......................   23
  73.    4d.             Multicast Address Resolution Protocol (MARP) 23
  74.    4e.             Internet GPS Management Protocol (IGPSMP).   24
  75.    5.      Working Without GPS Information...................   25
  76.    5a.             Users Without GPS Modules.................   25
  77.    5b.             Buildings block GPS radio frequencies
  78.                    What then?................................   25
  79.    6.      Application Layer Solution........................   25
  80.    7.      Reliability.......................................   26
  81.    8.      Security Considerations...........................   27
  82.    9.      References........................................   27
  83.    10.     Authors' Addresses................................   27
  84.  
  85. 1.      Introduction
  86.  
  87.    In the near future GPS will be widely used allowing a broad variety
  88.    of location dependent services such as direction giving, navigation,
  89.    etc. In this document we propose a family of protocols and addressing
  90.    methods to integrate GPS into the Internet Protocol to enable the
  91.    creation of location dependent services such as:
  92.  
  93.      o     Multicasting selectively only to specific geographical
  94.            regions defined by latitude and longitude. For example,
  95.            sending an emergency message to everyone who is currently
  96.            in a specific area, such as a building or train station.
  97.  
  98.      o     Providing a given service only to clients who are within a
  99.            certain geographic range from the server (which may be mobile
  100.            itself), say within 2 miles.
  101.  
  102.      o     Advertising a given service in a range restricted way, say,
  103.            within 2 miles from the server,
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Imielinski & Navas            Experimental                      [Page 2]
  115.  
  116. RFC 2009            GPS-Based Addressing and Routing       November 1996
  117.  
  118.  
  119.      o     Providing contiguous information services for mobile users
  120.            when information depends on the user's location. In
  121.            particular providing location dependent book-marks, which
  122.            provides the user with any important information which
  123.            happens to be local (within a certain range) possibly
  124.            including other mobile servers.
  125.  
  126.    The solutions which we present are flexible (scalable) in terms of
  127.    the target accuracy of the GPS. We also discuss cases when GPS cannot
  128.    be used (like inside buildings).
  129.  
  130.    The main challenge is to integrate the concept of physical location
  131.    into the current design of the Internet which relies on logical
  132.    addressing.  We see the following general families of solutions:
  133.  
  134.       a) Unicast IP routing extended to deal with GPS addresses
  135.  
  136.       b) GPS-Multicast solution
  137.  
  138.       c) Application Layer Solution using extended DNS
  139.  
  140.    The first two solutions are presented in this memo. We only sketch
  141.    the third solution.
  142.  
  143. 1b. General Architecture
  144.  
  145.    We will assume a general cellular architecture with base stations
  146.    called Mobile Support Stations (MSS). We will consider a wide variety
  147.    of cells, including outdoor and indoor cells. We will discuss both
  148.    cases when the mobile client has a GPS card on his machine and cases
  149.    when the GPS card does not work (i.e. - inside buildings).
  150.  
  151.    We will assume that each MSS covers a cell with a well defined range
  152.    specified as a polygon of spatial coordinates and that the MSS is
  153.    aware of its own range.
  154.  
  155. 1c. Scenarios of Usage and Interface Issues
  156.  
  157.    Below, we list some possible scenarios of usage for the geographic
  158.    messaging.
  159.  
  160.    Consider an example situation, of an area of land near a river.
  161.    During a severe rain storm, the local authorities may wish to send a
  162.    flood warning to all people living within a hundred meters of the
  163.    river.
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Imielinski & Navas            Experimental                      [Page 3]
  171.  
  172. RFC 2009            GPS-Based Addressing and Routing       November 1996
  173.  
  174.  
  175.    For the interface to such messaging system we propose to use a zoom-
  176.    able map similar to the U.S. Census Bureau's Tiger Map Service.  This
  177.    map would allow a user to view a geographical area at varying degrees
  178.    of magnitude.  He could then use a pointing device, such as a mouse,
  179.    to draw a bounding polygon around the area which will receive the
  180.    message to be sent.  The computer would then translate the drawn
  181.    polygon into GPS coordinates and use those coordinates when sending
  182.    and routing the message.  Geographical regions specified using this
  183.    zoom-able map could be stored and recalled at a later time.  This
  184.    zoom-able map is analogous to the IP address books found in many
  185.    email programs.
  186.  
  187.    To continue with the above example, local officials would call up a
  188.    map containing the river in danger of overflowing.  They would then
  189.    hand-draw a bounding polygon around all of the areas at least a
  190.    hundred yards from the river.  They would specify this to be the
  191.    destination for a flood warning email to all residents in the area.
  192.    The warning email would then be sent. Similar applications include
  193.    traffic management (for example, reaching vehicles which are stuck in
  194.    traffic) and security enforcement.
  195.  
  196.    Other applications involve general client server applications where
  197.    servers are selected on the basis of the geographic distance. For
  198.    example, one may be interested in finding out all car dealers within
  199.    2 miles from his/her location.  This leads to an extension of the Web
  200.    concept in which location and distance play important roles in
  201.    selecting information. We are currently in the process of
  202.    implementing location dependent book-marks (hot lists) in which pages
  203.    associated with static and mobile servers which are present within a
  204.    certain distance from the client are displayed on the client's
  205.    terminal.
  206.  
  207. 2.      Addressing Model
  208.  
  209.    Two-dimensional GPS positioning offers latitude and longitude
  210.    information as a four dimensional vector:
  211.  
  212.               <Direction, hours, minutes, seconds>
  213.  
  214.    where Direction is one of the four basic values: N, S, W, E; hours
  215.    ranges from 0 to 180 (for latitude) and 0 to 90 for longitude, and,
  216.    finally, minutes and seconds range from 0 to 60.
  217.  
  218.    Thus <W, 122, 56, 89> is an example of longitude and <N, 85, 66, 43>
  219.    is an example of latitude.
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Imielinski & Navas            Experimental                      [Page 4]
  227.  
  228. RFC 2009            GPS-Based Addressing and Routing       November 1996
  229.  
  230.  
  231.    Four bytes of addressing space (one byte for each of the four
  232.    dimensions) are necessary to store latitude and four bytes are also
  233.    sufficient to store longitude. Thus eight bytes total are necessary
  234.    to address the whole surface of earth with precision down to 0.1
  235.    mile!  Notice that if we desired precision down to 0.001 mile (1.8
  236.    meters) then we would need just five bytes for each component, or ten
  237.    bytes together for the full address (as military versions provide).
  238.  
  239.    The future version of IP (IP v6) will certainly have a sufficient
  240.    number of bits in its addressing space to provide an address for even
  241.    smaller GPS addressable units.  In this proposal, however, we assume
  242.    the current version of IP (IP v4) and we make sure that we manage the
  243.    addressing space more economically than that.  We will call the
  244.    smallest GPS addressable unit a GPS-square.
  245.  
  246. 2a.     Using GPS for Destination Addresses
  247.  
  248.    A destination GPS address would be represented by one of the
  249.    following:
  250.  
  251.      o     Some closed polygon such as:
  252.  
  253.                    circle( center point, radius )
  254.  
  255.                    polygon( point1, point2, point3, ... , pointn)
  256.  
  257.            where each point would be expressed using GPS-square
  258.            addresses.  This notation would send a message to anyone
  259.            within the specified geographical area defined by the closed
  260.            polygon.
  261.  
  262.      o     site-name as a geographic access path
  263.  
  264.            This notation would simulate the postal mail service.  In
  265.            this manner, a message can be sent to a specific site  by
  266.            specifying its location in terms of real-world names
  267.            such as the name of a specific site, city, township,
  268.            county, state, etc.  This format would make use of the
  269.            directory service detailed later.
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Imielinski & Navas            Experimental                      [Page 5]
  283.  
  284. RFC 2009            GPS-Based Addressing and Routing       November 1996
  285.  
  286.  
  287.    For example, if we were to send a message to city hall in Fresno,
  288.    California, we could send it by specifying either a bounding polygon
  289.    or the mail address.  If we specify a bounding polygon, then we could
  290.    specify the GPS limits of the city hall as a series of connected
  291.    lines that form a closed polygon surrounding it.  Since we have a
  292.    list of connected lines, we just have to record the endpoints of the
  293.    lines.  Therefore the address of the city hall in Fresno could look
  294.    like:
  295.  
  296.      polygon([N 45 58 23, W 34 56 12], [N 23 45 56, W 12 23 34], ... )
  297.  
  298.    Alternatively, since city hall in Fresno  is a well-defined
  299.    geographical area, it would be simpler to merely name the
  300.    destination. This would be done by specifying "postal-like" address
  301.    such as city_hall.Fresno.California.USA.
  302.  
  303.    For "ad hoc" specified areas such as, say a quad between 5th and 6th
  304.    Avenue and 43 and 46 street in New York, the polygon addressing will
  305.    be used.
  306.  
  307.    Unfortunately, we will not be able to assume that we have enough
  308.    addressing space available in the IP packet addressing space to
  309.    address all GPS squares. Instead we will propose a solution which is
  310.    flexible in terms of the smallest GPS addressable units which we call
  311.    atoms.  In our solution, a smaller available addressing space (in the
  312.    IP packet) will translate into bigger atoms.  Obviously, we can use
  313.    as precise addressing as we want to in the body of the geographic
  314.    messages - the space limitations apply only to the IP addressing
  315.    space.
  316.  
  317.    By a geographic address we mean an IP address assigned to a
  318.    geographic area or point of interest.  Our solution will be flexible
  319.    in terms of the geographic addressing space.
  320.  
  321.    Below, we will use the following two terms:
  322.  
  323.      o     Atoms: for smallest geographic  areas which have
  324.            geographic address.
  325.  
  326.            Thus, atoms could be as small as GPS squares but could be
  327.            larger
  328.  
  329.      o     Partitions: These are larger, geographical areas, which will
  330.            also have a geographic address. A state, county, town etc.
  331.            may constitute a partition. A partition will contain a number
  332.            of atoms.
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Imielinski & Navas            Experimental                      [Page 6]
  339.  
  340. RFC 2009            GPS-Based Addressing and Routing       November 1996
  341.  
  342.  
  343.    Here are some examples of possible atoms and partitions:
  344.  
  345.      o     A rectangle, defined by truncating either longitude or
  346.            latitude part of the GPS address by skipping one or more
  347.            least significant digits
  348.  
  349.      o     A circle, centered in a specific GPS address with a
  350.            prespecified radius.
  351.  
  352.      o     Irregular shapes such as administrative domains: states,
  353.            counties, townships, boroughs, cities etc
  354.  
  355.    Partitions and Atoms (which are of course special atomic partitions)
  356.    will therefore have geographic addresses which will be used by
  357.    routers. Areas of smaller size than atoms, or of "irregular shape"
  358.    will not have corresponding geographic addresses and will have to
  359.    handled with the help of application layer.
  360.  
  361. 3.      Routing
  362.  
  363.    Let us now describe the suggested routing schemes responsible for
  364.    delivering a message to any geographical destination.
  365.  
  366.    We will distinguish between two legs of the connection from the
  367.    sender to the receiver: the first leg from the sender to the MSS
  368.    (base station) and the second leg from the MSS to the receiver
  369.    residing in its cell.  Our two solutions will differ on the first leg
  370.    of the connection and use the same options for the second leg, which
  371.    we call "last mile".
  372.  
  373. 3a.     GPS-Multicast Routing Scheme
  374.  
  375.    Here, we discuss the first leg of routing: from the sender to the
  376.    MSS. We start with the multicasting solution.
  377.  
  378.    Each partition and atom is mapped to a multicast address. The exact
  379.    form of this mapping is discussed further in this subsection.  We
  380.    first sketch the basic idea.
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Imielinski & Navas            Experimental                      [Page 7]
  395.  
  396. RFC 2009            GPS-Based Addressing and Routing       November 1996
  397.  
  398.  
  399.    This solution provides flexible mix of the multicast and application
  400.    level filtering for the geographic addressing.  The key idea here is
  401.    to approximate the addressing polygon of the smallest partition which
  402.    contains it and using the multicast address corresponding to that
  403.    partition as the IP address of that message. The original polygon is
  404.    a part of the packet's body and the exact matching is done on the
  405.    application layer in the second leg of the route.
  406.  
  407.    How is the multicast routing performed?
  408.  
  409. 3a-i.           Multicast Trees
  410.  
  411.    The basic idea for the first level of routing using multicast is to
  412.    have each base station join multicast groups for all partitions which
  413.    intersect its range.  Thus, MSS is not only aware of its own range
  414.    but also has a complete information about system defined partitions
  415.    which its range intersects. This information can be obtained upon MSS
  416.    installation, from the geographic database stored as a part of DNS.
  417.  
  418.    If the proper multicast trees are constructed (using for example link
  419.    state multicast protocol) than the sender can simply determine the
  420.    multicast address of the partition which covers the original polygon
  421.    he wants to send his message to, use this multicast address as the
  422.    address on the packet and put the original polygon specification into
  423.    the packet content.  In this way, multicast will assure that the
  424.    packet will be delivered to the proper MSS.
  425.  
  426.    Example
  427.  
  428.    For instance the MSS in New Brunswick may have its range intersect
  429.    the following atoms and partitions: Busch, College Avenue, Douglass
  430.    and Livingston Campuses of Rutgers University (atoms), New Brunswick
  431.    downtown area (atom), the Middlesex county partition and the NJ state
  432.    partition. Each of these atoms and partitions will be mapped into a
  433.    multicast address and the New Brunswick's MSS will have to join all
  434.    such multicast groups.
  435.  
  436.    The message will be then specified and sent as follows:
  437.  
  438.    The user will obtain the map of the New Brunswick area possibly from
  439.    the DNS extended properly with relevant maps. He will specify the
  440.    intended destination by drawing a polygon on the map which will be
  441.    translated into the sequence of coordinates. In the same time the
  442.    polygon will be "approximated" by the smallest partition which
  443.    contains that polygon. The multicast address corresponding to that
  444.    partition will be the IP address for packets carrying our message.
  445.    The exact destination polygon will be a part of each packet's body.
  446.    In this way the packet will be delivered using multicast routing to
  447.  
  448.  
  449.  
  450. Imielinski & Navas            Experimental                      [Page 8]
  451.  
  452. RFC 2009            GPS-Based Addressing and Routing       November 1996
  453.  
  454.  
  455.    the set of MSS which are members of the specified multicast group
  456.    (that is all MSS whose ranges intersect the given partition). Each
  457.    such MSS now will follow the "last mile" routing which is described
  458.    in detail, further in the proposal. Briefly speaking, the MSS could
  459.    then multicast the message further on the same multicast address and
  460.    the client will perform the final filtering o application layer,
  461.    matching its location (obtained from GPS) with the polygon specified
  462.    in the packet's body.  Other solutions based entirely on multicasting
  463.    are also possible as described below.
  464.  
  465.    End_Example
  466.  
  467.    However, things cannot be as simple as described.  For such a large
  468.    potential number of multicast groups if we build entire multicast
  469.    trees, the routing tables could  be too large.  Fortunately it is not
  470.    necessary to build complete multicast trees. Indeed, it in not
  471.    important to know precise location of each atom in California, from a
  472.    remote location, say in NJ.
  473.  
  474.    Thus, we modify our simple solution by implementing the following
  475.    intuition:
  476.  
  477.    The smaller is the size of the partition (atom) the more locally is
  478.    the information about that partition (atom) propagated.
  479.  
  480.    Thus, only multicast group membership for very large partitions will
  481.    be propagated across the whole country.
  482.  
  483.    For example, a base station in Menlo Park, California can intersect
  484.    several atoms ) and several larger  which cover Menlo Park, such say
  485.    a partition which covers the entire San Mateo county, next which
  486.    cover the entire California and finally next which may cover the
  487.    entire west coast.  This base station will have to join multicast
  488.    groups which correspond to all these rectangles. However, only the
  489.    information about multicast group corresponding to the West Coast
  490.    partition will be propagated to the East Coast routers.
  491.  
  492.    However, a simple address aggregation scheme in which only a "more
  493.    significant portion" of address propagates far away would not work.
  494.    Indeed, in this case a remote router, say in NJ, could have several
  495.    aggregate links leading to California - in fact, in the worst case,
  496.    all its links could point to California since it could have received
  497.    a routing information to some location in California on any of those
  498.    links.
  499.  
  500.    To avoid this, for each partition we distinguish one or a few MSS
  501.    which act as designated router(s) for that partition.  For example,
  502.    the California partition, may have only three designated routers, one
  503.  
  504.  
  505.  
  506. Imielinski & Navas            Experimental                      [Page 9]
  507.  
  508. RFC 2009            GPS-Based Addressing and Routing       November 1996
  509.  
  510.  
  511.    in Eureka, another in Sacramento and yet another in LA. Only the
  512.    routing entries from the designated routers would be aggregated into
  513.    the aggregate address for California. Information coming from other
  514.    city routers will simply be dropped and not aggregated at all. This,
  515.    in addition to a standard selection of the shortest routes, would
  516.    restrict the number of links which lead to an aggregate address.  In
  517.    particular, when there is only one designated router per partition,
  518.    there would only be one aggregate link in any router. This could lead
  519.    to non-optimal routing but will solve the problem of redundant links.
  520.  
  521.    Even with a designated routers, it may happen that the same packet
  522.    will arrive at a given base station more than once due to different
  523.    alternative routes. Thus, a proper mechanism for discarding redundant
  524.    copies of the same packet should still be in place.  In fact, due to
  525.    the possible intersections between ranges of the base stations the
  526.    possibility of receiving redundant copies of the same packets always
  527.    exist and has to be dealt with as a part of any solution.
  528.  
  529. 3a-ii.         Determining the geographic Multicast Addressing
  530.  
  531.    Here we describe more specifically, the proposed addressing scheme
  532.    and the corresponding routing.
  533.  
  534.    The addressing will be hierarchical.  We will use the following
  535.    convention - each multicast address corresponding to a partitions or
  536.    an atoms will have the following format:
  537.  
  538.                             1111.GPS.S.C.x
  539.  
  540.    where GPS is the specific code corresponding to the geographic
  541.    addressing subspace of the overall multicast addressing space. The S,
  542.    C and x parts are described below:
  543.  
  544.       S  - Encoding of the state.
  545.            Each state partition will have the address S/0/0.
  546.  
  547.       C  - County within a state.
  548.            Each county partition having the address S/C/0.
  549.  
  550.       x  - Atom  within a county.
  551.  
  552.    where 0's refer to the sequences of 0 bits on positions corresponding
  553.    to the  "C part"  and "x part" of address.
  554.  
  555.    For example if GPS part is 6 bit,s which gives 1/64 of existing
  556.    multicast addresses to the geographic addressing we have 22 bits
  557.    left.  The S part will take first 6 bits, C part next 6 bits (say)
  558.    and then the next 10 bits encode  different atoms (within a county).
  559.  
  560.  
  561.  
  562. Imielinski & Navas            Experimental                     [Page 10]
  563.  
  564. RFC 2009            GPS-Based Addressing and Routing       November 1996
  565.  
  566.  
  567.    Thus, in our terminology the proposed addressing scheme has two types
  568.    of partitions: states and counties.
  569.  
  570.    We will assume that the GPS network will consist of all base stations
  571.    (MSS) in addition the rest of the fixed network infrastructure. The
  572.    designated GPS routers however, will only be selected from the
  573.    population of MSS.  Specifically, there will be state dedicated and
  574.    county dedicated routers.
  575.  
  576.    The concept of the designation will be implemented as follows.  From
  577.    the set of all MSS, only certain MSS will play a role of designated
  578.    routers for county  and state partitions.  Non-designated MSS will
  579.    only join multicast groups which correspond to the GPS atoms but not
  580.    GPS partitions that they intersect. The MSS which is a designated
  581.    router for a county partition will join the multicast group of the
  582.    county in which it is located, but not the state. Finally the state
  583.    designated router will also join the multicast address corresponding
  584.    to the state it is located in.
  585.  
  586. 3a-iii.  Building Multicast Trees
  587.  
  588.    We assume that each router has geographic information attached to it
  589.    - in the same format as we use for multicast mapping, S/C/x - it
  590.    encodes the atom that contains the router.
  591.  
  592.    The multicast tree is built by a router propagating its multicast
  593.    memberships to the neighboring routers. A given router will only
  594.    retain certain addresses though, to follow the intuition of not
  595.    retaining a specific information which is far away.
  596.  
  597.    This is done as follows: the router (not necessarily the MSS based
  598.    router) with the address S/C/x will only retain addresses about
  599.    S'/0/0, S/C'/0 for S' and C' different from S and C and S/C/x for all
  600.    x.  Thus, it will drop all the addresses of the form S'/C'/y for all
  601.    S' different that S except those with C'=0 and y=0, as well as all
  602.    the addresses of the form S/C'/y with C' different from C except
  603.    those with y=0.  Hence, these addresses will not be forwarded any
  604.    further either.
  605.  
  606.    Thus, notice that only the information coming from designated routers
  607.    will be forwarded further away, since the non-designated routers are
  608.    not allowed to join the multicast groups which correspond to the
  609.    states and counties. Consequently, their multicast membership
  610.    information will be not be propagated.
  611.  
  612.    In this way a router at S/C/x will not bother about specific
  613.    locations within S'/C'/y since they are "too far".
  614.  
  615.  
  616.  
  617.  
  618. Imielinski & Navas            Experimental                     [Page 11]
  619.  
  620. RFC 2009            GPS-Based Addressing and Routing       November 1996
  621.  
  622.  
  623.    Notice that this service may not be provided everywhere so we may not
  624.    have to use all multicast addresses even within those assigned for
  625.    geographic addresses.
  626.  
  627.    Notice also that all of this is flexible - if we have more multicast
  628.    addresses available (IP v 6) we will get more precise addressing due
  629.    to smaller atoms.
  630.  
  631. 3a-iv.           GPS Routing
  632.  
  633.    Given a packet we always look for the "closest" match in the routing
  634.    table. If there is a complete match we follow such a link, if not we
  635.    follow the address with the x-part 0'd in (county address) if there
  636.    is none with the county which agrees with the destination county than
  637.    we look at the entry which agrees with the state part of the
  638.    destination address.
  639.  
  640. 3a-v.          DNS Issues
  641.  
  642.    How does the client find out the multicast address on which the
  643.    packet is to be sent?  We assume that the local name server has the
  644.    complete state/county hierarchy and that each county map can be
  645.    provided possibly with the "grid" of atoms and partitions already
  646.    clearly marked.
  647.  
  648.    Points of interests within a county can be attached multicast address
  649.    just as atoms. Then a given base station would have to join multicast
  650.    groups of the points of interests that it covers.
  651.  
  652.    The final stage is for the receiver to look at the polygon (point of
  653.    interest) which is encoded in the body of the multicast packet and
  654.    decide on the basis of its own GPS location if this packet is to be
  655.    received or not. Doing it on the application layer simplifies many
  656.    routing issues. There is a tradeoff, however, specially when we have
  657.    very short S/C/x addresses and base stations which do not cover the
  658.    given polygon in fact are reached unnecessarily.  This may happen and
  659.    it needs to be determined what is the number of the multicast
  660.    addresses which are necessary to reduce this "false" alarms to the
  661.    minimum.
  662.  
  663. 3a-vi.                Estimations
  664.  
  665.    Assume average cell size of, say, 2km x 2km and the average state
  666.    size: say 200,000 square km, the average county size: say 4,000
  667.    square km.
  668.  
  669.    A reasonable size of the atom  is around the size of the cell since
  670.    then we do not hit wrong cells too often.
  671.  
  672.  
  673.  
  674. Imielinski & Navas            Experimental                     [Page 12]
  675.  
  676. RFC 2009            GPS-Based Addressing and Routing       November 1996
  677.  
  678.  
  679.    Therefore we need the x addressing part of the S/C/x to encode
  680.    4,000/4 cells: 1.000 atoms. Thus we need 10 bits for x part. With 6
  681.    bits for the state and 6 bits for the county that gives 22 bits which
  682.    is 1/64 of the total IP v4 multicast addressing space.
  683.  
  684.    With IPv6 we will have, of course, much more addressing space which
  685.    we can use for the GPS multicast routing.
  686.  
  687. 3b.  "Last Mile"  Routing
  688.  
  689.    Multicasting will be used for the last mile routing in both our
  690.    solutions (i.e the one just discussed and the geometric routing
  691.    solution described next), but in different ways.
  692.  
  693. 3b-i.           Application Level Filtering
  694.  
  695.    The MSS will forward the geographic message on its wireless link
  696.    under a multicast address. This multicast address will either be the
  697.    same for all locations in the range of the MSS's cell or, there will
  698.    be several addresses corresponding to atoms which intersect the given
  699.    cell. Additionally, a complete GPS address (for example in the form
  700.    of the polygon) will be provided in the body of the packet and the
  701.    exact address matching will be performed on the application layer.
  702.    The receiver, knowing its GPS position uses it to match against the
  703.    polygon address. The GPS position can be obtained by the receiver
  704.    either from the GPS card or, indoors, from the indoor base station
  705.    which itself knows its GPS position as a part of configuration file.
  706.  
  707. 3b-ii.          Multicast Filtering
  708.  
  709.    In multicast level filtering, the base station assigns a temporary
  710.    multicast address to the addressing polygon in a message.  It will
  711.    send out a directive on the cell's specially assigned multicast
  712.    address. All mobile clients who reside in that cell are members of
  713.    that special multicast group (one per MSS). The directive sent by the
  714.    MSS will contain the pair consisting of  the temporary multicast
  715.    address together with the polygon. To improve the reliability this
  716.    message will be multicast several times. The clients, knowing their
  717.    GPS positions will than join the temporary multicast groups if their
  718.    current locations are within the advertised polygon.  The MSS will
  719.    then send out the real message using the temporary multicast address.
  720.  
  721.    The temporary multicast address would be cached for a period of time.
  722.    If more packets for the same polygon arrive in a short period of
  723.    time, they will be sent out on the same multicast address. If not,
  724.    then the multicast address is dropped and purged from the cache.
  725.    Filtering on the client's station is then performed entirely on the
  726.    IP level. This solution introduces additional delay (needed to join
  727.  
  728.  
  729.  
  730. Imielinski & Navas            Experimental                     [Page 13]
  731.  
  732. RFC 2009            GPS-Based Addressing and Routing       November 1996
  733.  
  734.  
  735.    the temporary multicast group) but reduces the number of irrelevant
  736.    packets received by the client. This especially important for very
  737.    long messages.
  738.  
  739. 3b-iii.         Computers on Fixed Networks
  740.  
  741.    Fixed-network computers should also monitor all of the mandatory
  742.    multicast addresses for their site and GPS square.  In this manner,
  743.    the fixed computers will also receive messages sent to specific GPS-
  744.    addresses.
  745.  
  746.    Modified base stations would still be in charge of multicasting the
  747.    messages to the computers.  These base stations would have the same
  748.    GPS-routing functionality as the mobile computer base stations.
  749.    Their main difference would be that the mobile computer base stations
  750.    would use radio frequencies to multicast their messages and the fixed
  751.    network base stations use the local Ethernet or Token Ring network.
  752.  
  753.    The next scheme differs from the GPS multicast scheme described above
  754.    only on the first leg of the route, from the sender to the MSS. The
  755.    "last mile" from the MSS to the final destination will have the same
  756.    options as described above.
  757.  
  758. 3c.             Geometric Routing Scheme (GEO)
  759.  
  760.    The Geometric Routing Scheme (GEO) uses the polygonal geographic
  761.    destination information in the GPScast header directly for routing.
  762.    GEO routing is going to be implemented in the Internet Protocol (IP)
  763.    Network layer in a manner similar to the way multicast routing was
  764.    first implemented.  That is, a virtual network which uses GPS
  765.    addresses for routing will be overlayed onto the current IP
  766.    internetwork.  We would accomplish this by creating our own GPS-
  767.    address routers.  These routers would use tunnels to ship data
  768.    packets between them and between the routers and base stations.
  769.  
  770. 3c-i.           Routing Overview
  771.  
  772.    Sending a GPScast message involves three steps: sending the message,
  773.    shuttling the message between routers, and receiving the message.
  774.  
  775.    Sending a GPScast message is very similar to sending a UDP datagram.
  776.    The programmer would use the GPScast library routine SendToGPS().
  777.    Among other parameters, this routine will accept the GPS polygonal
  778.    destination address and the body of the message.  The SendToGPS()
  779.    routine will encapsulate the GPScast message in a UDP datagram and
  780.    send it to the class E address 240.0.0.0.  Previously, the system
  781.    administrator will have specified in the /etc/rc.local or /etc/rc.ip
  782.    file a route command that will specify that packets with the address
  783.  
  784.  
  785.  
  786. Imielinski & Navas            Experimental                     [Page 14]
  787.  
  788. RFC 2009            GPS-Based Addressing and Routing       November 1996
  789.  
  790.  
  791.    240.0.0.0 will instead be sent to the address of the local GPS
  792.    router.  This will have the effect of sending the datagram to the
  793.    nearest GPS router.
  794.  
  795.    Before explaining how the GPS routers shuttle the GPScast message to
  796.    its destination, an introduction to routers and their different parts
  797.    is in order.  For scalability purposes, GPS routers are arranged in a
  798.    hierarchical fashion.  Each layer would correspond to a distinct
  799.    geographic area, such as a state or a city.  At the top would be
  800.    country-wide routers in charge of moving messages from one end of the
  801.    country to another.  At the bottom would be campus or department
  802.    routers in charge of moving messages between the base stations.  See
  803.    Figure 1.
  804.  
  805.  
  806.                                    Country-Router(s)
  807.                                    /              \
  808.                            State-Router(s)
  809.                            /             \
  810.                      City-Router(s)
  811.                       /      \
  812.                 Router        Router
  813.                /  |   \      |    \
  814.            Base  Base  Base   Base  Base
  815.  
  816.    Figure 1: Hierarchy of routers.
  817.  
  818.    A GPS router essentially consists of three parts: a service area
  819.    table containing the geographic area serviced by the router and each
  820.    of its hierarchical children, a hashed cache of previous actions, and
  821.    a table containing the IP addresses of at least the router's children
  822.    and the router's parent.  In the case of a bottom-layer campus
  823.    router, the service area table will contain polygons describing the
  824.    geographic reach of each child base station's cell.  The polygon
  825.    created from the union of all of the router's child base stations'
  826.    polygons defines the service area of the router.
  827.  
  828.    Once the datagram arrives at a GPS router, the router strips the
  829.    datagram off, thereby, leaving it with the original GPScast message.
  830.    First the router must determine if it services any part of the area
  831.    of the destination polygon.  To do this, the router finds the
  832.    intersection between the destination polygon and the polygon
  833.    describing the router's service area.  The polygon intersection
  834.    algorithm used is described by O'Rourke in his paper, A New Linear
  835.    Algorithm for Intersecting Convex Polygons.  This algorithm requires
  836.    order N-squared time in the worst case.  If the intersection result
  837.    is null, then the router simply sends the message to its parent
  838.    router.
  839.  
  840.  
  841.  
  842. Imielinski & Navas            Experimental                     [Page 15]
  843.  
  844. RFC 2009            GPS-Based Addressing and Routing       November 1996
  845.  
  846.  
  847.            ------ Destination Polygon
  848.            | A  |
  849.        --------------
  850.        |   | B  |   | Router's Service Area Polygon
  851.        --------------
  852.            | C  |
  853.            ------
  854.  
  855.    Figure 2: Polygon Difference
  856.  
  857.    However, if the result is not null, then the router does service the
  858.    area described by the intersection polygon.  The router now subtracts
  859.    its service area from the destination polygon and sends the rest to
  860.    it's parent router.  This subtraction step is actually a by-product
  861.    of the intersection algorithm.  Using the example in Figure 2, the
  862.    destination polygon and the router's service area polygon intersect
  863.    at the region labeled B.  Therefore, the router will subtract out the
  864.    B section and send the remaining sections A and C to its parent
  865.    router.
  866.  
  867.    Continuing with the example, the router now uses the intersection
  868.    polygon B to to determine which base station (or stations) will
  869.    receive the GPScast message.  The router finds the intersection
  870.    between the region B and the polygon of each base station's cell.
  871.    Those base station polygons which intersect the region B will be sent
  872.    the GPScast message.  Processes on Mobile Hosts serviced by these
  873.    base stations will now use the routine RecvFromGPS() to receive the
  874.    GPScast message.
  875.  
  876. 3c-ii.  Supporting Long-Duration GPScasts
  877.  
  878.    Most likely, there will be a need to support sending real-time
  879.    continuous media to a GPS destination.  This continuous media could
  880.    be an audio GPScast or a video GPScast.  This would require that
  881.    jitter be reduced in order to minimize disturbing artifacts in the
  882.    audio or video playback.  Continually checking the destination
  883.    geometry of each packet would incur unnecessary delays and may
  884.    promote jitter.
  885.  
  886.    Therefore, the router will keep a hashed cache of the latest GPScast
  887.    packets and their destinations.  Each cache item will be hashed using
  888.    the Sender Identification included in the header of GPScast messages
  889.    as the key.  Each cache item will contain a time stamp and a list of
  890.    the next hops for that GPScast.  When the time stamp exceeds a
  891.    certain limit, then the cache item will be dropped.  The list of next
  892.    hops is a list of the IP addresses of the base stations, peer
  893.    routers, and parent router which are to receive a copy of the GPScast
  894.    messages.
  895.  
  896.  
  897.  
  898. Imielinski & Navas            Experimental                     [Page 16]
  899.  
  900. RFC 2009            GPS-Based Addressing and Routing       November 1996
  901.  
  902.  
  903.    When a router receives a GPScast packet, it will use the incoming
  904.    packet's Sender Id as a key into the hashed cache.  If this is not
  905.    the first packet to arrive for this destination and if the timer on
  906.    the hash table entry has not yet expired, then the hashed cache will
  907.    return a list of all of the destination addresses to which copies of
  908.    the packet must be sent.  Copies of the packet are sent to all of
  909.    these destinations and the hash entry's time stamp is updated.
  910.  
  911.    If no hash table entry is found (i.e.- this is the first packet
  912.    encountered for this destination address), then the normal geometry
  913.    checking routine would take over.  A new cache entry is made
  914.    recording all of the next-hop destination addresses of the GPScast.
  915.    In this manner, if several other packets with the same GPS
  916.    destination follow this first packet, the router can use the hash
  917.    table to look-up the destination base stations instead of calculating
  918.    it using geometry.
  919.  
  920. 3c-iii.          Discovering A Router's Service Area
  921.  
  922.    When the router is initiated, it will consult its configuration file.
  923.    One of the items it will find in the file will be the multicast
  924.    address of the base station group to which all of its child base
  925.    stations are members.  The router will join this group and then send
  926.    out Service Area Query messages to this multicast group periodically
  927.    to discover and to refresh its knowledge of its children base
  928.    stations and the geographical areas serviced by them.
  929.  
  930.    Queries are issued infrequently (no more than once every five
  931.    minutes) so as to keep the IGPSMP overhead on the network very low.
  932.    However, since the query is issued using unreliable multicast
  933.    datagrams, there is a chance that some base stations may not receive
  934.    the query.  This is important in two cases: when a child node fails
  935.    and when a router first boots up.  The case of a failed child node
  936.    will be explained later.  However, when a router first boots up, it
  937.    can issue several queries in a small amount of time in order to
  938.    guarantee that base stations will receive the query and to,
  939.    therefore, build up its knowledge about its child base stations
  940.    quickly.
  941.  
  942.    Base stations respond to a Service Area Query by issuing a Service
  943.    Area Report.  This report is issued on the same multicast group
  944.    address that all of the base stations have joined.  The report
  945.    contains the geographical service area of the base station.  In order
  946.    to avoid a sudden congestion of reports being sent at the same time,
  947.    each base station will initiate a random delay timer.  Only when the
  948.    timer expires will the base station send its report.
  949.  
  950.  
  951.  
  952.  
  953.  
  954. Imielinski & Navas            Experimental                     [Page 17]
  955.  
  956. RFC 2009            GPS-Based Addressing and Routing       November 1996
  957.  
  958.  
  959.    For every base station that responds, the router will create an IP
  960.    tunnel between it and the base station.  This tunnel will carry the
  961.    GPScast packet traffic between the base station and the router.  Each
  962.    responding base station and its geographic area of service will also
  963.    be included in the router's geometric routing table as a possible
  964.    destination for GPScast packets.  Any base station that does not
  965.    respond for ten continuous Service Area Queries will be considered
  966.    unreachable and will be dropped from the routing table.
  967.  
  968. 3c-iv.         Hierarchical Router Structure and Multicast Groups
  969.  
  970.                        R5----------------------R6
  971.                     /      \                /     \
  972.                   R1---------R2           R3---------R4
  973.                 / | \      / | \        / | \      / | \
  974.                b1 b2 b3   b4 b5 b6     b7 b8 b9 b10 b11 b12
  975.  
  976.    Figure 3: Two peer routers (R5 and R6) cooperatively servicing four
  977.                    child routers (R1 - R4).
  978.  
  979.    For scalability purposes, a hierarchy of routers is used to transport
  980.    messages from a sender to a receiver.  Each layer of peer routers
  981.    would have its own multicast group address for the exchange of
  982.    Service Area Queries and Reports between the peer routers.  However,
  983.    routers in distinct subtrees need not know about the routers in other
  984.    subtrees.  Therefore, multicast group addresses will also differ
  985.    between hierarchy subtrees.  See figure 3.  For instance, routers R1
  986.    and R2 would share a multicast group and would know about each other.
  987.    At the same time, routers R3 and R4 would share a different multicast
  988.    group and would know about each other.  However, routers R1 and R2
  989.    would not know about R3 and R4, and vice versa.
  990.  
  991.    But how will the router know the location and number of its peer
  992.    routers and who its parent router is?  As mentioned before, the
  993.    router consults its configuration file upon start-up.  Included in
  994.    this configuration file will be the the address of its parent router
  995.    and the multicast group address that the peer routers will use.  This
  996.    peer multicast group address will be used in the same manner as the
  997.    base station multicast group address.  It will be used to send and
  998.    receive Service Area Queries and Reports between the parent router
  999.    and the peer routers.  There is only one difference.  When a router
  1000.    sends a Service Area Report, in addition to reporting its
  1001.    geographical service area, a router will include the multicast
  1002.    address of its children base stations.  The reason for this is
  1003.    explained in the router-failure recovery scheme described below.
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010. Imielinski & Navas            Experimental                     [Page 18]
  1011.  
  1012. RFC 2009            GPS-Based Addressing and Routing       November 1996
  1013.  
  1014.  
  1015. 3c-v.          Routing Optimizations
  1016.  
  1017.    The optimization described here attempts to reduce the latency of a
  1018.    GPScast.  It does so by reducing the the number of hops a packet must
  1019.    traverse before finding its destination.  The intuition behind the
  1020.    idea is this:  instead of going to the parent router and then to the
  1021.    sibling, simply go to the sibling directly.  As an additional
  1022.    benefit, this method prevents the parent router from becoming a
  1023.    bottleneck or a point of failure in the routing scheme.
  1024.  
  1025.    In this optimization, when a router attempts to determine who will
  1026.    receive the GPS packet, it considers its peer routers as if they were
  1027.    also its children in the routing hierarchy.  This means that the
  1028.    router will consider its service area to be the union of the service
  1029.    areas of its children and its peer routers.  Also, when the
  1030.    destination polygon intersects the router's service area polygon, the
  1031.    router will forward a copy of the GPScast packet to any child or peer
  1032.    router whose geographic service area contains or touches the packet's
  1033.    GPS destination polygon.
  1034.  
  1035.    However, before it sends a copy of the packet to a peer router, it
  1036.    first finds the polygon:
  1037.  
  1038.                                P = D /\ S
  1039.  
  1040.    where D stands for the packet's destination GPS polygon, S is the
  1041.    polygon representing the service area of the peer router, and P is
  1042.    the polygon that represents the intersection of D and S.  The polygon
  1043.    P is substituted for the destination polygon D in the packet and only
  1044.    then is the packet forwarded to the peer router.  This is necessary
  1045.    because the peer router will be using that same routing algorithm.
  1046.    Therefore, if the peer router receives a packet with the original
  1047.    destination polygon D, it will also route copies of the packet to all
  1048.    of its qualifying peer routers causing a chain of packet copies being
  1049.    bounced back and forth.
  1050.  
  1051. 3c-vi.          Router-Failure Recovery Scheme
  1052.  
  1053.    In the case of a router failure, the system should be able to route
  1054.    around the failed router and continue to service GPScast messages.
  1055.    The responsibility of detecting whether a router has failed or not
  1056.    falls to the parent router.  Using Figure 3 as an example router
  1057.    hierarchy, the parent router R5 periodically sends out Service Area
  1058.    Query IGPSMP messages on its children's multicast group address.
  1059.    Thus, the child routers R1 and R2 will both receive this query.
  1060.    Normally, both routers will respond with a Service Area Report
  1061.    message.  This message contains a polygon describing their service
  1062.    areas and the multicast group address of their children.
  1063.  
  1064.  
  1065.  
  1066. Imielinski & Navas            Experimental                     [Page 19]
  1067.  
  1068. RFC 2009            GPS-Based Addressing and Routing       November 1996
  1069.  
  1070.  
  1071.    However, if a router, R1, does not respond to ten continuous queries,
  1072.    then it must be considered to have failed.  Upon detecting this, the
  1073.    parent router R5 will send a Set Service Area message to the child
  1074.    router, R2 telling it to assume responsibility for the base stations
  1075.    underneath the failed R1 router.  In this Set Service Area message,
  1076.    the parent router includes the multicast group address of R1's
  1077.    children.  The R2 router uses this multicast address to learn the
  1078.    service areas and IP addresses of R1's children.  The R2 router then
  1079.    issues a Service Area Report advertising its new enlarged service
  1080.    area responsibilities.  All peer and parent routers will then update
  1081.    their routing tables to include this new information.  When the
  1082.    failed router, R1, restarts, it will declare that it is alive and
  1083.    that it is again servicing its area.  All routers will then again
  1084.    update their routing tables.
  1085.  
  1086.    In the case that there is no parent router, such as at the top of the
  1087.    routing hierarchy, then each peer router will keep track of its
  1088.    neighbors.  If a neighbor router fails, then the first neighbor
  1089.    router to declare that it is taking over the base stations for the
  1090.    failed router will take responsibility.  The rest continues as
  1091.    before.
  1092.  
  1093. 3c-vii.   Domain Name Service Issues
  1094.  
  1095.    Domain Name Servers (DNS) could be used to facilitate the use of GPS
  1096.    geographic addressing for sites of interest.  The aim is to describe
  1097.    specific geographic sites in a more natural and real-world manner
  1098.    using a postal-service like addressing method.  Essentially, the DNS
  1099.    would resolve a postal-service like address, such as
  1100.    City_Hall.New_York_City.New_York, into the IP address of the GPS
  1101.    router responsible for that site.  The GPS router would then route
  1102.    the message to all available recipients in the site.
  1103.  
  1104.    The DNS would be used when a message is sent using the
  1105.  
  1106.               site-code.city-code.state-code.country-code
  1107.  
  1108.    addressing scheme.  The DNS would evaluate the address in reverse
  1109.    starting with the country code, then the state code, etc.  This is
  1110.    the same method used currently by the IP DNS service to return IP
  1111.    addresses based on the country or geographic domains.
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122. Imielinski & Navas            Experimental                     [Page 20]
  1123.  
  1124. RFC 2009            GPS-Based Addressing and Routing       November 1996
  1125.  
  1126.  
  1127. 4.  Router Daemon and Host Library
  1128.  
  1129. 4a. GPS Address Library - SendToGPS()
  1130.  
  1131.    A library for GPS address routing will be constructed.  The main
  1132.    routines contained in this library will be the SendToGPS() and
  1133.    RecvFromGPS() commands.  SendToGPS() has the following syntax:
  1134.  
  1135.    SendToGPS(int socket, GPS-Address *address, char *message, int size)
  1136.  
  1137.    where socket is a previously created datagram socket, address is a
  1138.    filled GPS-Address structure with the following form:
  1139.    typedef _GPS-Address {
  1140.            enum { point, circle, polygon } type;
  1141.            char *mail-address;
  1142.            struct
  1143.            {
  1144.                    enum { North, South, West, East } dir;
  1145.                    int hours, minutes, seconds;
  1146.            } *points;
  1147.  
  1148.    } GPS-Address;
  1149.  
  1150.    and message and size specify the actual message and its size.  The
  1151.    SendToGPS() routine will take the GPS-addressed message, encapsulate
  1152.    it in an IP packet, and then send it as a normal IP datagram.  The
  1153.    message is encapsulated in the following manner:
  1154.  
  1155.               --------------------------------------------------------
  1156.               |  IP Header with destination address set to 240.0.0.0 |
  1157.               --------------------------------------------------------
  1158.               |  Sender Identifier                                   |
  1159.               --------------------------------------------------------
  1160.               |  Address Type  - Circle|Polygon                      |
  1161.               --------------------------------------------------------
  1162.               |  Actual GPS Address (see below)                      |
  1163.               --------------------------------------------------------
  1164.               |  Body of Message                                     |
  1165.               --------------------------------------------------------
  1166.  
  1167.    where the Sender Identifier would consist of a combination of the
  1168.    sender's process id, host IP address, and the center of the
  1169.    destination polygon.  The Actual Address would be one of the
  1170.    following:
  1171.  
  1172.    circle  - single GPS address and range measured in centiminutes.
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178. Imielinski & Navas            Experimental                     [Page 21]
  1179.  
  1180. RFC 2009            GPS-Based Addressing and Routing       November 1996
  1181.  
  1182.  
  1183.    polygon - list of GPS addresses terminated by the  impossible
  1184.                 address: N 255 255 255.
  1185.  
  1186.    RecvFromGPS() has the following syntax:
  1187.  
  1188.    RecvFromGPS(int socket,GPS-Address *address,char *message,int size)
  1189.  
  1190.    where socket is a previously created datagram socket, address is an
  1191.    empty GPS-Address structure, and message and size specify message
  1192.    buffer and its size.
  1193.  
  1194. 4b. Establishing A Default GPS Router
  1195.  
  1196.    The default GPS router is determined using the unicast routing table
  1197.    found in the UNIX kernel.  The local system administrator will have
  1198.    previously adjusted the table so that all GPScast messages are sent
  1199.    to the local GPS router.  However, if there is no route for GPScast
  1200.    messages in the table, then all messages will, by default, be sent to
  1201.    the default gateway.  If the default gateway does not support GPScast
  1202.    messages, then all attempts to send a GPScast will return an error.
  1203.  
  1204.    By default, all GPScast messages will initially have as their
  1205.    destination the class E address 240.0.0.0.  A route will be added to
  1206.    the kernel routing table by the system administrator for this
  1207.    address.  The route will specify the location of the local GPS
  1208.    router.  The "route" command will be used to affect the routing table
  1209.    and it can be placed in the /etc/rc.local or /etc/rc.ip files so that
  1210.    it will take effect each time the computer is booted.  For example,
  1211.    to specify that GPScast messages addressed to 240.0.0.0 should, by
  1212.    default, be sent to the router which resides on a computer on the
  1213.    same subnet with local address 128.6.5.53, use the following:
  1214.  
  1215.               /etc/route add host 240.0.0.0 128.6.5.53 0
  1216.  
  1217.    If the default destination for GPScast messages is a host that does
  1218.    not support GPS addressing, then Network Unreachable errors will be
  1219.    returned to any process attempting to route GPScasts through that
  1220.    host.
  1221.  
  1222. 4c. GPSRouteD
  1223.  
  1224.    In order to provide the capability of GPS address routing throughout
  1225.    an IPv4-based internetwork, special-purpose routers will be created
  1226.    to support GPS address routing on top of the current Internet.  These
  1227.    routers, which will be called GPSRouteD, will use virtual point-to-
  1228.    point links called tunnels in order to connect two GPSRouteDs
  1229.    together over regular unicast networks.  The tunnels work by
  1230.    encapsulating the GPS address messages in IP datagrams and then
  1231.  
  1232.  
  1233.  
  1234. Imielinski & Navas            Experimental                     [Page 22]
  1235.  
  1236. RFC 2009            GPS-Based Addressing and Routing       November 1996
  1237.  
  1238.  
  1239.    transmitting the message to the host on the other end of the tunnel.
  1240.    In this manner, the GPS address messages look like normal unicast
  1241.    packets to all IPv4 routers in between the two GPS address routers.
  1242.    At the end of the tunnel, the receiving GPSRouteD removes the GPS
  1243.    address message from the datagram and continues the routing process.
  1244.  
  1245.    By using tunnels, the GPS routers can be established as a virtual
  1246.    internetwork throughout the current Internet without regard for the
  1247.    physical properties of the underlying networks.  Moreover, the use of
  1248.    tunnels means that the host on which the router daemon is running
  1249.    need not be connected to more than one subnet in order for the router
  1250.    to forward GPS messages.  This virtual internetwork would be
  1251.    responsible for routing GPS address messages only.  This virtual
  1252.    network, however, is not intended to be a permanent solution and is
  1253.    only intended to provide a means of supporting GPS address routing
  1254.    until it gains wider acceptance and support in the Internet
  1255.    infrastructure.
  1256.  
  1257. 4c-i.   Configuration
  1258.  
  1259.    When a GPSRouteD initially executes, it first checks the file
  1260.    /etc/GPSRouteD.conf for configuration commands to add tunnel and
  1261.    multicast links to other GPS address routers.  There are two kinds of
  1262.    configuration commands:
  1263.  
  1264.            multicast  <multicast-address> <peer|child>
  1265.  
  1266.            tunnel  <local-addr> <remote-addr>
  1267.                    <parent|peer|child|host> <service-area>
  1268.  
  1269.    The tunnel command is used to create a tunnel between the local host
  1270.    on which the GPSRouteD executes and a remote host on which another
  1271.    GPSRouteD executes. The tunnel must be set up in the GPSRouteD.conf
  1272.    files at both ends before it will be used.
  1273.  
  1274.    The multicast command tells the router which multicast addresses to
  1275.    join.  These addresses will carry IGPSMP messages and replies.  The
  1276.    router will use these IGPSMP messages to build up and keep current
  1277.    its own internal routing table.
  1278.  
  1279. 4d.     Multicast Address Resolution Protocol (MARP)
  1280.  
  1281.    Of course, this begs the question, how will the individual computers
  1282.    know which multicast addresses to join?  For example, an MH would
  1283.    have to join the multicast address of its current cell so that it can
  1284.    receive GPScast messages (using application-level filtering) or
  1285.    directions to join other multicast groups (using multicast
  1286.    filtering).  We have designed a protocol called Multicast Address
  1287.  
  1288.  
  1289.  
  1290. Imielinski & Navas            Experimental                     [Page 23]
  1291.  
  1292. RFC 2009            GPS-Based Addressing and Routing       November 1996
  1293.  
  1294.  
  1295.    Resolution Protocol (MARP) that works the same way as Reverse Address
  1296.    Resolution Protocol (RARP).  However, instead of returning the IP
  1297.    address of the MH, it will return multicast group address of the cell
  1298.    the MH is currently in.  The MH would then join this multicast group.
  1299.  
  1300. 4e.     Internet GPS Management Protocol (IGPSMP)
  1301.  
  1302.    The Internet GPS Management Protocol (IGPSMP) is used by GPS routers
  1303.    to report, query, and inform their router counterparts about their
  1304.    geographical service areas.  The IGPSMP will also be used to verify
  1305.    that routers are correctly functioning.
  1306.  
  1307.    The vocabulary of IGPSMP will consist of six words:
  1308.  
  1309.    o       set service area - Used by the parent router to set the
  1310.              geographic service area of a router.  This is needed in
  1311.              order to automatically respond to router failure or new
  1312.              router boot-up.
  1313.  
  1314.    o       confirm service area - confirms that a router has received
  1315.              its service area.
  1316.  
  1317.    o       geographical service area query - This message will be used
  1318.              by a router to build up its geographical routing table.
  1319.              It is sent to all routers on the same level.
  1320.  
  1321.  
  1322.    o       service area report - This message is sent in response to a
  1323.             query request.  It contains a bounding closed polygon
  1324.             described using GPS coordinates which contains the service
  1325.             area for the router.
  1326.  
  1327.    o       ping - This message is sent periodically to ascertain whether
  1328.              the router is currently functioning properly.  Usually sent
  1329.              by the parent router in the hierarchy tree.
  1330.  
  1331.    o       alive signal - Usually sent as a reply to the ping message.
  1332.              Used by a router to indicate that it is functioning
  1333.              correctly.  It is also sent immediately after a router
  1334.              boots.
  1335.  
  1336.    All of IGPSMP messages will be sent on an all-routers multicast
  1337.    address for a particular hierarchy level.  The exact multicast
  1338.    address can be set in the router configuration file.
  1339.  
  1340.    Note that for the GPS-Multicast routing scheme, the time-to-live
  1341.    value of the service area reports will be varied in order to control
  1342.    the distribution of the information.  In GPS-Multicast routing, only
  1343.  
  1344.  
  1345.  
  1346. Imielinski & Navas            Experimental                     [Page 24]
  1347.  
  1348. RFC 2009            GPS-Based Addressing and Routing       November 1996
  1349.  
  1350.  
  1351.    the multicast group membership for very large partitions will be
  1352.    distributed throughout the country.  Smaller partition may only be
  1353.    distributed to neighbor routers.
  1354.  
  1355. 5.      Working Without GPS Information
  1356.  
  1357. 5a.     Users Without GPS Modules
  1358.  
  1359.    Mobile users without GPS modules can still participate - though at a
  1360.    very reduced level.  When an MH enters a cell, it can use an MARP to
  1361.    discover the local multicast group for that cell or atom.  As the
  1362.    user roams from cell to cell, the mobile host can keep track of the
  1363.    current cell that the user is in and adds or drops the multicast
  1364.    groups pertaining to those cells.  The user's GPS address can be set
  1365.    to be the center of the current cell.
  1366.  
  1367. 5b.     Buildings block GPS radio frequencies.  What then?
  1368.  
  1369.    Each room can have a radio beacon placed on the ceiling.  The beacon
  1370.    will be weak enough so that it will not penetrate walls.  Each radio
  1371.    beacon will have its own GPS-address associated with it which it will
  1372.    broadcast.  When a mobile user enters a room, his MH will detect the
  1373.    beacon and read the beacon's GPS address.  The GPS-address of the MH
  1374.    will be set to the GPS-address of the beacon.  The MH will then use
  1375.    this beacon's GPS address in order to perform any message filtering
  1376.    that it needs to do.  Now the mobile user can have a GPS-address
  1377.    associated with him even though he is indoors and his GPS-module is
  1378.    useless.
  1379.  
  1380. 6.      Application Layer Solution
  1381.  
  1382.    In this subsection we sketch a third solution which relies more
  1383.    heavily on the DNS.
  1384.  
  1385.    In the application layer solution the geographic information is added
  1386.    to the DNS which provides the full directory information down to the
  1387.    level of the IP address of each base station and its area of coverage
  1388.    represented as a polygon of coordinates.
  1389.  
  1390.    A new first level domain - "geographic" is added to the set of first
  1391.    level domains. The second level domain names include states, the
  1392.    third, counties and finally, the fourth: polygons  of coordinates, or
  1393.    so called points of interests. We can also allow, polygons to occur
  1394.    as elements of second, third domains to enable sending messages to
  1395.    larger areas.
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402. Imielinski & Navas            Experimental                     [Page 25]
  1403.  
  1404. RFC 2009            GPS-Based Addressing and Routing       November 1996
  1405.  
  1406.  
  1407.    Thus a typical geographic address can look like
  1408.  
  1409.    city-hall-Palo-Alto.San-Mateo-County.California.geographic
  1410.  
  1411.    or
  1412.  
  1413.    Polygon.San-Mateo-County.California.geographic
  1414.  
  1415.    where Polygon is a sequence of coordinates.
  1416.  
  1417.    This geographic address is resolved in a similar way as the standard
  1418.    domain addresses are resolved today into a set of IP addresses of
  1419.    base stations which cover that geographic area. There are several
  1420.    possibilities here:
  1421.  
  1422.    a. A set of unicast messages is sent to all base stations
  1423.    corresponding to the IP addresses returned by the DNS. Each base
  1424.    station then forwards the message using either of the two last link
  1425.    solutions: application level or network level filtering.
  1426.  
  1427.    b. All the base stations join the temporary multicast group for the
  1428.    geographic area specified in the message. In this way we may avoid
  1429.    sending the same message across the same link several times. Thus,
  1430.    after the set of relevant base stations is determined by the DNS, the
  1431.    temporary multicast group is established and all packets with that
  1432.    multicast address are sent on that multicast address.
  1433.  
  1434.    c. Only one, central to the polygon base station is returned by the
  1435.    DNS just as in the IP unicast solution.  However that "central" base
  1436.    station will have to forward messages to the other base stations
  1437.    within the  polygon.
  1438.  
  1439.    Notice that we should distinguish between "small area" and "wide
  1440.    area" geographic mail. The "small area" mail will be most common  and
  1441.    will most likely involve just one base station, favoring a simple
  1442.    form of solution (a).
  1443.  
  1444. 7.      Reliability
  1445.  
  1446.    Should the geographic messages be acknowledged?
  1447.  
  1448.    Since we have no control if  users are present in the target
  1449.    geographic area where the mail is distributed we do not see a need
  1450.    for individual acknowledgments from the message recipients.  However,
  1451.    we believe that the base stations (MSS) covering the target area of
  1452.    geographic mail should acknowledge the messages.
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458. Imielinski & Navas            Experimental                     [Page 26]
  1459.  
  1460. RFC 2009            GPS-Based Addressing and Routing       November 1996
  1461.  
  1462.  
  1463.    Typically only a few base stations will be involved since typically
  1464.    we will not cover very broad geographic areas anyway.  We assume that
  1465.    the base stations, additionally to forwarding the the messages on
  1466.    their wireless interfaces will buffer them, either to periodically
  1467.    multicast them (emergency response) or to provide them to users who
  1468.    just entered a cell and download the "emergency stack" of messages
  1469.    for that area as a part of the service hand-off protocol.
  1470.  
  1471. 8.      Security Considerations
  1472.  
  1473.    Some method of determining who has permission to send messages to a
  1474.    large geographical area is needed.  For instance, perhaps only the
  1475.    mayor of New York City has permission to send a message to all of New
  1476.    York City.
  1477.  
  1478. 9.      References
  1479.  
  1480.    Deering, S., "Host Extensions for IP Multicasting", STD 5, RFC 1112,
  1481.    August 1989.
  1482.  
  1483.    S. Deering. Multicast Routing in a Datagram Internetwork. Ph.D.
  1484.    Thesis, Stanford University, (December 1991).
  1485.  
  1486.    J. O'Rourke, C.B. Chien, T. Olson, and D. Naddor, A new linear
  1487.    algorithm for intersecting convex polygons, Computer Graphics and
  1488.    Image Processing  19, 384-391 (1982).
  1489.  
  1490.    J. Ioannidis, D. Duchamp, and G. Q. Maquire. IP-Based Protocols for
  1491.    Mobile Internetworking. Proc. of ACM SIGCOMM Symposium on
  1492.    Communication, Architectures and Protocols, pages 235-245,
  1493.    (September, 1991).
  1494.  
  1495. 10.      Authors' Addresses
  1496.  
  1497.       Tomasz Imielinski and Julio C. Navas
  1498.       Computer Science Department
  1499.       Busch Campus
  1500.       Rutgers, The State University
  1501.       Piscataway, NJ
  1502.       08855
  1503.  
  1504.       Phone:  908-445-3551
  1505.       EMail:  {imielins,navas}@cs.rutgers.edu
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514. Imielinski & Navas            Experimental                     [Page 27]
  1515.  
  1516.