TOC |
|
By submitting this Internet-Draft, each author represents that any 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 aware will be disclosed, in accordance with Section 6 of 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 May 22, 2008.
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
3.
The "held+beep:" URI
3.1.
Location By-Reference and the BEEP Binding
4.
LIS Discovery and Authentication for BEEP
5.
Security Considerations
6.
IANA Considerations
6.1.
BEEP Profile Registration
6.2.
URN sun-namespace registration for 'urn:ietf:params:xml:ns:geopriv:held:beep'
6.3.
Registration of the "held+beep:" URI Scheme
6.4.
Registration of a LIS Application Protocol Tag for HELD over BEEP
7.
References
7.1.
Normative References
7.2.
Informative References
§
Authors' Addresses
§
Intellectual Property and Copyright Statements
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). [I‑D.winterbottom‑geopriv‑lis2lis‑req] (Winterbottom, J. and S. Norreys, “LIS to LIS Protocol Requirements,” November 2007.) and [I‑D.winterbottom‑geopriv‑held‑lis2lis‑bcp] (Winterbottom, J. and M. Thomson, “Using HELD for Inter-LIS Communication,” November 2007.) describe use cases and an application of HELD where 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.).
TOC |
The BEEP profile for HELD is identified as:
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 MUST be empty, as shown in the example below.
<start number="1" serverName="lis.example.com"> <profile uri="urn:ietf:params:xml:ns:geopriv:held:beep"/> </start>
The serverName attribute on the start message serves the same purpose as the HTTP (Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, “Hypertext Transfer Protocol -- HTTP/1.1,” June 1999.) [RFC2616] Host header in informing the server of the name it is known by.
Similarly, the response to channel initialization MUST be 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 request, which may be either a locationRequest, createContext or updateContext. Each RPY frame includes a response, either a PIDF-LO (i.e. presence), or a contextResponse.
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 |
The HELD BEEP binding does not use the BEEP 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.
TOC |
A new URI form is defined to describe a BEEP binding instance. The held+beep: URI includes server, port and an identifier that can be used to construct a location reference. The held+beep: URI is constructed as shown in Figure 1 (The "held+beep:" URI) using ABNF (Crocker, D., Ed. and P. Overell, “Augmented BNF for Syntax Specifications: ABNF,” October 2005.) [RFC4234] and the definitions for URI components from [RFC3986] (Berners-Lee, T., Fielding, R., and L. Masinter, “Uniform Resource Identifier (URI): Generic Syntax,” January 2005.).
; all undefined items are specified in RFC 3986 HB-URI = "held+beep" ":" hier-part [ "?" query ] hier-part = "//" authority path-abempty / path-absolute / path-rootless / path-empty authority = host ":" port
Figure 1: The "held+beep:" URI |
There is no well-known port for this binding; therefore, the port component of the URI MUST be included.
TOC |
The path and query components of the held+beep: URI are used in a similar fashion to the analagous components in HTTP/1.1 (Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, “Hypertext Transfer Protocol -- HTTP/1.1,” June 1999.) [RFC2616]. These components can be conveyed for each request by including them in the MIME headers for each request.
The Request-URI header includes an absolute path and optional query components. The header is shown in Figure 2 (The Request-URI Header), using ABNF (Crocker, D., Ed. and P. Overell, “Augmented BNF for Syntax Specifications: ABNF,” October 2005.) [RFC4234].
Request-URI-Header = "Request-URI" ":" Request-URI ; Request-URI from RFC 2616
Figure 2: The Request-URI Header |
This header is modelled on the Request-URI field in HTTP/1.1 (Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, “Hypertext Transfer Protocol -- HTTP/1.1,” June 1999.) [RFC2616] and it follows the same rules. See Section 5.1.2 of [RFC2616] (Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, “Hypertext Transfer Protocol -- HTTP/1.1,” June 1999.) for details on how to use this header. A value of * implies that no location URI is being used, this value should be assumed when the header is omitted. A value of * is assumed if a held+beep: URI does not contain path or query elements.
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 makes discovery unnecessary. In addition, authentication details and methods can be pre-configured on both nodes. This section outlines how discovery can be performed for a LIS that supports the BEEP binding.
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 acquire information about the client (and in turn, their clients).
For persistent connections, it is RECOMMENDED that the LIS also 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 MUST be implemented, the mandatory methods in [RFC4346] (Dierks, T. and E. Rescorla, “The Transport Layer Security (TLS) Protocol Version 1.1,” April 2006.) are assumed to be present. Alternative authentication methods can be negotiated between the LIS and its clients.
TOC |
TLS (Dierks, T. and E. Rescorla, “The Transport Layer Security (TLS) Protocol Version 1.1,” April 2006.) [RFC4346] SHOULD be used for HELD over BEEP unless confidentiality, message integrity and authentication are assured through other means (e.g. dedicated media). It is RECOMMENDED that BEEP peers establish a TLS connection immediately, rather than relying on the TLS tuning profile in BEEP.
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 |
This section registers the held+beep: URI scheme with the IANA, following the guidelines in [RFC4395] (Hansen, T., Hardie, T., and L. Masinter, “Guidelines and Registration Procedures for New URI Schemes,” February 2006.).
- URI scheme name:
- held+beep
- Status:
- permanent
- URI scheme syntax:
- See Figure 1 (The "held+beep:" URI) in Section 3 (The "held+beep:" URI).
- URI scheme semantics:
- A held+beep URI defines a means of accessing a LIS, or it can be used to convey a location URI, see Section 3 (The "held+beep:" URI).
- Encoding considerations:
- A held+beep URI is not designed to include internationalized text, it is created and consumed by automated processes only. Internationalized domain names (Faltstrom, P., Hoffman, P., and A. Costello, “Internationalizing Domain Names in Applications (IDNA),” March 2003.) [RFC3490] can be included in the authority part of the URI, but path components are not intended for user entry.
- Applications/protocols that use this URI scheme name:
- The held+beep URI is used by Location Information Servers (LIS) as a means of describing a service, or as a location reference.
- Interoperability considerations:
- No specific considerations.
- Security considerations:
- No specific considerations.
- Contact:
- IETF, GEOPRIV working group, (geopriv@ietf.org), Martin Thomson (martin.thomson@andrew.com).
- References:
- RFCXXXX (this document), RFCXXXX (HELD)
TOC |
This section registers a new S-NAPTR Application Protocol tag for the BEEP binding of the HELD (Barnes, M., Winterbottom, J., Thomson, M., and B. Stark, “HTTP Enabled Location Delivery (HELD),” August 2009.) [I‑D.ietf‑geopriv‑http‑location‑delivery] protocol, as mandated by [RFC3958] (Daigle, L. and A. Newton, “Domain-Based Application Service Location Using SRV RRs and the Dynamic Delegation Discovery Service (DDDS),” January 2005.).
- Application Service Tag:
- HELD+BEEP
- Intended Usage:
- Identifies the HELD protocol over BEEP
- Applicable Service Tag(s):
- LIS
- Terminal NAPTR Record Type(s):
- S
- Defining Publication:
- RFCXXXX
- Related Publications:
- 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:
- The authors of this document
- Author/Change Controller:
- The IESG
TOC |
TOC |
TOC |
[RFC3490] | Faltstrom, P., Hoffman, P., and A. Costello, “Internationalizing Domain Names in Applications (IDNA),” RFC 3490, March 2003 (TXT). |
[RFC3688] | Mealling, M., “The IETF XML Registry,” BCP 81, RFC 3688, January 2004 (TXT). |
[RFC4395] | Hansen, T., Hardie, T., and L. Masinter, “Guidelines and Registration Procedures for New URI Schemes,” BCP 35, RFC 4395, February 2006 (TXT). |
[I-D.winterbottom-geopriv-lis2lis-req] | Winterbottom, J. and S. Norreys, “LIS to LIS Protocol Requirements,” draft-winterbottom-geopriv-lis2lis-req-01 (work in progress), November 2007 (TXT). |
[I-D.winterbottom-geopriv-held-lis2lis-bcp] | Winterbottom, J. and M. Thomson, “Using HELD for Inter-LIS Communication,” draft-winterbottom-geopriv-held-lis2lis-bcp-00 (work in progress), November 2007 (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/ |
TOC |
Copyright © The IETF Trust (2007).
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.
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, THE IETF TRUST 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.
The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in 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 made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.