Skip to main content
Back to case studies

Case study

Networking & message processing

Rebuilding an incomplete application, from message processing to WinTAK connectivity.

TCP / UDP / TLS / .NET / Data diodes / WinTAK

Initial condition and rebuild approach

The predecessor was incomplete and lacked user documentation. The team archived it and rebuilt the application, reusing established components to deliver a functional baseline before further optimisation.

I built the complete message-processing pipeline, covering framing, validation, sanitisation and byte-array transforms. My implementation also included modular connection pathways and WinTAK TLS connectivity within the team's application rebuild.

Message-processing architecture

I separated frame extraction from validation and subsequent processing. This isolated wire-format handling from release rules and allowed each stage to be verified independently.

Validation checked the received data before transformation. The diode path also checked the transformed representation. Invalid input could be quarantined rather than carried into routing. Configured input sanitisation ran before logging and release handling; output sanitisation belonged to the destination being prepared.

From received bytes to a release decision

  1. Receive and frame TCP/TLS: extract complete frames. UDP: retain datagram boundaries.
  2. Validate and transform Check raw input, then convert it to the structured message representation.
  3. Apply input policy Resolve configured sanitisation before logging and release handling.
  4. Decide release Evaluate rules and source type; choose eligible local output, export or a held release.
  5. Prepare each output Match format and channel, apply output policy, then serialise and send.
Simplified processing flow. Invalid input leaves the normal path for quarantine. A held export is sanitised before its preview is presented for approval. Diode input routes to eligible local outputs rather than being forwarded to another diode.

Channel matching selected eligible destinations, while format checks excluded incompatible outputs. Destination profiles controlled the transmitted representation. Held-export previews used the sanitised payload so approval referred to the content prepared for release.

I placed format-to-profile mappings on active output connectors, removing repeated repository collection scans from that resolution path. Direct output and held release retained shared policy-resolution logic.

Connection modularity

The original model coupled receiving to TCP clients and sending to TCP servers. I separated connection establishment from data direction to support both connector and listener roles on either side of the processing path.

TCP framing could then be reused across both roles. UDP kept its own datagram behaviour. The connection-role matrix explains the supported arrangements and the meaning of ingress and egress at the diode boundary.

The endpoint guard checks resolved destinations before a socket is opened, preventing an output from feeding a local input listener. That is separate from the application rules that prevent diode-to-diode forwarding. A remote relay or another application instance still needs its own routing controls.

Integration and verification

Verification progressed from a virtual-diode sandbox to hardware diodes and WinTAK integration. The initial sandbox established a runnable integration baseline for subsequent hardware checks.

I implemented connection-scoped certificate trust and bundle loading without installing certificate authorities into the host store.

Processing tests use fake connections, while protocol tests exercise real TCP, TLS, UDP and TFTP traffic. Socket checks cover wire framing, inverted roles and listener availability after rejected TLS handshakes. Hardware interoperability remains a separate verification stage.

Further detail: connection-scoped TLS trust, local feedback-loop prevention and sanitisation at input and release boundaries.

Related implementation detail: typed message transformation and round-trip verification.

Outcome

The rebuild produced a working application integrated with the diode setup and WinTAK TLS connectivity. Modular processing and connection code supported further development within a self-hosted application. Older military hardware constrained runtime complexity.

Supporting work included documentation, test-environment tooling and state-driven interface updates.

Related notes: stream framing and testing at application boundaries.

This account describes my contribution at a sanitised level. Operational details and identifying information are omitted.

← Back to case studies