[ns] TCP implementation problem
Andrea Detti
a.detti@net.infocom.uniroma1.it
Tue, 30 Jan 2001 19:48:39 +0100
Messaggio in formato MIME composto da pił parti.
------=_NextPart_000_00A3_01C08AF5.A47C3D00
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
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).=20
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 =20
Dip. Ingegneria Elettronica
Universita' di Roma "Tor Vergata"=20
Via di Tor Vergata 110, 00133 Roma, Italy =
Tel.: +39-06-7259-7447
Fax : +39-06-7259-7435
Mobile: +39-338-2932697
email: a.detti@net.infocom.uniroma1.it=20
---------------------------------------
------=_NextPart_000_00A3_01C08AF5.A47C3D00
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4522.1800" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>
<DIV><FONT face=3DArial size=3D2>Dear users,</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>I am an older user of ns2 and till now =
I never=20
simulated the transport layer. Now, I need to do it. So I have used a =
FTP=20
Traffic source on TCP agent attached to a node and have connected it to =
a=20
TCPSink attached to another node. The two nodes are tied by a classic =
no-loss=20
duplex link. Once the simulation ran , I have seen that the TCP sender =
get into=20
slow start several times and so doesn't use all link bandwidth. =
Obviously, this=20
behavior is due to timeout expiration. I find out that this phenomena is =
related=20
to the ns2 TCP implementation, because the TCP agent sends all=20
the cwnd allowed segments AT THE SAME TIME towards the IP layer =
that,=20
consequently, buffer them (on link object). </FONT></DIV>
<DIV><FONT face=3DArial size=3D2>This implies :</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>i) the possibility of loss for =
buffer space=20
absence;</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>ii) timeout expiration because the TCP =
timers are=20
wrong started before the real transmission.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV>According to me, <FONT face=3DArial size=3D2>for a TCP =
connection over a=20
DEDICATED link there isn't timeout expiration or segments loss. =
</FONT><FONT=20
face=3DArial size=3D2>As a matter of fact, the TCP sends a =
segment towards=20
the layer interface and waits for a successfully return from the =
terminal=20
IP layer before to sends the next segment (RFC791 section 3.3). The =
terminal IP=20
layer have a small transmission buffer and sends the successfully=20
return only if there is enough buffer space. This inter-layers =
signaling is=20
not simulated in ns2 and so we have the consequences previously=20
outlined.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV>Is it right that attach a TCP to a node in ns2 is like to =
have a=20
terminal connected to the node with an infinite bandwidth ?</DIV>
<DIV> </DIV>
<DIV>If it is true, can somebody tell me how to simulate a TCP terminal=20
connected to a node with limited bandwidth ?</DIV>
<DIV> </DIV>
<DIV>Thank in advance.</DIV>
<DIV> </DIV>
<DIV> </DIV></FONT></DIV>
<DIV><FONT face=3DArial=20
size=3D2>---------------------------------------<BR> Andrea=20
Detti &n=
bsp; &nb=
sp; &nbs=
p; =20
<BR> Dip. Ingegneria Elettronica<BR> Universita' di Roma "Tor =
Vergata"=20
<BR> Via di Tor Vergata 110, 00133 Roma,=20
Italy &n=
bsp; &nb=
sp; =20
<BR> Tel.: +39-06-7259-7447<BR> Fax :=20
+39-06-7259-7435<BR> Mobile: +39-338-2932697<BR> email: <A=20
href=3D"mailto:a.detti@net.infocom.uniroma1.it">a.detti@net.infocom.uniro=
ma1.it</A>=20
<BR>---------------------------------------</FONT></DIV></BODY></HTML>
------=_NextPart_000_00A3_01C08AF5.A47C3D00--