Skip to Content.
Sympa Menu

ndt-dev - [ndt-dev] [ndt] r559 committed - Added description of the Middlebox Test.

Subject: NDT-DEV email list created

List archive

[ndt-dev] [ndt] r559 committed - Added description of the Middlebox Test.

Chronological Thread 
  • From:
  • To:
  • Subject: [ndt-dev] [ndt] r559 committed - Added description of the Middlebox Test.
  • Date: Tue, 30 Aug 2011 10:00:39 +0000

Revision: 559

Date: Tue Aug 30 02:59:30 2011
Log: Added description of the Middlebox Test.


--- /wiki/ Mon Aug 29 08:04:07 2011
+++ /wiki/ Tue Aug 30 02:59:30 2011
@@ -27,6 +27,32 @@
== Performed tests ==

=== Middlebox Test ===
+The middlebox test is a short throughput test from the server to the client with a limited CWND to check for a duplex mismatch condition. Moreover, this test uses a pre-defined MSS value to check if any intermediate node will modify its connection settings.
+A detailed description of all of the SFW protocol messages can be found in the [NDTProtocol#Middlebox_test NDT Protocol document].
+As a first step the server binds an ephemeral port and notify the client about this port number. The server also sets MSS on this port to 1456 (strange value).
+Next, the client connects to the server's ephemeral port. When the connection is successfully established, the server sets the maximum value of the congestion window for this connection to `2 * (The current maximum segment size (MSS))`.
+In the next step the server starts a 5 seconds throughput test using the newly created connection. The NDT server sends packets as fast as possible (i.e. without any delays) during the test. These packets are written using the buffer of the following size: `(The current maximum segment size (MSS))`. If such buffer cannot be used, then the server uses a 8192 Byte one.
+The server can temporarily stop sending packets when the following formula is fulfilled:
+BUFFER_SIZE * 16 < ((Next Sequence Number To Be Sent) - (Oldest Unacknowledged Sequence Number) - 1)
+When the 5 seconds throughput test is over, the server sends the following results to the client:
+|| CurMSS || The current maximum segment size (MSS), in octets.||
+|| !WinScaleSent || The value of the transmitted window scale option if one was sent; otherwise, a value of -1. ||
+|| !WinScaleRcvd || The value of the received window scale option if one was received; otherwise, a value of -1. ||
+Next, the client sends its calculated throughput value to the server. This throughput value is calculated using the following value:

=== Simple Firewall Test ===

@@ -42,6 +68,8 @@

The test is finished after the connection will be accepted or the time limit will be exceeded. If the time limit is exceeded, the firewall probably exists somewhere on the end-to-end path. If there is a connection and the pre-defined string is properly transferred, then there is no firewall on the end-to-end path. The third possibility is that there is a successful connection, but the expected pre-defined string is not transferred. This case does not adjudicate about the firewall existence.

+In the last step the server sends its results to the client.
The possible simple firewall test result codes:

|| *Value* || *Description* ||

  • [ndt-dev] [ndt] r559 committed - Added description of the Middlebox Test., ndt, 08/30/2011

Archive powered by MHonArc 2.6.16.

Top of Page