[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lwip-users] LWIP TCP server(Dup ACK and Retransmission)(Bare metal),
Sanny55 <=