P2PSIP B. Lowekamp
Internet-Draft SIPeerior Technologies
Intended status: Standards Track October 27, 2008
Expires: April 30, 2009
RELOAD Node Operations Proposal
draft-lowekamp-p2psip-nodefetch-00
Status of this Memo
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 April 30, 2009.
Abstract
This document defines a set of methods for Node-specific operations
as part of the REsource LOcation And Discovery (RELOAD) protocol.
This document defines NodeFetch, NodeStore, and NodeRemove methods
that allows manipuation of Node specific usage data. These methods
will be useful for multiple diagnostic, administrative, and discovery
usages. Because of their usefulness for a variety of expected
usages, these methods are advanced for inclusion in the base RELOAD
protocol.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4. Need for New Methods . . . . . . . . . . . . . . . . . . . . . 4
5. New Methods . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5.1. NodeFetch . . . . . . . . . . . . . . . . . . . . . . . . . 5
5.1.1. Request Definition . . . . . . . . . . . . . . . . . . 5
5.1.2. Response Definition . . . . . . . . . . . . . . . . . . 5
5.2. NodeStore . . . . . . . . . . . . . . . . . . . . . . . . . 5
5.2.1. Request Definition . . . . . . . . . . . . . . . . . . 5
5.2.2. Response Definition . . . . . . . . . . . . . . . . . . 5
5.3. NodeRemove . . . . . . . . . . . . . . . . . . . . . . . . 6
5.3.1. Request Definition . . . . . . . . . . . . . . . . . . 6
5.3.2. Response Definition . . . . . . . . . . . . . . . . . . 6
6. Security . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
7.1. Message Codes . . . . . . . . . . . . . . . . . . . . . . . 6
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 7
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7
9.1. Normative References . . . . . . . . . . . . . . . . . . . 7
9.2. Informative References . . . . . . . . . . . . . . . . . . 7
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 8
Intellectual Property and Copyright Statements . . . . . . . . . . 9
1. Introduction
The base RELOAD protocol [I-D.ietf-p2psip-base] defines Fetch, Store,
and Remove operations that operate on resources identified by
Resource-ID. However, there are a number of other operations,
including diagnostic usages proposed in the base RELOAD draft and
[I-D.zheng-p2psip-diagnose] that require the ability to query for
information particular to a specific peer, rather than for
information stored indexed by Resource-ID. Such queries may be sent
to either a previously-known Node-ID or to the peer responsible for a
particular Resource-ID. The NodeFetch, NodeStore, and NodeRemove
operations described here are intended to support these operations.
2. Terminology
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 RFC 2119 [RFC2119].
3. Motivation
A variety of scenarios motivate the need for node-specific
operations:
Diagnostics Diagnostics have been proposed in [I-D.ietf-p2psip-base]
and [I-D.zheng-p2psip-diagnose]. The breadth of diagnostics
proposed, and the needs of the wide variety of deployment
scenarios envisioned for P2PSIP [I-D.ietf-p2psip-concepts] seems
to imply that there will be multiple diagnostic usages described
in different drafts. Therefore, it seems desireable to propose a
common set of methods in the base draft that all diagnostic usages
can reference.
Administration There is a spectrum of operations that range from
diagnostic to administrative control over nodes. While some
application scenarios imply little central control, others assume
the existence of an authorized administrator to control nodes in
the overlay [I-D.ietf-p2psip-concepts]. Providing these methods
will allow future usages to rely on the same fundamental methods
already required for diagnostic purposes.
Discovery & Placement P2P applications frequently require some form
of service discovery. Equally important as service discovery is
service placement. While some algorithms for performing such
operations store location data indexed by Resource-ID
[opendht-sigcomm05], others rely on the ability to send Fetch or
Store operations to a peer responsible for a particular
Resource-ID (an operation not supported by the current Store and
Fetch) [placement-iptps05].
4. Need for New Methods
One possibility is to extend the existing Fetch/Store/Remove
operations to support per-node behavior. A variety of possibilities
exist: allowing usages to specify whether each kind refers to node-
specific or Resource-ID indexed objects, adding a flag to the request
structures indicating that the request is node-specific, or reserving
a portion of the kind-space to identify node-specific operations.
Unfortunately, each of these proposals adds complexity to the
existing protocol encoding or assumes a particular architecture where
the storage component does not make decisions without interaction
with a usage module.
A particular challenge in providing node-specific operations is
routing a node-specific request to the peer responsible for a
particular Resource-ID. While some node-specific requests are routed
to a known Node-ID, others will be routed simply to a Resource-ID and
will therefore have no encoding of the Node-ID of the node being
queried in the message. Therefore, a node cannot examind the
FetchReq, for example, to see if the queried resource matches its
Node-ID, and thus deduce the request is for node-specific
information.
One possibility for providing operations that refer to node-specific
data on a peer responsible for a given Resource-ID is to perform two
separate operations, a Probe followed by a node-specific Fetch to a
particular Node-ID. However, this two-phase approach may fail in
diagnostic situations where the overlay is unstable---if these
methods are being used to determine the reasons for the instability,
it is likely to be far more useful to have an atomic NodeFetch that
returns the diagnostic information on the node that is reached by the
first query rather than assuming that consecutive queries will reach
the same node.
Therefore, to reduce the complexity of supporting node-specific
operations, a new set of methods are proposed that are exclusively
for node-specific operations. A node receiving such a method will
always know to process it in the appropriate manner, regardless of
its particular implementation. Furthermore, although the methods are
different, most of the message structure is shared with the base
Fetch/Store/Remove operations, thus minimizing additional
implementation complexity.
5. New Methods
NodeFetch is required for all proposed usage scenarios. NodeStore
and NodeRemove are required for the administrative and discovery/
placement usage scenarios.
The bodies of each of the messages are essentially identical to their
Resource-ID counterparts, except for the lack of encoded ResourceId's
in the objects.
5.1. NodeFetch
5.1.1. Request Definition
struct {
StoredDataSpecifier specifiers<0..2^16-1>;
} NodeFetchReq;
5.1.2. Response Definition
struct {
FetchKindResponse kind_responses<0..2^32-1>;
} NodeFetchAns;
5.2. NodeStore
5.2.1. Request Definition
struct {
StoreKindData kind_data<0..2^32-1>;
} NodeStoreReq;
5.2.2. Response Definition
struct {
KindId kind;
uint64 generation_counter;
} NoteStoreKindResponse;
struct {
NodeStoreKindResponse kind_responses<0..2^16-1>;
} StoreAns;
5.3. NodeRemove
5.3.1. Request Definition
struct {
StoredDataSpecifier specifiers<0..2^16-1>;
} NodeRemoveReq;
5.3.2. Response Definition
struct {
NoteStoreKindResponse kind_responses<0..2^16-1>;
} RemoveAns;
6. Security
There are inherent security risks in disclosing operational data
through a Diagnostic fetch, and additional risks in allowing remote
administration of a node. Usages relying on these methods will need
to identify the risks involve and specify appropriate authorization
mechanisms (presumably based on the certificate model used for
identification and authorization in RELOAD) for ensuring that such
operations are performed only by authorized entities.
7. IANA Considerations
This section contains the new code points registered by this
document. [NOTE TO IANA/RFC-EDITOR: Please replace RFC-AAAA with
the RFC number for this specification in the following list.]
7.1. Message Codes
IANA SHALL add the follwoing to the a"RELOAD Message Code" Registry:
+-------------------+------------+----------+
| Message Code Name | Code Value | RFC |
+-------------------+------------+----------+
| node_store_req | 29 | RFC-AAAA |
| node_store_ans | 30 | RFC-AAAA |
| node_fetch_req | 31 | RFC-AAAA |
| node_fetch_ans | 32 | RFC-AAAA |
| node_remove_req | 33 | RFC-AAAA |
| node_remove_ans | 34 | RFC-AAAA |
+-------------------+------------+----------+
8. Acknowledgments
Thanks to
This proposal has evolved from discussions with Cullen Jennings, Eric
Rescorla, Song Haibin, Jiang Xingfeng, and David Bryan. Eric
Rescorla wrote the many people who contributed including: TODO - fill in. message PDUs.
9. References
9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[I-D.ietf-p2psip-base]
Jennings, C., Lowekamp, B., Rescorla, E., Baset, S., and
H. Schulzrinne, "REsource LOcation And Discovery (RELOAD)
Base Protocol", draft-ietf-p2psip-base-00 (work in
progress), October 2008.
9.2. Informative References
[I-D.ietf-p2psip-concepts]
Bryan, D., Matthews, P., Shim, E., Willis, D., and S.
Dawkins, "Concepts and Terminology for Peer to Peer SIP",
draft-ietf-p2psip-concepts-02 (work in progress),
July 2008.
[I-D.zheng-p2psip-diagnose]
Yongchao, S., Zhang, H., and X. Jiang, "Diagnose P2PSIP
Overlay Network Failures", draft-zheng-p2psip-diagnose-02
(work in progress), July 2008.
[opendht-sigcomm05]
Rhea, S., Godfrey, B., Karp, B., Kubiatowicz, J.,
Ratnasamy, S., Shenker, S., Stoica, I., and H. Yu,
"OpenDHT: A Public DHT and its Uses", SIGCOMM'05.
[placement-iptps05]
Pietzuch, P., Shneidman, J., Ledlie, J., Welsh, M.,
Seltzer, M., and M. Roussopoulos, "Evaluating DHT-Based
Service Placement for Stream-Based Overlays", IPTPS'05.
Author's Address
Bruce B. Lowekamp
SIPeerior Technologies
5251-18 John Tyler Highway #330
Williamsburg, VA 23185
USA
Email: bbl@lowekamp.net
Full Copyright Statement
Copyright (C) The IETF Trust (2008).
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.
Intellectual Property
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.