P2PSIP                                                          H. Song 
Internet-Draft                                                 X. Jiang 
Intended status: Standards Track                                 Huawei 
Expires: May 2009                                       November 4, 2008         
 
                                      
                      Diagnose P2PSIP Overlay Network 
                    draft-zheng-p2psip-diagnose-03.txt 


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 May 4, 2009. 

   Abstract 

   This document describes P2PSIP diagnostics. It extends the methods 
   defined in the base protocol for the diagnostics in P2PSIP overlay 
   network. A new method Echo is an efficient method used in the trusted 
   overlays for retrieving useful diagnostic information. The methods 
   and message formats are consistent with P2PSIP base protocol RELOAD, 
   and the diagnostic information mainly comes from the previous 
   version-02 of this document. 

    

 
 
 
 
Song, et al.             Expires May 4, 2009                   [Page 1] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

Table of Contents 

   1. Introduction..................................................3 
      1.1. Usage Scenarios..........................................3 
   2. Terminology...................................................4 
   3. Overview of Functions.........................................4 
   4. Motivation....................................................5 
   5. Packets Formats...............................................6 
      5.1. Message Codes............................................7 
      5.2. Message payloads.........................................8 
         5.2.1. Error Codes and Sub-Codes...........................8 
         5.2.2. diagnostics information.............................9 
   6. Message......................................................10 
      6.1. Ping....................................................10 
      6.2. Route_Query.............................................11 
      6.3. Echo....................................................13 
      6.4. Error responses.........................................15 
   7. Security Considerations......................................16 
   8. IANA Considerations..........................................16 
   9. Acknowledgments..............................................17 
   10. References..................................................17 
      10.1. Normative References...................................17 
      10.2. Informative References.................................19 
   Author's Addresses..............................................20 
    
    

    

    

    

    

    

    

    

    





 
 
Song, et al.             Expires May 4, 2009                   [Page 2] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

 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 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 reference [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, et al.             Expires May 4, 2009                   [Page 3] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

 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 RFC-2119 [1]. 

 3. Overview of Functions 

   As one diagnostics protocol, P2PSIP diagnostics protocol is mainly 
   used to detect and localize failures 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 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 described here extends Ping and 
   Route_Query methods in the P2PSIP base protocol, as well as the Error 
   response to these two methods. Essentially it reuses P2PSIP base 
   protocol specification and then introduces one new method (i.e., Echo 
   method). 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 extending the Ping method defined in  
   Reload) and a "traceroute" mode (implement differently with trusted 
   such as operator deployed P2PSIP overlays, compared with untrusted 
   overlays)for diagnose P2PSIP overlay network. 

   A Ping request message is forwarded by the intermediate peers along 
   the path and then terminated by the responsible peer, and after local 

 
 
Song, et al.             Expires May 4, 2009                   [Page 4] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

   diagnostics, the responsible peer returns a Ping response message. If 
   an error is found when routing, an Error 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 local diagnostics information including the result and 
   causes if existing. (2) In untrusted p2p overlays, we extend the 
   Route_Query method for retrieving diagnostics information iteratively. 
   Firstly, the initiator node asks its neighbor A which is closest to 
   the destination ID, and then retrieve the next hop node B information, 
   along with other 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 Ping operation once the overlay network 
   receives some alarms about overlay service degradation or 
   interruption, if the ping fails, one can then send a P2PSIP 
   Traceroute(iterative Route_Query or Echo) to determine where the 
   fault lies. 

    

   The diagnostic information must only provide to the 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. 

 4. 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 

 
 
Song, et al.             Expires May 4, 2009                   [Page 5] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

   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 descriptions in "Security requirements in P2PSIP" [I-
   D.matuszewski-p2psip-security-requirement] and "Security Mechanisms 
   for Peer to Peer SIP"[I-D.jennings-p2psip-security-mechanisms], 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 
   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 
   complementation for some keep-alive algorithms in the P2P or P2PSIP 
   overlay itself. 

    

 5. Packets Formats 

   This document reuses the P2PSIP base protocol to carry diagnostics 
   information. Considering special usage of diagnostics, this document 

 
 
Song, et al.             Expires May 4, 2009                   [Page 6] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

   extends the P2PSIP base protocol Ping and Route_Query methods, as 
   well as the Error response, and introduces one new type of message 
   method Echo and some diagnostics information. 

    

   As described in the P2PSIP base protocol, each message has three 
   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 introduced message whatever request or response 
   adopts the same message format with existing 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 extends the following message methods and related 
   message codes by defining additional message payloads. 

                +-------------------+----------------+----------+ 
                | Message Code Name |     Code Value |      RFC | 
                +-------------------+----------------+----------+ 
                | route_query_req   |             21 | RFC-AAAA | 
                | route_query_ans   |             22 | RFC-AAAA | 
                | ping_req          |             23 | RFC-AAAA | 
                | ping_ans          |             24 | RFC-AAAA | 
                | error             |         0xffff | RFC-AAAA | 
                +-------------------+----------------+----------+ 
    
    

   This document introduces one new type of message as below: 



 
 
Song, et al.             Expires May 4, 2009                   [Page 7] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

   Name              Message Code 
   Echo request           29 
   Echo response          30 
    
    
5.2. Message payloads 

   As 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 Echo method, this document 
   extends the Error codes defined in P2PSIP base protocol specification. 

5.2.1. Error Codes and Sub-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 
    
    

   This document introduces Error Sub-Codes in the error_info for Error 
   Code 8 as below: 

    

   Error Sub-Code       Meaning 
         0              net unreachable 
         1              host unreachable 
         2              protocol unreachable 
         3              port unreachable 
         4              fragmentation needed 
         5              source route failed 
    


 
 
Song, et al.             Expires May 4, 2009                   [Page 8] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

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. 

   HopCounter (8 bits): This byte only appears in diagnostic responses. 
   It must be exactly copied from the TTL field of the message header in 
   the received Echo 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 format [RFC2030] 
   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 
   and the time-of-day (according to the receiver's clock) in NTP format 
   [RFC2030] that corresponding to 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 format [RFC2030]. It can be used to 
   mitigate the replay attack to the destination peer and overlay 
   network. 

   ProcessPower (32 bits): it appears in a diagnostic response message. 
   The processing power of the node is described by ProcessPower value 
   in unit of MIPS. 

   Bandwidth (32 bits): It appears in a diagnostic response message. The 
   Bandwidth of the node is described by Bandwidth value in unit of Kbps. 



 
 
Song, et al.             Expires May 4, 2009                   [Page 9] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

   NumEntries (32 bits): It indicates the number of entries in the 
   peer's neighbor table. The administrator of the overlay may be 
   interested in statistics of this value for the consideration such as 
   routing efficiency. 

   StatusInfo (8 bits): It indicates whether or not the node is in 
   congestion status. 

 6. Message 

   All P2PSIP base protocol requests and responses use the common 
   forwarding header after which the message contents follow. 

   This document extends Ping and Route_Query methods, and introduces 
   the new Echo message to detect and localize failures in P2PSIP 
   overlay network. The Error Codes and their sub-codes to these 
   requests can refer to section 5.2.1 of this spec. 

6.1. Ping 

   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 extend the Ping message payloads with a few kinds of useful 
   information for connectivity quality check purposes. See below for 
   the Ping formats. 

   Ping Request: 
            struct { 
              uint8  UnderlayTTL; 
              uint64 TimestampInitiated; 
              uint64 Expiration; 
            } PingReq; 
    
   Ping Response: 
            struct { 
              uint8  HopCounter; 
              uint64 TimestampReceived; 
              uint64 Expiration; 
            }PingAns; 
    
   Any intermediate node which receives the Ping 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. 


 
 
Song, et al.             Expires May 4, 2009                  [Page 10] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

   Each peer receiving the Ping request/response should check the 
   Expiration value (NTP format) to determine if the message expires. If 
   the message expires, the intermediate peer should generate a "Message 
   Expired" Error to the initiator node, and discard 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 Ping request must copy the TTL field 
   value in the forwarding header to the HopCounter value in the 
   response, meanwhile, it should generate a NTP format timestamp to 
   indicate the received time.  

   The initiator node, as well as the response peer, can compute the 
   overlay RTT time through the value in TimestampReceived and the 
   TimestampInitiated field. 

   The initiator node receiving the Ping response should compute the 
   overlay hops to the destination peer for the statistics of 
   connectivity quality from the perspective of overlay hops. 

   Ping 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. Route_Query 

   We simply extend Route_Query to retrieve the diagnostic information 
   from the intermediate peers along the routing path. At each step of 
   the Route_Query 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, the address 
   information of itself, the next hop peer information. 

    










 
 
Song, et al.             Expires May 4, 2009                  [Page 11] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

   Peer-1              Peer-2               Peer-3               Peer-4 
     |                    |                    |                    | 
     |(1).Route_Query Req |                    |                    | 
     |------------------->|                    |                    | 
     |(2).Route_Query ans |                    |                    | 
     |<-------------------|                    |                    | 
     |                    |(3).Route_Query Req |                    | 
     |--------------------|------------------->|                    | 
     |                    |(4).Route_Query Ans |                    | 
     |<-------------------|--------------------|                    | 
     |                    |                    |(5).Route_Query Req | 
     |--------------------|--------------------|------------------->| 
     |                    |                    |(6).Route_Query Ans | 
     |<-------------------|--------------------|--------------------| 
     |                    |                    |                    | 
    
                               Route_Query example 
    

   A Route_Query request must specify which diagnostic information he is 
   interested in by setting different bits in a flag contained in the 
   Route_Query request payload. If the flag is cleared, then the 
   Route_Query request is only used for asking the next hop information, 
   then the iterative mode of Route_Query is degraded only for checking 
   the liveness of the peers along the routing path. The Route_Query 
   request can be routed directly or through the overlay due to the 
   local policy of the initiator node. 

   Route_Query request: 
             struct { 
               Boolean                send_update; 
               Destination            destination; 
               uint16                 dFlag; 
               opaque                 overlay_specific_data<0..2^16-1>; 
             } RouteQueryReq; 
    
   send_update : A single byte. This may be set to "true" to indicate 
   that the requester wishes the responder to initiate an Update request 
   immediately. Otherwise, this value must be set to "false". 

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. 

   dFlag : A flag indicating which kind of diagnostic information the 
   initiator interested in. The initiator sets different bits to 

 
 
Song, et al.             Expires May 4, 2009                  [Page 12] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

   retrieve different kinds of diagnostic information. If this flag is 
   cleared, then no diagnostic information is conveyed in the 
   Route_Query response. 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 dFlag and the diagnostic information 
   kind is TBD. 

   Overlay_specific_data : Other data as appropriate for the overlay. 

   A response to a successful RouteQueryReq request is a RouteQueryAns 
   message. This is completely overlay specific. 

   As for the Route_Query responses, whether or not sending back certain 
   kind of diagnostic information to the initiator node depends on (1) 
   the dFlag (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. For example, it can 
   be used in a p2p overlay that 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. The Echo method must be used with care for the 
   consideration of potential DoS attack. 

   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 he is 
   interested in by setting different bits in the dFlag contained in the 
   request payload. If the flag is cleared, 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 
   by the dFlag in the Echo request.  



 
 
Song, et al.             Expires May 4, 2009                  [Page 13] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

   As for the Echo responses, whether or not sending back certain kind 
   of diagnostic information to the initiator node depends on (1) the 
   dFlag (2)the authorization policy. 

   Any Echo request/response that expires the time in the Expiration 
   field 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 { 
                    uint64 Expiration 
                    uint16 dFlag; 
                  }EchoReq 
    
   dFlag (16 bits): A flag indicating which kind of diagnostic 
   information the initiator interested in. The initiator sets different 
   bits to retrieve different kinds of diagnostic information. If this 
   flag is cleared, then no diagnostic information is conveyed in the 
   Echo response. 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 dFlag and the diagnostic information kind is 
   TBD. 

   Expiration: See section 5.2.2 for the meaning.  





 
 
Song, et al.             Expires May 4, 2009                  [Page 14] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

    
   Echo response: 
                 Struct { 
                   uint64 Expiration; 
                   Opaque overlay_specific_data<0..2^16-1>; 
                 }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 


 
 
Song, et al.             Expires May 4, 2009                  [Page 15] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

   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. 

   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 cause DoS attack to the initiator, though this 
   implementation is more efficient than using iterative mode of 
   Route_Query operation. 

   An advice is to use the efficient Echo operation in administrated 
   P2PSIP overlay and use the pacing-style Route_Query 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 a new type of message as below: 

                +-------------------+----------------+----------+ 
                | Message Code Name |     Code Value |      RFC | 
                +-------------------+----------------+----------+ 
                | Echo_req          |             29 | RFC-AAAA | 
                | Echo_ans          |             30 | RFC-AAAA | 
                +-------------------+----------------+----------+ 
    
   Error Code: this document introduces some 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 
    
   Error Sub-Code: this document defines response sub-codes for the 
   Error Code 8 "Underlay Destination Unreachable" as below: 

 
 
Song, et al.             Expires May 4, 2009                  [Page 16] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

    Sub-Code             Meaning 
         0              net unreachable 
         1              host unreachable 
         2              protocol unreachable 
         3              port unreachable 
         4              fragmentation needed 
         5              source route failed 
    
 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 and Jiang Haifeng for the 
   email discussion and their valued comments. We would also like to 
   thank Henry Sinnreich for contributing to the usage scenarios in the 
   Introduction. 

 10. References 

10.1. Normative References 

   [1]   Bradner, S., "Key words for use in RFCs to Indicate Requirement 
         Levels", BCP 14, RFC 2119, March 1997. 

   [2]   Crocker, D. and Overell, P.(Editors), "Augmented BNF for Syntax 
         Specifications: ABNF", RFC 2234, Internet Mail Consortium and 
         Demon Internet Ltd., November 1997. 

   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 
             Requirement Levels", BCP 14, RFC 2119, March 1997. 

   [RFC2234] Crocker, D. and Overell, P.(Editors), "Augmented BNF for 
             Syntax Specifications: ABNF", RFC 2234, Internet Mail 
             Consortium and Demon Internet Ltd., November 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. 

   [RFC792] Postel, J., "Internet Control Message Protocol", STD5, RFC 
             792, September 1981. 

   [RFC2030] Mills, D., "Simple Network Time Protocol (SNTP) Version 4 
             for IPv4, IPv6 and OSI", RFC 2030, October 1996. 



 
 
Song, et al.             Expires May 4, 2009                  [Page 17] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

   [RFC4981] J. Risson, "Survey of Research towards Robust Peer-to-Peer 
             Networks: Search Methods", RFC 4981, September 2007. 

   [I-D.ietf-p2psip-concepts] Bryan, D., "Concepts and Terminology for 
             Peer to Peer SIP", draft-ietf-p2psip-concepts-00 (work in 
             progress), June 2007. 

   [I-D.ietf-p2psip-reload] Jennings, C., "REsource LOcation And 
             Discovery (RELOAD)", draft-ietf-p2psip-reload-00 (work in 
             progress), July 2008. 

   [I-D.ietf-p2psip-base] Jennings, C., "REsource LOcation And Discovery 
             (RELOAD) Base Protocol", draft-ietf-p2psip-base-00 (work in 
             progress), October 2008. 

   [I-D.song-p2psip-security-eval] Song, Yongchao., "P2PSIP Security 
             Analysis and Evaluation", draft-song-p2psip-security-eval-
             00 (work in progress), February 2008 

   [I-D.matuszewski-p2psip-security-requirement] M. Matuszewski, 
             "Security requirements in P2PSIP", draft-matuszewski-
             p2psip-security-requirements-01 (work in progress), July 
             2007 

   [I-D.jennins-p2psip-security-mechanisms] C. Jennings, "Security 
             Mechanisms for Peer to Peer SIP", draft-jennings-p2psip-
             security-00 (work in progress), February 2007 

   [I-D.jiang-p2psip-sep] X. Jiang, "Service Extensible P2P Peer 
             Protocol", draft-jiang-p2psip-sep-00 (work in progress), 
             November 2007. 

   [I-D.bryan-p2psip-requirement] D. Bryan, "P2PSIP Protocol Framework 
             and Requirements", draft-bryan-p2psip-requirements-00 (work 
             in progress), July 2007 

   [Overlay-Failure-Detection] S. Zhuang, "On failure detection 
             algorithms in overlay networks", Proc. IEEE Infocomm, Mar 
             13-17 2005. 

   [P2PSIP-Concepts-Terminology] Dean Willis, "P2PSIP Concepts and 
             Terminology", 
             http://www3.ietf.org/proceedings/07jul/slides/p2psip- 
             13.pdf, July 2007 



 
 
Song, et al.             Expires May 4, 2009                  [Page 18] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

   [Handling Churn in a DHT] S. Rhea et al: "Handling Churn in a DHT". 
             USENIX Annual Conference, June 2004 

   [Diagnostic Framework] X. Jin et al: "A Diagnostic Framework for 
             Peer-to-Peer Streaming", Hong Kong University and Microsoft, 
             2005 

   [Diagnostics and NAT traversal in P2PP] G. Gupta et al: "Diagnostics 
             and NAT Traversal in P2PP - Design and Implementation." 
             Columbia University Report. June 2008 

    

10.2. Informative References 

    [I-D.ietf-behave-rfc3489bis] Rosenberg, J., Huitema, C., Mahy, R., 
             and D. Wing, "Simple Traversal Underneath Network Address 
             Translators (NAT) (STUN)", draft-ietf-behave- rfc3489bis-08 
             (work in progress), July 2007. 

   [I-D.ietf-behave-turn] Rosenberg, J., Mahy, R., and C. Huitema, 
             "Obtaining Relay Addresses from Simple Traversal Underneath 
             NAT (STUN)", draft-ietf-behave-turn-04 (work in progress), 
             July 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.bryan-p2psip-dsip] Bryan, D., "dSIP: A P2P Approach to SIP 
             Registration and Resource Location", draft-bryan-p2psip-
             dsip-00 (work in progress), February 2007. 

    [I-D.baset-p2psip-p2pp] S. Baset, "Peer-to-Peer Protocol (P2PP)", 
             draft-baset-p2psip-p2pp-00 (work in progress), July 2007. 

   [I-D.Jennings-p2psip-asp] C. Jennings, "Address Settlement by Peer to 
             Peer", draft-jennings-p2psip-asp-00 (work in progress), 
             July 2007. 

   [I-D.marocco-p2psip-xpp-pcan] Marocco, E. and E. Ivov, "XPP 
             Extensions for Implementing a Passive P2PSIP Overlay 
             Network based on the CAN Distributed Hash Table", draft-
             marocco-p2psip-xpp-pcan-00 (work in progress), June 2007. 


 
 
Song, et al.             Expires May 4, 2009                  [Page 19] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

   [I-D.matthews-p2psip-hip-hop] Cooper, E., "A Distributed Transport 
             Function in P2PSIP using HIP for Multi-Hop Overlay Routing", 
             draft-matthews-p2psip-hip-hop-00 (work in progress), June 
             2007. 

Author's Addresses 

   Haibin Song  
   Huawei 
   10F, Huihong Mansion, No. 91 Baixia Rd., Nanjing, China 
   Phone: +86-25-84565867 
   Email: melodysong@huawei.com 
    

   Xingfeng Jiang 
   Huawei 
   10F, Huihong Mansion, No. 91 Baixia Rd., Nanjing, China 
   Phone: +86-25-84565868 
   Email: jiang.x.f@huawei.com 
    

Full Copyright Statement 

   Copyright (C) The IETF Trust (0000). 

   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 Statement 

   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 


 
 
Song, et al.             Expires May 4, 2009                  [Page 20] 

Internet-Draft             P2PSIP DIAGNOSE                November 2008 
    

   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. 

 






























 
 
Song, et al.             Expires May 4, 2009                  [Page 21]