<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Why 10 KB payload takes ~6 seconds, but 6 bytes takes ~1 second</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/125625/why-10-kb-payload-takes-6-seconds-but-6-bytes-takes-1-second</link><description>in nrf 9151 and sdk 2.9.0 
 we use cellular with aws 
 but here when we publish 10KB payload it take 6 sec and 6 byte payload take 1 sec so what we need to change for fast transmission 
 log: 
 00&amp;gt; [00:01:14.933,380] &amp;lt;inf&amp;gt; aws: RRC mode: Connected 00</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 28 Nov 2025 10:35:13 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/125625/why-10-kb-payload-takes-6-seconds-but-6-bytes-takes-1-second" /><item><title>RE: Why 10 KB payload takes ~6 seconds, but 6 bytes takes ~1 second</title><link>https://devzone.nordicsemi.com/thread/555722?ContentTypeID=1</link><pubDate>Fri, 28 Nov 2025 10:35:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:694df00b-8bb5-4089-89c8-66cdcc3f5b1b</guid><dc:creator>Milan Pipaliya</dc:creator><description>&lt;p&gt;thanks&amp;nbsp;&lt;br /&gt;&lt;br /&gt;now we dont have questions regarding this&lt;br /&gt;&lt;br /&gt;Milan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why 10 KB payload takes ~6 seconds, but 6 bytes takes ~1 second</title><link>https://devzone.nordicsemi.com/thread/555721?ContentTypeID=1</link><pubDate>Fri, 28 Nov 2025 10:30:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6efa50f3-6e7f-4a3c-b90e-d710f747a7bb</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Let me know if you have any follow-ups.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why 10 KB payload takes ~6 seconds, but 6 bytes takes ~1 second</title><link>https://devzone.nordicsemi.com/thread/555598?ContentTypeID=1</link><pubDate>Thu, 27 Nov 2025 11:31:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:14ebdadf-d781-48ac-8057-3da1d239f8c0</guid><dc:creator>Milan Pipaliya</dc:creator><description>&lt;p&gt;ok thank you for these precious conversation&lt;br /&gt;&lt;br /&gt;now we ok for it i acheive more speed in other country so this is connection related issue&lt;br /&gt;&lt;br /&gt;best regard&amp;nbsp;&lt;br /&gt;Milan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why 10 KB payload takes ~6 seconds, but 6 bytes takes ~1 second</title><link>https://devzone.nordicsemi.com/thread/555485?ContentTypeID=1</link><pubDate>Wed, 26 Nov 2025 10:28:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aa290cec-5e1e-4aee-9d33-9e042ce76b32</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Okay, so you are seeing close to the required throughput at another location. Then it is likely the connection that is the issue. Can you explain what kind of environment you&amp;#39;re testing in? If you are inside a building for example, the throughput might be affected. If you go outside away from any interference sources it will improve somewhat at least. Do you have full logs of both cases?&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why 10 KB payload takes ~6 seconds, but 6 bytes takes ~1 second</title><link>https://devzone.nordicsemi.com/thread/555375?ContentTypeID=1</link><pubDate>Tue, 25 Nov 2025 12:26:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f8e62e1e-2d35-47d4-a76a-7edfa7b6ecbf</guid><dc:creator>Milan Pipaliya</dc:creator><description>&lt;p&gt;hii&amp;nbsp;&lt;br /&gt;&lt;br /&gt;i am change qos1 to qos 0 but still same time 6 sec for 10KB&amp;nbsp;&lt;br /&gt;&lt;br /&gt;now i have clue current our network is roaming thats why same code run on other country where cellular network as home with same esim and it transmit 10KB in 2sec.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why 10 KB payload takes ~6 seconds, but 6 bytes takes ~1 second</title><link>https://devzone.nordicsemi.com/thread/555328?ContentTypeID=1</link><pubDate>Tue, 25 Nov 2025 08:22:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ee092a85-461a-4ea2-a2f2-3752f248636e</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;You can most likely reduce the latency by setting MQTT_QOS_0_AT_MOST_ONCE on your messages to avoid extra ACKs per package and remove the delay. The delay is likely there to fill up the modem&amp;#39;s TLS buffer before it&amp;#39;s sent to AWS.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Anyways it&amp;#39;s better to use a while-loop and try sending again with a smaller delay as long&amp;nbsp;&lt;strong&gt;send&lt;/strong&gt; returns -EAGAIN.&lt;/p&gt;
&lt;p&gt;The TLS buffer in the modem is ~2kB, so you can increase the TX buffer from 512 to 2kB at least. It looks like you&amp;#39;re sending a buffer of 64 bytes each now, which is very inefficient, so filling the capacity of each send should be possible.&lt;/p&gt;
&lt;p&gt;A small delay after the cel_aws_publish is probably required to avoid starving the system if you have more than one thread, but a full 2 seconds shouldn&amp;#39;t be necessary.&lt;/p&gt;
&lt;p&gt;One of our developers also recommended that you look at the &lt;a href="https://github.com/nrfconnect/sdk-nrf/tree/main/samples/net/aws_iot"&gt;aws_iot sample&lt;/a&gt; project for reference for this.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why 10 KB payload takes ~6 seconds, but 6 bytes takes ~1 second</title><link>https://devzone.nordicsemi.com/thread/554986?ContentTypeID=1</link><pubDate>Fri, 21 Nov 2025 05:06:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:184f26ba-376e-47d8-ae8e-5df712140a39</guid><dc:creator>Milan Pipaliya</dc:creator><description>&lt;p&gt;Hi Simon,&lt;/p&gt;
&lt;p&gt;Thanks for the clarification.&lt;/p&gt;
&lt;p&gt;We are using the nRF9151 with SDK 2.9.0.&lt;br /&gt; Our goal is to publish a 10 KB payload every second using LTE-M (or NB-IoT if possible).&lt;br /&gt; However, with our current implementation, even a small payload takes around 4&amp;ndash;10 seconds per publish.&lt;/p&gt;
&lt;p&gt;Could you please guide us on what we should check or modify?&lt;br /&gt; We can share our code below if needed.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/**
 * cel_aws.c
 * Cellular AWS IoT Driver
 */

#include &amp;lt;zephyr/logging/log.h&amp;gt;
#include &amp;lt;zephyr/net/socket.h&amp;gt;
#include &amp;lt;zephyr/net/dns_resolve.h&amp;gt;
#include &amp;lt;zephyr/net/mqtt.h&amp;gt;
#include &amp;lt;zephyr/net/tls_credentials.h&amp;gt;
#include &amp;lt;zephyr/random/random.h&amp;gt;
#include &amp;lt;modem/lte_lc.h&amp;gt;
#include &amp;lt;modem/nrf_modem_lib.h&amp;gt;
#include &amp;lt;string.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;

LOG_MODULE_REGISTER(cel_aws, LOG_LEVEL_DBG);

/* Configurable constants */
#define SNTP_SERVER &amp;quot;pool.ntp.org&amp;quot;
#define AWS_BROKER_PORT CONFIG_AWS_MQTT_PORT

#define MQTT_RX_BUF_SIZE (512)
#define MQTT_TX_BUF_SIZE (512)
#define APP_BUF_SIZE 256

#define MAX_RETRIES 10
#define BACKOFF_BASE_MS 1000
#define BACKOFF_MAX_MS 60000
#define BACKOFF_CONST_MS 5000

/* TLS */
static const sec_tag_t sec_tls_tags[] = {212};
#if (CONFIG_AWS_MQTT_PORT == 443 &amp;amp;&amp;amp; !defined(CONFIG_MQTT_LIB_WEBSOCKET))
static const char *const alpn_list[] = {&amp;quot;x-amzn-mqtt-ca&amp;quot;};
#endif

/* Static variables */
struct mqtt_client client_ctx;
static uint8_t rx_buffer[MQTT_RX_BUF_SIZE];
static uint8_t tx_buffer[MQTT_TX_BUF_SIZE];
static uint8_t app_buffer[APP_BUF_SIZE];
static struct sockaddr_in broker_addr;

// static cel_aws_rx_cb_t user_rx_cb = NULL;
static K_SEM_DEFINE(lte_ready, 0, 1);
static int mqtt_sock = -1;

/* Forward declarations */
static void lte_event_handler(const struct lte_lc_evt *evt);
static void mqtt_event_handler(struct mqtt_client *client, const struct mqtt_evt *evt);
static int resolve_broker(void);
static int backoff_wait(uint32_t attempt);

/* === LTE Functions === */

int cel_lte_connect(void)
{
    int err;

    err = nrf_modem_lib_init();
    if (err) {
        LOG_ERR(&amp;quot;Modem lib init failed: %d&amp;quot;, err);
        return err;
    }

    err = lte_lc_system_mode_set(LTE_LC_SYSTEM_MODE_NBIOT, LTE_LC_SYSTEM_MODE_PREFER_AUTO);
    if (err) {
        LOG_ERR(&amp;quot;Failed to set NB-IoT mode: %d&amp;quot;, err);
        return err;
    }

    err = lte_lc_connect_async(lte_event_handler);
    if (err) {
        LOG_ERR(&amp;quot;LTE connect async failed: %d&amp;quot;, err);
        return err;
    }

    LOG_INF(&amp;quot;Waiting for LTE connection...&amp;quot;);
    k_sem_take(&amp;amp;lte_ready, K_FOREVER);
    LOG_INF(&amp;quot;LTE Connected&amp;quot;);

    return 0;
}

void cel_lte_disconnect(void)
{
    lte_lc_power_off();
    nrf_modem_lib_shutdown();
    LOG_INF(&amp;quot;LTE disconnected and modem powered off&amp;quot;);
}

static void lte_event_handler(const struct lte_lc_evt *evt)
{
    switch (evt-&amp;gt;type) {
    case LTE_LC_EVT_NW_REG_STATUS:
        if (evt-&amp;gt;nw_reg_status == LTE_LC_NW_REG_REGISTERED_HOME ||
            evt-&amp;gt;nw_reg_status == LTE_LC_NW_REG_REGISTERED_ROAMING) {
            LOG_INF(&amp;quot;LTE Registered: %s&amp;quot;,
                    evt-&amp;gt;nw_reg_status == LTE_LC_NW_REG_REGISTERED_HOME ? &amp;quot;Home&amp;quot; : &amp;quot;Roaming&amp;quot;);
            k_sem_give(&amp;amp;lte_ready);
        }
        break;
    case LTE_LC_EVT_RRC_UPDATE:
        LOG_INF(&amp;quot;RRC: %s&amp;quot;, evt-&amp;gt;rrc_mode == LTE_LC_RRC_MODE_CONNECTED ? &amp;quot;Connected&amp;quot; : &amp;quot;Idle&amp;quot;);
        break;
    default:
        break;
    }
}

/* === AWS MQTT Functions === */

static int resolve_broker(void)
{
    struct addrinfo *res;
    struct addrinfo hints = {
        .ai_family = AF_INET,
        .ai_socktype = SOCK_STREAM,
    };
    char port_str[6];
    snprintf(port_str, sizeof(port_str), &amp;quot;%d&amp;quot;, AWS_BROKER_PORT);

    int ret = getaddrinfo(CONFIG_AWS_ENDPOINT, port_str, &amp;amp;hints, &amp;amp;res);
    if (ret != 0) {
        LOG_ERR(&amp;quot;DNS resolve failed: %d&amp;quot;, ret);
        return -EINVAL;
    }

    memcpy(&amp;amp;broker_addr, res-&amp;gt;ai_addr, sizeof(struct sockaddr_in));
    freeaddrinfo(res);

    char ip_str[INET_ADDRSTRLEN];
    inet_ntop(AF_INET, &amp;amp;broker_addr.sin_addr, ip_str, sizeof(ip_str));
    LOG_INF(&amp;quot;Broker resolved: %s:%d&amp;quot;, ip_str, ntohs(broker_addr.sin_port));

    return 0;
}

static void cel_aws_client_init(void)
{
    mqtt_client_init(&amp;amp;client_ctx);

    client_ctx.broker = &amp;amp;broker_addr;
    client_ctx.evt_cb = mqtt_event_handler;
    client_ctx.client_id.utf8 = (uint8_t *)CONFIG_AWS_THING_NAME;
    client_ctx.client_id.size = strlen(CONFIG_AWS_THING_NAME);
    client_ctx.password = NULL;
    client_ctx.user_name = NULL;
    client_ctx.protocol_version = MQTT_VERSION_3_1_1;
    client_ctx.rx_buf = rx_buffer;
    client_ctx.rx_buf_size = sizeof(rx_buffer);
    client_ctx.tx_buf = tx_buffer;
    client_ctx.tx_buf_size = sizeof(tx_buffer);
    client_ctx.keepalive = CONFIG_MQTT_KEEPALIVE;

    /* TLS Config */
    client_ctx.transport.type = MQTT_TRANSPORT_SECURE;
    struct mqtt_sec_config *tls = &amp;amp;client_ctx.transport.tls.config;
    tls-&amp;gt;peer_verify = TLS_PEER_VERIFY_REQUIRED;
    tls-&amp;gt;sec_tag_list = sec_tls_tags;
    tls-&amp;gt;sec_tag_count = ARRAY_SIZE(sec_tls_tags);
    tls-&amp;gt;hostname = CONFIG_AWS_ENDPOINT;
#if (CONFIG_AWS_MQTT_PORT == 443 &amp;amp;&amp;amp; !defined(CONFIG_MQTT_LIB_WEBSOCKET))
    tls-&amp;gt;alpn_protocol_name_list = alpn_list;
    tls-&amp;gt;alpn_protocol_name_count = ARRAY_SIZE(alpn_list);
#endif
}

int cel_aws_connect(void)
{
    int ret;

    ret = resolve_broker();
    if (ret != 0) return ret;

    cel_aws_client_init();

    for (int i = 0; i &amp;lt;= MAX_RETRIES; i++) {
        ret = mqtt_connect(&amp;amp;client_ctx);
        if (ret == 0) {
            mqtt_sock = client_ctx.transport.tls.sock;
            LOG_INF(&amp;quot;AWS MQTT Connected&amp;quot;);
            return 0;
        }
        int delay = backoff_wait(i);
        LOG_ERR(&amp;quot;MQTT connect failed: %d, retry in %d ms&amp;quot;, ret, delay);
        k_msleep(delay);
    }

    return ret;
}

void cel_aws_disconnect(void)
{
    if (mqtt_sock &amp;gt;= 0) {
        mqtt_disconnect(&amp;amp;client_ctx);
        close(mqtt_sock);
        mqtt_sock = -1;
        LOG_INF(&amp;quot;AWS MQTT Disconnected&amp;quot;);
    }
}

int cel_aws_subscribe(const char *topic, enum mqtt_qos qos)
{
    struct mqtt_topic t = {
        .topic.utf8 = (uint8_t *)topic,
        .topic.size = strlen(topic),
        .qos = qos
    };
    struct mqtt_subscription_list list = {
        .list = &amp;amp;t,
        .list_count = 1,
        .message_id = (uint16_t)sys_rand32_get()
    };

    int ret = mqtt_subscribe(&amp;amp;client_ctx, &amp;amp;list);
    if (ret == 0) {
        LOG_INF(&amp;quot;Subscribed to: %s&amp;quot;, topic);
    } else {
        LOG_ERR(&amp;quot;Subscribe failed: %d&amp;quot;, ret);
    }
    return ret;
}

int cel_aws_publish(const char *topic, const uint8_t *payload, size_t payload_len, enum mqtt_qos qos)
{
    struct mqtt_publish_param param = {
        .message.topic.topic.utf8 = (uint8_t *)topic,
        .message.topic.topic.size = strlen(topic),
        .message.topic.qos = qos,
        .message.payload.data = (uint8_t *)payload,
        .message.payload.len = payload_len,
        .message_id = (uint16_t)sys_rand32_get(),
        .retain_flag = 0
    };

    int ret = mqtt_publish(&amp;amp;client_ctx, &amp;amp;param);
    if (ret == 0) {
        LOG_INF(&amp;quot;Published %u bytes to %s&amp;quot;, payload_len, topic);
    } else {
        LOG_ERR(&amp;quot;Publish failed: %d&amp;quot;, ret);
    }
    return ret;
}

int cel_aws_process(int timeout_ms)
{
    struct pollfd fds = { .fd = mqtt_sock, .events = POLLIN };
    int ret = poll(&amp;amp;fds, 1, timeout_ms);

    if (ret &amp;gt; 0 &amp;amp;&amp;amp; (fds.revents &amp;amp; POLLIN)) {
        if (mqtt_input(&amp;amp;client_ctx) != 0) return -1;
    }

    if (fds.revents &amp;amp; (POLLHUP | POLLERR)) {
        LOG_ERR(&amp;quot;MQTT socket error&amp;quot;);
        return -1;
    }

    if (mqtt_live(&amp;amp;client_ctx) != 0 &amp;amp;&amp;amp; mqtt_live(&amp;amp;client_ctx) != -EAGAIN) {
        return -1;
    }

    return 0;
}


/* === Event Handlers === */

static void mqtt_event_handler(struct mqtt_client *client, const struct mqtt_evt *evt)
{
    switch (evt-&amp;gt;type) {
    case MQTT_EVT_PUBLISH: {
        const struct mqtt_publish_param *p = &amp;amp;evt-&amp;gt;param.publish;
        size_t received = 0;

        LOG_INF(&amp;quot;RX on %.*s [%u bytes]&amp;quot;, p-&amp;gt;message.topic.topic.size,
                p-&amp;gt;message.topic.topic.utf8, p-&amp;gt;message.payload.len);

        while (received &amp;lt; p-&amp;gt;message.payload.len) {
            size_t to_read = MIN(p-&amp;gt;message.payload.len - received, sizeof(app_buffer));
            int len = mqtt_read_publish_payload_blocking(&amp;amp;client_ctx, app_buffer, to_read);
            if (len &amp;lt;= 0) break;
            received += len;

            // if (user_rx_cb) {
            //     user_rx_cb((const char *)p-&amp;gt;message.topic.topic.utf8, app_buffer, len);
            // }
        }

        if (p-&amp;gt;message.topic.qos == MQTT_QOS_1_AT_LEAST_ONCE) {
            struct mqtt_puback_param ack = { .message_id = p-&amp;gt;message_id };
            mqtt_publish_qos1_ack(&amp;amp;client_ctx, &amp;amp;ack);
        }
        break;
    }
    case MQTT_EVT_CONNACK:
        LOG_INF(&amp;quot;MQTT CONNACK received&amp;quot;);
        break;
    case MQTT_EVT_DISCONNECT:
        LOG_INF(&amp;quot;MQTT Disconnected&amp;quot;);
        break;
    default:
        break;
    }
}

static int backoff_wait(uint32_t attempt)
{
#ifdef CONFIG_AWS_EXPONENTIAL_BACKOFF
    uint32_t max_backoff = BACKOFF_BASE_MS &amp;lt;&amp;lt; attempt;
    if (max_backoff &amp;gt; BACKOFF_MAX_MS) max_backoff = BACKOFF_MAX_MS;
    uint32_t delay = sys_rand32_get() % (max_backoff + 1);
    return delay &amp;gt; 0 ? delay : BACKOFF_BASE_MS;
#else
    return BACKOFF_CONST_MS;
#endif
}


// Callback for incoming messages
void on_mqtt_rx(const char *topic, const uint8_t *data, size_t len)
{
    char buf[APP_BUF_SIZE + 1] = {0};
    size_t copy = MIN(len, APP_BUF_SIZE);
    memcpy(buf, data, copy);
    LOG_INF(&amp;quot;Received on %s: %.*s&amp;quot;, topic, copy, buf);
}

void main(void)
{
    LOG_INF(&amp;quot;Starting Cellular AWS Application&amp;quot;);

    // 1. Connect LTE
    if (cel_lte_connect() != 0) {
        LOG_ERR(&amp;quot;LTE failed&amp;quot;);
        return;
    }

    // 2. Connect to AWS
    if (cel_aws_connect() != 0) {
        LOG_ERR(&amp;quot;AWS connect failed&amp;quot;);
        cel_lte_disconnect();
        return;
    }

    // 4. Subscribe
    cel_aws_subscribe(CONFIG_AWS_SUBSCRIBE_TOPIC, MQTT_QOS_1_AT_LEAST_ONCE);

    // 5. Publish 5 messages
    for (int i = 0; i &amp;lt; 5; i++) {
        char msg[64];
        snprintf(msg, sizeof(msg), &amp;quot;%s [%d]&amp;quot;, payload, i + 1);
        cel_aws_publish(CONFIG_AWS_PUBLISH_TOPIC, (uint8_t *)msg, strlen(msg), MQTT_QOS_1_AT_LEAST_ONCE);

        // Process MQTT events
        int timeout = mqtt_keepalive_time_left(&amp;amp;client_ctx);
        cel_aws_process(timeout &amp;gt; 0 ? timeout : 1000);

        k_sleep(K_SECONDS(2));
    }

    // 6. Cleanup
    cel_aws_disconnect();
    cel_lte_disconnect();

    LOG_INF(&amp;quot;Application done&amp;quot;);
}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;CONFIG_NET_SOCKETS_SOCKOPT_TLS=y
CONFIG_NET_UDP=y
CONFIG_NET_TCP=y
CONFIG_NET_IPV4=y
# CONFIG_NET_IPV6=y

# DNS
CONFIG_DNS_RESOLVER=y
CONFIG_DNS_RESOLVER_ADDITIONAL_BUF_CTR=2
CONFIG_DNS_RESOLVER_MAX_SERVERS=1
CONFIG_DNS_SERVER_IP_ADDRESSES=y
CONFIG_DNS_SERVER1=&amp;quot;8.8.8.8&amp;quot;
CONFIG_NET_SOCKETS_DNS_TIMEOUT=5000

CONFIG_JSON_LIBRARY=y

# AWS IoT MQTT
CONFIG_AWS_IOT_LOG_LEVEL_DBG=y
CONFIG_AWS_TEST_SUITE_DQP=n
CONFIG_MQTT_LIB=y
CONFIG_MQTT_LIB_TLS=y
CONFIG_MQTT_KEEPALIVE=600
CONFIG_MQTT_LIB_TLS_USE_ALPN=y

# TLS (nRF Security only)
CONFIG_NRF_SECURITY=y
CONFIG_MBEDTLS_TLS_LIBRARY=y
CONFIG_MBEDTLS_LEGACY_CRYPTO_C=y
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=4096
CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN=8192
CONFIG_MBEDTLS_PEM_CERTIFICATE_FORMAT=y
CONFIG_MBEDTLS_SERVER_NAME_INDICATION=y
CONFIG_MBEDTLS_AES_ROM_TABLES=y
CONFIG_MBEDTLS_TLS_VERSION_1_2=y
CONFIG_MBEDTLS_MEMORY_DEBUG=y
CONFIG_MBEDTLS_HAVE_TIME_DATE=y
CONFIG_MBEDTLS_SSL_ALPN=y
CONFIG_MBEDTLS_SSL_CLI_C=y
CONFIG_MBEDTLS_X509_CRT_PARSE_C=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED=y
CONFIG_MBEDTLS_KEY_EXCHANGE_PSK_ENABLED=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED=y
CONFIG_MBEDTLS_SSL_SRV_C=y
CONFIG_MBEDTLS_KEY_EXCHANGE_RSA_ENABLED=y
CONFIG_MBEDTLS_CIPHER=y
CONFIG_MBEDTLS_MD=y
CONFIG_MBEDTLS_PK_C=y
CONFIG_MBEDTLS_PK_PARSE_C=y
CONFIG_MBEDTLS_PK_WRITE_C=y
CONFIG_MBEDTLS_RSA_C=y
CONFIG_MBEDTLS_PKCS1_V15=y
CONFIG_MBEDTLS_ECP_C=y
CONFIG_MBEDTLS_ECDSA_C=y
CONFIG_MBEDTLS_ECDH_C=y
CONFIG_MBEDTLS_DHM_C=y
CONFIG_MBEDTLS_GCM_C=y
CONFIG_MBEDTLS_SHA256_C=y
CONFIG_MBEDTLS_X509_USE_C=y
CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION=y
CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y

# LTE/Modem
CONFIG_NRF_MODEM_LIB=y
CONFIG_LTE_LINK_CONTROL=y

# Sockets offload for modem (if using LTE for AWS)
CONFIG_NET_NATIVE=n
CONFIG_NET_SOCKETS_OFFLOAD=y
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt; Milan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why 10 KB payload takes ~6 seconds, but 6 bytes takes ~1 second</title><link>https://devzone.nordicsemi.com/thread/554777?ContentTypeID=1</link><pubDate>Wed, 19 Nov 2025 11:47:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9819cbea-596d-4868-ad92-4e580592385e</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Can you confirm you&amp;#39;re connected to an LTE network? NB-IoT would not have high enough data rates to allow this. It also depends on your coverage, but if you are connected to an LTE network and have a good connection, you should be able to achieve up to 70kB/s.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can try to test throughput with iperf3 in our &lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/samples/cellular/modem_shell/README.html#iperf3"&gt;modem shell sampl&lt;/a&gt;e to see what throughput you can expect with your connection.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why 10 KB payload takes ~6 seconds, but 6 bytes takes ~1 second</title><link>https://devzone.nordicsemi.com/thread/554617?ContentTypeID=1</link><pubDate>Tue, 18 Nov 2025 04:27:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:541a9707-b2be-4176-9354-e1c99c9b4f85</guid><dc:creator>Milan Pipaliya</dc:creator><description>&lt;p&gt;yes this is aws_iot_mqtt example&lt;br /&gt;&lt;br /&gt;we want to publish 10KB/sec speed to publish per payload but it take 6 - 10 sec for one publish insteed of 1 sec&lt;br /&gt;&lt;br /&gt;so please guide us&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Why 10 KB payload takes ~6 seconds, but 6 bytes takes ~1 second</title><link>https://devzone.nordicsemi.com/thread/554554?ContentTypeID=1</link><pubDate>Mon, 17 Nov 2025 14:23:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8be1c623-8b0f-48b3-b6d0-3065f2e50510</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Before jumping to assumptions, can you confirm that you are working on a project based on the AWS IoT MQTT sample?&amp;nbsp;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/zephyr/samples/net/cloud/aws_iot_mqtt/README.html#aws-iot-mqtt"&gt;https://docs.nordicsemi.com/bundle/ncs-latest/page/zephyr/samples/net/cloud/aws_iot_mqtt/README.html#aws-iot-mqtt&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If not, please specify what your project is based on and I&amp;#39;ll try to assist you as best I can.&lt;/p&gt;
&lt;p&gt;For starters: I think this is mostly due to how often your device publishes messages, and not too much to do with the size of the payload. With the 6 bytes you still have to publish a message, and I see for example that there is a 100ms&amp;nbsp;&lt;strong&gt;k_msleep&lt;/strong&gt; after each published message in your main.c file. Then it also probably takes some time to publish the actual message etc.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Can you share what transmission speed you expect/aim for with your 10kB payload exactly?&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>