> Date: Mon, 22 Mar 1999 14:18:53 +0100
> From: Thomas Sailer <[EMAIL PROTECTED]>
> Subject: Re: VC vs. DG modes
>
> > but now it will be totally redundant and useless. If the higher layer
> > protocols are expiring their retry timers quickly enough relative to
> > the link queue depth, then the link queue will grow indefinitely until
> > buffers fill up, a condition known as secondary avalanche.
>
> We have a similar problem with AX.25 and KISS. But the solution IMO is
> to provide more feedback about the queueing status to upper layers, what
> 6pack does.
I believe that the original message was referring to all of the queues
over the whole end-to-end path, while you are referring to only the
local queue. Knowledge about only the local queue doesn't seem like
it will help much, (some, but not much).
> > There is no easy answer about which approach is better in any given
> > situation, but experience has shown that moving the guarantee of delivery
> > to the highest possible protocol layer will result in greatly simplified
> > implementations and behavior under failure mode conditions that is more
> > in line with expectations.
>
> The problem is that TCP cannot distinguish between packet loss due to
> congestion and packet loss due to QRM etc. So it treats all packet loss
> as if due to congestion and backs off.
Modern TCPs will not fall into slow start mode with only isolated packet
loss. I don't know where Linux TCP falls within the spectrum of TCP
implementations.
> This leads to TCP not working with roughly more than 10% packet loss.
More precisely, with more than a few per cent packet loss, TCP spends most
of its time in slow start and performance falls through the floor.
However, the data should eventually get through, (which is pretty close
to "not working", certainly for interactive traffic.)
> Now if you want to work over a chain of digipeaters where each of the
> radio links has a packet loss rate in the 1-5% range, it just won't work
> in DG mode with TCP doing the retries. If you use VC mode with hop to hop
> acks, it works very well.
"Very well" is subject to considerable debate. It is widely believed that
retransmissions at the link level, such as those performed by AX.25 in
VC mode, confuse TCP's retransmission timers and cause TCP to retransmit
unnecessarily (i.e., to retransmit data that AX.25 has or will retransmit
successfully). Do you have some empirical or theoretical evidence that this
is not the case?
> So conclusion is that even if you use FEC on the radio links, you
> should still use ARQ in most cases (except maybe audio and video) to
> protect each link, otherwise retransmissions that have to travel the whole
> radio chain will increase dramatically with the number of radio links in
> the chain.
I don't believe that this is a generally accepted conclusion, at least among
TCP researchers. The TCP community will generally say you should improve
the performance of each link (e.g., via FEC, but not via retransmissions
[which interact poorly with TCP retransmission timers]) so that end-to-end
packet loss is acceptably low.
You are correct in observing that a dropped packet is essentially wasted
bandwidth up to the point that it was dropped. About the only response
the TCP community has is that you should improve the link-level performance
so that retransmissions don't occur very often.
Note that the following configuration occasionally causes discussion among
TCP researchers:
/------------\ /----------------\
H--/ Wired, reliable\--------/Wireless, unreliable\------H
\ Network / \ Network /
\--------------/ \-----------------/
As you have observed, it seems sort of silly to retransmit packets through
the reliable [wired] portion of the network when all of the packet loss
occurs over the unreliable [wireless last hop] portion of the network.
I think a few people have proposed doing something different over the
wireless portion of the network to avoid end-to-end retransmissions, but
the solutions often aren't consistent with the rest of the TCP religion.
My feeling is that:
- use of link-level FEC is very important in wireless networks,
including amateur packet networks,
- link-level retransmissions should be avoided, (because they
interact poorly with higher-layer retransmission strategies,
particularly more aggressive strategies like TCP uses),
- amateur radio packet protocols should more quickly integrate
the results of current protocol practice and research,
particularly the lessons learned in the Internet community ,and
- amateur radio should move beyond AX.25 (the CW of wireless radio
protocols).
-tjs