Operating TAK over HF Radio
TAK is a widely used system for reporting location and status information.This white paper describes how to operate TAK efficiently over HF radio using open standards for all aspects of the communication.
What is TAK?

TAK stands for two things:
- Tactical Assault Kit. This reflects its initial military use by Marine Corps. It is now used much more widely.
- Team Awareness Kit. This reflects wider use for Law Enforcement, First Responders, Commercial and recreation.
TAK is provided as a number of open source client and server implementations. There is plenty of information on TAK generally available, which is not repeated here. The best place for information is https://tak.gov/, which also provides access to client and server implementations.
Client implementations provided for all major platforms:
- Android (ATAK) downloadable for Google Play. This is the most widely used client, shown in the screenshot above.
- iPhone (iTAK) available from the App Store.
- Windows (WinTAK) available from tak.gov.
- Linux (TAKX) available from tak.gov.
There are a number of TAK server implementations. The most widely deployed one and the one described in this paper is the open source server developed by Raytheon and available from tak.gov.
TAK Protocols and Deployment

TAK uses the protocol stack shown above for Client to Server communication. The TLS (Transport Layer Security) provides link security.
CoT (Cursor on Target) is an XML format designed by Mitre Corporation to handle a range of message types. When used in TAK, the encoding is specified by the initial byte. TAK clients generally use an XML encoding.
While the XML encoding is widely supported, current systems will generally use a more compact Protobuf encoding.
The TCP/TLS connection is opened using two way strong authentication. Then a stream of CoT messages flows in both directions.
There is also a mapping onto UDP (User Datagram Protocol) where a single CoT message is sent to either a unicast or multicast IP address. This stack is used for two things:
- Specialized mobile TAK clients to report location to listening TAK servers.
- TAK client operation on a single subnet without a server.

TAK uses the protocol stack shown above for Server to Server communication. Key differences with the Client to Server protocol:
- CoT messages use a protoBuf encoding, which is more compact than XML.
- There is a gRPC layer added, which provides message framing and keepalive heartbeats using HTTP/2.
TAK servers can federate with other servers and are typically configured to filter traffic that is appropriate for each peer server. It is also possible to use a special federation server that interconnects a number of TAK servers with a “star” configuration.
The following diagram shows a simple TAK configuration.

TAK messages flow between clients and servers, noting that for TAK UDP clients only send messages. Messages may be sent from one client to a single client. More commonly, messages are sent to groups of clients to widely share location and other information.
Operation over HF
The links shown above will operate over IP networks. The solution described here enables one or more of these links to operate over HF using an approach which is transparent to TAK clients and servers. The following diagram shows where this can be provided.

There are two potential places where HF can be used in the TAK architecture, illustrated above:
- Between a pair of TAK servers. Two example scenarios:
- To connect TAK servers on two ships using an HF link.
- To connect a field HQ to base, with field clients accessing the server over both UDP and TCP. This can include nodes simply using TAK or CoT to report position.
- Between a TAK client and server. For example, a mobile TAK client might connect to its server using HF.
The technical solution described next can be applied to either of these scenarios.

The diagram above shows the architecture using the Isode products that support it. This approach uses open standards, so equivalent products could be used. This enables two TAK servers to communicate over HF.
The bottom layer shows Icon-5066, which uses STANAG 5066 as the link layer over HF. This is described in the Isode white paper STANAG 5066: The Standard for Data Applications over HF Radio. Use of STANAG 5066 is important to provide reliability and to enable multiple applications to share the underlying HF infrastructure.
Icon-PEP is an application running over STANAG 5066 that provides a TCP PEP, as described in the Isode white paper Providing TCP Services over HF Radio. The TCP connection from TAK server or client is terminated at Icon-PEP, and the Icon-PEP servers communicate over HF with the optimized HF-PEP protocol specified in STANAG 5066 Annex X (Ed5 draft). HF-PEP provides:
- Very efficient use of the underlying STANAG 5066 service.
- Compression, which is very effective for TAK where messages share common elements.
Isode’s Icon-PEP includes two things which are critical for TAK operation over HF:
- TLS Proxy. This means that TLS is not used directly over HF. This avoids the overheads and handshaking of TLS and enables compression of stream data. Details in the Isode white paper Providing TCP Services over HF Radio.
- HTTP/2 proxy. This enables TAK S2S protocol to operate efficiently over HF. This proxy handles HTTP/2 heartbeats locally and extends HTTP/2 window size.
A TAK server or client will communicate indirectly with Icon-PEP through an IP router, which will connect to Icon-PEP using GRE (Generic Routing Capsulation) which is supported by most suitable IP routers. The IP router essentially treats Icon-PEP as an adjacent IP router.
A key benefit of the IP router architecture is that the IP router can be aware of IP routes to the peer. This enables use of direct IP links when available, with switching to HF when they are not. This is important, as HF will invariably provide a poorer link to direct IP and should only be used when it is the only option.
Chat and XMPP
Chat is an increasingly important capability. TAK clients offer two chat capabilities:
- Chat using CoT that can be used to communicate with other members of a TAK network.
- Chat using XMPP, which enables communication with a wider set of users.
The built in chat is supported as part of the core TAK system. XMPP needs additional components to work over HF. A detailed description is provided in the Isode white paper Operating XMPP over HF Radio and Constrained Networks. The short summary is that this can be supported by Isode’s M-Link server, which can communicate over STANAG 5066. This provides a good example of the benefits of using STANAG 5066 to multiplex applications.

It can be seen that a TAK client will talk to both a TAK server and to and M-Link XMPP server. Both XMPP and TAK traffic is then multiplexed by Icon-5066 over HF.
Performance Measurements
Measurements were made in the lab using the Isode products Icon-PEP and Icon-5066 as illustrated above, with a simulated HF Network provided by Isode’s MoRaSky tool. Two configurations were measured: client/server and server/server.
Speeds for each test: 9600 bps, which is the top speed of narrowband HF, 1200 bps, and 75bps. All using a short interleaver.
Latency tests were made by measuring latency between two WinTAK clients for an object location message. The typical size of the CoT XML messages are a few hundred bytes. Latency was measured by sending messages and manually timing.
Traffic was generated using the PyTAK Python TAK library. Measurements were made using standard CoT messages reporting location of an object. Here is an example:
<?xml version="1.0" encoding="UTF-8"?> <event version="2.0" type="a-f-G-U-C-I" uid="8fea07f0-c92e-d96b-fbb8-7e3d589203f2" how="m-g" time="2025-04-30T12:22:24Z" start="2025-04-30T12:22:24.894060Z" stale="2025-04-30T12:23:24.894068Z"> <point lat="51.4148" lon="-0.3621" hae="0" ce="10" le="10" /> <detail> <contact callsign="PYTHON2" endpoint="*:-1:stcp" /> <__group name="Cyan" role="Team Member" /> <sequence position="1" total="3000" /> <_flow-tags_ TAK-Server-050b185011374f1e8e841f6ced9cb961="2025-04-30T12:22:24Z" /> </detail> </event>
This is a standard object message, extended sequence and position to facilitate monitoring. The time was current when sent, and location generated randomly. On average, messages were 530 bytes.
Client / Server
In this setup, the Icon-PEP chains was inserted between WinTAK clients and TAK server. The WinTAK connection monitoring was turned off. This WinTAK option generates traffic that makes HF operation not viable.
Speed | Latency |
9600 bps | 8 secs |
1200 bps | 5 secs |
75 bps | 29 secs |
For 1200 bps with short interleaver, the block size is 90 bytes (0.6 secs), leading to a handshake cycle time of around 4 seconds. For 9600 bps with short interleaver block size is 1292 bytes (1.08 seconds), leading to a handshake cycle time of around 7.6 seconds.
Faster turnaround time at 9600 bps could be achieved by using very short or ultra-short interleaver. There is a tradeoff here, as longer interleaver increases reliability.
Throughput measurements are shown in the following table.
Speed
|
Throughput
|
Effective Speed
|
Compression
|
Direct
|
588 msg/min
|
41,552 bps
|
n/a
|
9600 bps
|
540 msg/min
|
38,160 bps
|
91%
|
1200 bps
|
313 msg/min
|
22,118 bps
|
95%
|
75 bps
|
5.8 msg/min
|
410 bps
|
90%
|
The direct connection over a fast link effectively shows the performance limitations of the TAK servers. Performance at 9600 bps was limited by this, whereas at 1200 and 75 bps, performance is limited by the link.
Server / Server
This test was made between two standard TAK servers, using the built-in client. Icon-PEP was configured as TLS proxy with HTTP/2 proxy enabled.
Speed | Latency |
9600 bps | 10 secs |
1200 bps | 6 secs |
75 bps | 35 secs |
These numbers are similar to the client/server numbers but slightly higher. The client/server analysis applies.
The message size for sever to server communication using gRPC is 376-380 bytes, which is somewhat smaller than the XML Client/Server (530 bytes). In the table below, effective speed is calculated based on the XML message size.
Speed | Throughput | Effective Speed | Compression |
Direct | 593 msg/min | 41,905 bps | n/a |
9600 bps | 586 msg/min | 41,410 bps | 88% |
1200 bps | 352 msg/min | 24,874 bps | 95% |
75 bps | 5.9 msg/min | 416 bps | 87% |
The direct connection over a fast link effectively shows the performance limitations of the TAK servers. Performance at 9600 bps was limited by this, whereas at 1200 and 75 bps, performance is limited by the link. Throughput is very similar to client/server.
Potential Optimizations
There are two optimizations that could be made to improve performance:
- Attribute Thinning. CoT messages are structured as a set of attributes that are sent in each message. Some of these attributes (e.g., OS version; battery level) do not seem operationally critical. It makes sense to allow selected attributes to be stripped and so reduce message size.
- Latest message only. Messages typically report location/status of an object and will be repeated at intervals for a moving object. When a queue builds up and there are two messages about the same object, it make sense to remove the older message from the queue.
These capabilities may be considered for a future version of Icon-PEP.
Conclusions
This paper has shown how TAK can be deployed over HF using STANAG 5066 to enable link sharing. Measurements for Client/Server and Server/Server show that acceptable performance over HF can be achieved and communication can work down to the lowest HF speeds.