> For the complete documentation index, see [llms.txt](https://docs.monogoto.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.monogoto.io/ntn-satellite-networks/udp-communication-for-ntn-applications.md).

# UDP communication for NTN applications

<div data-full-width="true"><figure><img src="/files/xdA0v6kSpFrGx2HbEVCM" alt=""><figcaption></figcaption></figure></div>

**UDP (User Datagram Protocol)** is a lightweight, connectionless protocol designed for sending small amounts of data efficiently over IP networks.

In **NTN (Non-Terrestrial Network)** deployments, devices typically use **NB-IoT**, which supports **UDP traffic only**. Unlike TCP, UDP does not require a connection setup or acknowledgements. Messages are sent in a *fire-and-forget* manner, making UDP well suited for satellite-based communication where **latency is high**, **bandwidth is limited**, and **connections may be intermittent**.

This guide explains how to send and receive UDP data in NTN scenarios, including:

* **Client mode** – sending UDP messages *from* the device to a server
* **Server mode** – receiving UDP messages *on* the device *from* the server

***

## Sending UDP payload

To receive data from your NTN device, you need a **UDP server** with a public IP address.

You can either:

* Use an existing platform that supports UDP ingestion, such as **Ubidots** (see the [Ubidots guide](https://docs.monogoto.io/developer/cloud-integrations/ubidots)) or,
* **Set up your own UDP server** for development and testing (see [Set up UDP server](/ntn-satellite-networks/udp-communication-for-ntn-applications/set-up-udp-server.md))\
  This guide focuses on creating a **simple UDP server** to receive payloads from an NTN device. This approach is ideal for early development, debugging, and validation before integrating with a production backend.

***

#### Why UDP?

UDP is preferred for NTN communication because it:

* Requires **no connection handshake** (unlike TCP)
* Has **low protocol overhead**, reducing airtime and power usage
* Works well with **high-latency satellite links**
* Is suitable for **small, infrequent payloads** such as GPS coordinates, temperature readings, or status messages

{% hint style="warning" %}
UDP does not guarantee delivery. Applications must handle retries, duplication, or loss.
{% endhint %}

#### Requirements

In order to send satellite data to and from a UDP server, you need:

* A server with a **public IP address**
* An **open UDP port** (e.g. <mark style="color:red;">`9000`</mark>)
* A **listener application** to receive and process incoming UDP packets

***

#### Next steps

* Set up your own UDP server — [visit guide](/ntn-satellite-networks/udp-communication-for-ntn-applications/set-up-udp-server.md)
* Send and receive UDP data with the Nordic nRF9151 SiP — [visit guide](/ntn-satellite-networks/udp-communication-for-ntn-applications/nordic-nrf9151-send-receive-udp-data.md)
* Send and receive UDP data with the Murata Type 1SC module — [visit guide](/ntn-satellite-networks/udp-communication-for-ntn-applications/murata-type-1sc-send-receive-udp-data.md)
