# 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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.monogoto.io/ntn-satellite-networks/udp-communication-for-ntn-applications.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
