Analyzing Traffic 100 to 102¶
Frame-by-Frame Analysis of Long Frames (>4 bytes)¶
Frame 1: First X.25 Data Packet¶
Timestamp: [23:26:22.787]
Direction: Machine 100 → Machine 102
Content: 0x09 0x00 0x21 0x13 0x00 0x19 0x00 0x66 0x00 0x64 0xFF 0xFF 0x00 0x01 0xDE 0x08
Size: 16 bytes
LAPB: N(S)=0, N(R)=0 (Information frame)
X.25: Virtual Circuit 1.19, Packet Type 0x21
Retransmitted at: [23:26:23.993] (same content)
Received by 102: [23:26:23.377] and [23:26:24.268]
Frame 2: Multi-Buffer X.25 Data Packet¶
Timestamp: [23:26:24.581] - [23:26:25.039] (3 parts)
Direction: Machine 100 → Machine 102
Part 1 [RSOM:True] [REOM:False]:
0x09 0x22 0x21 0x13 0x00 0x0E 0x00 0x66 0x00 0x64 0x00 0x00 0x01 0x00 0xDD 0x14
Part 2 [RSOM:False] [REOM:False]:
0x21 0x00 0x86 0xC4 0x00 0x66 0x00 0x00 0x00 0x64 0x02 0xC2 0x01 0x00
Part 3 [RSOM:False] [REOM:True]:
0x01 0x4B 0x00 0x04 0x01 0x02 0x00 0x66
Combined Size: 40 bytes
LAPB: N(S)=1, N(R)=1
X.25: Virtual Circuit 1.19, carrying application data
Received by 102: [23:26:25.737] as single concatenated frame (correct assembly)
Frame 3: Next X.25 Data Packet in Sequence¶
Timestamp: [23:26:27.185] - [23:26:27.371] (3 parts)
Direction: Machine 100 → Machine 102
Part 1 [RSOM:True] [REOM:False]:
0x09 0x22 0x21 0x13 0x00 0x0E 0x00 0x66 0x00 0x64 0x00 0x00 0x01 0x00 0xDD 0x14
Part 2 [RSOM:False] [REOM:False]:
0x21 0x00 0x86 0xC4 0x00 0x66 0x00 0x00 0x00 0x64 0x02 0xC2 0x01 0x00
Part 3 [RSOM:False] [REOM:True]:
0x00 0x07 0xB7 0xF0 0x01 0x02 0x00 0x66
Combined Size: 40 bytes
LAPB: N(S)=1, N(R)=1
X.25: Virtual Circuit 1.19, different application data
Received by 102: [23:26:28.827] as single concatenated frame
LAPB/X.25 Deep Frame Analysis¶
Frame Structure (without SYNC flags 0x7E and FCS)¶
| Address | Control | Information Field (X.25 Packet) |
| 1B | 1B | Variable Length |
Raw Frame Data¶
Frame 2: 09 22 21 13 00 0E 00 66 00 64 00 00 01 00 DD 14 21 00 86 C4 00 66 00 00 00 64 02 C2 01 00 01 4B 00 04 01 02 00 66
Frame 3: 09 66 21 13 00 0E 00 66 00 64 00 01 01 00 DD 13 21 00 86 C4 00 66 00 00 00 64 02 C2 01 00 00 07 B7 F0 01 02 00 66
LAPB Header Analysis¶
Address Field (Byte 0)¶
- Both frames: 0x09
- Interpretation: Non-standard address value
- Note: Standard LAPB uses 0x01 (DTE→DCE commands) or 0x03 (DCE→DTE commands)
Control Field Analysis¶
Frame 2: 0x22 (00100010 binary)
- Frame Type: I-frame (bit 0 = 0)
- N(S) = 1: Send sequence number = 1
- P/F = 0: Poll/Final bit not set
- N(R) = 1: Receive sequence number = 1
Frame 3: 0x66 (01100110 binary)
- Frame Type: I-frame (bit 0 = 0)
- N(S) = 3: Send sequence number = 3
- P/F = 0: Poll/Final bit not set
- N(R) = 3: Receive sequence number = 3
X.25 Packet Layer Analysis¶
X.25 Header (Bytes 2-4): 21 13 00¶
Byte 2 (0x21): GFI + Logical Channel Group - GFI = 2: Q=0, D=0, Modulo-8 sequence numbering - LCG = 1: Logical Channel Group = 1
Byte 3 (0x13): Logical Channel Number = 19 decimal Full LCI: 1.19 (Group 1, Channel 19)
Byte 4 (0x00): Data packet with X.25 sequence numbers
Key Differences Between Frames¶
| Byte Position | Frame 2 | Frame 3 | Field Description |
|---|---|---|---|
| 1 (Control) | 0x22 | 0x66 | LAPB sequence: N(S)=1 vs N(S)=3 |
| 11 | 0x00 | 0x01 | X.25 packet sequence |
| 15 | 0x14 | 0x13 | Length field (20 vs 19 bytes) |
| 31-34 | 01 4B 00 04 | 00 07 B7 F0 | User data payload |
Protocol Behavior Analysis¶
Normal Sequence Progression¶
- Frame 2: N(S)=1, N(R)=1 (sending frame 1, expecting frame 1)
- Frame 3: N(S)=3, N(R)=3 (sending frame 3, expecting frame 3)
- Missing: Intermediate frame N(S)=2 between these two
X.25 Layer Operation¶
- Same Virtual Circuit: Both use LCI 1.19
- Sequential Data: Different application payloads on same circuit
- Proper Flow Control: Acknowledgment sequence numbers advancing correctly
Conclusion¶
No corruption detected - this represents normal X.25 data transmission with:
- Proper LAPB sequence number advancement
- Different application payloads (01 4B 00 04 vs 00 07 B7 F0)
- Healthy protocol operation on virtual circuit 1.19
- Standard windowing and acknowledgment behavior
Real Issue: Not frame corruption, but likely missing acknowledgments causing multiple retransmissions of the same frames.
Comprehensive Sent vs Received Analysis¶
Direction: Machine 100 → Machine 102¶
Initial Connection Setup (LOST)¶
SENT: [23:25:57.844] Machine 100 → 102: 0x01 0x3F 0x00 0x64
RECEIVED: [Not found in 102 trace] STATUS: ❌ LOST
SENT: [23:25:58.623] Machine 100 → 102: 0x01 0x73 0x00 0x64
RECEIVED: [Not found in 102 trace] STATUS: ❌ LOST
SENT: [23:25:58.952] Machine 100 → 102: 0x09 0x01 0x00 0x64
RECEIVED: [Not found in 102 trace] STATUS: ❌ LOST
Data Exchange Phase (MIXED SUCCESS)¶
SENT: [23:26:22.787] Machine 100 → 102: 0x09 0x00 0x21 0x13 0x00 0x19 0x00 0x66...
RECEIVED: [23:26:23.377] Machine 102: Same content
STATUS: ✅ RECEIVED (Delay: 590ms)
SENT: [23:26:23.993] Machine 100 → 102: 0x09 0x00 0x21 0x13 0x00 0x19 0x00 0x66...
RECEIVED: [23:26:24.268] Machine 102: Same content
STATUS: 🔄 RETRANSMISSION/RECEIVED (Delay: 275ms)
SENT: [23:26:24.581-25.039] Machine 100 → 102: Multi-buffer frame 0x09 0x22...
RECEIVED: [23:26:25.737] Machine 102: Concatenated frame
STATUS: ✅ RECEIVED (Delay: 1156ms)
SENT: [23:26:25.550-26.088] Machine 100 → 102: Same multi-buffer frame
RECEIVED: [23:26:27.110] Machine 102: Same concatenated frame
STATUS: 🔄 RETRANSMISSION/RECEIVED (Delay: 1560ms)
SENT: [23:26:26.871-27.371] Machine 100 → 102: Same multi-buffer frame (3rd time)
RECEIVED: [23:26:28.827] Machine 102: Same concatenated frame
STATUS: 🔄 RETRANSMISSION/RECEIVED (Delay: 1956ms)
Acknowledgment Frames (SUCCESSFUL)¶
SENT: [23:26:26.316] Machine 100 → 102: 0x09 0x29 0x00 0x64
RECEIVED: [23:26:27.409] Machine 102: 0x09 0x29 0x00 0x64
STATUS: ✅ RECEIVED (Delay: 1093ms)
SENT: [23:26:27.583] Machine 100 → 102: 0x09 0x41 0x00 0x64
RECEIVED: [23:26:29.129] Machine 102: 0x09 0x41 0x00 0x64
STATUS: ✅ RECEIVED (Delay: 1546ms)
Extended Data Frames (MULTIPLE RETRANSMISSIONS)¶
SENT: [23:26:29.098] Machine 100 → 102: 0x09 0x64 0x21 0x13 0x00 0x03...
RECEIVED: [23:26:29.843] Machine 102: Same content
STATUS: ✅ RECEIVED (Delay: 745ms)
SENT: [23:26:30.529] Machine 100 → 102: 0x09 0x69 0x00 0x64
RECEIVED: [23:26:31.663] Machine 102: 0x09 0x69 0x00 0x64
STATUS: ✅ RECEIVED (Delay: 1134ms)
SENT: [23:26:31.120] Machine 100 → 102: 0x09 0x64 0x21 0x13... (RETRANSMISSION)
RECEIVED: [23:26:32.329] Machine 102: Same content
STATUS: 🔄 RETRANSMISSION/RECEIVED (Delay: 1209ms)
SENT: [23:26:32.580] Machine 100 → 102: 0x09 0x64 0x21 0x13... (RETRANSMISSION)
RECEIVED: [23:26:34.409] Machine 102: Same content
STATUS: 🔄 RETRANSMISSION/RECEIVED (Delay: 1829ms)
SENT: [23:26:34.482] Machine 100 → 102: 0x09 0x64 0x21 0x13... (RETRANSMISSION)
RECEIVED: [Not found] STATUS: ❌ LOST
SENT: [23:26:36.224] Machine 100 → 102: 0x09 0x64 0x21 0x13... (RETRANSMISSION)
RECEIVED: [Not found] STATUS: ❌ LOST
CRC Error Recovery Phase (MASSIVE LOSSES)¶
SENT: [23:26:37.983] Machine 100 → 102: 0x01 0x3F 0x00 0x64 (Reset frame)
SENT: [23:26:38.234] Machine 100 → 102: 0x01 0x3F 0x00 0x64 (RETRANSMISSION)
SENT: [23:26:38.510] Machine 100 → 102: 0x01 0x3F 0x00 0x64 (RETRANSMISSION)
...15+ identical retransmissions...
RECEIVED: [Not found] STATUS: ❌ ALL LOST
Successful Recovery (WORKING AGAIN)¶
SENT: [23:26:53.153] Machine 100 → 102: 0x01 0x73 0x00 0x64
RECEIVED: [23:26:53.360] Machine 102: 0x01 0x73 0x00 0x64
STATUS: ✅ RECEIVED (Delay: 207ms)
SENT: [23:26:55.346] Machine 100 → 102: 0x09 0x01 0x00 0x64
RECEIVED: [23:26:55.828] Machine 102: 0x09 0x01 0x00 0x64
STATUS: ✅ RECEIVED (Delay: 482ms)
Direction: Machine 102 → Machine 100¶
Response Frames (WORKING WITH DELAYS)¶
SENT: [23:26:23.476] Machine 102 → 100: 0x09 0x20 0x21 0x13 0x00 0x13...
RECEIVED: [23:26:24.150] Machine 100: Same content
STATUS: ✅ RECEIVED (Delay: 674ms)
SENT: [23:26:24.305] Machine 102 → 100: 0x09 0x29 0x00 0x66
RECEIVED: [23:26:24.634] Machine 100: Same content
STATUS: ✅ RECEIVED (Delay: 329ms)
SENT: [23:26:24.511] Machine 102 → 100: 0x09 0x20 0x21 0x13... (RETRANSMISSION)
RECEIVED: [23:26:25.313] Machine 100: Same content
STATUS: 🔄 RETRANSMISSION/RECEIVED (Delay: 802ms)
SENT: [23:26:25.610] Machine 102 → 100: 0x09 0x20 0x21 0x13... (RETRANSMISSION)
RECEIVED: [23:26:26.249] Machine 100: Same content
STATUS: 🔄 RETRANSMISSION/RECEIVED (Delay: 639ms)
Complex Data Exchange - LONG FRAMES ONLY (>4 bytes)¶
SENT: [23:26:25.859] Machine 102 → 100: 0x09 0x42 0x21 0x13 0x00 0x03... (16 bytes)
RECEIVED: [23:26:26.913] Machine 100: Same content
STATUS: ✅ RECEIVED (Delay: 1054ms)
SENT: [23:26:25.968] Machine 102 → 100: Multi-buffer 0x09 0x44 0x21 0x13... (40+ bytes)
RECEIVED: [23:26:28.624] Machine 100: Same content
STATUS: ✅ RECEIVED (Delay: 2656ms)
SENT: [23:26:31.444] Machine 102 → 100: 0x09 0x86 0x21 0x13 0x00 0x03... (16 bytes)
RECEIVED: [23:26:38.856] Machine 100: Same content
STATUS: ✅ RECEIVED (Delay: 7412ms) ⚠️ LONG FRAME HIGH LATENCY
SENT: [23:26:31.575] Machine 102 → 100: Multi-buffer 0x09 0x88 0x21 0x13... (40+ bytes)
RECEIVED: [23:26:40.568] Machine 100: Same content
STATUS: ✅ RECEIVED (Delay: 8993ms) ⚠️ LONG FRAME EXTREME LATENCY
Note: Short 4-byte frames ignored per user request. Analysis focuses on long data frames only.
Recovery Phase Responses (EXTREME DELAYS)¶
SENT: [23:26:31.444] Machine 102 → 100: 0x09 0x86 0x21 0x13...
RECEIVED: [23:26:38.856] Machine 100: Same content
STATUS: ✅ RECEIVED (Delay: 7412ms) ⚠️ EXTREME LATENCY
SENT: [23:26:31.575] Machine 102 → 100: Multi-buffer 0x09 0x88...
RECEIVED: [23:26:40.568] Machine 100: Same content
STATUS: ✅ RECEIVED (Delay: 8993ms) ⚠️ EXTREME LATENCY
SENT: [23:26:32.363] Machine 102 → 100: 0x09 0x89 0x00 0x66
RECEIVED: [23:26:43.505] Machine 100: Same content
STATUS: ✅ RECEIVED (Delay: 11142ms) ⚠️ EXTREME LATENCY
SENT: [23:26:36.327] Machine 102 → 100: 0x01 0x3F 0x00 0x66 (Reset response)
RECEIVED: [23:26:53.033] Machine 100: Same content
STATUS: ✅ RECEIVED (Delay: 16706ms) ⚠️ MASSIVE LATENCY
SENT: [23:26:40.295] Machine 102 → 100: 0x01 0x73 0x00 0x66
RECEIVED: [23:26:53.191] Machine 100: Same content
STATUS: ✅ RECEIVED (Delay: 12896ms) ⚠️ MASSIVE LATENCY
Summary Statistics & Analysis¶
Machine 100 → 102 Direction¶
- Success Rate: ~60% of frames received
- Average Delay (Successful): 1,200ms
- Major Issues:
- Initial handshake frames completely lost
- 15+ consecutive reset frames lost during CRC error
- Multiple retransmissions needed for long frames
- Recovery successful with shorter frames
Machine 102 → 100 Direction¶
- Success Rate: ~85% of frames received
- Average Delay: 6,000ms (5x worse than opposite direction)
- Major Issues:
- Progressively increasing latency (329ms → 16,700ms)
- No frame losses, but extreme buffering delays
- Frames arriving many seconds after transmission
Critical Findings¶
- Asymmetric Performance: 102→100 direction has much higher latency but better delivery
- Progressive Degradation: Latency increases dramatically over time
- Retransmission Patterns: Same frames sent 2-4 times before success
- CRC Recovery: Both directions eventually recover from CRC error
- Buffer Management Issues: Suggests receive buffer overflow or processing delays
Key Findings from Long Frame Analysis (>4 bytes only)¶
Multi-Buffer Frame Performance Degradation¶
Pattern observed: Long multi-buffer frames show progressive performance degradation:
- Early multi-buffer frames (23:26:25-28): 2.6s delays (manageable)
- Later multi-buffer frames (23:26:31-40): 8.9s delays (severe)
- Multiple retransmissions: Same complex frame received 4-5 times over several seconds
Retransmission Evidence for Long Frames¶
Frame 0x09 0x44 0x21 0x13... (52 bytes) received multiple times:
- [23:26:28.624] - First reception
- [23:26:31.084] - Duplicate (2.46s later)
- [23:26:33.778] - Duplicate (2.69s later)
- [23:26:36.164] - Duplicate (2.39s later)
Frame 0x09 0x88 0x21 0x13... (52 bytes) received multiple times:
- [23:26:40.568] - First reception
- [23:26:43.218] - Duplicate (2.65s later)
- [23:26:46.570] - Duplicate (3.35s later)
- [23:26:49.642] - Duplicate (3.07s later)
- [23:26:52.728] - Duplicate (3.09s later)
Root Cause Analysis¶
The issue is specifically with long/complex frames:
- Short frames (4 bytes): Work normally with reasonable delays
- Medium frames (16 bytes): Show moderate delays (1-2s)
- Large multi-buffer frames (40-52 bytes): Show severe delays (8-9s) and multiple duplicates
Root Cause: Machine 100's receiver has processing bottleneck for large frames, causing: - Long processing delays for complex multi-buffer frames - Frame duplicates due to ACK timeouts - Progressive degradation as buffer queues build up - Eventually leads to CRC errors and communication breakdown
The bottleneck is in complex frame processing, not basic HDLC functionality. Small frames work fine, but large X.25 data packets overwhelm the receiver's processing capacity.