Protocol Layers (MAC/LAC)
The two key sublayers between the physical layer and Layer 3 — MAC and LAC — handle multiplexing, reliable delivery, and message framing.
Layer Model
Layer 3 generates signaling messages (SDUs). The LAC wraps them in PDUs with sequence numbers and CRC for reliable delivery. The MAC multiplexes signaling with voice/data traffic into physical layer frames.
MAC Sublayer
The MAC (Medium Access Control) sublayer multiplexes signaling and user traffic into fixed-size frames for the physical layer.
MuxPDU Type 1
RC1 and RC3 use MuxPDU Type 1 framing. At full rate (9600 bps), each 20 ms frame carries 172 information bits. A 4-bit header controls how those bits are split between traffic and signaling:
| Mode | Header | Traffic | Signaling | Description |
|---|---|---|---|---|
| Traffic only | 0___ | 171 bits | 0 | Normal voice/data frame |
| Dim-and-burst | 1000 | 80 bits | 88 bits | Reduced traffic + signaling |
| Dim-and-burst | 1001 | 40 bits | 128 bits | More signaling capacity |
| Dim-and-burst | 1010 | 16 bits | 152 bits | Mostly signaling |
| Blank-and-burst | 1011 | 0 | 168 bits | All signaling, no traffic |
At sub-full rates (4800/2400/1200 bps), there is no MuxPDU header — the entire frame is primary traffic. Signaling can only be carried at full rate.
Dim-and-Burst vs. Blank-and-Burst
- Dim-and-burst reduces voice quality slightly to make room for signaling alongside active speech. Used for in-call power control messages, data bursts during voice, etc.
- Blank-and-burst replaces the entire frame with signaling. Used for call setup messages, service negotiation, and other control messages where a brief voice interruption is acceptable.
Rate Detection (Reverse Link)
The mobile transmits at variable rates. All rates produce the same number of code symbols after encoding (576 for RC3), so the base station must try each rate and check the CRC:
| Rate | Info Bits | CRC | Repetition |
|---|---|---|---|
| 9600 bps (full) | 172 | CRC-12 | 1x |
| 4800 bps (half) | 80 | CRC-8 | 2x |
| 2400 bps (quarter) | 40 | None | 4x |
| 1200 bps (eighth) | 16 | None | 8x |
The receiver Viterbi-decodes the frame and tests CRC at each rate. The first rate that passes CRC determines the frame content.
LAC Sublayer
The LAC (Link Access Control) sits between Layer 3 and MAC. It implements the ARQ mechanism for guaranteed message delivery, handles addressing, and fragments long messages across multiple frames.
LAC Processing Pipeline
A Layer 3 message passes through several sublayers within LAC before reaching the MAC:
Layer 3 SDU (e.g., Service Connect Message)
↓
ARQ Sublayer Add MSG_SEQ, ACK_SEQ, ACK_REQ
↓
Addressing Add ADDR_TYPE + address (for paging channel)
↓
Utility Add MSG_TYPE, ENCRYPTION field, padding
↓
SAR Add MSG_LENGTH, compute CRC-16, fragment
↓
MAC Wrap in MuxPDU header, schedule frame
ARQ — Assured Delivery
ARQ (Automatic Repeat Request) ensures critical messages are received. Each PDU carries sequence fields:
| Field | Bits | Purpose |
|---|---|---|
MSG_SEQ | 3 | Sequence number of this PDU (0-7, modulo 8) |
ACK_SEQ | 3 | Sequence number of the PDU being acknowledged |
ACK_REQ | 1 | Whether an acknowledgment is requested |
VALID_ACK | 1 | Whether the ACK_SEQ field is valid (f-csch/r-csch only) |
For mini PDUs on the dedicated channel, the sequence space is smaller: 2-bit MSG_SEQ/ACK_SEQ (0-3, modulo 4).
Assured Mode (ACK_REQ = 1)
When a message requires guaranteed delivery:
- Transmitter sends the PDU with a unique
MSG_SEQandACK_REQ=1 - A copy is stored for possible retransmission
- If no acknowledgment arrives within the timeout (T1m = 400 ms for regular, T75m = 120 ms for mini), retransmit with the same MSG_SEQ
- Continue retransmitting until acknowledged or max attempts reached
- The receiver sends back the
MSG_SEQvalue in theACK_SEQfield of its next PDU
Unassured Mode (ACK_REQ = 0)
For less critical messages or acknowledgment-only PDUs:
- PDU may be sent multiple times for robustness
- No acknowledgment is expected
- All transmissions use the same
MSG_SEQ - After the last transmission, wait T3m (320 ms) before reusing the same
MSG_SEQfor a different unassured PDU
Sequence Number Tracking
Separate MSG_SEQ counters are maintained for each combination of:
- Channel — Forward common (f-csch), reverse common (r-csch), forward dedicated (f-dsch), reverse dedicated (r-dsch)
- PDU type — Regular vs. mini (on dedicated channels)
- Destination — (address_type, address, ack_req) on the paging channel
This means the base station may be tracking dozens of independent sequence streams simultaneously — one per registered mobile on the paging channel, plus separate streams for each active traffic channel.
Duplicate Detection
The receiver maintains a sliding window of recently seen sequence numbers:
- When
MSG_SEQ=karrives and hasn’t been seen: process it, mark it seen, clear(k+4) mod 8 - When
MSG_SEQ=karrives and was already seen: it’s a duplicate — send the ACK again but don’t deliver to Layer 3
This sliding window of 4 consecutive sequence numbers handles both retransmissions and natural wrap-around of the 3-bit sequence space.
Outstanding PDU Limits
The transmitter can have multiple unacknowledged PDUs in flight, but with limits:
- Regular PDUs: Up to 4 outstanding (waiting for ACK)
- Mini PDUs: Up to 2 outstanding
If the window is full, the transmitter blocks until an acknowledgment frees a slot.
T4m Reuse Enforcement (Paging Channel)
On the forward common channel, a special rule prevents sequence number confusion. After transmitting a PDU with MSG_SEQ=k to a specific mobile, the base station must wait at least T4m = 2.2 seconds before reusing MSG_SEQ=k for a different PDU to the same mobile.
First TX (MSG_SEQ=k) Last retransmit T4m expires → can reuse k
| | |
├── retransmissions ────┤──── 2.2s cooldown ─────┤
ARQ Timers
| Timer | Value | Purpose |
|---|---|---|
| T1m | 400 ms | Retransmission timeout for regular PDUs |
| T2m | 200 ms | Max time for MS to send ack (regular) |
| T3m | 320 ms | Duplicate detection window (unassured regular) |
| T4m | 2.2 s | MSG_SEQ reuse cooldown on paging channel |
| T75m | 120 ms | Retransmission timeout for mini PDUs |
| T76m | 60 ms | Max time for MS to send ack (mini) |
| T77m | 20 ms | Duplicate detection window (unassured mini) |
| Constant | Value | Purpose |
|---|---|---|
| N1m | 13 | Max transmissions of a regular PDU (MS → BS) |
| N14m | 6 | Number of mini PDU retransmits using T75m before falling back to T1m |
| N15m | 17 | Max transmissions of a mini PDU (MS → BS) |
SAR — Segmentation and Reassembly
Long messages are fragmented across multiple frames by the SAR sublayer.
SAR Encapsulation
Before fragmentation, each PDU is wrapped in a SAR envelope:
MSG_LENGTH (8 bits) | LAC PDU (variable) | CRC-16 (16 bits)
- MSG_LENGTH — Total octets in the
MSG_LENGTH + LAC PDUportion - CRC-16 — CRC-16-CCITT (polynomial x^16 + x^12 + x^5 + 1) computed over
MSG_LENGTH + LAC PDU
Fragmentation
The SAR data block is split into fragments that fit in a single frame’s signaling allocation (168 bits for blank-and-burst). Each fragment gets a 1-bit SOM (Start of Message) prefix:
| SOM | Meaning |
|---|---|
| 1 | First fragment of a new message |
| 0 | Continuation fragment |
Fragment capacity: 168 - 1 (SOM) = 167 bits per frame.
Single-Frame Example
A short message like a BS Ack Order (40-bit PDU) fits in one frame:
SAR data: 8 (MSG_LENGTH) + 40 (PDU) + 16 (CRC-16) = 64 bits
Fragment: 1 (SOM) + 64 (SAR data) + 103 (zero padding) = 168 bits
MuxPDU: 4 (header: 1011 = blank-and-burst) + 168 = 172 info bits
Physical: 172 + 12 (CRC-12) + 8 (tail) = 192 encoder input bits
Multi-Frame Example
A longer message like a Service Connect Message (~200 bits) requires two frames:
SAR data: 8 + ~200 + 16 = ~224 bits
Fragment 1: SOM=1 + 167 bits of SAR data (168 bits)
Fragment 2: SOM=0 + 57 bits of SAR data + pad (168 bits)
The receiver reassembles by collecting SOM=0 fragments until the next SOM=1, then validates the CRC-16 over the complete SAR data block.
Channel-Specific Messaging
Paging Channel (f-csch)
Broadcast messages (System Parameters, Access Parameters, Neighbor List) are sent without ARQ fields — they’re transmitted periodically and any mobile that misses one will catch the next cycle.
Directed messages (General Page, Channel Assignment) include full ARQ and addressing fields:
MSG_TAG(8) | ACK_SEQ(3) | MSG_SEQ(3) | ACK_REQ(1) | VALID_ACK(1) |
ADDR_TYPE(3) | ADDR_LEN(4) | ADDRESS(variable) | SDU | padding
Access Channel (r-csch)
Mobile-initiated messages (Registration, Origination, Page Response) include ARQ fields plus identity:
MSID_TYPE(3) | MSID(variable) | ACK_SEQ(3) | MSG_SEQ(3) | ACK_REQ(1) |
VALID_ACK(1) | ACK_TYPE(3) | SDU | padding
Each access probe is an independent frame. The mobile retransmits with incrementing MSG_SEQ until acknowledged.
Traffic Channel (f-dsch / r-dsch)
Signaling on the traffic channel uses blank-and-burst or dim-and-burst MuxPDU framing:
MuxPDU Header(4) | SOM(1) | MSG_LENGTH(8) | MSG_TYPE(8) | ACK_SEQ(3) |
MSG_SEQ(3) | ACK_REQ(1) | ENCRYPTION(2) | SDU | padding | CRC-16(16)
When the base station needs to send an acknowledgment but has no pending Layer 3 message, it sends a BS Ack Order — a minimal PDU whose only purpose is to carry the ACK_SEQ field back to the mobile.