[aprssig] WIDEn-N 'Decay Sequence'
jdw at eng.uah.edu
Mon Jun 19 10:43:26 CDT 2006
On Jun 19, 2006, at 9:48 AM, Anders Green wrote:
> Which brings me to another generic question. I'm guessing
> that the set up for the digipeaters is a string like
> "RELAY,WIDE,WIDE1-1" (note that I'm not saying that this
> is a _recommended_ setup string *grin*) So does the
> digipeater just parse the packet, and if it contains
> one of those strings, rebroadcast it?
Let's back up a bit. I don't know what you know about networking in
general, or AX.25 packet in particular, so forgive me if you already
An AX.25 address consists of 6 characters (26 uppercase alpha and 10
digits) plus a secondary station identifier or SSID value between 0 and
AX.25 (aka packet) is a source routed protocol. This means that the
route that a packet takes through the network is determined at the
packet source (i.e. the transmitting station). In AX.25 terminology
this route is called the path. This is very different from the normal
way of doing things, where the source station only says "I want to get
to <destination>" and hands the packet off to the network (routers,
etc) to do the actual work of getting there.
So, if I'm operating station NEAR and I want to get to station FAR, and
I know there are two stations A and B in between, the packet I transmit
would have a path "A,B,FAR". This means I'm really transmitting to
station A, who I'm asking to forward it to station B who I'm asking to
forward to station FAR. Stations A and B are operating as "digital
repeaters", usually abbreviated digipeater or digi. Station A is the
_only_ station that will do anything with my packet upon receiving it,
so if A is down I'm out of luck. Even if B heard it, B won't respond
because it isn't next in the path. Each station that repeats a packet
flags its callsign to indicate that it has repeated the packet, so my
example path "A,B,FAR" will have a "has been digipeated" flag set; this
is usually represented with an "*", so the path will look like
"A*,B,FAR" when it leaves A and "A*,B*,FAR" when it leaves B.
Let's add generic names called aliases: if I don't know the name of
digis A or B, but we all decide that every digi will answer to the
alias RELAY in addition to its actual name, I could use a path of
"RELAY,RELAY,FAR" or, is FAR is also aliased, "RELAY,RELAY,RELAY".
Presto, welcome to the APRS network circa several years ago.
There are two _big_ problems with this: one, messages will ping-pong
back and forth between digis generating large amounts of excess
traffic, and two, there is nothing but the knowledge of the operator to
prevent a packet with a path of
"RELAY,RELAY,RELAY,RELAY,RELAY,RELAY,RELAY,RELAY" from completely
saturating the network.
Along comes the concepts of n-N and duplicate suppression. A
particular alias could be treated in a special way, such that its SSID
gets decremented and checked to make sure it is > 0 before it is
transmitted. This special alias uses a digit in the last position of
the station name to indicate how many hops it requests, so I would use
"WIDE2-2" to indicate that I am asking for 2 hops. The first digi
would decrement the SSID (the last 2), come up with a result > 0 and
repeat the packet, substituting "WIDE2-1" in the path where I
originally placed "WIDE2-2". To prevent the ping-pong effect, a digi
will keep a history of recently transmitted packets, and not repeat
them a second time.
This "original n-N" concept's biggest contribution to the improvement
of the network was the elimination of the duplicate packets
ping-ponging around the network chewing up bandwidth.
As the network grew it became apparent that more controls to prevent
excess traffic were needed, hence various versions of the "new n-N
paradigm" came about basically to limit the number of hops that a
packet could request, so that, for example, a WIDE5-5 path wouldn't
cause so much trouble in extremely busy APRS networks like southern
California or the DC area. The generally accepted maximum number of
hops is 2 (or 3 in rural/low density areas) in the US.
Another issue is the idea of a "fill-in digi" to help low-powered
mobile units be heard in a busy network. These devices shouldn't
respond to every packet, only if they are the first digi to hear a
packet. WIDE1-1 is a single hop path element that will be acted upon
by a fill-in digi or by a "big" (high-site, wide area coverage, etc)
So, the net result is the 2 hop path recommendation of
"WIDE1-1,WIDE2-1" for a mobile station - either a fill-in digi or a big
digi will repeat the packet if it is the first station to hear the
packet, and big digis will repeat the packet once more after that. We
use a pre-decremented WIDE2-1 instead of WIDE1-1 in the second position
so that the fill-in digis will not repeat it. The equivalent mobile
three hop path would be "WIDE1-1,WIDE2-2".
Likewise, a one or two hop path for a fixed station would be "WIDE2-1"
or WIDE2-2", respectively, because the assumption is that a fixed
station doesn't need help getting in to the network like a lower
powered mobile station does.
There's a lot of stuff I left out, like callsign substitution, path
tracing, the tricks that newN-n plays to limit hop counts (to prevent
you from getting 5 hops with WIDE5-5), and preemptive digipeating (ala
Digi_Ned), but hopefully this'll give you a place to start.
More information about the aprssig