lwip-users
[Top][All Lists]
Advanced

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

Re: [lwip-users] TCP ACK Problem?


From: Chauveau Wilfried
Subject: Re: [lwip-users] TCP ACK Problem?
Date: Tue, 27 Aug 2013 17:15:36 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:10.0.12) Gecko/20130116 Icedove/10.0.12

Hello,
I'm not that pro in TCP/IP communication but it seems that only 1 packet is lost.
When A retransmit the missing one plus some more data, your board is finally able to rebuild the stream and continue acknowledging all received data. A does not retransmit the last 18 bytes because they have been successfully received & acknowledged.
Is IP_REASSEMBLY activated and how big is your IP_REASS_MAX_PBUFS ?
Except for the part where you lose a packet, the flow does not seems to me that buggy.

--

Le 23/08/2013 22:30, Rodrigo Garbi a écrit :
Hi!
I'm working with FreeRTOS v7.0.1 and LwIP 1.4.0 and I'm facing the following problem:

Device A and B transmit data every 40 ms to my board (where I'm running LwIP) and once in a while I can notice some data from device A is being missed.

So I did some research with CommView and found that:

1) Device A sends data (9 bytes length) to my board and get correct ACK from it:
Sequence: 0x13D5388C (332740748)
 
Acknowledgement: 0x00001A57 (6743)

Response from my board:
Sequence: 0x00001A57 (6743)
Acknowledgement: 0x13D53895 (332740757)
 
2) Device A send 9-bytes data to my board, but this won´t ACK:
Sequence: 0x13D5389E (332740766)
Acknowledgement: 0x00001A57 (6743)

Sequence: 0x00001A57 (6743)
Acknowledgement: 0x13D5389E (332740766)

3)Device A does not care about it (maybe because data is already in ethernet transceiver buffer) and sends a new data (9-bytes); my board will not ACK it:
Sequence: 0x13D538A7 (332740775)
Acknowledgement: 0x00001A57 (6743)

Sequence: 0x00001A57 (6743)
Acknowledgement: 0x13D5389E (332740766)

4)Same as 3
Sequence: 0x13D538B0 (332740784)
Acknowledgement: 0x00001A57 (6743)

Sequence: 0x00001A57 (6743)
Acknowledgement: 0x13D5389E (332740766)

5) Same as 3

Sequence: 0x13D538B9 (332740793)
Acknowledgement: 0x00001A57 (6743)

Sequence: 0x00001A57 (6743)
Acknowledgement: 0x13D5389E (332740766)

6) Finally, device A is aware of the problem and retransmits data, but instead of transmitting 36 bytes (9 x 4), only transmits 18 bytes
Sequence: 0x13D5389E (332740766)
Acknowledgement: 0x00001A57 (6743)
Data length: 0x12 (18)

    
And my board running Lwip 1.4.0 will acknowledge 36 bytes instead of 18:
Sequence: 0x00001A57 (6743)
Acknowledgement: 0x13D538C2 (332740802)


So device A won´t transmit last two 9-bytes packets, and they will be lost!

Anyone can help me with this? Is it a bug in LwIP or what is happening?
Thank you!



_______________________________________________
lwip-users mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/lwip-users

reply via email to

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