Packet Layers

From Ohio Packet

There are several "layers" which go into moving data across packet networks. From what I understand, we normally see the following 4 layers.


Layer 1 - Audio Tones

Layer 1 is the actual audio tones you hear over the air. For 1200 Baud, it's 1200 and 2200hz. When using 300 Baud on HF, the tones will vary, but generally are 1600hz and 1800hz. Both 300 and 1200 Baud have center tones (midpoint between mark and space) of 1700hz.

Layer 2 - AX.25

Layer 2 is the basis of the packet connection (AX.25). It's headers contain a source and destination call (or destination address if unproto, like an ID, Beacon Nodes Broadcast or Axxnnn in APRS). In it's simplest form, a Layer 2 connection can be between two people and have a keyboard to keyboard conversation. Likewise, a user to your BBS is a layer 2 connection. It starts with a [C]onnection or SABM frame. The response to this would be an unnumbered acknowledgment (UA). At this point, packet sequencing and checksums are active, which ensures all the frames arrive error free and in order. If there's an issue with the frame a [REJ]ect frame is sent and the packet is resent, etc. Good technical documentation on Layer 2 exist here: http://www.tapr.org/pub_ax25.html

Layer 3 - Net/Rom peer to peer

Layer 3 is the introduction of Net/Rom on top of (AX.25). If you watch a connection from one Net/Rom node to another, you will see the calling node establish a Layer 2 connection to the destination node. Once this Layer 2 connection is active, you will then see Net/Rom traffic similar to AX.25 (Connection requests), but this connection request actually travels along a data packet, not a [C]onnection or SABM Layer 2 frame. The entire Layer 3 session will ride "on top of" the established Layer 2 session. Just like you can have multiple Layer 2 connections, you can have parallel Layer 3 connections within a single Layer 2 connection.

Layer 4 - Net/Rom pass through

Layer 4 is the "routing" portion of Net/Rom. You will have a Layer 4 link when there is one or more intermediate nodes between the calling node and destination node.

An example

For example, we will say that from LANSW2:K8QIK-7, a user (XX1XX) connections on 145.530 MHz (Layer 2) and wishes to connect to CMHSW4:KB8UVN-11 in Johnstown. In this example (as it is in the real world, K8QIK-7 talks to K8QIK-2 on 440.500 and K8QIK-2 talks to KB8UVN-11 on 223.660 MHz. The order of operations would look something like this:

145.530 MHz XX1XX -> K8QIK-7 (Layer 2 Connect Request)
145.530 MHz K8QIK-7 -> XX1XX (Layer 2 Connect Acknowledgment)
145.530 MHz XX1XX -> K8QIK-7 (Layer 2 Data 'C KB8UVN-11')
145.530 MHz K8QIK-7 -> XX1XX (Layer 2 Data Acknowledgment)
440.500 MHz K8QIK-7 -> K8QIK-2 (Layer 2 Connect Request)
440.500 MHz K8QIK-2 -> K8QIK-7 (Layer 2 Connect Acknowledgment)
440.500 MHz K8QIK-7 -> K8QIK-2 (Layer 2 Data, Layer 3 Connect Request XX1XX @ K8QIK-7 -> KB8UVN-11)
440.500 MHz K8QIK-2 -> K8QIK-7 (Layer 2 Data Acknowledgment)
223.660 MHz K8QIK-2 -> KB8UVN-11 (Layer 2 Connect Request)
223.660 MHz KB8UVN-11 -> K8QIK-2 (Layer 2 Connect Acknowledgment)
223.660 MHz K8QIK-2 -> KB8UVN-11 (Layer 2 Data, Layer 4 Connect Request XX1XX @ K8QIK-7 -> KB8UVN-11)
223.660 MHz KB8UVN-11 -> K8QIK-2 (Layer 2 Data Acknowledgment)
223.660 MHz KB8UVN-11 -> K8QIK-2 (Layer 2 Data, Layer 3 Connect Acknowledgment KB8UVN-11 -> XX1XX @ K8QIK-7)
223.660 MHz K8QIK-2 -> KB8UVN-11 (Layer 2 Data Acknowledgment)
440.500 MHz K8QIK-2 -> K8QIK-7 (Layer 2 Data, Layer 4 Connect Acknowledgment KB8UVN-11 -> XX1XX @ K8QIK-7)
440.500 MHz K8QIK-7 -> K8QIK-2 (Layer 2 Data Acknowledgment)
145.530 MHz K8QIK-7 -> XX1XX (Layer 2 Data 'LANSW2:K8QIK-7} Connected to CMHSW4:KB8UVN-11')
145.530 MHz XX1XX -> K8QIK-7 (Layer 2 Data Acknowledgment)

Depending on layer 2 parameters like maxframe and paclen, some of the above sequential frames may be sent in a single transmission, but this is the general order of operation. You will notice that the only difference between Layer 3 and Layer 4 is that Layer 3 exists on either the source or destination Net/Rom system while Layer 4 only exists on the "pass through" system, K8QIK-2 in this example, but could be additional "hops" governed by Net/Rom routing.

When Net/Rom is enabled and functioning, there is no functional difference between C ALIAS versus C CALLSIGN-SSID. Both will establish a layer 3 (Net/Rom) link to the target system. The path will be governed by the Net/Rom quality/routing table and handle all the above transactions automatically. If you wish to force a layer 2 connection (which is actually more efficient, it doesn't have the Layer 3 overhead), you can issue the command C PORTNUMBER ALIAS-SSID where the SSID is anything (0-15). This bypasses the Net/Rom "lookup" of a route and treats it no differently than connecting to a user's TNC for keyboard QSO, a connection to a Kantronics KaNode, etc. While being faster, it does force the connecting user (or script) to know which port each hop needs to go out on. If the network is completely under your control or you keep up on changing systems, this generally is not a problem. It is also important to keep in mind when doing this over an AXIP or AXUDP link that our "maps" usually just contain a single callsign, so forcing layer 2 connections over an AXUDP or AXIP link would require a map to the Net/Rom alias (and all SSIDs after the alias) be mapped just as the Layer 2 callsign is mapped.