[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-users] problem after a packet loss event
From: |
address@hidden |
Subject: |
[lwip-users] problem after a packet loss event |
Date: |
Sun, 10 May 2015 17:04:29 +0200 (CEST) |
Hi users,
my system is composed by a PC sending a large volume of data via tcpip to a board with a Xilinx Zynq. Zynq has LwIP 1.4.0 running in raw mode without OS. I am working with TCP_WND = 8192 and TCP_MSS = 1460, without jumbo frame because Zynq doesn't support them. PC sends 307200 byte in almost 5.5 mSec and all is working good until there is a packet loss event. The ACKs sended by Zynq are very quick, almost tens of microsecond from last packet received from PC.
I have attached a capture file from Wireshark. Ip 10.1.0.10 is PC, embedded board has ip address 10.1.0.20. At packet 651 (time 0.147032) Zynq sends two duplicated ACK (I think that probably there is a packet loss...) and PC performs a fast retransmission, then Zynq send another dup ACK and after the throughput go down from 55 MByte/sec to 15 KB/sec.
I see that the ACKs sended by Zynq are delayed about 120-130 mSec, the tcp_window of Zynq is reduced at 2352 byte, and PC wait for Zynq's ACK to send new packets, even if a window of 2352 can receive a 1.5KB packet.
I don't understand why PC wait for an ACK to send new data and why Zynq acknowledges packtes with a large delay.
This strange (for me) situation is permanent, when transmission ends the tcp window of Zynq remain 2352, and if I perform a new transmission from PC the behaviour is the same, with a throughput very low. To restore system I must reset my board.
I don't know if this is a normal situation, I need to have high throughput even with packet loss event.
Your help will be greatly appreciated
Regards,
Fabrizio
packet_loss.pcap
Description: Binary data
- [lwip-users] problem after a packet loss event,
address@hidden <=