[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r940 - GNUnet-docs/WWW/test
From: |
durner |
Subject: |
[GNUnet-SVN] r940 - GNUnet-docs/WWW/test |
Date: |
Tue, 14 Jun 2005 12:46:14 -0700 (PDT) |
Author: durner
Date: 2005-06-14 12:46:09 -0700 (Tue, 14 Jun 2005)
New Revision: 940
Modified:
GNUnet-docs/WWW/test/protocol_transport.php3
GNUnet-docs/WWW/test/protocol_transport_tcp.php3
GNUnet-docs/WWW/test/protocol_transport_udp.php3
GNUnet-docs/WWW/test/smtp.php3
Log:
Reformat
Modified: GNUnet-docs/WWW/test/protocol_transport.php3
===================================================================
--- GNUnet-docs/WWW/test/protocol_transport.php3 2005-06-14 19:26:59 UTC
(rev 939)
+++ GNUnet-docs/WWW/test/protocol_transport.php3 2005-06-14 19:46:09 UTC
(rev 940)
@@ -4,14 +4,16 @@
$description="GNUnet Documentation - a secure peer-to-peer framework starring
anonymous file sharing with an excess based trust-economy";
include("html_header.php3");
+BP();
W("GNUnet uses a special type of message to bind public keys to their current
address.");
W("For the UDP and TCP transport layers, an address is an IP and a port.");
W("Other transport mechanisms (HTTP, SMTP, etc.) deploy various other forms of
addresses.");
W("Note that any node can have multiple addresses for the various transport
mechanisms.");
+EP();
include("protocol_transport_index.inc");
-BR();
+BP();
W("The configuration of the SMTP transport layer is described %s",
intlink_("smtp.php3","here"));
@@ -19,9 +21,10 @@
W("There is no guarantee that a message will be delivered.");
W("We now describe how you can write your own transport mechanism for the
GNUnet peer-to-peer framework.");
-P();
+EP();
H4("How do I write a new transport mechanism for GNUnet?");
+BP();
W("The best way to start implementing a new transport mechanism is to start
with existing code that is semantically as close to the new mechanism as
possible.");
W("The most important criteria is if the connection is stateful and
bidirectional (TCP, HTTP) or stateless and unidirectional (UDP, SMTP).");
W("Since reliability and delays are handled by the applications, these
criteria are irrelevant for choosing an implementation to evolve from.");
@@ -37,17 +40,19 @@
W("In addition to the message itself, the transport mechanism must
communicate:");
+EP();
echo "<ul>\n";
LI("The sender identity (hash of public key)");
LI("If the message is in plaintext or encrypted");
LI("The CRC of the (plaintext) message");
LI("The size of the message");
echo "</ul>\n";
+BP();
W("The transport layer implementation defines an appropriate message format to
transmit this data.");
W("The encapsulation format can be different for each transport.");
W("Depending on the implementation of the transport mechanism, not all of
these must be transmitted explicitly in each message.");
W("For example, a stateful transport such as TCP may only transmit the sender
identity once and use special messages to switch between plaintext and
encrypted messages.");
-P();
+EP();
include("html_footer.php3");
?>
Modified: GNUnet-docs/WWW/test/protocol_transport_tcp.php3
===================================================================
--- GNUnet-docs/WWW/test/protocol_transport_tcp.php3 2005-06-14 19:26:59 UTC
(rev 939)
+++ GNUnet-docs/WWW/test/protocol_transport_tcp.php3 2005-06-14 19:46:09 UTC
(rev 940)
@@ -7,11 +7,11 @@
H2("The TCP transport service");
-
+BP();
W("For the TCP transport service, the sender address has this %s:",
extlink_("doxygen/html/structHostAddress.html","format"));
-P();
-echo "<table border=3>\n";
+EP();
+echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
include("bittable.inc");
rowIntEntryNBO("IP");
row(shortEntry_("sender port",
Modified: GNUnet-docs/WWW/test/protocol_transport_udp.php3
===================================================================
--- GNUnet-docs/WWW/test/protocol_transport_udp.php3 2005-06-14 19:26:59 UTC
(rev 939)
+++ GNUnet-docs/WWW/test/protocol_transport_udp.php3 2005-06-14 19:46:09 UTC
(rev 940)
@@ -6,11 +6,12 @@
H2("The UDP transport service");
-
+BP();
W("The current UDP implementation encapsulates messages in this %s.",
extlink_("doxygen/html/structMessagePack.html","format"));
+EP();
-echo "<table border=3>\n";
+echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
include("bittable.inc");
row(shortEntry_("size of the packet",
NBO_()),
@@ -20,11 +21,11 @@
fiveRowIntEntries("sender identity");
rowIntEntry("Messages...");
echo "</table>\n";
-P();
+BP();
W("For the UDP transport service, the sender address has this %s:",
extlink_("doxygen/html/structHostAddress.html","format"));
-P();
-echo "<table border=3>\n";
+EP();
+echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
include("bittable.inc");
rowIntEntryNBO("IP");
row(shortEntry_("sender port",
Modified: GNUnet-docs/WWW/test/smtp.php3
===================================================================
--- GNUnet-docs/WWW/test/smtp.php3 2005-06-14 19:26:59 UTC (rev 939)
+++ GNUnet-docs/WWW/test/smtp.php3 2005-06-14 19:46:09 UTC (rev 940)
@@ -6,9 +6,10 @@
H2("The GNUnet SMTP Transport Layer");
+BP();
W("This page describes the new SMTP transport service for GNUnet.");
W("It also describes the transport layer in more detail and gives some
benchmarking results.");
-P();
+EP();
echo "<ol>\n";
LIV(extlink_("#why","Why use SMTP for a peer-to-peer transport?"));
LIV(extlink_("#how","How does it work?"));
@@ -17,11 +18,13 @@
LIV(extlink_("#perf","How fast is it?"));
LIV(extlink_("#doc","Is there any additional documentation?"));
echo "</ol>\n";
-P();
+BP();
HR();
-P();
+EP();
ANCHOR("why");H3("Why use SMTP for a peer-to-peer transport?");
+BP();
W("There are many reasons why one would not want to use SMTP:");
+EP();
echo "<ul>\n";
LI("SMTP is using more bandwidth than TCP, UDP or HTTP");
LI("SMTP has a much higher latency.");
@@ -31,7 +34,9 @@
LI("SMTP may be abused by tricking GNUnet into sending mail to
non-participating third parties.");
echo "</ul>\n";
+BP();
W("So why would anybody want to use SMTP?");
+EP();
echo "<ul>\n";
LI("SMTP can be used to contact peers behind NAT boxes (in virtual private
networks).");
LI("SMTP can be used to circumvent policies that limit or prohibit
peer-to-peer traffic by masking as "legitimate" traffic.");
@@ -39,26 +44,30 @@
LI("SMTP can be used to initiate a connection (e.g. initial address exchange)
and peers can then negotiate the use of a more efficient protocol (e.g. TCP)
for the actual communication.");
echo "</ul>\n";
+BP();
W("In summary, SMTP can for example be used to send a message to a peer behind
a NAT box that has a dynamic IP to tell the peer to establish a TCP connection
to a peer outside of the private network.");
W("Even an extraordinary overhead for this first message would be irrelevant
in this type of situation.");
-P();
+EP();
ANCHOR("how");H3("How does it work?");
+BP();
W("When a GNUnet peer needs to send a message to another GNUnet peer that has
advertised (only) an SMTP transport address, GNUnet base64-encodes the message
and sends it in an E-mail to the advertised address.");
W("The advertisement contains a <em>filter</em> which is placed in the E-mail
header, such that the receiving host can filter the tagged E-mails and forward
it to the GNUnet peer process.");
W("The filter can be specified individually by each peer and be changed over
time.");
W("This makes it impossible to censor GNUnet E-mail messages by searching for
a generic filter.");
-P();
+EP();
ANCHOR("cfg");H3("How do I configure my peer?");
+BP();
W("First, you need to configure <tt>procmail</tt> to filter your inbound
E-mail for GNUnet traffic.");
W("The GNUnet messages must be delivered into a pipe, for example
<tt>/tmp/gnunet.smtp</tt>.");
W("You also need to define a <em>filter</em> that is used by procmail to
detect GNUnet messages.");
W("You are free to choose whichever filter you like, but you should make sure
that it does not occur in your other E-mail.");
W("In our example, we will use <tt>X-mailer: GNUnet</tt>.");
W("The <tt>~/.procmailrc</tt> configuration file then looks like this:");
+EP();
PRE(":0:\n" .
"* ^X-mailer: GNUnet\n" .
@@ -68,10 +77,12 @@
":0:\n" .
"/var/spool/mail/$USER\n");
+BP();
W("After adding this file, first make sure that your regular E-mail still
works (e.g. by sending an E-mail to yourself).");
W("Then edit the GNUnet configuration.");
W("In the section <tt>SMTP</tt> you need to specify your E-mail address under
<tt>EMAIL</tt>, your mail server (for outgoing mail) under <tt>SERVER</tt>,
your hostname under <tt>SENDERHOSTNAME</tt>, the filter (<em>X-mailer:
GNUnet</em> in the example) under <tt>FILTER</tt> and the name of the pipe
under <tt>PIPE</tt>.");
W("The completed section could then look like this:");
+EP();
PRE("EMAIL = address@hidden" .
"MTU = 65536\n" .
@@ -80,17 +91,19 @@
"SENDERHOSTNAME = www.gnu.org\n" .
"FILTER = \"X-mailer: GNUnet\"\n" .
"PIPE = /tmp/gnunet.smtp");
+
+BP();
W("Finally, you need to add <tt>smtp</tt> to the list of <tt>TRANSPORTS</tt>
in the <tt>GNUNETD</tt> section.");
W("GNUnet peers will use the E-mail address that you specified to contact your
peer until the advertisement times out.");
W("Thus, if you are not sure if everything works properly or if you are not
planning to be online for a long time, you may want to configure this timeout
to be short, e.g. just one hour.");
W("For this, set <tt>HELOEXPIRES</tt> to <tt>1</tt> in the <tt>GNUNETD</tt>
section.");
-BR();
+P();
W("This should be it, but you may probably want to %s it first.\n",
extlink_("#tst","test"));
-P();
ANCHOR("tst");H3("How do I test if it works?");
+BP();
W("Any transport can be subjected to some rudimentary tests using the
<tt>gnunet-transport-check</tt> tool.");
W("The tool sends a message to the local node via the transport and checks
that a valid message is received.");
W("While this test does not involve other peers and can not check if firewalls
or other network obstacles prohibit proper operation, this is a great testcase
for the SMTP transport since it tests pretty much nearly all of the
functionality.");
@@ -104,9 +117,10 @@
W("Note that this test always checks if a transport can receive and send.");
W("While you can configure most transports to only receive or only send
messages, this test will only work if you have configured the transport to send
and receive messages.");
-P();
+EP();
ANCHOR("perf");H3("How fast is it?");
+BP();
W("We have measured the performance of the UDP, TCP and SMTP transport layer
directly and when used from an application using the GNUnet core.");
W("Measureing just the transport layer gives the better view of the actual
overhead of the protocol, whereas evaluating the transport from the application
puts the overhead into perspective from a practical point of view.");
P();
@@ -121,23 +135,48 @@
W("This way, network latency and packet loss on the wire have no impact on the
timings.");
W("n messages were sent sequentially over the transport layer, sending message
i+1 after the i-th message was received.");
W("All messages were sent over the same connection and the time to establish
the connection was not taken into account since this overhead is miniscule in
practice -- as long as a connection is used for a significant number of
messages.");
+EP();
echo "<center>\n";
?>
-<table border=5 width="90%">
-<tr><th><?php W("Transport"); ?></th><th>UDP</th><th>TCP</th>
-<th>SMTP (Purdue sendmail)</th><th>SMTP (RH 8.0)</th><th>SMTP (SGL
qmail)</th></tr>
-<tr><th align=right> 11 bytes</th><td align=right>31 ms</td><td
align=right>55 ms</td>
-<td align=right> 781 s </td><td align=right>77 s </td><td align=right>24 s
</td></tr>
-<tr><th align=right> 407 bytes</th><td align=right>37 ms</td><td
align=right>62 ms</td>
-<td align=right> 789 s </td><td align=right>78 s </td><td align=right>25 s
</td></tr>
-<tr><th align=right>1,221 bytes</th><td align=right>46 ms</td><td
align=right>73 ms</td>
-<td align=right> 804 s </td><td align=right>78 s </td><td align=right>25 s
</td></tr>
+<table border="0" cellspacing="0" cellpadding="0" width="90%">
+ <tr>
+ <th class="tbl"><?php W("Transport"); ?></th>
+ <th class="tbl">UDP</th>
+ <th class="tbl">TCP</th>
+ <th class="tbl">SMTP (Purdue sendmail)</th>
+ <th class="tbl">SMTP (RH 8.0)</th>
+ <th class="tbl">SMTP (SGL qmail)</th>
+ </tr>
+ <tr>
+ <th class="tbl" stlye="text-align: right;"> 11 bytes</th>
+ <td class="tbl" stlye="text-align: right;">31 ms</td>
+ <td class="tbl" stlye="text-align: right;">55 ms</td>
+ <td class="tbl" stlye="text-align: right;"> 781 s </td>
+ <td class="tbl" stlye="text-align: right;">77 s </td>
+ <td class="tbl" stlye="text-align: right;">24 s </td>
+ </tr>
+ <tr>
+ <th class="tbl" stlye="text-align: right;"> 407 bytes</th>
+ <td class="tbl" stlye="text-align: right;">37 ms</td>
+ <td class="tbl" stlye="text-align: right;">62 ms</td>
+ <td class="tbl" stlye="text-align: right;"> 789 s </td>
+ <td class="tbl" stlye="text-align: right;">78 s </td>
+ <td class="tbl" stlye="text-align: right;">25 s </td>
+ </tr>
+ <tr>
+ <th class="tbl" stlye="text-align: right;">1,221 bytes</th>
+ <td class="tbl" stlye="text-align: right;">46 ms</td>
+ <td class="tbl" stlye="text-align: right;">73 ms</td>
+ <td class="tbl" stlye="text-align: right;"> 804 s </td>
+ <td class="tbl" stlye="text-align: right;">78 s </td>
+ <td class="tbl" stlye="text-align: right;">25 s </td>
+ </tr>
</table>
<?php
echo "</center>\n";
-P();
+BP();
W("The benchmarks show that UDP and TCP are, as expected, both significantly
faster compared with any of the SMTP services.");
W("Among the SMTP implementations, there can be significant differences
depending on the SMTP configuration.");
@@ -164,9 +203,10 @@
ARRAY(extlink_("download/transport.ps","A4"),
extlink_("download/transport-us.ps","US-letter")));
-P();
+EP();
ANCHOR("doc");H3("Is there any additional documentation?");
+BP():
W("Sure.");
W("We have the %s from our initial proposal, a research paper (%s, %s) that
also discusses some security aspects of the design, a concluding %s and the
%s.",
ARRAY(extlink_("download/transport-proposal.ps","slides"),
@@ -174,6 +214,7 @@
extlink_("download/transport-us.ps","US-letter"),
extlink_("download/transport-presentation.pdf","presentation"),
extlink_("man/gnunet-transport-check.1.html","man page for
gnunet-transport-check")));
+EP();
include("html_footer.php3");
?>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r940 - GNUnet-docs/WWW/test,
durner <=