QKR

From Gnutella2
Revision as of 18:45, 11 January 2009 by Dcat (Talk | contribs)

Jump to: navigation, search

Root Packets
CRAWLA - CRAWLR
HAW - LNI
KHL - KHLA - KHLR
PI - PO - PUSH
QKA - QKR
Q2 - QA - QH2 - QHT
UPROC - UPROD

/QKR - Query Key Request

The query key request asks a destination hub to provide a query key that the requesting node can use to securely perform queries. This mechanism ensures that the network cannot be used to direct unsolicited packets to external hosts.

Sending

A query key request should be sent to a hub via the connectionless transport if a key is not already available for that hub for the local node address, or if a previously acquired key no longer works or has expired. There is no reason to request a query key via a TCP link.

Receiving

Upon receiving a query key request, a hub should respond with a query key answer (/QKA) packet if it is willing to supply a query key. The answer packet should be dispatched to the return address indicated in the request packet only, and the allocated key should be locked to that address.

Payload

This packet has no payload at the current time.

Children

The QKR packet has these child packets defined at the current time:

  • /QKR/RNA
  • /QKR/SNA
  • /QKR/QNA
  • /QKR/REF

/QKR/RNA - Requesting Node Address

A query key may be requested for a node address other than that of the sender, for example when a UDP-firewalled leaf node wishes to acquire a query key for a remote hub that it will route through a locally connected hub. In this case it must request a query key for the node address of a connected hub.

Sending

This child is required to ensure that the sender knows its address.

Payload

The network address of the requesting node. See Datatypes for more information.

Children

This packet has no known children at the current time.

/QKR/REF - Refresh the query key

Indicates that the query key for /QKR/QNA should not be retrieved from cache but instead the node in /QKR/QNA should be asked for its key. This packet appears to not be in widespread use.

Payload

This packet has no payload at the current time.

Children

This packet has no known children at the current time.