|SSF.OS.TCP Validation Tests|
|Testing environment and methods|
|The tests show the behavior of SSF TCP Tahoe and Reno variants for
different networks, TCP parameter settings, and loss conditions.
Each TCP test page contains: Test description and expected outcome, plots of tcpdump and other traces, and trace analysis. Links to the tested network DML configuration file and tcpdump traces are provided. Comparison with analogous ns-2 test traces is included.
Acknowledgment: Most of the tests have been adapted from the TCP regression test suite developed by Sally Floyd and her collaborators, and distributed with the ns-2 simulator (see ns validation tests). Anja Feldmann, Walter Willinger, and others helped with a detailed critique of a number of early test trace analyses. However, HL and AO are solely responsible for any implementation errors :) that may still be present in SSF.OS.TCP.
ssfnet v0.7.7 (with NIC and SSF.OS.TCP revisions), jssf v0.4.18.
Tests executed and analyzed by Hongbo Liu.
Date: August 1 - 12, 1999.
When appropriate, we execute the SSF TCP tests under the conditions as close as possible to the ns-2 tests, but some small differences exist because of different internal parameter settings and/or different level of modeling detail. The table below shows some differences between ns-2 and SSF TCP implementations:
Packet dropping tests:
In some tests, packets were dropped "manually" by passing packet number to be dropped to a special test module plugged into the SSF IP.
In SSF plots, the timestamp for outgoing IP packets is the time when they are put into the output queue of the NIC, and the timestamp for incoming IP packets is the time when they are received by the NIC.
In NS tests, packets are dumped when they go through the bottleneck link. Every packet is dumped three times: when entering the queue, leaving the queue, and when received at the end of the link.
To facilitate the comparison of traces, in the NS plots shown here all ACK numbers are increased by one for plotting. Timestamp for a data packet is enqueuing time. Timestamp for an ACK packet is the receiving time.
Because NS TCP implementation has changed since 1997, some trace plots shown in the 1997 documents included with the ns-2 release are different from the trace plots obtained today by running the ns-2 simulator using the same parameter settings.
|List of Tests:|
|Some trace validation rules|
|A collection of heuristic rules to help in analyzing tcpdump traces, and spotting possible violations of RFC requirements. These rules are not complete, and are meant as a general guide.|
|General TCP validation rules|
|Tahoe and later versions:
|Extra TCP Tahoe validation rules|
|Extra TCP Reno validation rules|