TOC |
|
This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as “work in progress.”
The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html.
This Internet-Draft will expire on January 8, 2010.
Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents in effect on the date of publication of this document (http://trustee.ietf.org/license-info). Please review these documents carefully, as they describe your rights and restrictions with respect to this document.
A BEEP binding is described for HELD. This binding is more suitable than the basic HTTP binding in scenarios where multiple messages are sent between the same two parties.
1.
Introduction
1.1.
Terminology
2.
The HELD BEEP Profile
2.1.
Channel Initialization
2.2.
Message Exchange Pattern
2.3.
Error Handling
2.4.
Asynchronous Message Exchange
3.
Location Dereference and the BEEP Binding
4.
Security Considerations
4.1.
LIS Discovery and Authentication
5.
IANA Considerations
5.1.
BEEP Profile Registration
5.2.
URN sun-namespace registration for 'urn:ietf:params:xml:ns:geopriv:held:beep'
6.
Acknowledgements
7.
References
7.1.
Normative References
7.2.
Informative References
TOC |
The HTTP binding for HELD (Barnes, M., Winterbottom, J., Thomson, M., and B. Stark, “HTTP Enabled Location Delivery (HELD),” August 2009.) [I‑D.ietf‑geopriv‑http‑location‑delivery] provides a basis for the protocol, which does not encumber implementations with a complex protocol stack. However, some applications require that a requester make multiple requests in parallel to a Location Information Server (LIS). Where a requester is able to retrieve location information for large numbers of Targets, a more efficient protocol is useful. In these circumstances, relying on HTTP is suboptimal.
The HTTP binding is not suitable in volume scenarios because HTTP suffers from head-of-queue blocking. This prevents multiple requests from being processed in parallel. In order to achieve higher throughput, the requester must establish multiple TCP connections in parallel. This causes HTTP to be unsuitable for applications where multiple parallel requests are expected by increasing the overheads.
BEEP (Rose, M., “The Blocks Extensible Exchange Protocol Core,” March 2001.) [RFC3080] provides a framing scheme that allows for parallel requests. BEEP uses MIME (Freed, N. and N. Borenstein, “Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies,” November 1996.) [RFC2045] for its messages, which means that no significant modifications are required to carry HELD messages. This document describes a BEEP profile for HELD.
TOC |
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] (Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” March 1997.).
This document covers the use of HELD as a location configuration protocol and a location dereference protocol (see [I‑D.ietf‑geopriv‑lbyr‑requirements] (Marshall, R., “Requirements for a Location-by-Reference Mechanism,” November 2009.)). For simplicity, the term Location Information Server (LIS) is used to refer to the server role for both protocols. LIS in place of Location Server (LS), which is the more correct term for the location dereference protocol.
TOC |
The BEEP profile for HELD is identified using the URN:
urn:ietf:params:xml:ns:geopriv:held:beep
This identifier is used in the BEEP profile element during channel creation.
The HELD channel is a simple continuous channel that does not require any state information. Requests and their respective responses are always in the request-response form (MSG/RPY).
TOC |
The HELD profile is started with a single profile request. No additional parameters are required. When initiating a channel the profile element is empty, as shown in the example below.
<start number="1"> <profile uri="urn:ietf:params:xml:ns:geopriv:held:beep"/> </start>
Similarly, the response to channel initialization is empty.
<profile uri="urn:ietf:params:xml:ns:geopriv:held:beep"/>
TOC |
The BEEP binding for HELD requires only the MSG/RPY message exchange. Each MSG frame contains a HELD request; for example a locationRequest. Each RPY frame includes a response; for example, a locationResponse.
The following exchange demonstrates how a simple HELD location request and response are encapsulated. The C: and S: prefixes on lines are used following the convention in [RFC3080] (Rose, M., “The Blocks Extensible Exchange Protocol Core,” March 2001.).
C: MSG 1 7 . 544 125 C: Content-Type: application/held+xml C: C: <?xml version="1.0"?> C: <locationRequest xmlns="urn:ietf:params:xml:ns:geopriv:held"/> C: END S: RPY 1 7 . 1902 695 S: Content-Type: application/held+xml S: S: <?xml version="1.0"?> S: <locationResponse xmlns="urn:ietf:params:xml:ns:geopriv:held"> S: <!-- PIDF-LO contents not shown --> S: </locationResponse> S: END
TOC |
Consistent with the HTTP binding, the BEEP binding for HELD does not use the ERR message to indicate errors at the HELD protocol level. Errors in handling HELD Requests are indicated to the requester in a RPY message.
Errors in the BEEP message that are unrelated to the HELD protocol, such as MIME formatting problems, are indicated using the BEEP ERR message. This ERR message MAY either be empty or it could include textual feedback.
TOC |
A HELD request can take varying amounts of time to process. The responseTime attribute in HELD is used to indicate an upper bound on this time. BEEP channels are serial in nature and BEEP mandates that the serving peer process requests in order. With these constraints, in order to achieve any substantial throughput, multiple BEEP channels would be necessary. This approach does not scale well for larger numbers of requests as response times increase.
It is RECOMMENDED that for HELD on BEEP that both peers use asynchronous BEEP channels (Thomson, M., “Asynchronous Channels for the Blocks Extensible Exchange Protocol (BEEP),” June 2009.) [RFC5573]. Asynchronous BEEP enables the use of a single channel for multiple requests without constraints on how requests are processed or on the order of responses. Asynchronous BEEP greatly increases the potential throughput of a channel, particularly for profiles like HELD that could have widely varying response times. Without asynchronous BEEP, multiple channels MAY be used to increase throughput.
TOC |
The HELD BEEP binding can be used for dereferencing of location URIs ([I‑D.ietf‑geopriv‑lbyr‑requirements] (Marshall, R., “Requirements for a Location-by-Reference Mechanism,” November 2009.), [I‑D.winterbottom‑geopriv‑deref‑protocol] (Winterbottom, J., Tschofenig, H., Schulzrinne, H., Thomson, M., and M. Dawson, “A Location Dereferencing Protocol Using HELD,” January 2010.)). A location URI is indicated in a Request-URI MIME header of the BEEP MSG frame.
The Request-URI header includes an absolute path and optional query components. The folloring using ABNF (Crocker, D. and P. Overell, “Augmented BNF for Syntax Specifications: ABNF,” January 2008.) [RFC5234] shows the format of the Request-URI header:
Request-URI-Header = "Request-URI" ":" ( absolute-URI / "*" ) ; absolute-URI from RFC 3986
The Request-URI header includes an absolute URI (Berners-Lee, T., Fielding, R., and L. Masinter, “Uniform Resource Identifier (URI): Generic Syntax,” January 2005.) [RFC3986]. The absolute URI indicates location URI that is being dereferenced, or the string *. A value of * indicates that the request is a location configuration protocol request (i.e. no location URI is being dereferenced). The header MAY be omitted for a location configuration protocol request, and a value of * is inferred.
TOC |
TLS (Dierks, T. and E. Rescorla, “The Transport Layer Security (TLS) Protocol Version 1.2,” August 2008.) [RFC5246] MUST be used for HELD over BEEP unless confidentiality, message integrity and authentication are assured through other means (e.g. dedicated media). Section 4.1 (LIS Discovery and Authentication) includes guidelines on authentication requirements.
TOC |
This profile is most suited to situations where a client and LIS exchange a large number of requests over a prolonged period. It is anticipated that the client and LIS are known to each other.
Based on this assumption, it is reasonable for the LIS and its clients to have pre-existing configuration that is used instead of a discovery process. In addition, authentication details and methods can be pre-configured on both nodes. Therefore, no protocol mechanisms are specified for arranging discovery and authentication for this profile.
Regardless of the method used to determine the address of the LIS, a client MUST authenticate the LIS. This prevents any LIS spoofing attacks that could be used to provide falsified information or to acquire information about the client (and in turn, their clients). Authentication for the case where HELD is used as a location configuration protocol is covered in [I‑D.ietf‑geopriv‑lis‑discovery] (Thomson, M. and J. Winterbottom, “Discovering the Local Location Information Server (LIS),” March 2010.).
If this profile is used for dereferencing location URIs, the authenticated LIS identity MUST be used to determine whether the LIS is authorized to serve particular location URIs. The client authenticates the LIS for each location URI. Depending on the URI scheme, the LIS identity is validated against the URI. If a LIS cannot be identified as authoritative for a particular URI, clients MUST NOT request information from that LIS for that URI.
For location URIs that include a host name, such as https: or pres: URIs, the guidelines in Section 3.1 of [RFC2818] (Rescorla, E., “HTTP Over TLS,” May 2000.) can be applied to determine if LIS identity matches the URI.
It might also be necessary for the LIS to authenticate clients. Some authorization decision is likely to be necessary in order for a client to initiate a large volume of requests, which could represent significant load on a LIS.
This document does not mandate any specific authentication method; however, since TLS is required, the mandatory authentication methods for TLS are assumed to be present. Alternative authentication methods can be negotiated between the LIS and its clients.
TOC |
TOC |
This section outlines the HELD BEEP binding in the form described in [RFC3080] (Rose, M., “The Blocks Extensible Exchange Protocol Core,” March 2001.).
- Profile Identification:
- urn:ietf:params:xml:ns:geopriv:held:beep
- Messages exchanged during Channel Creation:
- none
- Messages starting one-to-one exchanges:
- HELD request messages from [I‑D.ietf‑geopriv‑http‑location‑delivery] (Barnes, M., Winterbottom, J., Thomson, M., and B. Stark, “HTTP Enabled Location Delivery (HELD),” August 2009.) and extension documents.
- Messages in positive replies:
- HELD request messages from [I‑D.ietf‑geopriv‑http‑location‑delivery] (Barnes, M., Winterbottom, J., Thomson, M., and B. Stark, “HTTP Enabled Location Delivery (HELD),” August 2009.) and extension documents.
- Messages in negative replies:
- The HELD error message
- Messages in one-to-many exchanges:
- none
- Message Syntax:
- c.f., HELD (Barnes, M., Winterbottom, J., Thomson, M., and B. Stark, “HTTP Enabled Location Delivery (HELD),” August 2009.) [I‑D.ietf‑geopriv‑http‑location‑delivery]
- Message Semantics:
- c.f., HELD (Barnes, M., Winterbottom, J., Thomson, M., and B. Stark, “HTTP Enabled Location Delivery (HELD),” August 2009.) [I‑D.ietf‑geopriv‑http‑location‑delivery]
- Contact Information:
- c.f., the "Author's Address" section of this document
TOC |
This section registers a new XML namespace, urn:ietf:params:xml:ns:geopriv:held:beep, as per the guidelines in [RFC3688] (Mealling, M., “The IETF XML Registry,” January 2004.).
URI: urn:ietf:params:xml:ns:geopriv:held:beep
Registrant Contact: IETF, GEOPRIV working group, (geopriv@ietf.org), Martin Thomson (martin.thomson@andrew.com).
XML:
BEGIN <?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>HELD BEEP Binding</title> </head> <body> <h1>Namespace for HELD BEEP Binding Profile</h1> <h2>urn:ietf:params:xml:ns:geopriv:held:beep</h2> [[NOTE TO IANA/RFC-EDITOR: Please update RFC URL and replace XXXX with the RFC number for this specification.]] <p>See <a href="[[RFC URL]]">RFCXXXX</a>.</p> </body> </html> END
TOC |
Thanks to Francis Brosnan Blazquez for sharing his BEEP expertise in reviewing this document.
TOC |
TOC |
TOC |
[RFC3688] | Mealling, M., “The IETF XML Registry,” BCP 81, RFC 3688, January 2004 (TXT). |
[I-D.winterbottom-geopriv-deref-protocol] | Winterbottom, J., Tschofenig, H., Schulzrinne, H., Thomson, M., and M. Dawson, “A Location Dereferencing Protocol Using HELD,” draft-winterbottom-geopriv-deref-protocol-05 (work in progress), January 2010 (TXT). |
[I-D.ietf-geopriv-lbyr-requirements] | Marshall, R., “Requirements for a Location-by-Reference Mechanism,” draft-ietf-geopriv-lbyr-requirements-09 (work in progress), November 2009 (TXT). |
TOC |
Martin Thomson | |
Andrew | |
PO Box U40 | |
Wollongong University Campus, NSW 2500 | |
AU | |
Phone: | +61 2 4221 2915 |
EMail: | martin.thomson@andrew.com |
URI: | http://www.andrew.com/ |
James Winterbottom | |
Andrew | |
PO Box U40 | |
Wollongong University Campus, NSW 2500 | |
AU | |
Phone: | +61 2 4221 2938 |
EMail: | james.winterbottom@andrew.com |
URI: | http://www.andrew.com/ |