[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
FW: [ns] bugs and fixes in FullTcp & Eifel
-----Original Message-----
From: Andei Gurtov [mailto:[email protected]]
Sent: 5. syyskuuta 2001 10:20
To: Kevin Fall
Cc: [email protected]; Reiner Ludwig
Subject: RE: [ns] bugs and fixes in FullTcp & Eifel
Kevin -
> Hi. I've read over your suggested changes for the first three
> items and I have some concerns.
My intention was to inform the community about possible problems + make
quick fixes so that I continue my work. I din't mean that the fixes should
be
put to the release code as they are.
> 1> there may be some issue here wrt dupacks after RTO [which I am
> still thinking about], but to drop any dup ack just because cwnd
> is equal to 1 seems like it would be a problem at any other
> time you may have a cwnd equal to one (i.e. not only after an
> rtx timeout)
Hopefully the picture I have forwarded to you clarifies the problem. I agree
that dropping any dup ack just because cwnd equals to one is a hack, and
should be replaced by better solution. I still think it might be correct:
could we really benefit from DUPACKs unless with have had or going to have a
fast retransmit? But we cannot have fast retransmit if cwnd is one, can we?
> 2> if the peer is ignoring FIN+ACK just because it has the CWR bit
> turned on, it seems to me better to fix the peer rather
> than only selectively turning on this bit. [although
> perhaps doing both may actually be more correct]
Sure.
> 3> it seems unlikely to me that you should have this problem given
> that the if statement above checks for a SYN and if found
> goes to dropwithreset. Thus you should not be getting to the
> line you mentioned with SYN being turned on. Did you
> mean FIN or something else perhaps?
Good point. It seems that this code is triggered when a SYN is
retransmitted.
After getting a duplicate SYN should the receiver reply with SYN-ACK or just
with ACK? Also in this trace I don't understand why SYN is retransmitted the
third time at 126007.947107. Maybe after all the original FullTcp code is
correct and such ACKs should be dropped?
126007.647107: FullTcpAgent::recv(_o19) got packet lacking ACK (seq 1)
+ 126000 0 1 tcp 50 ------- 0 0.0 1.0 0 17773 -1 0xa 50 0
+ 126006 0 1 tcp 50 ------- 0 0.0 1.0 0 17774 -1 0xa 50 0
- 126007.32044 0 1 tcp 50 ------- 0 0.0 1.0 0 17773 -1 0xa 50 0
- 126007.333774 0 1 tcp 50 ------- 0 0.0 1.0 0 17774 -1 0xa 50 0
r 126007.633774 0 1 tcp 50 ------- 0 0.0 1.0 0 17773 -1 0xa 50 0
+ 126007.633774 1 0 ack 50 ------- 0 1.0 0.0 0 17775 1 0x1a 50 0
- 126007.633774 1 0 ack 50 ------- 0 1.0 0.0 0 17775 1 0x1a 50 0
r 126007.647107 0 1 tcp 50 ------- 0 0.0 1.0 0 17774 -1 0xa 50 0
+ 126007.647107 1 0 ack 50 ------- 0 1.0 0.0 1 17776 1 0x18 50 0
- 126007.647107 1 0 ack 50 ------- 0 1.0 0.0 1 17776 1 0x18 50 0
r 126007.947107 1 0 ack 50 ------- 0 1.0 0.0 0 17775 1 0x1a 50 0
+ 126007.947107 0 1 tcp 50 ------- 0 0.0 1.0 1 17777 1 0x10 50 0
- 126007.947107 0 1 tcp 50 ------- 0 0.0 1.0 1 17777 1 0x10 50 0
+ 126007.947107 0 1 tcp 586 ------- 0 0.0 1.0 1 17778 1 0x10 50 0
+ 126007.947107 0 1 tcp 586 ------- 0 0.0 1.0 537 17779 1 0x10 50 0
r 126007.96044 1 0 ack 50 ------- 0 1.0 0.0 1 17776 1 0x18 50 0
- 126007.96044 0 1 tcp 586 ------- 0 0.0 1.0 1 17778 1 0x10 50 0
- 126008.116707 0 1 tcp 586 ------- 0 0.0 1.0 537 17779 1 0x10 50 0
Another problem I experienced is that a passive close peer retransmits FIN
forever if the original FIN has been lost. There has been some discussion on
the list about that and I use a suggested hack to fix this.
http://www.isi.edu/nsnam/archive/ns-users/webarch/2000/msg03812.html
Do you have plans to add TIME_WAIT to FullTcp?
> In general, you may notice that the tcp-full model is currently undergoing
> substantial changes. In particular, the SACK handling is changed
> significantly. People who are using this code should be aware
> of this.
Sure, I have no complains on this side, it's good that people spent their
time so that FullTcp has appeared at all.
Andrei