Introduction
This section intends to offer an overview of the issues related to the practical decoding of the CODAN data modem protocol using WAVECOM decoders. It is important for the user to be aware of any constraints and limitations inherent in the decoding process during non-cooperative interception of this mode, and so possible issues are explained below.
Protocol overview
The CODAN-9001 modem uses 16 DQPSK carriers for the transport of payload data. Each carrier is independently modulated with data.
Each individual channel carries a channel packet. All 16 concurrent channel packets constitute a frame and a number of frames constitute a multi-frame.
CODAN-9001 modem frame structure
CH |
Frame 1 |
Frame 2 |
Frame 2 |
... |
Frame n |
1 |
Chnl packet 01 |
Chnl packet 17 |
Chnl packet 33 |
.... |
... |
2 |
Chnl packet 02 |
Chnl packet 18 |
Chnl packet 34 |
... |
... |
3 |
Chnl packet 03 |
Chnl packet 19 |
Chnl packet 35 |
... |
... |
... |
... |
... |
... |
... |
... |
16 |
Chnl packet 16 |
Chnl packet 32 |
Chnl packet 48 |
... |
Chnl packet m |
Multi-frame 1 |
Each payload data packet has a constant length and a sequence number. However, the numbering in the figure above only serves as an example, and due to the use of ARQ-based retransmissions the numbering may not be sequential.
For the purpose of this explanation payload data is considered to be unprocessed user data and channel encoded user data.
Independent of the payload data field, the sequence number field has its own error detecting and correcting code. Payload data in each channel packet is protected by a cyclic redundancy code (CRC). This feature is included in order to allow the ARQ protocol to request retransmission of packets received in error.
A session consists of one or more multi-frames. Depending on the amount of data queued for transfer the length of a multi-frame may vary. The receiving modem will extract the frames from the multi-frame determining the number of channel packets and checking whether payload data was received without errors. If a channel packet was received in error a re-transmission is requested. It should be clear from this that a multi-frame may consist of a mixture of new data and re-transmitted data. Re-transmitted data may appear on any channel and in any position within a multi-frame. Additionally the transmitting modem may opt to send ALE-like parity bit packets in a separate frame and even on another channel within the same multi-frame as the payload data packet to which it belongs. This is indicated by the two packets belonging together carrying the same sequence number. This mechanism is predominantly seen when the link quality deteriorates and consequently the number of re-transmissions increases.
In the “Broadcast” and “Group” modes multi-frames with new data appear for every fourth multi-frame – in between data and coding information is repeated in the remaining three multi-frames.
Compressed mode specifics
For point-to-point channels CODAN modems utilize a dictionary based compression method, which allows compression to be independent of the statistical characteristics of the source data. The dictionaries are dynamically built depending on the data previously transmitted. Each modem uses one dictionary for reception and another one for transmission in such a way that a transmission dictionary at one end of the link corresponds to a reception dictionary at the opposite end of the link. The ARQ protocol ensures that the dictionaries are updated and synchronized. If the dictionaries deviate decompression becomes impossible as the buffer contents cannot be reconstructed. It is thus clear that for non-cooperative interception deviating dictionaries pose a major problem.
CODAN decoding at the practical level
When engaging in non-cooperative monitoring a number of issues arise:
Ø All frames and the sequence counters contained in therein must be received without errors. Re-transmitted packets must be discarded.
Ø Missing packets or packets with a failed CRC must not be accepted; otherwise data output will be incomplete.
In case of uncompressed transmissions packets with a failed CRC may be marked as such. In case of compressed transmissions decompression consequently becomes impossible due to the deviating dictionaries built during the non-cooperative interception session. Only when a new link is set up, it is possible to start over with empty dictionaries. It is important to understand that in case of compressed transmissions exclusively the data from one party may be forwarded to the de-compressor. This understanding is especially important if during non-cooperative interception both parties in a “Chat Session” are received as forwarding the data from both parties will immediately poison the dictionary.
HF transmission issues
The CODAN ARQ protocol is adapted to the propagation conditions in the HF range, but obviously relies on an active link between the two communicating parties. This link does not exist in the case of non-cooperative monitoring and thus complete and correct data output is fully dependent on error-free reception – there is no way to ask for re-transmission.
As transmissions do not contain source or destination addresses the monitor in case of single-frequency half-duplex traffic must manually select the party to monitor. This may be achieved by adjusting the receiver squelch, adjusting the receiver HF gain or the use of directional antennas to suppress the unwanted signal.
Real-time monitoring issues
To capture the contents of a CODAN modem data transmission the monitoring equipment should be placed as close as possible to the transmitter site of the interesting party. This is the only way to ensure that the quality of the signal is sufficient to secure that all transmitted packets are correctly captured.
To facilitate the decoding of data the WAVECOM decoder in addition to outputting the decoded data in the decoder window also saves raw channel data with sequence numbers and including bad packets to a text file. The text file may be processed manually or by a user provided application.