gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r6580 - GNUnet-docs/WWW


From: gnunet
Subject: [GNUnet-SVN] r6580 - GNUnet-docs/WWW
Date: Thu, 20 Mar 2008 23:47:55 -0600 (MDT)

Author: grothoff
Date: 2008-03-20 23:47:55 -0600 (Thu, 20 Mar 2008)
New Revision: 6580

Added:
   GNUnet-docs/WWW/protocol_transport_http.php3
Log:
oops

Added: GNUnet-docs/WWW/protocol_transport_http.php3
===================================================================
--- GNUnet-docs/WWW/protocol_transport_http.php3                                
(rev 0)
+++ GNUnet-docs/WWW/protocol_transport_http.php3        2008-03-21 05:47:55 UTC 
(rev 6580)
@@ -0,0 +1,45 @@
+<?php
+include("scripts.php3");
+$title = "GNUnet: The HTTP transport service";
+$description = "Documentation for the HTTP transport service protocol";
+include("html_header.php3");
+
+H2("The HTTP transport service");
+BP();
+W("The HTTP transport service uses both GET and POST/PUT requests to transmit 
data.");
+W("While bi-directional communication could just use GET requests, peers 
behind NAT could not be reached that way.");
+W("As a result, HTTP transports distinguish between the peer initiating the 
connection and the peer receiving the request.");
+W("The initiator performs a PUT request whenever the initiator wants to send a 
message.");
+W("The initiator also attempts to always have a GET request pending with the 
receiving peer.");
+W("The receiving peer can use that GET request to transmit its data to the 
initiator.");
+P();
+W("Both GET and POST/PUT requests use the encoded hash of the public key of 
the sender for the filename in the URL.");
+W("This enables the receiver to determine who is initiating the request.");
+W("No &quot;WELCOME&quot; message is exchanged; the initiator is expected to 
know who he wants to talk to.");
+W("More than such one message can be transmitted using the same GET or PUT 
request.");
+W("The transmission format uses the usual encapsulation with a 
<tt>GNUNET_MessageHeader</tt>.");
+W("That message has the following format:");
+EP();
+LAYOUT("GNUNET_MessageHeader",
+       F(ARRAY(N("size", NBO_()) => 2,
+               V("reserved", 0, NBO_()) => 2,
+               N("data", "") => 0)));
+BP();
+W("Here, <tt>data</tt> is the message as passed down by the GNUnet core.");
+P();
+W("For the HTTP transport service, the sender address in the HELLO has this 
format:");
+EP();
+LAYOUT("HostAddress",
+       F(ARRAY(N("IPv6 address", "") => 16,
+              N("IPv4 address", NBO_()) => 4,
+               N("port", NBO_()) => 2,
+               V("availability", 0, NBO_()) => 2)));
+BP();
+W("The <tt>availability</tt> field describes which of the IP protocols are 
supported.");
+W("If the lowest bit (1) is set, the given IPv4 address should be valid.");
+W("If the second lowest bit (2) is set, the given IPv6 address should be 
valid.");
+W("If both bits are set, both IPv4 and IPv6 can be used to contact the peer.");
+W("All other bits should be zero and ignored by peers at this point.");
+W("HELLOs where no bits in <tt>availability</tt> are set are invalid.");
+include("html_footer.php3");
+?>





reply via email to

[Prev in Thread] Current Thread [Next in Thread]