draft-ietf-ecrit-mapping-arch-00.txt | draft-ietf-ecrit-mapping-arch-01.txt | |||
---|---|---|---|---|
ECRIT H. Schulzrinne | ECRIT H. Schulzrinne | |||
Internet-Draft Columbia U. | Internet-Draft Columbia U. | |||
Expires: February 8, 2007 August 7, 2006 | Intended status: Informational December 17, 2006 | |||
Expires: June 20, 2007 | ||||
Location-to-URL Mapping Architecture and Framework | Location-to-URL Mapping Architecture and Framework | |||
draft-ietf-ecrit-mapping-arch-00 | draft-ietf-ecrit-mapping-arch-01 | |||
Status of this Memo | Status of this Memo | |||
By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
skipping to change at page 1, line 33 | skipping to change at page 1, line 34 | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
This Internet-Draft will expire on February 8, 2007. | This Internet-Draft will expire on June 20, 2007. | |||
Copyright Notice | Copyright Notice | |||
Copyright (C) The Internet Society (2006). | Copyright (C) The Internet Society (2006). | |||
Abstract | Abstract | |||
This document describes an architecture for a global, scalable, | This document describes an architecture for a global, scalable, | |||
resilient and administratively distributed system for mapping | resilient and administratively distributed system for mapping | |||
geographic location information to URLs. The architecture | geographic location information to URLs, using the Location-to- | |||
generalizes well-known approaches found in hierarchical lookup | Service (LoST) protocol. The architecture generalizes well-known | |||
systems such as DNS. The architecture does not depend on using a | approaches found in hierarchical lookup systems such as DNS. | |||
specific protocol, but does require that protocols can summarize the | ||||
coverage region of a node. | ||||
Table of Contents | Table of Contents | |||
1. The Mapping Problem . . . . . . . . . . . . . . . . . . . . 3 | 1. The Mapping Problem . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . 3 | 3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
4. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 | 4. Overview of Architecture . . . . . . . . . . . . . . . . . . . 5 | |||
4.1 Overview of Operation . . . . . . . . . . . . . . . . . . 5 | 4.1. Minimal System Architecture . . . . . . . . . . . . . . . 6 | |||
4.2 Seekers: The Users of the Mapping System . . . . . . . . . 5 | 5. Seeker . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
4.3 Trees: Authoritative Knowledge . . . . . . . . . . . . . . 6 | 6. Resolver . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
4.4 Forest Guides: Finding the Right Tree . . . . . . . . . . 7 | 7. Trees: Maintaining Authoritative Knowledge . . . . . . . . . . 8 | |||
4.5 Resolvers: Finding Forest Guides and Caching Data . . . . 7 | 7.1. Basic Operation . . . . . . . . . . . . . . . . . . . . . 8 | |||
4.6 Minimal System Architecture . . . . . . . . . . . . . . . 7 | 7.2. Answering Queries . . . . . . . . . . . . . . . . . . . . 10 | |||
5. Seeker . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 7.3. Overlapping Coverage Regions . . . . . . . . . . . . . . . 10 | |||
6. Resolver . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 7.4. Scaling and Reliability . . . . . . . . . . . . . . . . . 11 | |||
7. Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 8. Forest Guides . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
7.1 Basic Operation . . . . . . . . . . . . . . . . . . . . . 8 | 9. Configuring Service Numbers . . . . . . . . . . . . . . . . . 12 | |||
7.2 Answering Queries . . . . . . . . . . . . . . . . . . . . 10 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | |||
7.3 Overlapping Coverage Regions . . . . . . . . . . . . . . . 11 | 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | |||
7.4 Scaling and Reliability . . . . . . . . . . . . . . . . . 11 | 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
8. Forest Guides . . . . . . . . . . . . . . . . . . . . . . . 11 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . 12 | 13.1. Normative References . . . . . . . . . . . . . . . . . . . 15 | |||
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . 13 | 13.2. Informative References . . . . . . . . . . . . . . . . . . 15 | |||
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
11.1 Normative References . . . . . . . . . . . . . . . . . . 13 | Intellectual Property and Copyright Statements . . . . . . . . . . 17 | |||
11.2 Informative References . . . . . . . . . . . . . . . . . 13 | ||||
Author's Address . . . . . . . . . . . . . . . . . . . . . . 14 | ||||
A. Configuring Emergency Dial Strings . . . . . . . . . . . . . 14 | ||||
B. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 16 | ||||
Intellectual Property and Copyright Statements . . . . . . . 17 | ||||
1. The Mapping Problem | 1. The Mapping Problem | |||
One of the central problems of providing emergency services to | It is often desirable to allow users to access a service that | |||
Internet systems is to map geographic location to a set of emergency | provides a common function, but is actually offered by a variety of | |||
services, represented by PSAPs, that can provide assistance for that | local service providers. In many of these cases, the service | |||
particular location. This is a mapping problem, where a geographic | provider chosen depends on the location of the person wishing to | |||
location is translated into a set of URIs that allow the Internet | access that service. Among the best-known public services of this | |||
system to contact an appropriate network entity. Other services may | kind is emergency calling, where emergency calls are routed to the | |||
also find such location-to-URI mappings of use. | most appropriate public safety answering point (PSAP), based on the | |||
caller's physical location. Other services, from food delivery to | ||||
directory services and roadside assistance, also follow this general | ||||
pattern. This is a mapping problem [8], where a geographic location | ||||
and a service identifier (URN) [10] is translated into a set of URIs, | ||||
the service URIs, that allow the Internet system to contact an | ||||
appropriate network entity that provides the service. | ||||
The overall emergency calling architecture separates mapping from | The caller does not need to know where the service is being provided | |||
from, and the location of the service provider may change over time, | ||||
e.g., to deal with temporary overloads, failures in the primary | ||||
service provider location or long-term changes in system | ||||
architecture. For emergency services, this problem is described in | ||||
more detail in [6]. | ||||
The overall emergency calling architecture [6] separates mapping from | ||||
placing calls or otherwise invoking the service, so the same | placing calls or otherwise invoking the service, so the same | |||
mechanism can be used to verify that a mapping exists ("address | mechanism can be used to verify that a mapping exists ("address | |||
validation") or to obtain test service URIs. | validation") or to obtain test service URIs. | |||
Mapping locations to URIs describing services requires a distributed, | Mapping locations to URIs describing services requires a distributed, | |||
scalable and highly resilient infrastructure. Authoritative | scalable and highly resilient infrastructure. Authoritative | |||
knowledge about such mappings is distributed among a large number of | knowledge about such mappings is distributed among a large number of | |||
autonomous entities that may have no direct knowledge of each other. | autonomous entities that may have no direct knowledge of each other. | |||
In this document, we describe an architecture for such a global | In this document, we describe an architecture for such a global | |||
service. It allows significant freedom to combine and split | service. It allows significant freedom to combine and split | |||
functionality among actual servers and imposes few requirements as to | functionality among actual servers and imposes few requirements as to | |||
who should operate particular services. | who should operate particular services. | |||
Besides determining the PSAP URI, end systems also need to determine | Besides determining the service URI, end systems also need to | |||
the local emergency dial strings. As discussed in Appendix A, the | determine the local service numbers. As discussed in Section 9, the | |||
architecture described here can also address that problem. | architecture described here can also address that problem. | |||
The architecture described below does not depend on a particular | The architecture described here uses the Location-to-Service | |||
mapping protocol, but naturally assumes that such protocols provide | Translation (LoST) [2] protocol, although much of the discussion | |||
certain features, such as the ability to discover the coverage region | would also apply for other mapping protocols satisfying the mapping | |||
of tree nodes. In this introduction, we describe the four | requirements [8]. | |||
participants in the system at a high level. Each role will later be | ||||
introduced in more detail. | ||||
2. Terminology | 2. Terminology | |||
In this document, the key words "MUST", "MUSTNOT", "REQUIRED", | In this document, the key words "MUST", "MUSTNOT", "REQUIRED", | |||
"SHALL", "SHALLNOT", "SHOULD", "SHOULDNOT", "RECOMMENDED", "MAY", and | "SHALL", "SHALLNOT", "SHOULD", "SHOULDNOT", "RECOMMENDED", "MAY", and | |||
"OPTIONAL" are to be interpreted as described in RFC 2119 [1] and | "OPTIONAL" are to be interpreted as described in RFC 2119 [1] and | |||
indicate requirement levels for compliant implementations. | indicate requirement levels for compliant implementations. | |||
3. Definitions | 3. Definitions | |||
[Note: The terminology below is still evolving and needs | In addition to the terms defined in [8], this document uses the | |||
refinement.] | following terms to describe LoST clients and servers: | |||
In addition to the terms defined in [11], this document uses the | ||||
following terms to describe LoST: | ||||
authoritative mapping server (AMS): Resolver that can provide the | authoritative mapping server (AMS): An authoritative mapping server | |||
authoritative answer to a particular set of queries, e.g., | (AMS) is a LoST server that can provide the authoritative answer | |||
covering a set of PIDF-LO civic labels or a particular region | to a particular set of queries, e.g., covering a set of PIDF-LO | |||
described by a geometric shape. In some (rare) cases of | civic labels or a particular region described by a geometric | |||
territorial disputes, two resolvers may be authoritative for the | shape. In some (rare) cases of territorial disputes, two | |||
same region. An AMS may redirect or forward a query to other AMS | resolvers may be authoritative for the same region. An AMS may | |||
within the tree. | redirect or forward a query to other AMS within the tree. | |||
caching resolver: A caching resolver is contacted by a seeker, | child: A child is an AMS that is authoritative for a subregion of | |||
consults a forest mapping server and then resolves the query using | another AMS. A child can in turn be parent for another AMS. | |||
an appropriate tree. | (tree node) cluster: A node cluster is a group of LoST servers that | |||
child: A child is a resolver that is authoritative for a subregion of | all share the same mapping information and return the same results | |||
a particular server. A child can in turn be parent. | for queries. Clusters provide redundancy and share query load. | |||
cluster: A cluster is a group of resolver (servers) that all share | ||||
the same mapping information and return the same results for | ||||
queries. Clusters provide redundancy and share query load. | ||||
Clusters are fully-meshed, i.e., they all exchange updates with | Clusters are fully-meshed, i.e., they all exchange updates with | |||
each other. | each other. | |||
complete: A civic mapping region is considered complete if it covers | ||||
a set of hierarchical labels in its entirety, i.e., there is no | ||||
other resolver that covers parts of the same region. (A complete | ||||
mapping may have children that cover strict subsets of this | ||||
region.) For example, a region spanning the whole country is | ||||
complete, but a region spanning only some of the streets in a city | ||||
is not. | ||||
forest guide: A forest guide has knowledge of the coverage region of | forest guide: A forest guide has knowledge of the coverage region of | |||
all trees. | all trees. | |||
mapping: A mapping is a short-hand for 'mapping from a location | mapping: A mapping is a short-hand for 'mapping from a location | |||
object to one or more URLs describing either another mapping | object to one or more URLs describing either another mapping | |||
server or the desired PSAP URLs.' | server or the desired service URLs'. | |||
parent: A mapping server that covers the region of all of its | parent: A mapping server that covers the region of all of its | |||
children. A mapping server without a parent is a root resolver. | children. A mapping server without a parent is a root resolver. | |||
peer: A resolver maintains associations other resolvers, called | resolver: A resolver is contacted by a seeker, consults a forest | |||
peers. Peers synchronize their region maps. | mapping server and then resolves the query using an appropriate | |||
seeker: The resolver, ESRP or end system requesting a mapping. | tree. | |||
region map: A data object describing a contiguous area covered by a | seeker: A seeker is a LoST client requesting a mapping. A seeker | |||
resolver, either as a subset of a civic address or a geometric | does not provide mapping services to others, but may cache results | |||
object. | for its own use. | |||
root region map: A data object describing a contiguous area covered | region map: A data object describing a contiguous area covered by an | |||
by a resolver, with no parent map. | AMS, either as a subset of a civic address or a geometric object. | |||
resolver: The server providing (part of) the mapping service. | resolver: Resolvers contact authoritative mapping servers to answer | |||
Resolvers cooperate to offer the mapping service to seekers. | queries by seekers, and may cache query results. | |||
tree: A tree consists of a hierarchy of authoritative mapping | ||||
servers. Each tree exports its coverage region to the forest | ||||
mapping servers. | ||||
4. Introduction | tree: A tree consists of a self-contained hierarchy of authoritative | |||
mapping servers. Each tree exports its coverage region to the | ||||
forest mapping servers. | ||||
4.1 Overview of Operation | 4. Overview of Architecture | |||
In short, end users of the mechanism, called seekers, contact | In short, end users of the LoST-based [2] mapping mechanism, called | |||
resolvers that cache query results and know one or more "forest | seekers, contact resolvers that cache query results and know one or | |||
guides". Forest guides know the coverage region of trees and direct | more "forest guides". Forest guides know the coverage region of | |||
queries to the node at the top of the appropriate tree. Trees | trees and direct queries to the node at the top of the appropriate | |||
maintain the authoritative mapping information. Figure 1 shows the | tree. Trees consist of authoritative mapping servers and maintain | |||
the authoritative mapping information. Figure 1 shows the | ||||
interaction of the components. | interaction of the components. | |||
/-\ /-\ +-----+ +-----+ | /-\ /-\ +-----+ +-----+ | |||
| S +******* R ********* FG *-----------------+ FG | | | S +******* R ********* FG *-----------------+ FG | | |||
\-/ \-/ | |* | | | \-/ \-/ | |* | | | |||
+--+--+ * +--+--+ | +--+--+ * +--+--+ | |||
| * | | | * | | |||
| * | | | * | | |||
| * | | | * | | |||
| * | | | * | | |||
skipping to change at page 5, line 45 | skipping to change at page 5, line 48 | |||
/ \ / \ | / \ / \ | |||
----------- ----------- | ----------- ----------- | |||
tree tree | tree tree | |||
Architecture diagram, showing seekers (S), resolvers (R), forest | Architecture diagram, showing seekers (S), resolvers (R), forest | |||
guides (FG) and trees. The star (*) line indicates the flow of the | guides (FG) and trees. The star (*) line indicates the flow of the | |||
query and responses in recursive mode. | query and responses in recursive mode. | |||
Figure 1 | Figure 1 | |||
4.2 Seekers: The Users of the Mapping System | The mapping function for the world is divided among trees. The | |||
Clients desiring mappings are known as seekers. Thus, seekers are | ||||
the end users of the mapping information. Examples of such clients | ||||
include SIP proxy servers or SIP end systems wishing to place an | ||||
emergency call. Seekers provide location information describing a | ||||
small geographic area and obtain one or more URIs describing the | ||||
service. Seekers may need to obtain this information in several | ||||
steps, i.e., they may obtain pointers to intermediate servers that | ||||
lead them closer to the final mapping. Seekers MAY cache query | ||||
results for later use, but otherwise have no obligations to other | ||||
entities in the system. | ||||
4.3 Trees: Authoritative Knowledge | ||||
The architecture assumes that authoritative knowledge about the | ||||
mapping data is distributed among many independent administrative | ||||
entities, but clients (seekers) needing the information may | ||||
potentially need to find out mapping about any spot on earth. | ||||
(Extensions to extra-terrestrial applications are left for future | ||||
exploration.) Different types of services may divide responsibility | ||||
differently and are independent of each other. Each node | ||||
participating in the system has authoritative knowledge about | ||||
mappings within its coverage region, typically, but not necessarily, | ||||
a contiguous geographic region described by a polygon in geospatial | ||||
coordinates or a set of civic address descriptors (e.g., "country = | ||||
DE, A1 = Bavaria"). These coverage regions may be aligned with | ||||
political boundaries, but that is not required. In most cases, to | ||||
avoid confusion, only one node is responsible for a particular | ||||
geographic or civic location, but the system can also deal with cases | ||||
where coverage regions overlap. | ||||
The architecture assumes that knowledge about mappings is | ||||
hierarchical, represented as a tree. Each tree node knows the | ||||
coverage region of its children and sends queries to the appropriate | ||||
server "down" the tree. There are no assumptions about the coverage | ||||
region of a tree. For example, a tree could cover a single city, or | ||||
a state/province or a whole country. Nodes within a tree need to | ||||
loosely coordinate their operation, but they do not need to be | ||||
operated by the same administrator. | ||||
Thus, the mapping function for the world is divided among trees. The | ||||
collection of trees may not cover the whole world and trees are added | collection of trees may not cover the whole world and trees are added | |||
and removed as the organization of mapping data changes. We call the | and removed as the organization of mapping data changes. We call the | |||
collection of trees a forest. There is no limit on the number of | collection of trees a forest. There is no limit on the number of | |||
trees within the forest, but the author pictures that the number of | trees within the forest, but the author guesses that the number of | |||
trees will likely be somewhere between a few hundred and a few | trees will likely be somewhere between a few hundred and a few | |||
thousand. The lower estimate would apply if each country operates | thousand. The lower estimate would apply if each country operates | |||
one tree. We assume that tree coverage information changes | one tree. We assume that tree coverage information changes | |||
relatively slowly, on the order of a few changes per year per tree, | relatively slowly, on the order of less than one change per year per | |||
although the system imposes no specific threshold. (To be sure, | tree, although the system imposes no specific threshold. Tree | |||
information within a tree is likely to change much more frequently.) | coverage would change, for example, if a country is split or merged | |||
or if two trees for different regions become part of a larger tree. | ||||
4.4 Forest Guides: Finding the Right Tree | (On the other hand, information within a tree is likely to change | |||
much more frequently.) | ||||
Unfortunately, just having trees covering various regions of the | ||||
world is not sufficient as a client of the mapping protocol would not | ||||
generally be able to keep track of all the trees in the forest. To | ||||
facilitate orientation among the trees, we introduce a "forest | ||||
guide". It is a server that keeps track of the coverage regions of | ||||
the trees. For scalability and reliability, there will need to be a | ||||
large number of forest guides, all providing the same information. A | ||||
seeker can contact any forest guide and will then be directed to the | ||||
right tree or, rarely, set of trees. | ||||
4.5 Resolvers: Finding Forest Guides and Caching Data | ||||
A seeker can contact a forest guide directly, but may not be able to | ||||
easily locate such a guide. In addition, seekers in the same | ||||
geographic area may already have asked the same question. Thus, it | ||||
makes sense to introduce another entity, a resolver, that knows how | ||||
to contact one or more forest guides and caches earlier queries to | ||||
accelerate the response to mapping queries. | ||||
4.6 Minimal System Architecture | 4.1. Minimal System Architecture | |||
It is possible to build a functioning system consisting only of | It is possible to build a functioning system consisting only of | |||
seekers and resolvers if these resolvers have other means of | seekers and resolvers if these resolvers have other means of | |||
obtaining mapping data. For example, a company acting as a mapping | obtaining mapping data. For example, a company acting as a mapping | |||
service provider could collect mapping records manually and make them | service provider could collect mapping records manually and make them | |||
available to their customers through the resolver. While feasible as | available to their customers through the resolver. While feasible as | |||
a starting point, such an architecture is unlikely to scale globally. | a starting point, such an architecture is unlikely to scale globally. | |||
Among other problems, it becomes very hard for providers of | Among other problems, it becomes very hard for providers of | |||
authoritative data to ensure that all such providers have up-to-date | authoritative data to ensure that all such providers have up-to-date | |||
information. If new trees are set up, they would somehow make | information. If new trees are set up, they would somehow make | |||
themselves known to these providers. Such a mechanism would be | themselves known to these providers. Such a mechanism would be | |||
similar to the old "hosts.txt" mechanism for distributing host | similar to the old "hosts.txt" mechanism for distributing host | |||
information in the early Internet. | information in the early Internet before DNS was developed. | |||
Below, we describe the operation of each component in more detail. | ||||
5. Seeker | 5. Seeker | |||
Seekers are consumers of mapping data and originate queries. Seekers | Clients desiring location-to-service mappings are known as seekers. | |||
do not answer queries. They contact either forest guides or | Seekers are consumers of mapping data and originate LoST queries as | |||
resolvers to find the appropriate tree that can authoritatively | LoST protocol clients. Seekers do not answer LoST queries. They | |||
answer their questions. As noted in the introduction, seekers can be | contact either forest guides or resolvers to find the appropriate | |||
tree that can authoritatively answer their questions. Seekers can be | ||||
end systems or call routing entities such as SIP proxy servers. | end systems or call routing entities such as SIP proxy servers. | |||
Seekers may need to obtain mapping information in several steps, | ||||
i.e., they may obtain pointers to intermediate servers that lead them | ||||
closer to the final mapping. Seekers MAY cache query results for | ||||
later use, but otherwise have no obligations to other entities in the | ||||
system. | ||||
Seekers need to be able to identify appropriate resolvers. The | Seekers need to be able to identify appropriate resolvers. The | |||
mechanism for providing seekers with that information is likely to | mechanism for providing seekers with that information is likely to | |||
differ depending on who operates the resolvers. For example, if the | differ depending on who operates the resolvers. For example, if the | |||
voice service provider operates the resolver, it might include the | voice service provider operates the resolver, it might include the | |||
location of the resolver in the SIP configuration information it | location of the resolver in the SIP configuration information it | |||
distributes to its user agents. An Internet access provider might | distributes to its user agents. An Internet access provider or | |||
provide a pointer to a resolver via DHCP. In an ad-hoc or zero- | enterprise can provide a pointer to a resolver via DHCP [5]. In an | |||
configuration environment, appropriate service directories may | ad-hoc or zero-configuration environment, appropriate service | |||
advertise resolvers. | directories may advertise resolvers. | |||
For emergency calling, seekers could issue queries at boot time, | ||||
periodically when cached information expires or only when placing an | ||||
emergency call. It is probably unnecessary to continuously update | ||||
mapping information for seekers representing a small user population, | ||||
e.g., a single phone or residential SIP proxy. | ||||
Like other entities in the system, seekers can cache responses. This | Like other entities in the system, seekers can cache responses. This | |||
is particularly useful if the response describes the result for a | is particularly useful if the response describes the result for a | |||
region, not just a point. For example, for mobile nodes, seekers | civic or geospatial region, rather than just a point. For example, | |||
would only have to update their resolution results when they leave | for mobile nodes, seekers would only have to update their resolution | |||
the coverage area of a PSAP and can avoid polling for this | results when they leave the coverage area of a service provider, such | |||
information. This will likely be of particular benefit for seekers | as a PSAP for emergency services, and can avoid repeatedly polling | |||
for this information whenever the location information changes | ||||
slightly. (Mobile nodes would also need a location update mechanism | ||||
that is either local or triggered when they leave the current service | ||||
area.) This will likely be of particular benefit for seekers | ||||
representing a large user population, such as the outbound proxy in a | representing a large user population, such as the outbound proxy in a | |||
corporate network. For example, rather than having to query | corporate network. For example, rather than having to query | |||
separately for each cubicle, information provided by the | separately for each cubicle, information provided by the | |||
authoritative node may indicate that the whole campus is covered by | authoritative node may indicate that the whole campus is covered by | |||
the same PSAP. | the same service provider. | |||
Given this caching mechanism and cache lifetimes of several days, | ||||
most mobile users traveling to and from work would only need to | ||||
obtain service area information along their commute route once during | ||||
each cache lifetime. | ||||
6. Resolver | 6. Resolver | |||
Resolvers mediate between seekers and forest guides. Their primary | A seeker can contact a forest guide (see below) directly, but may not | |||
role is to avoid having seekers find forest guides on their own. | be able to easily locate such a guide. In addition, seekers in the | |||
Unlike forest guides, resolvers do not store worldwide coverage maps, | same geographic area may already have asked the same question. Thus, | |||
but they may cache regions returned as part of query results. | it makes sense to introduce another entity, known as a resolver in | |||
the architecture, that knows how to contact one or more forest guides | ||||
and caches earlier queries to accelerate the response to mapping | ||||
queries and to improve the resiliency of the system. | ||||
As noted earlier, seekers can contact forest guides directly. From a | From a protocol perspective, a resolver acts in the same way as a | |||
protocol perspective, a resolver acts in the same way as a seeker, | seeker, except that it knows one or more forest guides. | |||
except that it knows one or more forest guide. | ||||
ISPs or VSPs would include the address of a suitable resolver in | ISPs or VSPs would include the address of a suitable resolver in | |||
their configuration information, i.e., in SIP configuration for a VSP | their configuration information, i.e., in SIP configuration for a VSP | |||
or DHCP for an ISP. Resolvers are manually configured with the name | or DHCP [5] for an ISP. Resolvers are manually configured with the | |||
of one or more forest guides. | name of one or more forest guides. | |||
7. Trees | 7. Trees: Maintaining Authoritative Knowledge | |||
7.1 Basic Operation | 7.1. Basic Operation | |||
As noted in the introduction, trees are the authoritative source of | The architecture assumes that authoritative knowledge about the | |||
mapping data. Each tree can map a location described by civic and | mapping data is distributed among many independent administrative | |||
geographic coordinates for one type of service (such as 'police' or | entities, but clients (seekers) needing the information may | |||
'fire'), although nothing prevents re-using the same tree for | potentially need to find out mapping about any spot on earth. | |||
multiple different services. The collection of trees for one service | (Extensions to extra-terrestrial applications are left for future | |||
is known as a forest. | exploration.) Information is organized hierarchically, in a tree, | |||
with tree nodes representing larger geographic areas pointing to | ||||
several child nodes each representing a smaller area. Each tree node | ||||
can be a cluster of LoST servers that all contain the same | ||||
information and back up each other. | ||||
Each tree can map a location described by civic and geographic | ||||
coordinates for one type of service (such as 'sos.police', 'sos.fire' | ||||
or 'counseling'), although nothing prevents re-using the same tree | ||||
for multiple different services. The collection of all trees for one | ||||
service is known as a forest. | ||||
Each tree node cluster knows the coverage region of its children and | ||||
sends queries to the appropriate server "down" the tree. Each such | ||||
tree node knows authoritatively about the service mappings for a | ||||
particular region, typically, but not necessarily, contiguous. The | ||||
region can be described by a polygon in geospatial coordinates or a | ||||
set of civic address descriptors (e.g., "country = DE, A1 = | ||||
Bavaria"). These coverage regions may be aligned with political | ||||
boundaries, but that is not required. In most cases, to avoid | ||||
confusion, only one cluster is responsible for a particular | ||||
geographic or civic location, but the system can also deal with cases | ||||
where coverage regions overlap. | ||||
There are no assumptions about the coverage region of a tree as a | ||||
whole. For example, a tree could cover a single city, or a state/ | ||||
province or a whole country. Nodes within a tree need to loosely | ||||
coordinate their operation, but they do not need to be operated by | ||||
the same administrator. | ||||
The tree architecture is roughly similar to the domain name system | The tree architecture is roughly similar to the domain name system | |||
(DNS), except that delegation is not by label, but rather by region. | (DNS), except that delegation is not by label, but rather by region. | |||
(Naturally, DNS does not have the notion of forest guides.) One can | (Naturally, DNS does not have the notion of forest guides.) One can | |||
also draw analogies to LDAP, when deployed in a distributed fashion. | also draw analogies to LDAP, when deployed in a distributed fashion. | |||
Tree nodes maintain two types of information, namely coverage regions | Tree nodes maintain two types of information, namely coverage regions | |||
and mappings. Coverage regions describe the region served by a child | and mappings. Coverage regions describe the region served by a child | |||
node in the tree and point to a child node for further resolution. | node in the tree and point to a child node for further resolution. | |||
Mappings contain an actual service URI leading to a PSAP or another | Mappings contain an actual service URI leading to a service provider | |||
signaling server representing a group of PSAPs. To provide | or another signaling server representing a group of service | |||
redundancy, a mapping entry can also contain multiple URLs, | providers, which in turn might further route signaling requests to | |||
indicating both primary and backup services. For example, it might | more servers covering smaller regions. | |||
contain both a local PSAP and a state agency that takes over if the | ||||
local PSAP fails. Unlike DNS NAPTR and SRV facilities, these can | ||||
survive DNS failures and thus provide an additional, complementary | ||||
mechanism to introduce redundancy services. | ||||
Leaf nodes, i.e., nodes without children, only maintain mappings, | Leaf nodes, i.e., nodes without children, only maintain mappings, | |||
while tree nodes above the leaf nodes only maintain coverage regions. | while tree nodes above the leaf nodes only maintain coverage regions. | |||
An example of a leaf node entry is shown below, indicating how | An example for emergency services of a leaf node entry is shown | |||
queries for three towns are directed to different PSAPs. | below, indicating how queries for three towns are directed to | |||
different PSAPs. Queries for Englewood are directed to another LoST | ||||
server instead. | ||||
country A1 A2 A3 resource | country A1 A2 A3 resource | |||
US NJ Bergen Leonia sip:psap@leonianj.gov | US NJ Bergen Leonia sip:psap@leonianj.gov | |||
US NJ Bergen Fort Lee sip:emergency@fortleenj.org | US NJ Bergen Fort Lee sip:emergency@fortleenj.org | |||
US NJ Bergen Teaneck sip:police@teanecknjgov.org | US NJ Bergen Teaneck sip:police@teanecknjgov.org | |||
US NJ Bergen Englewood lost:englewoodnj.gov | ||||
.... | .... | |||
Coverage regions are described by sets of polygons enclosing | Coverage regions are described by sets of polygons enclosing | |||
contiguous geographic areas or by descriptors enumerating groups of | contiguous geographic areas or by descriptors enumerating groups of | |||
civic locations. | civic locations. For the former, the LoST server performs a point- | |||
in-polygon operation to find the polygon that contains the query | ||||
point. (More complicated geometric matching algorithms may be added | ||||
in the future.) | ||||
For example, a state-level tree node for New Jersey in the United | For example, a state-level tree node for New Jersey in the United | |||
States may contain the following coverage region entries, indicating | States may contain the following coverage region entries, indicating | |||
that any query matching a location in Bergen County, for example, | that any query matching a location in Bergen County, for example, | |||
would be redirected or forwarded to the node located at | would be redirected or forwarded to the node located at | |||
bergen.nj.example.org. There is no requirement that all child nodes | bergen.nj.example.org. There is no requirement that all child nodes | |||
cover the same level within the civic hierarchy. As an example, in | cover the same level within the civic hierarchy. As an example, in | |||
the table below, the city of Newark has decided to be listed directly | the table below, the city of Newark has decided to be listed directly | |||
within the state node, rather than through the county. Longest-match | within the state node, rather than through the county. Longest-match | |||
rules allow partial coverage, so that for queries for all other towns | rules allow partial coverage, so that for queries for all other towns | |||
within Essex county would be directed to the county node for further | within Essex county would be directed to the county node for further | |||
resolution. In the example below, we use a fictitious URL scheme, | resolution. | |||
'rp', to identify the resolution protocol. In actual use, each entry | ||||
would have one or more URLs pointing to resolution servers for | ||||
different protocols. Each entry may also contain multiple URLs for | ||||
the same protocol to indicate primary and backup services. | ||||
C A1 A2 A3 resource | C A1 A2 A3 resource | |||
US NJ Atlantic * rp://atlantic.nj.example.org/sos | US NJ Atlantic * lost:atlantic.nj.example.org/sos | |||
US NJ Bergen * rp://bergen.nj.example.org/sos | US NJ Bergen * lost:bergen.nj.example.org/sos | |||
US NJ Monmouth * rp://monmouth.nj.example.org/sos | US NJ Monmouth * lost:monmouth.nj.example.org/sos | |||
US NJ Essex * rp://essex.nj.example.org/sos | US NJ Essex * lost:essex.nj.example.org/sos | |||
US NJ Essex Newark rp//newark.example.com/sos | US NJ Essex Newark lost:newark.example.com/sos | |||
.... | .... | |||
Thus, there is no substantial difference between coverage region and | Thus, there is no substantial difference between coverage region and | |||
mapping data. The only difference is that coverage regions return | mapping data. The only difference is that coverage regions return | |||
mapping protocol URLs, while mapping entries contain PSAP URLs. | LoST URLs, while mapping entries contain service URLs. Mapping | |||
Mapping entries may be specific down to the house or floor level or | entries may be specific down to the house or floor level or may only | |||
may only contain street-level information. For example, in the | contain street-level information. For example, in the United States, | |||
United States, civic mapping data is generally limited to address | civic mapping data for emergency services is generally limited to | |||
ranges ("MSAG data"), so initial mapping databases may only contain | address ranges ("MSAG data"), so initial mapping databases may only | |||
street-level information. | contain street-level information. | |||
To automate operations, a suitable mapping protocol would thus need | To automate the maintenance of trees, the LoST synchronization | |||
to be able to query nodes for their coverage region. In the example | mechanism [11] allows nodes to query other nodes for mapping data and | |||
above, the state-run node would query the county nodes and thus | coverage regions. In the example above, the state-run node would | |||
aggregate the coverage data. Conversely, nodes could also contact | query the county nodes and use the records returned to distribute | |||
their parent nodes. There is some benefit of child nodes contacting | incoming LoST queries to the county nodes. Conversely, nodes could | |||
their parents, as this allows changes in coverage region to propagate | also contact their parent nodes to tell them about their coverage | |||
region. There is some benefit of child nodes contacting their | ||||
parents, as this allows changes in coverage region to propagate | ||||
quickly up the tree. | quickly up the tree. | |||
7.2 Answering Queries | 7.2. Answering Queries | |||
Within a tree, the basic operation is straightforward: A query | Within a tree, the basic operation is straightforward: A query | |||
reaches the root of the tree. That node determines which coverage | reaches the root of the tree. That node determines which coverage | |||
region matches that request and forwards the request to the URL | region matches that request and forwards the request to the URL | |||
indicated in the coverage region record, returning a response to the | indicated in the coverage region record, returning a response to the | |||
querier when it in turns receives an answer (recursion). | querier when it in turns receives an answer (recursion). | |||
Alternatively, the node returns the URL of that child node to the | Alternatively, the node returns the URL of that child node to the | |||
querier. This process applies to each node, i.e., a node does not | querier (iteration). This process applies to each node, i.e., a node | |||
need to know whether the original query came from a parent node, a | does not need to know whether the original query came from a parent | |||
seeker, a forest guide or a resolver. | node, a seeker, a forest guide or a resolver. | |||
For efficiency, a node MAY return region information instead of a | For efficiency, a node MAY return region information instead of a | |||
point answer. Thus, instead of returning that a particular | point answer. Thus, instead of returning that a particular | |||
geospatial coordinate maps to a service or mapping URL, it MAY return | geospatial coordinate maps to a service or mapping URL, it MAY return | |||
a polygon indicating the region for which this answer would be | a polygon indicating the region for which this answer would be | |||
returned, along with expiration time (time-to-live) information. The | returned, along with expiration time (time-to-live) information. The | |||
querying node can then cache this information for future use. | querying node can then cache this information for future use. | |||
For civic coordinates, trees may not include individual entries for | For civic coordinates, trees may not include individual mapping | |||
each floor, house number or street. To avoid giving the wrong | records for each floor, house number or street. To avoid giving the | |||
indication that a particular location has been found valid, the | wrong indication that a particular location has been found valid, | |||
protocol SHOULD return an indication which parts of the location | LoST can indicate which parts of the location information have | |||
information have actually been mapped. | actually been used to look up a mapping. | |||
7.3 Overlapping Coverage Regions | 7.3. Overlapping Coverage Regions | |||
In some cases, coverage regions may overlap, either because there is | In some cases, coverage regions may overlap, either because there is | |||
a dispute as to who handles a particular geographic region or, more | a dispute as to who handles a particular geographic region or, more | |||
likely, since the resolution of the coverage map may not be | likely, since the resolution of the coverage map may not be | |||
sufficiently high. For example, a node may "shave some corners" off | sufficiently high. For example, a node may "shave some corners" off | |||
its polygon, so that its coverage region appears to overlap with its | its polygon, so that its coverage region appears to overlap with its | |||
geographic neighbor. For civic coordinates, houses on the same | geographic neighbor. For civic coordinates, houses on the same | |||
street may be served by different PSAPs. The mapping mechanism needs | street may be served by different PSAPs. The mapping mechanism needs | |||
to work even if a coverage map is imprecise or if there are disputes | to work even if a coverage map is imprecise or if there are disputes | |||
about coverage. | about coverage. | |||
skipping to change at page 11, line 31 | skipping to change at page 11, line 19 | |||
The solution for overlapping coverage regions is relatively simple. | The solution for overlapping coverage regions is relatively simple. | |||
If a query matches multiple coverage regions, the node returns all | If a query matches multiple coverage regions, the node returns all | |||
URLs, in redirection mode, or queries both children, if in recursive | URLs, in redirection mode, or queries both children, if in recursive | |||
mode. If the overlapping coverage is caused by imprecise coverage | mode. If the overlapping coverage is caused by imprecise coverage | |||
maps, only one will return a result and the others will return an | maps, only one will return a result and the others will return an | |||
error indication. If the particular location is disputed territory, | error indication. If the particular location is disputed territory, | |||
the response will contain all answers, leaving it to the querier to | the response will contain all answers, leaving it to the querier to | |||
choose the preferred solution or trying to contact all services in | choose the preferred solution or trying to contact all services in | |||
turn. | turn. | |||
7.4 Scaling and Reliability | 7.4. Scaling and Reliability | |||
Since they provide authoritative information, tree nodes need to be | Since they provide authoritative information, tree nodes need to be | |||
highly reliable. Thus, while this document refers to tree nodes as | highly reliable. Thus, while this document refers to tree nodes as | |||
logical entities within the tree, an actual implementation would | logical entities within the tree, an actual implementation would | |||
likely replicate node information across several servers, forming a | likely replicate node information across several servers, forming a | |||
cluster. Each such node would have the same information. Standard | cluster. Each such node would have the same information. Standard | |||
techniques such as DNS SRV records can be used to select one of the | techniques such as DNS SRV records can be used to select one of the | |||
servers. Replication within the cluster can use any suitable | servers. Replication within the cluster can use any suitable | |||
protocol mechanism, but a standardized incremental update mechanism | protocol mechanism, but a standardized incremental update mechanism | |||
makes it easier to spread those nodes across multiple independently- | makes it easier to spread those nodes across multiple independently- | |||
administered locations. The techniques developed for meshed SLP [7] | administered locations. The techniques developed for meshed SLP [3] | |||
are applicable here. | are applicable here. | |||
8. Forest Guides | 8. Forest Guides | |||
Forest guides distribute records describing the coverage region for | Unfortunately, just having trees covering various regions of the | |||
trees. For authenticity, the records are digitally signed. They are | world is not sufficient as a client of the mapping protocol would not | |||
generally be able to keep track of all the trees in the forest. To | ||||
facilitate orientation among the trees, we introduce a "forest | ||||
guide". It is a server that keeps track of the coverage regions of | ||||
the trees. For scalability and reliability, there will need to be a | ||||
large number of forest guides, all providing the same information. A | ||||
seeker can contact any forest guide and will then be directed to the | ||||
right tree or, rarely, set of trees. Forest guides do not provide | ||||
mapping information themselves. | ||||
Introducing forest guides avoids creating a global root, with the | ||||
attendant management and control issues. Trees can also restrict | ||||
their cooperation to parts of the information. For example, if | ||||
country C does not recognize country T, C can propagate tree regions | ||||
for all but T. | ||||
For authenticity, the records SHOULD be digitally signed. They are | ||||
used by resolvers and possibly seekers to find the appropriate tree | used by resolvers and possibly seekers to find the appropriate tree | |||
for a particular area. All forest guides should have consistent | for a particular area. All forest guides should have consistent | |||
information, i.e., a collection of all the coverage regions of all | information, i.e., a collection of all the coverage regions of all | |||
the trees. A tree node at the top of a tree can contact any forest | the trees. A tree node at the top of a tree can contact any forest | |||
guide and inject new coverage region information into the system. | guide and inject new coverage region information into the system. | |||
One would expect that each tree announces its coverage to more than | One would expect that each tree announces its coverage to more than | |||
one forest guide. Each forest guide peers with one or more other | one forest guide. Each forest guide peers with one or more other | |||
guides and distributes new coverage region announcements to all other | guides and distributes new coverage region announcements to all other | |||
guides. | guides. | |||
skipping to change at page 12, line 27 | skipping to change at page 12, line 32 | |||
voice service providers, Internet access providers, dedicated | voice service providers, Internet access providers, dedicated | |||
services providers and enterprises. | services providers and enterprises. | |||
As in routing, peering with other forest guides implies a certain | As in routing, peering with other forest guides implies a certain | |||
amount of trust in the peer. Thus, peering is likely to require some | amount of trust in the peer. Thus, peering is likely to require some | |||
negotiation between the administering parties concerned, rather than | negotiation between the administering parties concerned, rather than | |||
automatic configuration. The mechanism itself does not imply a | automatic configuration. The mechanism itself does not imply a | |||
particular policy as to who gets to advertise a particular coverage | particular policy as to who gets to advertise a particular coverage | |||
region. | region. | |||
9. Security Considerations | 9. Configuring Service Numbers | |||
The section below is not directly related to the problem of | ||||
determining service location, but is an instance of the more generic | ||||
problem solved by this architecture, namely mapping location | ||||
information to service-related parameters, such as service numbers. | ||||
For the foreseeable future, some user devices and software will | ||||
emulate the user interface of a telephone, i.e., the only way to | ||||
enter call address information is via a 12-button keypad with digits | ||||
and the asterisk and hash symbol. These devices use service numbers | ||||
to identify services. The best-known examples of service numbers are | ||||
emergency numbers, such as 9-1-1 in North America and 1-1-2 in | ||||
Europe. However, many other public and private service numbers have | ||||
been defined, ranging in the United States from 3-1-1 for non- | ||||
emergency local government services to 4-1-1 for directory assistance | ||||
to various "800" numbers for anything from roadside assistance to | ||||
legal services to home-delivery food. | ||||
Such service numbers are likely to be used until essentially all | ||||
communication devices feature IP connectivity and an alphanumeric | ||||
keyboard. Unfortunately, for emergency services, more than 60 | ||||
emergency numbers are in use throughout the world, with many of those | ||||
numbers serving non-emergency purposes elsewhere, e.g., identifying | ||||
repair or directory services. Countries also occasionally change | ||||
their emergency numbers to conform to regional agreements. An | ||||
example is the introduction of "1-1-2" for countries in Europe. | ||||
Thus, a system that allows devices to be used internationally to | ||||
place calls needs to allow devices to discover service numbers | ||||
automatically. In the Internet-based system proposed here [6], these | ||||
numbers are strictly used as a human user interface mechanism and are | ||||
generally not visible in call signaling messages, which carry the | ||||
service URN [10] instead. | ||||
For the best user experience, systems should be able to discover two | ||||
sets of service numbers, namely those used in the user's home country | ||||
and in the country the user is currently visiting. The user is most | ||||
likely to remember the former, but a companion borrowing a device in | ||||
an emergency, say, may only know the local emergency numbers. | ||||
Determining home and local service numbers is a configuration | ||||
problem, but unfortunately, existing configuration mechanisms are | ||||
ill-suited for this purpose. For example, a DHCP server might be | ||||
able to provide the local service numbers, but not the home numbers. | ||||
When virtual private networks (VPNs) are used, even DHCP may provide | ||||
numbers of uncertain origin, as a user may contact to the home | ||||
network or some local branch office of the corporate network. | ||||
Similarly, SIP configuration [4] would be able to provide the numbers | ||||
valid at the location of the SIP service provider, but even a SIP | ||||
service provider with national footprint may serve customers that are | ||||
visiting any number of other countries. | ||||
Also, while initially there are likely to be only a few service | ||||
numbers, e.g., for emergency services, the LoST architecture can be | ||||
used to support other services, as noted. Configuring every local | ||||
DHCP or SIP configuration server with that information is likely to | ||||
be error-prone and tedious. | ||||
For these reasons, the LoST-based mapping architecture supports | ||||
providing service numbers to end systems based on caller location. | ||||
The mapping operation is almost exactly the same as for determining | ||||
the service URL. The mapping can be obtained either along with | ||||
determining the service URL or separately. The major difference | ||||
between the two requests is that service numbers often have much | ||||
larger regions of validity than the service URL itself. Also, the | ||||
service number is likely to be valid longer than the service URL. | ||||
Finally, an end system may want to look up the service number for its | ||||
home location, not just the current (visited) location. | ||||
10. Security Considerations | ||||
Security considerations for emergency services mapping are discussed | ||||
in [9], while [10] discusses issues related to the service URN, one | ||||
of the inputs into the mapping protocol. LoST-related security | ||||
considerations are naturally discussed in the LoST [2] specification. | ||||
The architecture addresses the following security issues, usually | The architecture addresses the following security issues, usually | |||
through the underlying transport security associations: | through the underlying transport security associations: | |||
Server impersonation: Seekers, cluster members and peers can assure | Server impersonation: Seekers, resolvers, fellow tree guides and | |||
themselves of the identity of the remote party by using the | cluster members can assure themselves of the identity of the | |||
facilities in the underlying channel security mechanism, such as | remote party by using the facilities in the underlying channel | |||
TLS. | security mechanism, such as TLS. | |||
Query or query result corruption: To avoid that an attacker can | Query or query result corruption: To avoid that an attacker can | |||
modify the query or its result, the architecture RECOMMENDS the | modify the query or its result, the architecture RECOMMENDS the | |||
use of channel security, such as TLS. Results SHOULD also be | use of channel security, such as TLS. Results SHOULD also be | |||
digitally signed, e.g., using XML digital signatures. Note, | digitally signed, e.g., using XML digital signatures. Note, | |||
however, that simple origin assertion may not provide the end | however, that simple origin assertion may not provide the end | |||
system with enough useful information as it has no good way of | system with enough useful information as it has no good way of | |||
knowing that a particular signer is authorized to represent a | knowing that a particular signer is authorized to represent a | |||
particular geographic area. It might be necessary that certain | particular geographic area. It might be necessary that certain | |||
well-known Certificate Authorities (CAs) vet sources of mapping | well-known Certificate Authorities (CAs) vet sources of mapping | |||
information and provide special certificates for that purpose. In | information and provide special certificates for that purpose. In | |||
skipping to change at page 13, line 21 | skipping to change at page 14, line 49 | |||
Determining who can speak for a particular region is inherently | Determining who can speak for a particular region is inherently | |||
difficult unless there is a small set of authorizing entities that | difficult unless there is a small set of authorizing entities that | |||
participants in the mapping architecture can trust. Receiving | participants in the mapping architecture can trust. Receiving | |||
systems should be particularly suspicious if an existing region | systems should be particularly suspicious if an existing region | |||
map is replaced with a new one with a new mapping address. In | map is replaced with a new one with a new mapping address. In | |||
many cases, trust will be mediated: A seeker will have a trust | many cases, trust will be mediated: A seeker will have a trust | |||
relationship with a resolver. The resolver, in turn, will contact | relationship with a resolver. The resolver, in turn, will contact | |||
a trusted forest guide. | a trusted forest guide. | |||
Additional threats that need to be addressed by operational measures | Additional threats that need to be addressed by operational measures | |||
include denial-of-service attacks. | include denial-of-service attacks [7]. | |||
10. IANA Considerations | 11. IANA Considerations | |||
Since this document describes an architecture, not a protocol, it | Since this document describes an architecture, not a protocol, it | |||
does not ask IANA to register any protocol constants. | does not ask IANA to register any protocol constants. | |||
11. References | 12. Acknowledgments | |||
11.1 Normative References | Richard Barnes, Jong Yul Kim, Andrew Newton, Murugaraj Shanmugam, | |||
Richard Stastny, and Hannes Tschofenig provided helpful comments. | ||||
13. References | ||||
13.1. Normative References | ||||
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement | [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement | |||
Levels", BCP 14, RFC 2119, March 1997. | Levels", BCP 14, RFC 2119, March 1997. | |||
[2] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, | [2] Hardie, T., "LoST: A Location-to-Service Translation Protocol", | |||
March 1997. | draft-ietf-ecrit-lost-02 (work in progress), October 2006. | |||
[3] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for | 13.2. Informative References | |||
specifying the location of services (DNS SRV)", RFC 2782, | ||||
February 2000. | ||||
[4] Peterson, J., "A Presence-based GEOPRIV Location Object Format", | [3] Zhao, W., Schulzrinne, H., and E. Guttman, "Mesh-enhanced | |||
RFC 4119, December 2005. | Service Location Protocol (mSLP)", RFC 3528, April 2003. | |||
[5] Rosen, B., "Dialstring parameter for the Session Initiation | [4] Petrie, D., "A Framework for Session Initiation Protocol User | |||
Protocol Uniform Resource Identifier", | Agent Profile Delivery", draft-ietf-sipping-config-framework-09 | |||
draft-rosen-iptel-dialstring-04 (work in progress), June 2006. | (work in progress), October 2006. | |||
11.2 Informative References | [5] Schulzrinne, H., "A Dynamic Host Configuration Protocol (DHCP) | |||
based Location-to-Service Translation Protocol (LoST) | ||||
Discovery Procedure", draft-ietf-ecrit-dhc-lost-discovery-00 | ||||
(work in progress), December 2006. | ||||
[6] Guttman, E., Perkins, C., Veizades, J., and M. Day, "Service | [6] Rosen, B., "Framework for Emergency Calling in Internet | |||
Location Protocol, Version 2", RFC 2608, June 1999. | Multimedia", draft-ietf-ecrit-framework-00 (work in progress), | |||
October 2006. | ||||
[7] Zhao, W., Schulzrinne, H., and E. Guttman, "Mesh-enhanced | [7] Rosen, B. and J. Polk, "Best Current Practice for | |||
Service Location Protocol (mSLP)", RFC 3528, April 2003. | Communications Services in support of Emergency Calling", | |||
draft-ietf-ecrit-phonebcp-00 (work in progress), October 2006. | ||||
[8] Newton, A. and M. Sanz, "IRIS: The Internet Registry | [8] Schulzrinne, H. and R. Marshall, "Requirements for Emergency | |||
Information Service (IRIS) Core Protocol", RFC 3981, | Context Resolution with Internet Technologies", | |||
January 2005. | draft-ietf-ecrit-requirements-12 (work in progress), | |||
August 2006. | ||||
[9] Krochmal, M. and S. Cheshire, "DNS-Based Service Discovery", | [9] Taylor, T., "Security Threats and Requirements for Emergency | |||
draft-cheshire-dnsext-dns-sd-03 (work in progress), July 2005. | Call Marking and Mapping", draft-ietf-ecrit-security-threats-03 | |||
(work in progress), July 2006. | ||||
[10] Petrie, D., "A Framework for Session Initiation Protocol User | [10] Schulzrinne, H., "A Uniform Resource Name (URN) for Services", | |||
Agent Profile Delivery", draft-ietf-sipping-config-framework-08 | draft-ietf-ecrit-service-urn-05 (work in progress), | |||
(work in progress), March 2006. | August 2006. | |||
[11] Schulzrinne, H. and R. Marshall, "Requirements for Emergency | [11] Schulzrinne, H., "Synchronizing Location-to-Service Translation | |||
Context Resolution with Internet Technologies", | (LoST) Servers", draft-schulzrinne-ecrit-lost-sync-00 (work in | |||
draft-ietf-ecrit-requirements-10 (work in progress), June 2006. | progress), November 2006. | |||
Author's Address | Author's Address | |||
Henning Schulzrinne | Henning Schulzrinne | |||
Columbia University | Columbia University | |||
Department of Computer Science | Department of Computer Science | |||
450 Computer Science Building | 450 Computer Science Building | |||
New York, NY 10027 | New York, NY 10027 | |||
US | US | |||
Phone: +1 212 939 7004 | Phone: +1 212 939 7004 | |||
Email: hgs+ecrit@cs.columbia.edu | Email: hgs+ecrit@cs.columbia.edu | |||
URI: http://www.cs.columbia.edu | URI: http://www.cs.columbia.edu | |||
Appendix A. Configuring Emergency Dial Strings | Full Copyright Statement | |||
The section below is not directly related to the problem of | ||||
determining service location, but is an instance of the more generic | ||||
problem solved by this architecture, namely mapping location | ||||
information to URLs. | ||||
For the foreseeable future, some user devices and software will | ||||
emulate the user interface of a telephone, i.e., the only way to | ||||
enter call address information is via a 12-button keypad with digits | ||||
and the asterisk and hash symbol. Also, emergency numbers are likely | ||||
to be used until essentially all communication devices feature IP | ||||
connectivity and an alphanumeric keyboard. Unfortunately, more than | ||||
60 emergency numbers are in use throughout the world, with many of | ||||
those numbers serving non-emergency purposes elsewhere, e.g., | ||||
identifying repair or directory services. Countries also | ||||
occasionally change their emergency numbers to conform to regional | ||||
agreements. An example is the introduction of 112 for countries in | ||||
Europe. | ||||
Thus, a system that allows devices to be used internationally to | ||||
place emergency calls needs to allow devices to discover emergency | ||||
numbers automatically. In the system proposed, these numbers are | ||||
strictly of local significance and are generally not visible in call | ||||
signaling messages. | ||||
For simplicity of presentation, this section assumes that emergency | ||||
numbers are valid throughout a country, rather than, say, be | ||||
restricted to a particular city. This appears likely to be true in | ||||
countries that have sufficiently advanced infrastructure to | ||||
contemplate deploying IP-based emergency calling solutions. In | ||||
addition, the solution proposed also works if certain countries do | ||||
not use a national emergency number. There is no requirement that a | ||||
country uses a single emergency number for all emergency services, | ||||
such as fire, police, or rescue. | ||||
For the best user experience, systems should be able to discover two | ||||
sets of numbers, namely those used in the user's home country and in | ||||
the country the user is currently visiting. The user is most likely | ||||
to remember the former, but a companion borrowing a device in an | ||||
emergency may only know the local emergency numbers. | ||||
Determining home and local emergency numbers is a configuration | ||||
problem, but unfortunately, existing configuration mechanisms are | ||||
ill-suited for this purpose. For example, a DHCP server might be | ||||
able to provide the local emergency number, but not the home numbers. | ||||
When virtual private networks (VPNs) are used, even DHCP may provide | ||||
numbers of uncertain origin, as a user may contact to the home | ||||
network or some local branch office of the corporate network. | ||||
Similarly, SIP configuration would be able to provide the numbers | ||||
valid at the location of the SIP service provider, but even a SIP | ||||
service provider with national footprint may serve customers that are | ||||
visiting any number of other countries. | ||||
Since dial strings are represented as URLs [5], the problem of | ||||
determining local and home emergency numbers is a problem of mapping | ||||
locations to a set of URLs, i.e., exactly the problem that the | ||||
mapping architecture is solving already. | ||||
The mapping operation is almost exactly the same as for determining | ||||
the emergency service URL. The only difference is that if a seeker | ||||
knows the civic location at least to the country level, it will use a | ||||
query where the PIDF-LO only includes the country code. If it only | ||||
knows its geospatial location, it has to include that longitude and | ||||
latitude. The seeker uses the service identifiers "dialstring.sos", | ||||
"dialstring.sos.fire", etc. The resolver returns the appropriate set | ||||
of URLs and, if a geospatial location was used in the query, the | ||||
current region map for the country. | ||||
Within the mapping system, emergency calling regions are global | Copyright (C) The Internet Society (2006). | |||
information, i.e., they are distributed using the forest guide | ||||
replication mechanism described earlier. Thus, every forest guide | ||||
has access to all region mappings. This makes it possible that a | ||||
seeker can ask any resolver for this information, reducing the | ||||
privacy threat of revealing its location outside of an emergency | ||||
call. The privacy threat is further reduced by the long-lived nature | ||||
of the information, i.e., in almost all cases, the seeker will have | ||||
already cached the national boundary information or country | ||||
information on its first visit to the country. | ||||
Appendix B. Acknowledgments | This document is subject to the rights, licenses and restrictions | |||
contained in BCP 78, and except as set forth therein, the authors | ||||
retain all their rights. | ||||
Jong Yul Kim, Andrew Newton, Richard Stastny, Hannes Tschofenig | This document and the information contained herein are provided on an | |||
provided helpful comments. | "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | |||
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | ||||
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | ||||
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | ||||
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | ||||
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | ||||
Intellectual Property Statement | Intellectual Property | |||
The IETF takes no position regarding the validity or scope of any | The IETF takes no position regarding the validity or scope of any | |||
Intellectual Property Rights or other rights that might be claimed to | Intellectual Property Rights or other rights that might be claimed to | |||
pertain to the implementation or use of the technology described in | pertain to the implementation or use of the technology described in | |||
this document or the extent to which any license under such rights | this document or the extent to which any license under such rights | |||
might or might not be available; nor does it represent that it has | might or might not be available; nor does it represent that it has | |||
made any independent effort to identify any such rights. Information | made any independent effort to identify any such rights. Information | |||
on the procedures with respect to rights in RFC documents can be | on the procedures with respect to rights in RFC documents can be | |||
found in BCP 78 and BCP 79. | found in BCP 78 and BCP 79. | |||
skipping to change at page 17, line 29 | skipping to change at page 17, line 45 | |||
such proprietary rights by implementers or users of this | such proprietary rights by implementers or users of this | |||
specification can be obtained from the IETF on-line IPR repository at | specification can be obtained from the IETF on-line IPR repository at | |||
http://www.ietf.org/ipr. | http://www.ietf.org/ipr. | |||
The IETF invites any interested party to bring to its attention any | The IETF invites any interested party to bring to its attention any | |||
copyrights, patents or patent applications, or other proprietary | copyrights, patents or patent applications, or other proprietary | |||
rights that may cover technology that may be required to implement | rights that may cover technology that may be required to implement | |||
this standard. Please address the information to the IETF at | this standard. Please address the information to the IETF at | |||
ietf-ipr@ietf.org. | ietf-ipr@ietf.org. | |||
Disclaimer of Validity | ||||
This document and the information contained herein are provided on an | ||||
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | ||||
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | ||||
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | ||||
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | ||||
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | ||||
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | ||||
Copyright Statement | ||||
Copyright (C) The Internet Society (2006). This document is subject | ||||
to the rights, licenses and restrictions contained in BCP 78, and | ||||
except as set forth therein, the authors retain all their rights. | ||||
Acknowledgment | Acknowledgment | |||
Funding for the RFC Editor function is currently provided by the | Funding for the RFC Editor function is provided by the IETF | |||
Internet Society. | Administrative Support Activity (IASA). | |||
End of changes. 72 change blocks. | ||||
384 lines changed or deleted | 375 lines changed or added | |||
This html diff was produced by rfcdiff 1.33. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |