One document matched: draft-ietf-p2psip-diagnostics-00.txt
P2PSIP Working Group H. Song
Internet-Draft X. Jiang
Intended status: Standards Track Huawei
Expires: July 25, 2009 January 21, 2009
Diagnose P2PSIP Overlay Network
draft-ietf-p2psip-diagnostics-00
Status of this Memo
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.
Abstract
This document describes P2PSIP diagnostics. It describes the usage
scenarios and defines several simple methods for the diagnostics in
P2PSIP overlay network. It also describes types of diagnostic
information which are useful for the connection and node status
monitoring. The methods and message formats are specified as
extensions to P2PSIP base protocol RELOAD.
Song & Jiang Expires July 25, 2009 [Page 1]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Usage Scenarios . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Overview of Functions . . . . . . . . . . . . . . . . . . . . 5
5. Packets Formats . . . . . . . . . . . . . . . . . . . . . . . 6
5.1. Message Codes . . . . . . . . . . . . . . . . . . . . . . 7
5.2. Message payloads . . . . . . . . . . . . . . . . . . . . . 7
5.2.1. Error Codes . . . . . . . . . . . . . . . . . . . . . 8
5.2.2. diagnostics information . . . . . . . . . . . . . . . 8
6. Message . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.1. Inspect . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.2. Path_Track . . . . . . . . . . . . . . . . . . . . . . . . 11
6.3. Echo . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.4. Error responses . . . . . . . . . . . . . . . . . . . . . 16
7. Security Considerations . . . . . . . . . . . . . . . . . . . 17
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 18
10.1. Normative References . . . . . . . . . . . . . . . . . . . 18
10.2. Informative References . . . . . . . . . . . . . . . . . . 20
11. Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 20
12. Full Copyright Statement . . . . . . . . . . . . . . . . . . . 21
13. Intellectual Property Statement . . . . . . . . . . . . . . . 21
Song & Jiang Expires July 25, 2009 [Page 2]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
1. Introduction
P2P systems are self-organizing and ideally require no network
management in the traditional sense to set up and to configure
individual P2P nodes. P2P service providers may however contemplate
usage scenarios where some monitoring and diagnostics are required.
We present a simple connectivity test and some useful diagnostic
information that may be used in such diagnostics.
1.1. Usage Scenarios
The common usage scenarios for P2P diagnostics can be broadly
categorized in three classes:
a. Automatic diagnostics built into the P2P overlay routing
protocol. Nodes perform periodic checks of known neighbors and
remove those nodes from the routing tables that fail to respond to
connectivity checks [Handling_Churn_in_a_DHT]. The unresponsive
nodes may however be only temporarily disabled due to some local
cryptographic processing overload, disk processing overload or link
overload. It is therefore useful to repeat the connectivity checks
to see if such nodes have recovered and can be again placed in the
routing tables. This process is known as 'failed node recovery' and
it can be optimized as described in the paper "Handling Churn in a
DHT" [Handling_Churn_in_a_DHT].
b. P2P system diagnostics to check the overall health of the P2P
overlay network, the consumption of network bandwidth, problem links
and also checks for abusive or malicious nodes. This is not a
trivial problem and has been studied in detail for content and
streaming P2P overlays, such as for example in
[Diagnostic_Framework].
Similar work has been reported more recently for P2PSIP overlays as
applied to the P2PP protocol [Diagnostics_and_NAT_traversal_in_P2PP].
c. Diagnostics for a particular node to follow up an individual user
complaint. In this case a technical support person may use a desktop
sharing application with the permission of the user to determine
remotely the health and possible problems with the malfunctioning
node. Part of the remote diagnostics may consist of simple
connectivity tests with other nodes in the P2PSIP overlay. The
simple connectivity tests are not dependent on the type of P2PSIP
overlay and they are the topic of this memo. Note however that other
tests may be required as well, such as checking the health and
performance of the user's computer or mobile device and also checking
the link bandwidth connecting the user to the Internet.
Song & Jiang Expires July 25, 2009 [Page 3]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
2. Terminology
The concepts used in this document are compatible with "Concepts and
Terminology for Peer to Peer SIP" [I-D.ietf-p2psip-concepts] and the
P2PSIP base protocol RELOAD [I-D.ietf-p2psip-base].
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].
3. Motivation
In the last few years, overlay networks have rapidly evolved and
emerged as a promising platform to deploy new applications and
services in the Internet. One of the reasons overlay networks are
seen as an excellent platform for large scale distributed systems is
their resilience in the presence of failures. This resilience has
three aspects: data replication, routing recovery, and static
resilience. Routing recovery algorithms are used to repopulate the
routing table with live nodes when failures are detected. Static
resilience measures the extent to which an overlay can route around
failures even before the recovery algorithm repairs the routing
table. Both routing recovery and static resilience relies on
accurate and timely detection of failures.
As described in "Security requirements in P2PSIP"
[I-D.matuszewski-p2psip-security-requirement], there are some
malfunctioning or badly behaving peers in P2PSIP overlay, those peers
may be disabled peers, congested peers or peers behaving with
misrouting, and the impact of those peers in the overlay network is
degradation of quality of service provided collectively by the peers
in the overlay network or interruption of those services. It is
desirable to identify malfunctioning or badly behaving peers through
some diagnostics tools, and exclude or reject them from the P2PSIP
system. Besides those faults, node failures may be caused by
underlying failures, for example, when the IP layer routing failover
speed after link failures is very slow, then the recovery from the
incorrect overlay topology may also be slow. Moreover, if a backbone
link fails and the failover is slow, the network may be partitioned,
which may lead to partitions of overlay topologies and inconsistent
routing results between different partitioned components.
Some keep-alive algorithms based on periodically probe and
acknowledge enable accurate and timely detection of failures of one
peer's neighbors [Overlay-Failure-Detection], but those algorithms
only can detect the disabled neighbors using the periodical method,
it may not be enough for operating the overlay network by service
Song & Jiang Expires July 25, 2009 [Page 4]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
providers.
One general P2PSIP overlay diagnostics protocol supporting periodical
method and on-demand method for node failures and network failures is
desirable. This document describes one general P2PSIP overlay
diagnostics protocol useful for P2PSIP base protocol and it is a good
match for some keep-alive algorithms in the P2P or P2PSIP overlay
itself.
4. Overview of Functions
As a diagnostics protocol, P2PSIP diagnostics protocol is mainly used
to detect and localize failures or monitor performance in P2PSIP
overlay network. It provides mechanisms to detect and localize
malfunctioning or badly behaving peers including disabled peers,
congested peers and misrouting peers. It provides a mechanism to
detect direct connectivity or connectivity to the specified peer, a
mechanism to detect availabilities of specified resource records and
a mechanism to discover P2PSIP overlay topology and the underlay
topology failures.
The P2PSIP diagnostics protocol defines Inspect and Path_Track
methods for connection quality check and retrieval of diagnostic
information, as well as Echo method for efficient diagnostics in the
administrative overlay and the Error response to these methods.
Essentially it reuses P2PSIP base protocol specification and then
introduces the new diagnostics methods. P2PSIP diagnostics protocol
strictly follows the P2PSIP base protocol specification on the
messages routing, transporting and NAT traversal etc. The diagnostic
methods are however P2PSIP protocol independent.
In this document, we mainly describe how to detect and localize those
failures including disabled peers, congested peers, misrouting
behaviors and underlying network faults in P2PSIP overlay network
through a simple and efficient mechanism. This mechanism is modeled
after the ping/traceroute paradigm: ping (ICMP echo request [RFC792])
is used for connectivity checks, and traceroute is used for hop-by-
hop fault localization as well as path tracing. This document
specifies a "ping" mode (by defining the Inspect method) and a
"traceroute" mode (implemented differently with trusted overlays such
as operator deployed P2PSIP overlays, compared with untrusted
overlays) for diagnosing P2PSIP overlay network.
An Inspect request message is forwarded by the intermediate peers
along the path and then terminated by the responsible peer, and after
optional local diagnostics, the responsible peer returns an Inspect
response message. If an error is found when routing, an Error
Song & Jiang Expires July 25, 2009 [Page 5]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
response is sent to the initiator node by the intermediate peer.
In "Traceroute" mode, we classify the diagnostics into two
application scenarios.
(1) In trusted p2p overlays, we use an Echo request message, it is
received and disposed by each peer along the routing path, and each
peer along the path returns an Echo response message with optional
local diagnostics information including the result and causes if
existing.
(2) In untrusted p2p overlays, we define a simple Path_Track method
for retrieving diagnostics information iteratively. First, the
initiating node asks its neighbor A which is the next hop node to the
destination ID, and then retrieve the next hop node B information,
along with optional diagnostic information of A, to the initiator
node. Then the initiator node asks the next hop node B(directly or
symmetric routing) to get the further next hop node C information and
diagnostic information of B. This step can be iterative until the
request reaches responsible node D for the destination ID, and
retrieve diagnostic information of node D, or terminates by some
failures that prevent the process.
One approach these tools can be used is to detect the connectivity to
the specified peer or the availability of the specified resource-
record through P2PSIP Inspect operation once the overlay network
receives some alarms about overlay service degradation or
interruption, if the Inspect fails, one can then send a P2PSIP
Traceroute(iterative Path_Track or Echo) to determine where the fault
lies.
The diagnostic information MUST be only provided to authorized peers.
Some diagnostic information can be authorized to all the participants
in the P2PSIP overlay, and some other diagnostic information can only
be provided to the authorization peer list of each diagnostic
information according to the local or overlay policy. The
authorization mainly depends on the kinds of the diagnostic
information and the administrative considerations.
5. Packets Formats
This document extends the P2PSIP base protocol to carry diagnostics
information. Considering special usage of diagnostics, this document
defines three simple methods Inspect, Path_Track and Echo, as well as
related Error codes and some useful diagnostics information.
As described in the P2PSIP base protocol, each message has three
Song & Jiang Expires July 25, 2009 [Page 6]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
parts. This specification is consistent with the format.
+-------------------------+
| Forwarding Header |
+-------------------------+
| Message Contents |
+-------------------------+
| Signature |
+-------------------------+
5.1. Message Codes
The mechanism defined in this document follows P2PSIP base protocol
specification, the new request and response message use the message
format specified in P2PSIP base protocol messages. Different types
of messages convey different message contents following the
forwarding header according to the protocol design. Please refer to
P2PSIP base protocol [I-D.ietf-p2psip-base] for the detailed format
of forwarding header.
This document reuses the Error response in the base protocol and
defines new Error codes to carry different failure reports to the
initiator node when failure is detected during diagnostics.
Name Message Code
Error 0xFFFF
This document introduces three types of message:
Name Message Code
Inspect request 29
Inspect response 30
Path_Track request 31
Path_Track response 32
Echo request 33
Echo response 34
The final message code will be assigned by IANA as specified in
section 14.4 of [I-D.ietf-p2psip-base].
5.2. Message payloads
As an extension to P2PSIP base protocol, a P2PSIP diagnostics
protocol message content contains one message code following by its
payloads. Please refer to P2PSIP base protocol
[I-D.ietf-p2psip-base] for the detailed format of Message Contents.
In addition to the newly introduced methods, this document extends
Song & Jiang Expires July 25, 2009 [Page 7]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
the Error codes defined in P2PSIP base protocol specification.
5.2.1. Error Codes
This document extends the Error response method defined in the P2PSIP
base protocol specification to describe the result of diagnostics.
This document introduces new Error Codes as below:
Code Value Error Code Name
8 Underlay Destination Unreachable
9 Underlay Time exceeded
10 Message Expired
11 Upstream Misrouting
12 Loop detected
13 TTL hops exceeded
The final error codes will be assigned by IANA as specified in
section 14.5 of the p2psip base protocol [I-D.ietf-p2psip-base].
This document introduces several types of error information in the
error_info field for Error Code 8 as an example:
error_info:
net unreachable
host unreachable
protocol unreachable
port unreachable
fragmentation needed
source route failed
Editor note: We may need more discussion here to see if we need to
define an additional sub-code field for the error information. Sub-
code is easier for the machine to process while various text is
comfortable for a man to read.
5.2.2. diagnostics information
This document introduces some new diagnostics information conveyed in
the message payload, including: the number of hops that the message
traverses, the underlay TTL specified, the timestamp of initiating
the request message, the timestamp of receiving the request message,
and the expiration time of the request message, the processing power,
the bandwidth, the number of entries in one's neighbor table, etc.
They are defined as below. Additional diagnostic information have
been proposed in section 9 of the p2psip base protocol
[I-D.ietf-p2psip-base].
Song & Jiang Expires July 25, 2009 [Page 8]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
HopCounter (8 bits): This byte only appears in diagnostic
responses. It must be exactly copied from the TTL field of the
forwarding header in the received request. Then this information
is sent back to the request initiator to compute the hops that the
message traverses in the overlay.
UnderlayTTL (8 bits): It indicates the underlay TTL which the
intermediate peer must adopt when forwarding the diagnostic
requests, it is specified by the initiator. If the value is 0,
then the intermediate peer must ignore this field, and use the
underlay TTL with its local configuration.
TimestampInitiated (64 bits): The time-of-day (in seconds and
microseconds, according to the sender's clock) in NTP timestamp
format [RFC4330] when the P2PSIP Overlay diagnostic request is
sent. It can be carried in the diagnostic response message from
the receiver; certainly it first appears in the diagnostic request
message;
TimestampReceived (64 bits): it is in a diagnostic response
message as the time-of-day (according to the receiver's clock) in
NTP timestamp format [RFC4330] that corresponds to the time that
the P2PSIP Overlay diagnostic request was received;
Expiration(64 bits): the expiration time of the request message,
it is the time-of-day in NTP timestamp format [RFC4330]. It can
be used to mitigate the replay attack to the destination peer and
overlay network.
ProcessPower (32 bits): A single value element containing an
unsigned 32-bit integer specifying the processing power of the
node in unit of MIPS.
Bandwidth (32 bits): A single value element containing an unsigned
32-bit integer specifying the bandwidth of the node in unit of
Kbps.
Editor's note: For the diagnostic information of processing
power, bandwidth and etc., we should look at what has been
useful for PlanetLab in this context, and further discussion is
needed on what mature diagnostics information for p2p overlays
can be brought here.
Routing_Table_Size (32 bits): A single value element containing an
unsigned 32-bit integer representing the number of peers in the
peer's routing table. The administrator of the overlay may be
interested in statistics of this value for the consideration such
as routing efficiency.
Song & Jiang Expires July 25, 2009 [Page 9]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
StatusInfo (8 bits): A single value element containing an unsigned
byte representing whether or not the node is in congestion status.
6. Message
All P2PSIP base protocol requests and responses use the common
forwarding header followed by the message contents.
This document defines Inspect and Path_Track methods, and introduces
the new Echo message to detect and localize failures in P2PSIP
overlay network. The Error Codes to these requests are defined in
section 5.2.1 of this spec.
6.1. Inspect
In P2PSIP base protocol, Ping is used to test connectivity along a
path. However, connectivity quality can not be measured well without
some useful information, such as the timestamp and HopCounter. Here
we define a new method Inspect for connectivity quality check
purposes. See below for the Inspect formats.
Inspect Request:
struct {
uint8 UnderlayTTL;
uint64 TimestampInitiated;
uint64 Expiration;
} InspectReq;
Inspect Response:
struct {
uint8 HopCounter;
uint64 TimestampReceived;
uint64 Expiration;
}InspectAns;
Any intermediate node which receives the Inspect request must adopt
the UnderlayTTL for the next hop forwarding. If the value equals to
0, the intermediate peer must ignore this value and determine the
underlay TTL using local configuration. The requirement here is that
one may want to limit each hop underlay TTL from the initiator to the
destination, if the underlay TTL expires somewhere, one may think
that the link there is not of good quality.
Each intermediate peer receiving the Inspect request/response should
check the Expiration value (NTP format) to determine if the message
expired. If the message expired, the intermediate peer should
generate a "Message Expired" Error to the initiator node, and discard
Song & Jiang Expires July 25, 2009 [Page 10]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
the message. The responsible node for the request or response MUST
check this value to determine if this message should be ignored.
The responsible peer of the Inspect request must exactly copy the TTL
field value in the forwarding header to the HopCounter value in the
response, and meanwhile, it should generate a NTP format timestamp to
indicate the received time.
The initiator node, as well as the responding peer, may compute the
overlay One-Way-Delay time through the value in TimestampReceived and
the TimestampInitiated field. However, for a single hop measurement,
the traditional measurement methods must be used instead of the
overlay layer diagnostics methods.
Editor note: We need more discussion and careful consideration on how
to use the timestamp here because time synchronization is a barrier
in open Internet environment, while in the operator's network, it is
not so tricky.
The initiator node receiving the Inspect response must check the
HopCounter field and compute the overlay hops to the destination peer
for the statistics of connectivity quality from the perspective of
overlay hops.
Inspect is also used to detect possible failures in the specified
path of P2PSIP overlay network. If disabled peers, misrouting
behavior and underlying network faults are detected during the
routing process, the Error responses with Error codes and
descriptions, must be sent to the initiator node immediately. See
section 6.4 for the details.
6.2. Path_Track
We define a simple Path_Track method to retrieve the diagnostic
information from the intermediate peers along the routing path. At
each step of the Path_Track request, the responsible peer responds to
the initiator node with the status information of itself whether or
not congested , its processing power, its available bandwidth, the
number of entries in its neighbor table, its uptime, his identity and
network address information, and the next hop peer information.
Song & Jiang Expires July 25, 2009 [Page 11]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
Peer-1 Peer-2 Peer-3 Peer-4
| | | |
|(1).Path_Track Req | | |
|------------------->| | |
|(2).Path_Track ans | | |
|<-------------------| | |
| |(3).Path_Track Req | |
|--------------------|------------------->| |
| |(4).Path_Track Ans | |
|<-------------------|--------------------| |
| | |(5).Path_Track Req |
|--------------------|--------------------|------------------->|
| | |(6).Path_Track Ans |
|<-------------------|--------------------|--------------------|
| | | |
Path_Track example
A Path_Track request must specify which diagnostic information is
requested by setting different bits in the flag contained in the
Path_Track request payload. If the flag is clear, then the
Path_Track request is only used for asking the next hop information,
in this case the iterative mode of Path_Track is used only for
checking the liveness of the peers along the routing path. The
Path_Track request can be routed directly or through the overlay
based on the local policy of the initiator node.
Path_Track request:
struct {
Destination destination;
Uint32 dFlags;
uint64 Expiration;
} RathTrackReq;
destination : The destination which the requester is interested
in. This may be any valid destination object, including a
Node-ID, compressed ids, or Resource-ID.
dFlags : An unsigned 32-bit integer indicating which kind of
diagnostic information the initiator interested in. The initiator
sets different bits to retrieve different kinds of diagnostic
information. If dFlags is clear, then no diagnostic information
is conveyed in the Path_Track response. If dFlag is set to
0xFFFFFFFF, then all diagnostic information kinds are requested.
The kinds of diagnostic information including: status information,
its processing power, its available bandwidth, the number of
entries in its neighbor table, its uptime, etc. The mapping
between the bits in the dFlags and the diagnostic information kind
Song & Jiang Expires July 25, 2009 [Page 12]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
is as below:
StatusInfo Flag(0x0001) : if set, the status information of the
responding peer is requested;
Routing_Table_Size Flag(0x0002) : if set, the number of entries
in the responding peer's neighbor is requested;
ProcessPower Flag(0x0004) : if set, the processing power
information of the responding peer is requested;
Bandwidth Flag(0x0008) : if set, the bandwidth information of
the responding peer is requested;
[TODO: The bits in the dFlags should also map to the diagnostic
information defined in section 9 of p2psip base draft.]
A response to a successful PathTrackReq is a PathTrackAns message.
There is a general diagnostic information part based on the flags.
Path_Track response:
struct {
Destination next_hop;
Diagnostic_Info diag_info_list<0..2^5-1>;
uint64 Expiration;
} RathTrackAns;
next_hop : The information of the next hop node from the
responding intermediate peer to the destination node. If the
responding peer is the responsible peer for the destination ID,
then the next_hop node ID equals the responding node ID, and after
that the initiator must stop the iterative process.
diag_info_list: The diagnostic information from the responding
peer.
The TLV structure for Diagnostic_Info is as the following:
struct {
uint8 Kind-ID;
uint8 length;
Opaque diagnosic_information<0..2^8-1>;
} Diagnostic_Info;
Various kinds of diagnostic information can be retrieved, some of
them are defined in this document, and some of them are defined in
the p2psip base draft. This document introduces additional three new
data kind-IDs as below:
Song & Jiang Expires July 25, 2009 [Page 13]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
Kind Kind-ID
StatusInfo 16
ProcessPower 17
Bandwidth 18
The final kind-IDs will be assigned by IANA as specified in section
14.2 of the p2psip base protocol [I-D.ietf-p2psip-base].
As for the Path_Track responses, whether or not sending back certain
kind of diagnostic information to the initiator node depends on
(1) the dFlags
(2)the authorization policy.
Failures may be detected during the process, after that an Error
response should be reported to the initiator node immediately.
6.3. Echo
An Echo request message is used to retrieve the diagnostic
information of the specified path in administrative p2p overlays
where all the peers in the overlay are trusted or based on specific
authorization. For example, it can be used in a p2p overlay where
all peers deployed by the operator to provide services to the
customers(clients), where the diagnostics happens between peers in
the p2p overlay. For the untrusted p2p overlays, e.g. some end user
equipments can be the peers in the overlay network, then the Echo
method must be used with care for the consideration of potential DoS
attack. Compared with Path_Track method, Echo method brings less
messages to the p2p overlay network. [Editor's note: More
consideration needs to be given to the security of Echo method and
also complexity of the method if any.]
An Echo request is normal P2PSIP base protocol message; it can be
initiated by any node in the administrative p2p overlay which
supports P2PSIP base protocol specification.
An Echo request must specify which diagnostic information it is
interested in by setting different bits in the dFlags contained in
the request payload. If all diagnostic flags are clear, the response
is a simple Echo response containing no additional diagnostic
information.
Any intermediate peer along the Echo request path should forward the
Echo request to the next hop, and then returns an Echo response to
the initiator node, along with the diagnostic information indicated
Song & Jiang Expires July 25, 2009 [Page 14]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
by the dFlags in the Echo request.
As for the Echo responses, whether or not sending back certain kind
of diagnostic information to the initiator node depends on
(1) the dFlags
(2)the authorization policy.
Any Echo request/response whose time in the Expiration field expired
should be ignored.
Peer-1 Peer-2 Peer-3 Peer-4
| | | |
| (1).Echo Request | | |
|------------------->| | |
| | (2).Echo Request | |
| |------------------->| |
| (3).Echo Response | | |
|<-------------------| | |
| | | (4).Echo Request |
| | |------------------->|
| | (5).Echo Response | |
|<-------------------|--------------------| |
| | | (6).Echo Response |
|<-------------------|--------------------|--------------------|
| | | |
P2PSIP Echo example
Echo request:
Struct {
Uint32 dFlags;
uint64 Expiration;
}EchoReq
dFlags (32 bits): An unsigned 16-bit integer indicating which kind
of diagnostic information the initiator interested in. The
initiator sets different bits to retrieve different kinds of
diagnostic information. If dFlags is clear, then no diagnostic
information is conveyed in the Echo response. See section 6.2 for
the mapping between the bits in the dFlags and the diagnostic
information kinds.
Expiration: See section 5.2.2 for the meaning.
Song & Jiang Expires July 25, 2009 [Page 15]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
Echo response:
Struct {
Diagnostic_Info diag_info_list<0..2^5-1>;
uint64 Expiration;
}EchoAns
The peer may find misrouting behaviors or the underlay failures
during the Echo process, then an Error response should be generated
and send back to the initiator node. See section 6.4 for details.
6.4. Error responses
In p2psip overlay, the error response can be generated by the
intermediate peer or responsible peer, to a diagnostic message or
other messages. All error responses contain the Error code followed
by the subcode and descriptions if existed.
When a request arrives at a peer, if the peer's responsible ID space
does not cover the destination ID of the request, then the peer
continues to forward this request according to the overlay specified
routing mode.
When a request arrives at a peer, the peer may find some connectivity
failures or malfunction peers through the analysis of via list or
underlay error messages. The peer should report the error responses
to the initiator node. The malfunction node information should also
be reported to the initiator node in the error message payload.
The peer should return an Error response with the Error Code 8
"Underlay Destination Unreachable" when it receives an ICMP message
with "Destination Unreachable" information after forwarding the
received request.
The peer should return an Error response with the Error Code 9
"Underlay Time Exceeded" when it receives an ICMP message with "Time
Exceeded" information after forwarding the received request.
The peer should return an Error response with the Error Code 10
"Message Expired" when it finds that the message expires the time
field Expiration contained in the message payload.
The peer should return an Error response with Error Code 11 "Upstream
Misrouting" when it finds its upstream peer disobeys the routing
rules defined in the overlay. The immediate upstream peer
information should also be conveyed to the initiator node.
The peer should return an Error response with Error Code 12 "Loop
detected" when it finds a loop through the analysis of via list.
Song & Jiang Expires July 25, 2009 [Page 16]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
The peer should return an Error response with Error Code 13 "TTL hops
exceeded" when it finds that the TTL field value is no more than 0
when forwarding.
7. Security Considerations
The Echo method may potentially cause DoS attack to the initiator,
though this implementation is more efficient than using iterative
mode of Path_Track operation.
An advice is to use the efficient Echo operation in administrated
P2PSIP overlay and use the pacing-style Path_Track operation in the
untrustworthy P2PSIP overlay network, certainly, the probability of
this type of DoS attack is very low because the overlay is
distributed and then it is very hard for the attacker to know the
accurate Peer-IDs and attack most of all peers simultaneously.
8. IANA Considerations
Message Code: this document introduces three new type of message to
the "RELOAD Message Code" Registry as below:
+-------------------+----------------+----------+
| Message Code Name | Code Value | RFC |
+-------------------+----------------+----------+
| inspect_req | 29 | RFC-AAAA |
| inspect_ans | 30 | RFC-AAAA |
| path_track_req | 31 | RFC-AAAA |
| path_track_ans | 32 | RFC-AAAA |
| echo_req | 33 | RFC-AAAA |
| echo_ans | 34 | RFC-AAAA |
+-------------------+----------------+----------+
Error Code: this document introduces some new Error Codes to the
"RELOAD Message Code" Registry as below:
Code Value Error Code Name
8 Underlay Destination Unreachable
9 Underlay Time exceeded
10 Message Expired
11 Upstream Misrouting
12 Loop detected
13 TTL hops exceeded
Data Kind-ID: This document introduces additional data kind-IDs to
the "RELOAD Data Kind-ID" Registry as below:
Song & Jiang Expires July 25, 2009 [Page 17]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
Kind Kind-ID
StatusInfo 16
ProcessPower 17
Bandwidth 18
9. Acknowledgments
We would like to thank Zheng Hewen for the contribution of the
initial version of this draft. We would also like to thank Bruce
Lowekamp, Salman Baset, Henning Schulzrinne, Roni Even and Jiang
Haifeng for the email discussion and their valued comments, and thank
Henry Sinnreich for contributing to the usage scenarios in the
Introduction.
The authors would also like to thank the many people of the IETF
P2PSIP WG that have contributed to discussions and provided input
invaluable in assembling this document.
10. References
10.1. Normative References
[RFC792] Postel, J., "Internet Control Message Protocol", RFC 792,
September 1981.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
A., Peterson, J., Sparks, R., Handley, M., and E.
Schooler, "SIP: Session Initiation Protocol", RFC 3261,
June 2002.
[RFC4330] Mills, D., "Simple Network Time Protocol (SNTP) Version 4
for IPv4, IPv6 and OSI", RFC 4330, January .
[RFC4981] Risson, J., "Survey of Research towards Robust Peer-to-
Peer Networks: Search Methods", September 2007.
[I-D.ietf-p2psip-sip]
Jennings, C., Lowekamp, B., Rescorla, E., Baset, S., and
H. Schulzrinne, "A SIP Usage for RELOAD",
draft-ietf-p2psip-sip-00 (work in progress), October 2008.
[I-D.ietf-p2psip-base]
Jennings, C., Lowekamp, B., Rescorla, E., Baset, S., and
Song & Jiang Expires July 25, 2009 [Page 18]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
H. Schulzrinne, "REsource LOcation And Discovery (RELOAD)
Base Protocol", draft-ietf-p2psip-base-01 (work in
progress), December 2008.
[I-D.song-p2psip-security-eval]
Yongchao, S., Zhao, B., Jiang, X., and J. Haifeng, "P2PSIP
Security Analysis and Evaluation",
draft-song-p2psip-security-eval-00 (work in progress),
February 2008.
[I-D.bryan-p2psip-app-scenarios]
Bryan, D., Shim, E., Lowekamp, B., and S. Dawkins,
"Application Scenarios for Peer-to-Peer Session Initiation
Protocol (P2PSIP)", draft-bryan-p2psip-app-scenarios-00
(work in progress), November 2007.
[I-D.bryan-p2psip-requirements]
Bryan, D., "P2PSIP Protocol Framework and Requirements",
draft-bryan-p2psip-requirements-00 (work in progress),
July 2007.
[I-D.zheng-p2psip-diagnose]
Song, H. and X. Jiang, "Diagnose P2PSIP Overlay Network",
draft-zheng-p2psip-diagnose-04 (work in progress),
December 2008.
[I-D.ietf-p2psip-concepts]
Bryan, D., "Concepts and Terminology for Peer to Peer
SIP", draft-ietf-p2psip-concepts-02 (work in progress),
June 2007.
[Overlay-Failure-Detection]
Zhuang, S., "On failure detection algorithms in overlay
networks", Proc. IEEE Infocomm, Mar 2005.
[Handling_Churn_in_a_DHT]
Rhea, S., "Handling Churn in a DHT", USENIX Annual
Conference, June 2004.
[Diagnostic_Framework]
Jin, X., "A Diagnostic Framework for Peer-to-Peer
Streaming", 2005.
[Diagnostics_and_NAT_traversal_in_P2PP]
Gupta, G., "Diagnostics and NAT Traversal in P2PP - Design
and Implementation", Columbia University Report ,
June 2008.
Song & Jiang Expires July 25, 2009 [Page 19]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
10.2. Informative References
[I-D.ietf-behave-rfc3489bis]
Rosenberg, J., Mahy, R., and C. Huitema, "Simple Traversal
Underneath Network Address Translators (NAT) (STUN)",
draft-ietf-behave-turn-04 (work in progress), Junly 2007.
[I-D.ietf-mmusic-ice]
Rosenberg, J., "Interactive Connectivity Establishment
(ICE): A Methodology for Network Address Translator (NAT)
Traversal for Offer/Answer Protocols",
draft-ietf-mmusic-ice-17 (work in progress), July 2007.
[I-D.baset-p2psip-p2pp]
Baset, S., "Peer-to-Peer Protocol (P2PP)",
draft-baset-p2psip-p2pp-00 (work in progress), July 2007.
[I-D.matuszewski-p2psip-security-requirement]
Song, H., York, D., and M. Matuszewski, "Security
requirements in P2PSIP",
draft-matuszewski-p2psip-security-requirements-04 (work in
progress), November 2008.
11. Authors' Addresses
Song Haibin
Huawei
Baixia Road No. 91
Nanjing, Jiangsu Province 210001
P.R.China
Phone: +86-25-84565867
Fax: +86-25-84565888
Email: melodysong@huawei.com
Jiang Xingfeng
Huawei
Baixia Road No. 91
Nanjing, Jiangsu Province 210001
P.R.China
Phone: +86-25-84565868
Fax: +86-25-84565888
Email: jiang.x.f@huawei.com
Song & Jiang Expires July 25, 2009 [Page 20]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
12. Full Copyright Statement
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
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document.
All IETF Documents and the information contained therein 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 THEREIN WILL NOT INFRINGE
ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS
FOR A PARTICULAR PURPOSE.
13. Intellectual Property Statement
The IETF Trust 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 any IETF 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.
Copies of Intellectual Property 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
any standard or specification contained in an IETF Document. Please
address the information to the IETF at ietf-ipr@ietf.org.
The definitive version of an IETF Document is that published by, or
under the auspices of, the IETF. Versions of IETF Documents that are
published by third parties, including those that are translated into
Song & Jiang Expires July 25, 2009 [Page 21]
Internet-Draft Diagnose P2PSIP Overlay Network January 2009
other languages, should not be considered to be definitive versions
of IETF Documents. The definitive version of these Legal Provisions
is that published by, or under the auspices of, the IETF. Versions
of these Legal Provisions that are published by third parties,
including those that are translated into other languages, should not
be considered to be definitive versions of these Legal Provisions.
For the avoidance of doubt, each Contributor to the IETF Standards
Process licenses each Contribution that he or she makes as part of
the IETF Standards Process to the IETF Trust pursuant to the
provisions of RFC 5378. No language to the contrary, or terms,
conditions or rights that differ from or are inconsistent with the
rights and licenses granted under RFC 5378, shall have any effect and
shall be null and void, whether published or posted by such
Contributor, or included with or in such Contribution.
Song & Jiang Expires July 25, 2009 [Page 22]
| PAFTECH AB 2003-2026 | 2026-04-23 14:32:51 |