|
| 1 | +# Transport Decode Profile Plan |
| 2 | + |
| 3 | +This plan is for analysis profiles, not privacy profiles. The goal is to make |
| 4 | +TCP, UDP, and SCTP troubleshooting useful even when the higher-layer protocol is |
| 5 | +unknown, malformed, encrypted, or intentionally ignored. |
| 6 | + |
| 7 | +## Goals |
| 8 | + |
| 9 | +- Add profile-level views for transport-layer diagnostics. |
| 10 | +- Preserve packet-level transport evidence with minimal interpretation loss. |
| 11 | +- Make SCTP troubleshooting first-class, including stream IDs, chunks, PPIDs, |
| 12 | + associations, retransmission signals, heartbeats, SACK behavior, and ABORT / |
| 13 | + SHUTDOWN paths. |
| 14 | +- Keep the existing telecom profiles focused on service protocols, while adding |
| 15 | + explicit transport decode profiles for lower-layer investigations. |
| 16 | + |
| 17 | +## Available Profiles |
| 18 | + |
| 19 | +| Profile | Focus | |
| 20 | +|---|---| |
| 21 | +| `transport-core` | TCP, UDP, SCTP, IP, ICMP overview for mixed captures | |
| 22 | +| `transport-sctp` | SCTP association and chunk-level analysis | |
| 23 | +| `transport-tcp` | TCP streams, retransmissions, resets, handshakes, TLS adjacency | |
| 24 | +| `transport-udp` | UDP conversations, DNS/NTP/RTP-adjacent traffic, fragmentation hints | |
| 25 | + |
| 26 | +## Profile Shape |
| 27 | + |
| 28 | +Each profile should use `verbatim_protocols` for the transport protocol under |
| 29 | +inspection so TShark fields survive reduction with minimal flattening: |
| 30 | + |
| 31 | +```yaml |
| 32 | +name: transport-sctp |
| 33 | +description: SCTP transport decode profile for association, stream, chunk, and retransmission analysis. |
| 34 | +relevant_protocols: |
| 35 | + - sctp |
| 36 | + - ip |
| 37 | +top_protocol_priority: |
| 38 | + - sctp |
| 39 | + - ip |
| 40 | +protocol_aliases: |
| 41 | + sctp: [sctp] |
| 42 | + ip: [ip, ipv6] |
| 43 | +verbatim_protocols: |
| 44 | + - sctp |
| 45 | +reduced_transport_fields: |
| 46 | + - proto |
| 47 | + - src_port |
| 48 | + - dst_port |
| 49 | + - stream |
| 50 | + - sctp_stream |
| 51 | + - anomaly |
| 52 | + - notes |
| 53 | +summary_heuristics: |
| 54 | + - Highlight SCTP retransmissions, duplicate TSNs, gaps, SACK-only bursts, ABORT, and SHUTDOWN. |
| 55 | +``` |
| 56 | +
|
| 57 | +## Implementation Steps |
| 58 | +
|
| 59 | +1. Add the four profile YAML files under `src/pcap2llm/profiles/`. Done. |
| 60 | +2. Extend profile tests so each transport profile loads and has expected |
| 61 | + protocol aliases, priorities, and verbatim settings. |
| 62 | +3. Extend index inspection to surface transport-specific counters: |
| 63 | + retransmissions, resets, SCTP chunk types, SACK/ABORT/SHUTDOWN counts, and |
| 64 | + stream IDs where available. |
| 65 | +4. Add summary heuristics so `summary.json` calls out transport symptoms before |
| 66 | + the user has to inspect `detail.json`. |
| 67 | +5. Add flow-model support for transport-only diagrams: |
| 68 | + TCP handshake/reset markers, SCTP INIT/COOKIE/SACK/ABORT/SHUTDOWN, and UDP |
| 69 | + request/response pair hints where ports or DNS transaction IDs allow it. |
| 70 | +6. Document usage in `docs/PROFILES.md`, `docs/REFERENCE.md`, and the German |
| 71 | + guide. |
| 72 | + |
| 73 | +## Open Design Choice |
| 74 | + |
| 75 | +SCTP should probably be the first implementation target. It has the clearest |
| 76 | +telecom value and benefits most from verbatim decode because upper layers such |
| 77 | +as S1AP, NGAP, M3UA, or Diameter-over-SCTP can hide transport failure signals |
| 78 | +when the user starts from an application profile. |
0 commit comments