Hi! Thank you Bill and Chauveau for your answers. Firstly I would like to solve the problem running LwIP 1.4.0, or at least to understand a little more about it; then, if no solution arises, I would try with LwIP 1.4.1.
Chauveau, device A transmits one data packet that won´t be acknowledged by my board running LwIP, and then it will transmit another 3 data packets, until it is aware of need of retransmission. Then, it will retransmit only the first two data packets (instead of four) and my board will acknowledge the 4 data packets. But the problem is that at application level I only get the first two data packets... That´s why I say I lose two data packets. IP_REASSEMBLY is activated and IP_REASS_MAX_PBUFS is set to 16. But, I don´t think it´s related to that, because data packets are only 9-bytes long. -- 2013/8/27 Chauveau Wilfried <[email protected]> > 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 > [email protected]https://lists.nongnu.org/mailman/listinfo/lwip-users > > > _______________________________________________ > lwip-users mailing list > [email protected] > https://lists.nongnu.org/mailman/listinfo/lwip-users >
_______________________________________________ lwip-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/lwip-users
