Skip to Content.
Sympa Menu

ndt-dev - [ndt-dev] [ndt] r459 committed - Improved graphics.

Subject: NDT-DEV email list created

List archive

[ndt-dev] [ndt] r459 committed - Improved graphics.


Chronological Thread 
  • From:
  • To:
  • Subject: [ndt-dev] [ndt] r459 committed - Improved graphics.
  • Date: Fri, 05 Aug 2011 15:45:09 +0000

Revision: 459
Author:

Date: Fri Aug 5 08:44:27 2011
Log: Improved graphics.
http://code.google.com/p/ndt/source/detail?r=459

Modified:
/wiki/NDTProtocol.wiki

=======================================
--- /wiki/NDTProtocol.wiki Thu Aug 4 09:20:24 2011
+++ /wiki/NDTProtocol.wiki Fri Aug 5 08:44:27 2011
@@ -46,23 +46,11 @@

* C2S throughput test

-{{{
- +----------------+ +------------------+
- | Client |<---NDTP-Control--->| Server |
- | | | |
- | Session-Sender |----NDTP-Test------>| Session-Receiver |
- +----------------+ +------------------+
-}}}
+http://www.soldevelo.com/images/ndt/1.%20C2S%20throughput%20test.png

* S2C throughput test

-{{{
- +------------------+ +------------------+
- | Client |<---NDTP-Control--->| Server |
- | | | |
- | Session-Receiver |<---NDTP-Test-------| Session-Sender |
- +------------------+ +------------------+
-}}}
+http://www.soldevelo.com/images/ndt/2.%20S2C%20throughput%20test.png

== Protocol Overview ==

@@ -84,27 +72,7 @@

Each of the NDTP-Control messages always has the following format:

-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | TYPE | LENGTH | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
- | |
- | |
- . .
- . .
- . .
- | |
- | |
- | |
- | Message (up to 65545 octets) |
- | |
- | |
- | |
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
+http://www.soldevelo.com/images/ndt/3.%20Each%20of%20the%20NDTP-Control%20messages%20always%20has%20the%20following%20format.png

=== Message types ===

@@ -131,13 +99,7 @@

First, a Client opens a TCP connection to the Server on a well-known port 3001 and sends a LOGIN message:

-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 2 | 1 | TESTS |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
+http://www.soldevelo.com/images/ndt/4.%20Server%20on%20a%20well-known%20port%203001%20and%20sends%20a%20LOGIN%20message.png

Where TESTS is a bitwise OR of the tests' ids that should be run in a requested test-suite. Tests' ids are defined in the [NDTProtocol#NDTP-Tests NDTP-Tests] section.

@@ -147,16 +109,7 @@

In the same time Server sends the specially crafted 13 octets long data that kicks off the old Clients ("123456 654321"):

-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | '1' | '2' | '3' | '4' |
- | '5' | '6' | ' ' | '6' |
- | '5' | '4' | '3' | '2' |
- | '1' +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- +-+-+-+-+-+-+-+-+
-}}}
+http://www.soldevelo.com/images/ndt/5.%2013%20octets%20long%20data%20that%20kicks%20off%20the%20old%20Clients%20%28%22123456%20654321%22%29.png

All non-compatible Clients MUST drop the connection after receiving the above message.

@@ -174,14 +127,7 @@

When the NDT Server decides that the Client can start its test session, it sends SRV_QUEUE message with value *'0'*:

-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 1 | 1 | '0' |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
-
+http://www.soldevelo.com/images/ndt/6.%20sends%20SRV_QUEUE%20message%20with%20value%20%270%27.png

==== Verifying version compatibility ====

@@ -189,17 +135,7 @@

The Server MUST send a MSG_LOGIN message containing its version identifier in the following form:

-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 2 | LENGTH | 'v' |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | |
- | VERSION number |
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
+http://www.soldevelo.com/images/ndt/7.%20MSG_LOGIN%20message%20containing%20its%20version%20identifier%20in%20the%20following%20form.png

where VERSION is the current NDT version encoded as ascii string, for example *"3.6.4"*.

@@ -208,20 +144,8 @@
==== Negotiating test suite ====

In the next step the NDT Server MUST send a MSG_LOGIN message containing a list of tests' ids, encoded as ascii string, that will be performed:
-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 2 | LENGTH | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
- | |
- . List of tests' ids encoded as ascii string .
- . .
- . .
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
-
+
+http://www.soldevelo.com/images/ndt/8.%20encoded%20as%20ascii%20string,%20that%20will%20be%20performed.png

This list is a string containing space separated numbers that describes particular tests. The test suite containing all five tests (Middlebox test, Simple firewall test, C2S throughput test, S2C throughput test and META test) will have the following description:
{{{
@@ -235,19 +159,8 @@
==== Results retrieval ====

After the last accomplished NDTP-Tests test (particular NDTP-Tests sub-protocols are described in the [NDTProtocol#NDTP-Tests NDTP-Tests] section) the Server MUST send all gathered results to the client. These results MUST be sent in a set of MSG_RESULTS messages:
-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 8 | LENGTH | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
- | |
- . Results encoded as ascii string .
- . .
- . .
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
+
+http://www.soldevelo.com/images/ndt/9.%20These%20results%20MUST%20be%20sent%20in%20a%20set%20of%20MSG_RESULTS%20messages.png

All standard results are currently encoded as strings and MAY be displayed by Client directly on the screen without any modifications.

@@ -255,42 +168,7 @@

The whole test session overview can be seen on the following sequence diagram. Both Server and Client MUST follow the described sequence:

-{{{
- +----------------+ +------------------+
- | Client | | Server |
- +----------------+ +------------------+
- | |
- |---------------CONNECT---------------->|
- | |
- |----------MSG_LOGIN (TESTS)----------->|
- | |
- |<---------KICK OFF MESSAGE-------------|
- | |
- |<---------SRV_QUEUE ("0")--------------|
- | |
- |<-------MSG_LOGIN ("vVERSION")---------|
- | |
- |<------MSG_LOGIN ("tests' ids")--------|
- | |
- | |
- |<-------------NDTP-Tests-------------->|
- . .
- . .
- . .
- |<-------------NDTP-Tests-------------->|
- | |
- | |
- |<------------MSG_RESULTS---------------|
- . .
- . .
- . .
- |<------------MSG_RESULTS---------------|
- | |
- | |
- |<------------MSG_LOGOUT----------------|
- | |
- |<---------CLOSE CONNECTION------------x|
-}}}
+http://www.soldevelo.com/images/ndt/10.%20Both%20Server%20and%20Client%20MUST%20follow%20the%20described%20sequence.png

== NDTP-Tests ==

@@ -319,19 +197,8 @@
All messages exchanged between the Client and the Server during the MID protocol are sent using the same connection and message format as the NDTP-Control protocol. Only the throughput packets are sent on the new connection and do not follow the NDTP-Control protocol message format.

As a first step the Server MUST bind a new port and send a TEST_PREPARE message containing this port number to the Client:
-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 3 | LENGTH | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
- | |
- . Port number encoded as ascii string .
- . .
- . .
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
+
+http://www.soldevelo.com/images/ndt/18.%20TEST_PREPARE%20message%20containing%20this%20port%20number%20to%20the%20Client.png

The port number must be encoded as string.

@@ -347,19 +214,8 @@
If for some reasons it is not possible to send such packets, the Server MUST send a 8192 Byte packets. The content of these packets SHOULD be as random as possible and MUST include only printable characters.

When the test is over, Server MUST send its results encoded as strings in a TEST_MSG message to Client:
-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 5 | LENGTH | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
- | |
- . ServerIP;ClientIP;CurMSS;WinScaleSent;WinScaleRecv .
- . .
- . .
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
+
+http://www.soldevelo.com/images/ndt/12.%20TEST_MSG%20message%20to%20Client.png

Next, the Client MUST send to the Server its calculated throughput value encoded as string (float format) in a TEST_MSG message.

@@ -367,34 +223,7 @@

A Middlebox test session overview can be seen on the following sequence diagram:

-{{{
- +----------------+ +------------------+
- | Client | | Server |
- +----------------+ +------------------+
- | |
- | |----BIND NEW PORT--|
- | |
- |<---------TEST_PREPARE (PORT)----------|
- | |
- |------------CONNECT (PORT)------------>|
- | |
- | |
- |<----5 seconds s2c Throughput test-----|
- . .
- . .
- . .
- |<----5 seconds s2c Throughput test-----|
- | |
- | |
- |<---------TEST_MSG (RESULTS)-----------|
- | |
- |----------TEST_MSG (CLIENT RESULTS)--->|
- | |
- |<----------TEST_FINALIZE---------------|
- | |
- |<------CLOSE CONNECTION (PORT)--------x|
-}}}
-
+http://www.soldevelo.com/images/ndt/13.%20A%20Middlebox%20test%20session%20overview%20can%20be%20seen%20on%20the%20following%20sequence%20diagram.png

=== Simple firewall test ===

@@ -403,19 +232,8 @@
==== SFW protocol ====

As a first step the Server MUST bind ephemeral port and send a TEST_PREPARE message containing this port number and test time (in seconds) to the Client:
-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 3 | LENGTH | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
- | |
- . Port number and test time encoded as ascii string .
- . .
- . .
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
+
+http://www.soldevelo.com/images/ndt/15.%20TEST_PREPARE%20message%20containing%20this%20port%20number%20and%20test%20time%20%28in%20seconds%29%20to%20the%20Client.png

Port number and test time MUST be encoded as strings and separated by a single space, for example:
{{{
@@ -427,28 +245,12 @@
The NDT Server MUST start the test by sending an empty TEST_START message immediately after it receives the Client's ephemeral port number.

The test MUST be performed in both direction in parallel. The Client MUST try to connect to the Server's ephemeral port and MUST send a TEST_MSG message containing a pre-defined string "Simple firewall test" of length 20. The whole message looks as following:
-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 5 | 20 | 'S' |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
- | 'i' | 'm' | 'p' | 'l' |
- | 'e' | ' ' | 'f' | 'i' |
- | 'r' | 'e' | 'w' | 'a' |
- | 'l' | 'l' | ' ' | 't' |
- | 'e' | 's' | 't' +-+-+-+-+-+-+-+-+
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
+
+http://www.soldevelo.com/images/ndt/14.%20of%20length%2020.%20The%20whole%20message%20looks%20as%20following.png

After performing the Simple firewall test in both directions, the Server MUST send to the Client its SFW (c2s) results encoded as string in the TEST_MSG message:
-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 5 | LENGTH | SFW_RESULT |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
+
+http://www.soldevelo.com/images/ndt/16.%20Client%20its%20SFW%20%28c2s%29%20results%20encoded%20as%20string%20in%20the%20TEST_MSG%20message.png

The Simple firewall test defines the following result codes for both c2s and s2c tests:

@@ -462,33 +264,7 @@

A Simple firewall test session overview can be seen on the following sequence diagram:

-{{{
- +----------------+ +------------------+
- | Client | | Server |
- +----------------+ +------------------+
- | |
- | |----BIND NEW PORT--|
- | |
- |<----TEST_PREPARE (S_PORT TEST_TIME)---|
- | |
- |--BIND NEW PORT----| |
- | |
- |----------TEST_MSG (C_PORT)----------->|
- | |
- |<-------------TEST_START---------------|
- | |
- |-----------CONNECT (S_PORT)----------->|
- |<----------CONNECT (C_PORT)------------|
- |---TEST_MSG ("Simple firewall test")-->|
- |<--TEST_MSG ("Simple firewall test")---|
- | |
- |<---------TEST_MSG (RESULTS)-----------|
- | |
- |<----------TEST_FINALIZE---------------|
- | |
- |<-----CLOSE CONNECTION (S_PORT)-------x|
- |x-----CLOSE CONNECTION (C_PORT)------->|
-}}}
+http://www.soldevelo.com/images/ndt/17.%20A%20Simple%20firewall%20test%20session%20overview%20can%20be%20seen%20on%20the%20following%20sequence%20diagram.png

=== C2S throughput test ===

@@ -499,19 +275,8 @@
All messages exchanged between the Client and the Server during the C2S protocol are sent using the same connection and message format as the NDTP-Control protocol. Only the throughput packets are sent on the new connection and do not follow the NDTP-Control protocol message format.

As a first step the Server MUST bind new port and send a TEST_PREPARE message containing this port number to the Client:
-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 3 | LENGTH | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
- | |
- . Port number encoded as ascii string .
- . .
- . .
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
+
+http://www.soldevelo.com/images/ndt/18.%20TEST_PREPARE%20message%20containing%20this%20port%20number%20to%20the%20Client.png

The port number must be encoded as string.

@@ -524,51 +289,14 @@
The NDT Client in the C2S Throughput test MUST send a 8192 Byte packets through the newly opened connection as fast as possible (i.e. without any delays) for 10 seconds. The content of these packets SHOULD be as random as possible and MUST include only printable characters.

When the Client stops streaming test data (or the test routine at Server times out), the Server MUST send to the Client its calculated throughput value encoded as string (float format) in the TEST_MSG message:
-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 5 | LENGTH | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
- | |
- . Client's throughput value encoded as string (float fomat) .
- . .
- . .
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
+
+http://www.soldevelo.com/images/ndt/20.%20Client%20its%20calculated%20throughput%20value%20encoded%20as%20string%20%28float%20format%29%20in%20the%20TEST_MSG%20message.png

At the end the Server MUST close the C2S test session by sending an empty TEST_FINALIZE message.

A C2S throughput test session overview can be seen on the following sequence diagram:

-{{{
- +----------------+ +------------------+
- | Client | | Server |
- +----------------+ +------------------+
- | |
- | |----BIND NEW PORT--|
- | |
- |<---------TEST_PREPARE (PORT)----------|
- | |
- |------------CONNECT (PORT)------------>|
- | |
- |<-------------TEST_START---------------|
- | |
- | |
- |----10 seconds c2s Throughput test---->|
- . .
- . .
- . .
- |----10 seconds c2s Throughput test---->|
- | |
- | |
- |<---------TEST_MSG (RESULTS)-----------|
- | |
- |<----------TEST_FINALIZE---------------|
- | |
- |<------CLOSE CONNECTION (PORT)--------x|
-}}}
+http://www.soldevelo.com/images/ndt/21.%20A%20C2S%20throughput%20test%20session%20overview%20can%20be%20seen%20on%20the%20following%20sequence%20diagram.png

=== S2C throughput test ===

@@ -581,19 +309,8 @@
All messages exchanged between the Client and the Server during the S2C protocol are sent using the same connection and message format as the NDTP-Control protocol. Only the throughput packets are sent on the new connection and do not follow the NDTP-Control protocol message format.

As a first step the Server MUST bind new port and send a TEST_PREPARE message containing this port number to the Client:
-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 3 | LENGTH | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
- | |
- . Port number encoded as ascii string .
- . .
- . .
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
+
+http://www.soldevelo.com/images/ndt/22.%20TEST_PREPARE%20message%20containing%20this%20port%20number%20to%20the%20Client.png

The port number must be encoded as string.

@@ -606,36 +323,14 @@
The NDT Server in the S2C Throughput test MUST send a 8192 Byte packets through the newly opened connection as fast as possible (i.e. without any delays) for 10 seconds. The content of these packets SHOULD be as random as possible and MUST include only printable characters.

When the Server stops streaming test data, it MUST send to the Client its calculated throughput value (encoded as string in float format), amount of unsent data in the socket send queue (encoded as string in integer format) and overall number of sent bytes (encoded as string in float format) in the TEST_MSG message:
-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 5 | LENGTH | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
- | |
- . THROUGHPUT_VALUE SND_QUEUE SENT_BYTES .
- . .
- . .
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
+
+http://www.soldevelo.com/images/ndt/23.%20overall%20number%20of%20sent%20bytes%20%28encoded%20as%20string%20in%20float%20format%29%20in%20the%20TEST_MSG%20message.png

All these values MUST be separated by spaces.

Next, the Client MUST send to the Server its calculated throughput value encoded as string (float format) in the TEST_MSG message:
-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 5 | LENGTH | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
- | |
- . THROUGHPUT_VALUE .
- . .
- . .
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
+
+http://www.soldevelo.com/images/ndt/24.%20MUST%20send%20to%20the%20Server%20its%20calculated%20throughput%20value%20encoded%20as%20string%20%28float%20format%29%20in%20the%20TEST_MSG%20message.png

In the same time the Server SHOULD send its web100 data variables gathered during S2C throughput test to the Client. Each variable name/value pair should be encoded as strings in a separate TEST_MSG message using the following format:
{{{
@@ -650,44 +345,7 @@

A S2C throughput test session overview can be seen on the following sequence diagram:

-{{{
- +----------------+ +------------------+
- | Client | | Server |
- +----------------+ +------------------+
- | |
- | |----BIND NEW PORT--|
- | |
- |<---------TEST_PREPARE (PORT)----------|
- | |
- |------------CONNECT (PORT)------------>|
- | |
- |<-------------TEST_START---------------|
- | |
- | |
- |<---10 seconds s2c Throughput test-----|
- . .
- . .
- . .
- |<---10 seconds s2c Throughput test-----|
- | |
- | |
- |<---------TEST_MSG (RESULTS)-----------|
- | |
- |-------TEST_MSG (CLIENT RESULTS)------>|
- | |
- | |
- |<-------TEST_MSG (WEB100 VARS)---------|
- . .
- . .
- . .
- |<-------TEST_MSG (WEB100 VARS)---------|
- | |
- | |
- |<----------TEST_FINALIZE---------------|
- | |
- |<------CLOSE CONNECTION (PORT)--------x|
-}}}
-
+http://www.soldevelo.com/images/ndt/25.%20A%20S2C%20throughput%20test%20session%20overview%20can%20be%20seen%20on%20the%20following%20sequence%20diagram.png

=== META test ===

@@ -698,34 +356,12 @@
The Server MUST start this test by sending an empty TEST_PREPARE message followed by an empty TEST_START message.

Next, the Client SHOULD send meta data encoded as strings in the TEST_MSG messages:
-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 5 | LENGTH | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
- | |
- . meta_data_KEY:meta_data_VALUE .
- . .
- . .
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
+
+http://www.soldevelo.com/images/ndt/26.%20Next,%20the%20Client%20SHOULD%20send%20meta%20data%20encoded%20as%20strings%20in%20the%20TEST_MSG%20messages.png

For example:
-{{{
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | 5 | 20 | 'c' |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
- | 'l' | 'i' | 'e' | 'n' |
- | 't' | '.' | 'o' | 's' |
- | '.' | 'n' | 'a' | 'm' |
- | 'e' | ':' | 'L' | 'i' |
- | 'n' | 'u' | 'x' +-+-+-+-+-+-+-+-+
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-}}}
+
+http://www.soldevelo.com/images/ndt/27.%20For%20example.png

Both parts (keys and values) of the meta data MUST be strings with the following constraints:
* Keys MUST be shorter than 64 characters
@@ -745,28 +381,7 @@

A META test session overview can be seen on the following sequence diagram:

-{{{
- +----------------+ +------------------+
- | Client | | Server |
- +----------------+ +------------------+
- | |
- |<------------TEST_PREPARE--------------|
- | |
- |<-------------TEST_START---------------|
- | |
- | |
- |----------TEST_MSG (META DATA)-------->|
- . .
- . .
- . .
- |----------TEST_MSG (META DATA)-------->|
- | |
- | |
- |--------------TEST_MSG---------------->|
- | |
- |<----------TEST_FINALIZE---------------|
-
-}}}
+http://www.soldevelo.com/images/ndt/28.%20A%20META%20test%20session%20overview%20can%20be%20seen%20on%20the%20following%20sequence%20diagram.png

= Appendix A. web100 variables =



  • [ndt-dev] [ndt] r459 committed - Improved graphics., ndt, 08/05/2011

Archive powered by MHonArc 2.6.16.

Top of Page