[Top][All Lists]
[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 "WELCOME" 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");
+?>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r6580 - GNUnet-docs/WWW,
gnunet <=