[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: TCP timeout





+AD4APg-
+AD4APg- One question to ns developers.
+AD4APg- Why TCP agent reschedules new retransmit timer using
+AD4APg- rtt+AF8-timeout() upon receiving ACK and not updating
+AD4APg- the timer using actual sending timestamp value of
+AD4APg- the packet for which it expects the ACK?
+AD4APg- +AFs-like it is done in real tcp code+AF0-
+AD4APg- Was the complexity main concideration?
+AD4APg- Thank you.
+AD4APg- Ihor.
+AD4-
+AD4-If I understand your comment correctly, this is changed in the
+AD4-forthcoming release to do as you are asking.
+AD4-
+AD4-- K
I mean in the function
void TcpAgent::newtimer(Packet+ACo- pkt)
+AHs-
        hdr+AF8-tcp +ACo-tcph +AD0- (hdr+AF8-tcp+ACo-)pkt-+AD4-access(off+AF8-tcp+AF8-)+ADs-
        if (t+AF8-seqno+AF8- +AD4- tcph-+AD4-seqno())
                set+AF8-rtx+AF8-timer()+ADs-
        else
                cancel+AF8-rtx+AF8-timer()+ADs-
+AH0-
Instead of set+AF8-rtx+AF8-timer() to use somethind like
set+AF8-rtx+AF8-timer(offset) , where
offset +AD0- now - time+AF8-sent+AFs-(tcph-+AD4-seqno()+-1)+ACU-maxcwnd+AF8AXQA7-
And then set+AF8-rtx+AF8-timer(offset) will reschedule rtx+AF8-timer
to the time now+-rtt+AF8-timeout()-offset.
The array time+AF8-sent+AFsAXQ- keeps timestamps of packets'
sending time (per window).
As I understood it's not done yet, but is possible
in the upcoming release.
Ihor.