Digipeater

From APRSWiki
(Difference between revisions)
Jump to: navigation, search
(Definition)
(Improved technique for digipeater tracing.)
 
(15 intermediate revisions by 7 users not shown)
Line 9: Line 9:
 
which operates on multiple frequencies is called a [[gateway]].
 
which operates on multiple frequencies is called a [[gateway]].
  
In classic packet radio each such hop had to be explicitly defined by the sender.  In APRS all digipeaters use generic aliases.  The sender does not have to know the callsign of the digipeater but just indicate the number of hops he wants to go.
+
In classic packet radio each such hop had to be explicitly included in the packet by the sender at origination.  In APRS all digipeaters use generic aliases.  The sender does not have to know the callsign of the digipeater but just indicate the number of hops he wants to go.
  
 
Digipeating is defined in AX.25 specification document.
 
Digipeating is defined in AX.25 specification document.
Line 18: Line 18:
 
===The Digipeating Path and Development of WIDEn-N===
 
===The Digipeating Path and Development of WIDEn-N===
  
If there are multiple aliases in the PATH they are examined in the order left-to-right.  An asterix '''*''' is used to show that a element in the path is no longer active.  In the path '''ABCD*,EFGH,IJKL''' only the '''EFGH''' path element is active because the previous path element '''ABCD*'''  is "used up".  And the '''IJKL''' is not yet active because it is not the left-most active field.
+
If there are multiple aliases in the PATH they are examined in the order left-to-right.  An asterisk '''*''' is used to show that a element in the path is no longer active.  In the path '''ABCD*,EFGH,IJKL''' only the '''EFGH''' path element is active because the previous path element '''ABCD*'''  is "used up".  And the '''IJKL''' is not yet active because it is not the left-most active field.
  
 
When APRS was first invented the generic calls of RELAY, WIDE and TRACE were used for all digipeaters, but there was no duplicaton suppression mechanism.  Paths beyond 2 hops could fold back ending up with dozens of unwanted duplicate packets.  By 1994 a WIDEn-N and TRACEn-N scheme was proposed by WB4APR.  It was finally implemented in 1998 by Kantronics, providing perfect dupe suppression and becoming the standard and most efficient way of operating.  When a digipeater sees an "n-N" packet, it digipeats it and decrements the "N" by 1.  This continues until the "N" is zero.
 
When APRS was first invented the generic calls of RELAY, WIDE and TRACE were used for all digipeaters, but there was no duplicaton suppression mechanism.  Paths beyond 2 hops could fold back ending up with dozens of unwanted duplicate packets.  By 1994 a WIDEn-N and TRACEn-N scheme was proposed by WB4APR.  It was finally implemented in 1998 by Kantronics, providing perfect dupe suppression and becoming the standard and most efficient way of operating.  When a digipeater sees an "n-N" packet, it digipeats it and decrements the "N" by 1.  This continues until the "N" is zero.
Line 32: Line 32:
 
Station ''ABCD'' sends a packet with path '''WIDE1-1, WIDE2-2'''.
 
Station ''ABCD'' sends a packet with path '''WIDE1-1, WIDE2-2'''.
  
A nearby station ''EFGH'' is configured to respond to '''WIDE1-1''', so he does so.  He decrements the second number (the SSID) making '''-1''' into '''-0''' and retransmits the packet with path '''EFGH*,WIDE1*, WIDE2-2'''.  The convention is that -'''0''' is not displayed and when a path element is used up then a '''*''' is appended.
+
A nearby station ''EFGH'' is configured to respond to '''WIDE1-1''', so he does so.  He decrements the second number (the SSID) making '''-1''' into '''-0''' and retransmits the packet with path '''EFGH,WIDE1*, WIDE2-2'''.  The convention is that -'''0''' is not displayed.
 
A WIDEn-N digipeater will also insert its own callsign into the path before the WIDEn-N path element that it acted on so that the path is traceable through all the digipeaters that relayed it.  In this example the packet now includes '''EFGH''' showing it passed through station ''EFGH''.
 
A WIDEn-N digipeater will also insert its own callsign into the path before the WIDEn-N path element that it acted on so that the path is traceable through all the digipeaters that relayed it.  In this example the packet now includes '''EFGH''' showing it passed through station ''EFGH''.
  
Another station ''IJKL''  (configured to respond to '''WIDEn-N''') picks it up and sends it out with '''EFGH*,WIDE1*,IJKL*,WIDE2-1'''. The destination '''WIDE2-1''' still has one hop so it is not yet marked with a '''*'''  and this packet is available for further digipeating.
+
Another station ''IJKL''  (configured to respond to '''WIDEn-N''') picks it up and sends it out with '''EFGH,WIDE1,IJKL*,WIDE2-1'''. The destination '''WIDE2-1''' still has one hop so it is not yet marked with a '''*'''  and this packet is available for further digipeating.
  
Then station ''MNOP''  (configured to respond to '''WIDEn-N''') hears it.  Because '''WIDE2-1''' is still active, he repeats it back out as '''EFGH*,WIDE1*,IJKL*,MNOP*,WIDE2*'''.  Since there are no more active path elements any digipeating station receiving that packet will not repeat it.
+
Then station ''MNOP''  (configured to respond to '''WIDEn-N''') hears it.  Because '''WIDE2-1''' is still active, he repeats it back out as '''EFGH,WIDE1,IJKL,MNOP,WIDE2*'''.  Since there are no more active path elements any digipeating station receiving that packet will not repeat it.
  
Again, the list of destinations are consumed in left-to-right order.  Path tracing allows digipeaters to insert their callsigns prior to the active path as a way of tracking the path the packet actually took through the system. The numbers after the dash in the WIDEn-N format are decremented until they reach '''-0''' and disappear altogether.  Destinations that are all used-up are marked with a '''*'''.
+
Again, the list of destinations are consumed in left-to-right order.  Path tracing allows digipeaters to insert their callsigns prior to the active path as a way of tracking the path the packet actually took through the system. The numbers after the dash in the WIDEn-N format are decremented until they reach '''-0''' and disappear altogether.  The last destination that is used-up is marked with a '''*'''.
 +
 
 +
This technique has the unfortunate property that the resulting path does not indicate what actually happened along the way.  '''EFGH,WIDE1,IJKL,MNOP,WIDE2*''' looks like the packet was retransmitted 5 times:  first by EFGH, then by some unknown station not configured for tracing, then by IJKL, then by MNOP, and finally by some other unknown station that is not configured for tracing.  This makes it difficult to figure out what stations can hear each other when a couple apparent unknown stations end up in the list.
 +
 
 +
===A Better Digipeating technique===
 +
 
 +
What we would really like to see is a final path of '''EFGH,IJKL,MNOP*''' which clearly reflects the path taken.  This is easy to achieve by making a small change to the tracing algorithm.  When the active path hop count (ssid) is 2 or more, we decrement it, and insert the digipeater name, just like before.  However, when the hop count is 1, it is '''replaced''' by the digipeater name. 
 +
 
 +
As in the previous example, Station ''ABCD'' sends a packet with path '''WIDE1-1, WIDE2-2'''. 
 +
 
 +
A nearby station ''EFGH'' is configured to respond to '''WIDE1-1''' and replaces that part with its own call resulting in '''EFGH*,WIDE2-2'''.
 +
 
 +
Another station ''IJKL''  (configured to respond to '''WIDEn-N''') picks it up and sends it out with '''EFGH,IJKL*,WIDE2-1'''.
 +
 
 +
Then station ''MNOP''  (configured to respond to '''WIDEn-N''') hears it repeats it back out as '''EFGH,IJKL,MNOP*'''.  The result accurately reveals the path taken and it is easy to create maps of what stations can hear each other.
 +
 
 +
{| class="wikitable"
 +
|-
 +
!  !! Unconditional insert !! More intelligent insert or replace
 +
|-
 +
| Original path || WIDE1-1,WIDE2-2 || WIDE1-1,WIDE2-2
 +
|-
 +
| After 1 hop || EFGH,WIDE1*,WIDE2-2 || EFGH*,WIDE2-2
 +
|-
 +
| After 2 hops || EFGH,WIDE1,IJKL*,WIDE2-1 || EFGH,IJKL*,WIDE2-1
 +
|-
 +
| After 3 hops || EFGH,WIDE1,IJKL,MNOP,WIDE2* || EFGH,IJKL,MNOP*
 +
|-
 +
| Implemented by  || KPC-3, TM-D710A || Dire Wolf soundcard TNC
 +
|}
  
 
===Dupe Checking===
 
===Dupe Checking===
Line 45: Line 74:
 
You might be thinking, "Hey, what's to keep ''EFGH'' from hearing that packet that ''IJKL'' sent out?  ''EFGH'' would send it out again, ''IJKL'' would pick it up and send it out again.  This thing could just loop around and not really get anywhere."  To solve this, all modern digipeaters have ''dupe-checking'' algorithms.
 
You might be thinking, "Hey, what's to keep ''EFGH'' from hearing that packet that ''IJKL'' sent out?  ''EFGH'' would send it out again, ''IJKL'' would pick it up and send it out again.  This thing could just loop around and not really get anywhere."  To solve this, all modern digipeaters have ''dupe-checking'' algorithms.
  
'''WIDEn-N''' Digipeaters have some '''memory''' of what has gone through them recently.  This is known as [[DuplicateChecking|dupe checking]].  Otherwise they would spend a lot of their time just booming packets back and forth amongst each other and the little pip-squeak tracker stations would never be heard at all.  The dupe checking algorithm in the digipeater will act to suppress re-transmission of packets that have recently been transmitted.  The main parameter of this '''memory'''  a time specification i.e. the number of seconds that received packets are kept around for comparing to incoming packets.
+
'''WIDEn-N''' Digipeaters have some '''memory''' of what has been transmitted them recently and drops duplicates.  This is known as [[DuplicateChecking|dupe checking]].  Otherwise they would spend a lot of their time just booming packets back and forth amongst each other and the little pip-squeak tracker stations would never be heard at all.  The dupe checking algorithm in the digipeater will act to suppress re-transmission of packets that have recently been transmitted.  The main parameter of this '''memory'''  a time specification i.e. the number of seconds that transmitted packets are kept around for comparing to candidates for digipeating.
 +
 
 +
Duplicates are detected by comparing the source, destination, and information fields.  The digipeater path is not part of the comparison. A digipeater should not re-transmit something it originated or already digipeated.  This will also limit the rate of identical packets that are being generated at a rapid rated.  Suppose some station was sending 10 identical packets per second.  A digipeater configured to remember packets for 30 seconds will cut this rate down to 2 per minute.
  
 
Other details of the ''New-N Paradigm'' include settings to TRAP abusive user paths with large values of '''N'''.  Usually only '''WIDE2-2''' is recommended in most high density areas and surrounding territory.
 
Other details of the ''New-N Paradigm'' include settings to TRAP abusive user paths with large values of '''N'''.  Usually only '''WIDE2-2''' is recommended in most high density areas and surrounding territory.
Line 52: Line 83:
  
 
Please read suggested setups for [[Paths]].
 
Please read suggested setups for [[Paths]].
 +
 +
=== Other discussion ===
 +
Steve WA8LMF has a parallel discussion of digipeaters and [http://www.wa8lmf.net/DigiPaths/ digipaths].
 +
Of particular interest is the [http://www.wa8lmf.net/DigiPaths/NNNN-Digi-Demo.htm animation] of the New-N Paradigm.
 +
 +
== Links ==
 +
* [http://www.youtube.com/watch?v=zTNjUllHbKg Video: Digipeater on TM-D710] - Digipeater on [[TM-D710]]
 +
 +
This video has several errors.
 +
3:57 - Voice Alert - 614
 +
This has nothing to do with the voice module. [http://info.aprs.net/index.php/VoiceAlert VoiceAlert]
 +
 +
4:03 - Digipeat (MyCal) - 616
 +
This is digipeating stations with paths like MYCALL,WIDEn-N
 +
In this example MYCALL is N0AOL, turning on menu 616 enables stations to use N0AOL,WIDE2-1 so that this station is digipeating it.
 +
Could be used as a "private" digipeater i.e if you have a TH-D7 and you need to use your home station to reach a digipeater.
 +
 +
4:44 - UICHECK - 617
 +
This is a duplicate check so that it's not retransmitting packets sent i.e every 10sec
 +
 +
6:59 - UIFLOOD - 619
 +
He is saying that his station is not going outside Colorado. He is activating a SS digipeater so that people using CO instead of WIDEn-N is been digipeted from this station. This setting doesn't limit the propagation of his beacon.
 +
 +
7:15 - UITRACE - 620
 +
This has nothing to do with messaging. This enables a tracable digipeater. This can be default ON if the alias is TEMP. Now people using TEMP in their path is going trough this digipeater.
 +
Can also be used to make a tracable WIDEn-N digi if you replace TEMP with WIDE.
 +
 +
A nice explanation of the digi functions can be found on: [http://www.kenwood.com/i/products/info/amateur/pdf/TM-D710AE_IDM_R1.pdf In-depth Manual]
 +
 +
So no offence to the author of this video :o)

Latest revision as of 19:46, 19 November 2012

Contents

[edit] Digipeater

[edit] Definition

A Digipeater is a station that does digital repeating. Unlike full-duplex VHF/UHF voice repeaters a digipeater will receive a packet, process it, and retransmit on the same frequency. A digipeater which operates on multiple frequencies is called a gateway.

In classic packet radio each such hop had to be explicitly included in the packet by the sender at origination. In APRS all digipeaters use generic aliases. The sender does not have to know the callsign of the digipeater but just indicate the number of hops he wants to go.

Digipeating is defined in AX.25 specification document. An initiating station can include in each packet a list of intermediate stations which are supposed to digipeat the packet, passing it on toward the desired destination. The list of intermediate stations is called the path. Stations receiving packets examine the path of received packets. Using it's configuration information a receiving station can decide if a packet is a candidate for digipeating. When this is true the packet addressing information is modified slightly and the modified packet is transmitted.

The idea is to get packets to propagate outward from the initiating station... but not so far as to be an unnecessary burden on the system and surrounding users. The practical range of a VHF 1200 baud APRS channel is estimated to include the nearest 60 stations (approximately), called the Aloha Circle.

[edit] The Digipeating Path and Development of WIDEn-N

If there are multiple aliases in the PATH they are examined in the order left-to-right. An asterisk * is used to show that a element in the path is no longer active. In the path ABCD*,EFGH,IJKL only the EFGH path element is active because the previous path element ABCD* is "used up". And the IJKL is not yet active because it is not the left-most active field.

When APRS was first invented the generic calls of RELAY, WIDE and TRACE were used for all digipeaters, but there was no duplicaton suppression mechanism. Paths beyond 2 hops could fold back ending up with dozens of unwanted duplicate packets. By 1994 a WIDEn-N and TRACEn-N scheme was proposed by WB4APR. It was finally implemented in 1998 by Kantronics, providing perfect dupe suppression and becoming the standard and most efficient way of operating. When a digipeater sees an "n-N" packet, it digipeats it and decrements the "N" by 1. This continues until the "N" is zero.

Up until 2004 APRS in the USA was using a mixture of the old generic paths and the new n-N type paths and the presence of the old paths was causing terrible QRM. TO combat these inefficiencies, WB4APR launched the New-N Paradigm to phase out all the old legacy paths and greatly simplify paths to simply WIDEn-N and to make these paths 100% traceable. For current recommended paths, see the Paths page.

[edit] Local and Wide Digipeaters

As with voice VHF repeaters, digipeaters are installed in places of prominence to allow for extended range. If a small station can "hit" the digipeater, his packet will go much farther then his own station can reach. Local digipeaters (called FILL-IN digipeaters) are usually located in blind spots where mobiles are unable to be heard by the main digipeaters. THese FILL-IN digis only respond to the WIDE1-1 path. This keeps them from needlessly repeating all other traffic from the high digis.

[edit] Digipeating example

Station ABCD sends a packet with path WIDE1-1, WIDE2-2.

A nearby station EFGH is configured to respond to WIDE1-1, so he does so. He decrements the second number (the SSID) making -1 into -0 and retransmits the packet with path EFGH,WIDE1*, WIDE2-2. The convention is that -0 is not displayed. A WIDEn-N digipeater will also insert its own callsign into the path before the WIDEn-N path element that it acted on so that the path is traceable through all the digipeaters that relayed it. In this example the packet now includes EFGH showing it passed through station EFGH.

Another station IJKL (configured to respond to WIDEn-N) picks it up and sends it out with EFGH,WIDE1,IJKL*,WIDE2-1. The destination WIDE2-1 still has one hop so it is not yet marked with a * and this packet is available for further digipeating.

Then station MNOP (configured to respond to WIDEn-N) hears it. Because WIDE2-1 is still active, he repeats it back out as EFGH,WIDE1,IJKL,MNOP,WIDE2*. Since there are no more active path elements any digipeating station receiving that packet will not repeat it.

Again, the list of destinations are consumed in left-to-right order. Path tracing allows digipeaters to insert their callsigns prior to the active path as a way of tracking the path the packet actually took through the system. The numbers after the dash in the WIDEn-N format are decremented until they reach -0 and disappear altogether. The last destination that is used-up is marked with a *.

This technique has the unfortunate property that the resulting path does not indicate what actually happened along the way. EFGH,WIDE1,IJKL,MNOP,WIDE2* looks like the packet was retransmitted 5 times: first by EFGH, then by some unknown station not configured for tracing, then by IJKL, then by MNOP, and finally by some other unknown station that is not configured for tracing. This makes it difficult to figure out what stations can hear each other when a couple apparent unknown stations end up in the list.

[edit] A Better Digipeating technique

What we would really like to see is a final path of EFGH,IJKL,MNOP* which clearly reflects the path taken. This is easy to achieve by making a small change to the tracing algorithm. When the active path hop count (ssid) is 2 or more, we decrement it, and insert the digipeater name, just like before. However, when the hop count is 1, it is replaced by the digipeater name.

As in the previous example, Station ABCD sends a packet with path WIDE1-1, WIDE2-2.

A nearby station EFGH is configured to respond to WIDE1-1 and replaces that part with its own call resulting in EFGH*,WIDE2-2.

Another station IJKL (configured to respond to WIDEn-N) picks it up and sends it out with EFGH,IJKL*,WIDE2-1.

Then station MNOP (configured to respond to WIDEn-N) hears it repeats it back out as EFGH,IJKL,MNOP*. The result accurately reveals the path taken and it is easy to create maps of what stations can hear each other.

Unconditional insert More intelligent insert or replace
Original path WIDE1-1,WIDE2-2 WIDE1-1,WIDE2-2
After 1 hop EFGH,WIDE1*,WIDE2-2 EFGH*,WIDE2-2
After 2 hops EFGH,WIDE1,IJKL*,WIDE2-1 EFGH,IJKL*,WIDE2-1
After 3 hops EFGH,WIDE1,IJKL,MNOP,WIDE2* EFGH,IJKL,MNOP*
Implemented by KPC-3, TM-D710A Dire Wolf soundcard TNC

[edit] Dupe Checking

You might be thinking, "Hey, what's to keep EFGH from hearing that packet that IJKL sent out? EFGH would send it out again, IJKL would pick it up and send it out again. This thing could just loop around and not really get anywhere." To solve this, all modern digipeaters have dupe-checking algorithms.

WIDEn-N Digipeaters have some memory of what has been transmitted them recently and drops duplicates. This is known as dupe checking. Otherwise they would spend a lot of their time just booming packets back and forth amongst each other and the little pip-squeak tracker stations would never be heard at all. The dupe checking algorithm in the digipeater will act to suppress re-transmission of packets that have recently been transmitted. The main parameter of this memory a time specification i.e. the number of seconds that transmitted packets are kept around for comparing to candidates for digipeating.

Duplicates are detected by comparing the source, destination, and information fields. The digipeater path is not part of the comparison. A digipeater should not re-transmit something it originated or already digipeated. This will also limit the rate of identical packets that are being generated at a rapid rated. Suppose some station was sending 10 identical packets per second. A digipeater configured to remember packets for 30 seconds will cut this rate down to 2 per minute.

Other details of the New-N Paradigm include settings to TRAP abusive user paths with large values of N. Usually only WIDE2-2 is recommended in most high density areas and surrounding territory.

[edit] Suggested Setup for a Mobile/Fixed APRS Station

Please read suggested setups for Paths.

[edit] Other discussion

Steve WA8LMF has a parallel discussion of digipeaters and digipaths. Of particular interest is the animation of the New-N Paradigm.

[edit] Links

This video has several errors. 3:57 - Voice Alert - 614 This has nothing to do with the voice module. VoiceAlert

4:03 - Digipeat (MyCal) - 616 This is digipeating stations with paths like MYCALL,WIDEn-N In this example MYCALL is N0AOL, turning on menu 616 enables stations to use N0AOL,WIDE2-1 so that this station is digipeating it. Could be used as a "private" digipeater i.e if you have a TH-D7 and you need to use your home station to reach a digipeater.

4:44 - UICHECK - 617 This is a duplicate check so that it's not retransmitting packets sent i.e every 10sec

6:59 - UIFLOOD - 619 He is saying that his station is not going outside Colorado. He is activating a SS digipeater so that people using CO instead of WIDEn-N is been digipeted from this station. This setting doesn't limit the propagation of his beacon.

7:15 - UITRACE - 620 This has nothing to do with messaging. This enables a tracable digipeater. This can be default ON if the alias is TEMP. Now people using TEMP in their path is going trough this digipeater. Can also be used to make a tracable WIDEn-N digi if you replace TEMP with WIDE.

A nice explanation of the digi functions can be found on: In-depth Manual

So no offence to the author of this video :o)

Personal tools