Wed, 21 Oct 1998 10:18:58 -0700
On Wed, 21 Oct 1998 08:44:43 PDT, Chris wrote:
>Does anyone know why tcpTick is set to 0.1 in ns-defaults.tcl? Shouldn't
>it be 0.5 in order to emulate TCP's 500ms timer?
>I'd really appreciate it if anyone knows and could tell me.
The main reason is that ns' TCP implementation isn't intended to
exactly match BSD's implementation, instead it's a *model* of TCP
that's been simplified to allow easier extension/experimentation. The
differences between this model and the real world are described below
in a note from Sally (in response to your question) and also in
existing web pages
<http://www-mash.cs.berkeley.edu/ns/ns-limitations.html> and chapter
17 of ns Notes and Documentation.
Subject: Re: tcpTick
Date: Tue, 20 Oct 1998 17:59:24 PDT
From: Sally Floyd <firstname.lastname@example.org>
>>Does anyone know why tcpTick is set to 0.1 in ns-defaults.tcl? Shouldn't
>>it be 0.5 in order to emulate TCP's 500ms timer?
The default is set to 0.1 because there are TCP implementations
(e.g., the TCP implementations in some Solaris systems, I believe)
that allow a 100 ms. clock granularity for TCP. And my own belief
(and Van's belief, as far as I know, though I could be wrong)
is that a 100 ms. clock granularity is preferable to a 500 ms.
clock granularity. I don't know of any reason why the 500ms
clock granularity in many BSD TCP implementations should
be the default in ns. But it *is* the kind of information
about "the model implemented in ns" that should be made more
clear to users.
The effect of tcpTick on the behavior of the retransmit timers
is illustrated in the validation tests in "test-all-tcp".
There is a discussion of the role of tcpTick in ns simulations
in Appendix B of my 1994 paper in IEEE JSAC on "Dynamics of TCP Traffic
over ATM Networks".