lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-users] LWIP TCP server(Dup ACK and Retransmission)(Bare metal)


From: Sanny55
Subject: [lwip-users] LWIP TCP server(Dup ACK and Retransmission)(Bare metal)
Date: Wed, 10 Feb 2016 09:41:15 -0700 (MST)

Hi all,

I have problem. Using program Wireshark, I discovered that are sent
duplicate acknowledgment packets (server) and retransmission (client).
This problem only occurs if TCP_MSS < p->tot_len. //p->to_len size data

My code:

lwipopts.h

#define TCP_MSS                         1460
#define TCP_WND                         (2*TCP_MSS)

server.c

Callback receive data:

err_t echo_recive(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t
err)
{

    if (err == ERR_OK && p != NULL)
    {

        /* Inform TCP that we have taken the data. */
        u16_t tot_len = p->tot_len;
        pbuf_free(p);
        tcp_recved(tpcb, tot_len);
    }
 
    if (err == ERR_OK && p == NULL)
    {
        echo_close(tpcb, arg);
    }

//sleep(10); //10ms
    return ERR_OK;
}

If I increase TCP_WND I get more duplicate acknowledgment packets. If I
uncommented function "sleep", I get no duplicate acknowledgment packets,
because p->to_len=<TCP_MSS.

Thanks all for advice.



--
View this message in context: 
http://lwip.100.n7.nabble.com/LWIP-TCP-server-Dup-ACK-and-Retransmission-Bare-metal-tp25735.html
Sent from the lwip-users mailing list archive at Nabble.com.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]