Dear users,
I am an older user of ns2 and till now I never
simulated the transport layer. Now, I need to do it. So I have used a FTP
Traffic source on TCP agent attached to a node and have connected it to a
TCPSink attached to another node. The two nodes are tied by a classic no-loss
duplex link. Once the simulation ran , I have seen that the TCP sender get into
slow start several times and so doesn't use all link bandwidth. Obviously, this
behavior is due to timeout expiration. I find out that this phenomena is related
to the ns2 TCP implementation, because the TCP agent sends all
the cwnd allowed segments AT THE SAME TIME towards the IP layer that,
consequently, buffer them (on link object).
This implies :
i) the possibility of loss for buffer space
absence;
ii) timeout expiration because the TCP timers are
wrong started before the real transmission.
According to me, for a TCP connection over a
DEDICATED link there isn't timeout expiration or segments loss. As a matter of fact, the TCP sends a segment towards
the layer interface and waits for a successfully return from the terminal
IP layer before to sends the next segment (RFC791 section 3.3). The terminal IP
layer have a small transmission buffer and sends the successfully
return only if there is enough buffer space. This inter-layers signaling is
not simulated in ns2 and so we have the consequences previously
outlined.
Is it right that attach a TCP to a node in ns2 is like to have a
terminal connected to the node with an infinite bandwidth ?
If it is true, can somebody tell me how to simulate a TCP terminal
connected to a node with limited bandwidth ?
Thank in advance.
---------------------------------------
Andrea Detti Dip. Ingegneria Elettronica Universita' di Roma "Tor Vergata" Via di Tor Vergata 110, 00133 Roma, Italy Tel.: +39-06-7259-7447 Fax : +39-06-7259-7435 Mobile: +39-338-2932697 email: [email protected] --------------------------------------- |