# UDP communication for NTN applications

<div data-full-width="true"><figure><img src="https://3922449203-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M0mPxGpottOEfcucXOR%2Fuploads%2F9V33hOmtAXikdj2yA6Bu%2FUDP%20communication%20for%20NTN%20applications.jpg?alt=media&#x26;token=9df07b82-7a92-4185-8082-554c9831f77f" 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](https://docs.monogoto.io/ntn-satellite-networks/udp-communication-for-ntn-applications/set-up-udp-server "mention"))\
  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](https://docs.monogoto.io/ntn-satellite-networks/udp-communication-for-ntn-applications/set-up-udp-server)
* Send and receive UDP data with the Nordic nRF9151 SiP — [visit guide](https://docs.monogoto.io/ntn-satellite-networks/udp-communication-for-ntn-applications/nordic-nrf9151-send-receive-udp-data)
* Send and receive UDP data with the Murata Type 1SC module — [visit guide](https://docs.monogoto.io/ntn-satellite-networks/udp-communication-for-ntn-applications/murata-type-1sc-send-receive-udp-data)
