One document matched: draft-thomson-geopriv-held-beep-03.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2045 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2045.xml">
<!ENTITY RFC2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2616 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2616.xml">
<!ENTITY RFC3080 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3080.xml">
<!ENTITY RFC3688 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3688.xml">
<!ENTITY RFC3986 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3986.xml">
<!ENTITY RFC5234 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5234.xml">
<!ENTITY RFC4346 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4346.xml">
<!ENTITY I-D.ietf-geopriv-http-location-delivery PUBLIC "" "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-geopriv-http-location-delivery.xml">
<!ENTITY I-D.winterbottom-geopriv-deref-protocol PUBLIC "" "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.winterbottom-geopriv-deref-protocol.xml">
<!ENTITY I-D.ietf-geopriv-lbyr-requirements PUBLIC "" "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-geopriv-lbyr-requirements.xml">
<!ENTITY I-D.thomson-beep-async PUBLIC "" "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.thomson-beep-async.xml">
]>
<?rfc rfcedstyle="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="no"?>
<?rfc iprnotified="yes"?>
<?rfc strict="yes"?>
<?rfc toc="yes"?>
<?rfc tocindent="yes"?>
<rfc category="std" ipr="trust200811">
<front>
<title abbrev="HELD over BEEP">
A BEEP Binding for the HELD Protocol
</title>
<author initials="M." surname="Thomson"
fullname="Martin Thomson">
<organization>Andrew</organization>
<address>
<postal>
<street>PO Box U40</street>
<city>Wollongong University Campus</city>
<region>NSW</region>
<code>2500</code>
<country>AU</country>
</postal>
<phone>+61 2 4221 2915</phone>
<email>martin.thomson@andrew.com</email>
<uri>http://www.andrew.com/</uri>
</address>
</author>
<author initials="J." surname="Winterbottom"
fullname="James Winterbottom">
<organization>Andrew</organization>
<address>
<postal>
<street>PO Box U40</street>
<city>Wollongong University Campus</city>
<region>NSW</region>
<code>2500</code>
<country>AU</country>
</postal>
<phone>+61 2 4221 2938</phone>
<email>james.winterbottom@andrew.com</email>
<uri>http://www.andrew.com/</uri>
</address>
</author>
<date month="January" year="2009"/>
<area>Application</area>
<workgroup>GEOPRIV</workgroup>
<keyword>Internet-Draft</keyword>
<keyword>BEEP</keyword>
<keyword>HELD</keyword>
<keyword>LIS</keyword>
<abstract>
<t>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.
</t>
</abstract>
</front>
<middle>
<section title="Introduction">
<t>The HTTP binding for <xref target="I-D.ietf-geopriv-http-location-delivery">HELD</xref> 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.
</t>
<t>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.
</t>
<t><xref target="RFC3080">BEEP</xref> provides a framing scheme that allows for parallel requests. BEEP uses <xref target="RFC2045">MIME</xref> for its messages, which means that no significant modifications are required to carry HELD messages. This document describes a BEEP profile for HELD.
</t>
<section anchor="terminology" title="Terminology">
<t>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 <xref target="RFC2119"/>.
</t>
</section>
</section>
<section anchor="profile" title="The HELD BEEP Profile">
<t>The BEEP profile for HELD is identified using the URN:
<list><t>urn:ietf:params:xml:ns:geopriv:held:beep</t></list>
This identifier is used in the BEEP <spanx style="verb">profile</spanx> element during channel creation.
</t>
<t>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 (<spanx style="verb">MSG</spanx>/<spanx style="verb">RPY</spanx>).
</t>
<section title="Channel Initialization">
<figure>
<preamble>The HELD profile is started with a single <spanx style="verb">profile</spanx> request. No additional parameters are required. When initiating a channel the <spanx style="verb">profile</spanx> element is empty, as shown in the example below.
</preamble>
<artwork><![CDATA[
<start number="1" serverName="lis.example.com">
<profile uri="urn:ietf:params:xml:ns:geopriv:held:beep"/>
</start>
]]></artwork>
<postamble>The <spanx style="verb">serverName</spanx> attribute on the <spanx style="verb">start</spanx> message serves the same purpose as the <xref target="RFC2616">HTTP</xref> <spanx style="verb">Host</spanx> header in informing the server of the name it is known by.
</postamble>
</figure>
<figure>
<preamble>Similarly, the response to channel initialization is empty.
</preamble>
<artwork><![CDATA[
<profile uri="urn:ietf:params:xml:ns:geopriv:held:beep"/>
]]></artwork>
</figure>
</section>
<section title="Message Exchange Pattern">
<t>The BEEP binding for HELD requires only the <spanx style="verb">MSG</spanx>/<spanx style="verb">RPY</spanx> message exchange. Each <spanx style="verb">MSG</spanx> frame contains a HELD request; for example a <spanx style="verb">locationRequest</spanx>. Each <spanx style="verb">RPY</spanx> frame includes a response; for example, a <spanx style="verb">locationResponse</spanx>.
</t>
<figure>
<preamble>The following exchange demonstrates how a simple HELD location request and response are encapsulated. The <spanx style="verb">C:</spanx> and <spanx style="verb">S:</spanx> prefixes on lines are used following the convention in <xref target="RFC3080"/>.
</preamble>
<artwork><![CDATA[
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
]]></artwork>
</figure>
</section>
<section title="Error Handling">
<t>Consistent with the HTTP binding, the BEEP binding for HELD does not use the <spanx style="verb">ERR</spanx> message to indicate errors at the HELD protocol level. Errors in handling HELD Requests are indicated to the requester in a <spanx style="verb">RPY</spanx> message.
</t>
<t>Errors in the BEEP message that are unrelated to the HELD protocol, such as MIME formatting problems, are indicated using the BEEP <spanx style="verb">ERR</spanx> message. This <spanx style="verb">ERR</spanx> message MAY either be empty or it could include textual feedback.
</t>
</section>
<section title="Asynchronous Message Exchange">
<t>A HELD request can take varying amounts of time to process. The <spanx style="verb">responseTime</spanx> 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 acheive any substantial throughput, multiple BEEP channels would be necessary. This approach does not scale well for larger numbers of requests as response times increase.
</t>
<t>It is RECOMMENDED that for HELD on BEEP that both peers use <xref target="I-D.thomson-beep-async">asynchronous BEEP channels</xref>. 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.
</t>
</section>
</section>
<section title="Location Dereference and the BEEP Binding">
<t>The HELD BEEP binding can be used for dereferencing of location URIs (<xref target="I-D.ietf-geopriv-lbyr-requirements"/>, <xref target="I-D.winterbottom-geopriv-deref-protocol"/>). A location URI is indicated in a <spanx style="verb">Request-URI</spanx> MIME header of the BEEP <spanx style="verb">MSG</spanx> frame.
</t>
<t>The <spanx style="verb">Request-URI</spanx> header includes an absolute path and optional query components. The folloring using <xref target="RFC5234">ABNF</xref> shows the format of the <spanx style="verb">Request-URI</spanx> header:
</t>
<figure>
<artwork type="abnf"><![CDATA[
Request-URI-Header = "Request-URI" ":" ( absolute-URI / "*" )
; absolute-URI from RFC 3986
]]></artwork>
</figure>
<t>The <spanx style="verb">Request-URI</spanx> header includes an <xref target="RFC3986">absolute URI</xref>. The absolute URI indicates location URI that is being dereferenced, or the string <spanx style="verb">*</spanx>. A value of <spanx style="verb">*</spanx> indicates that the request is a location configuration protocol request (i.e. no location URI is being dereferenced); a value of <spanx style="verb">*</spanx> is assumed when the header is omitted.
</t>
</section>
<section anchor="discovery" title="LIS Discovery and Authentication">
<t>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.
</t>
<t>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.
</t>
<t>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).
</t>
<t>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.
</t>
<t>This document does not mandate any specific authentication method; however, since TLS MUST be implemented, the mandatory methods in <xref target="RFC4346"/> are assumed to be present. Alternative authentication methods can be negotiated between the LIS and its clients.
</t>
</section>
<section anchor="security" title="Security Considerations">
<t><xref target="RFC4346">TLS</xref> 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.
</t>
</section>
<section anchor="iana" title="IANA Considerations">
<section title="BEEP Profile Registration">
<t>This section outlines the HELD BEEP binding in the form described in <xref target="RFC3080"/>.
<list style="hanging">
<t hangText="Profile Identification:">urn:ietf:params:xml:ns:geopriv:held:beep</t>
<t hangText="Messages exchanged during Channel Creation:">none</t>
<t hangText="Messages starting one-to-one exchanges:">HELD request messages from <xref target="I-D.ietf-geopriv-http-location-delivery"/> and extension documents.</t>
<t hangText="Messages in positive replies:">HELD request messages from <xref target="I-D.ietf-geopriv-http-location-delivery"/> and extension documents.</t>
<t hangText="Messages in negative replies:">The HELD <spanx style="verb">error</spanx> message</t>
<t hangText="Messages in one-to-many exchanges:">none</t>
<t hangText="Message Syntax:">c.f., <xref target="I-D.ietf-geopriv-http-location-delivery">HELD</xref></t>
<t hangText="Message Semantics:">c.f., <xref target="I-D.ietf-geopriv-http-location-delivery">HELD</xref></t>
<t hangText="Contact Information:">c.f., the "Author's Address" section of this document</t>
</list></t>
</section>
<section title="URN sun-namespace registration for 'urn:ietf:params:xml:ns:geopriv:held:beep'">
<t>This section registers a new XML namespace, <spanx style="verb">urn:ietf:params:xml:ns:geopriv:held:beep</spanx>, as per the guidelines in <xref target="RFC3688"/>.
<list style="empty">
<t>URI: urn:ietf:params:xml:ns:geopriv:held:beep</t>
<t>Registrant Contact: IETF, GEOPRIV working group, (geopriv@ietf.org), Martin Thomson (martin.thomson@andrew.com).</t>
<t>XML:
<figure>
<artwork><![CDATA[
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
]]></artwork>
</figure>
</t>
</list>
</t>
</section>
</section>
</middle>
<back>
<references title="Normative References">
&RFC2045;
&RFC3080;
&RFC3986;
&RFC4346;
&RFC5234;
&I-D.ietf-geopriv-http-location-delivery;
&RFC2119;
</references>
<references title="Informative References">
&RFC2616;
&RFC3688;
&I-D.thomson-beep-async;
&I-D.winterbottom-geopriv-deref-protocol;
&I-D.ietf-geopriv-lbyr-requirements;
</references>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-24 04:23:45 |