-
Notifications
You must be signed in to change notification settings - Fork 13.3k
UDP receive packet loss with version > 2.5.0 #6218
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
What happens if you're sending ping packets to the node while testing this? |
I taggued this as a bug, because your logs seem good with core<=2.5.0.
tcpdump on my PC (running the python script) shows exactly the same logs. UDP receive has been rewritten between 2.5.0 and 2.5.1 because of IPv6 now in the equation and the incompatible way to retrieve source (ip,port) for every packet. That would explain why the output is different. And it currently matches what tcpdump / the router sees. edit: |
Hi Guys, @TD-er, pinging test is fine, I didn't see any issues while doing this simultaneously. I am afraid I do not have that exact measurement equipment to pickup the differences in power consumption. @d-a-v About data consistency - I can't swear for every bit tbh, but as I am sending frames for 64x32 display, it looked fine, no any distortions. Let me add 2.4.2 to the equation:
I tried though sending specific data sizes packets:
So it's like every second split packet gets omit. |
So if you're running a ping at the same time, all (UDP) packets are received? |
@TD-er, one terminal running ping packets, second one python sending udp packets. Tried this few times, I didn't see any dropped packets, but I wouldn't call this one a proper stress test either. Should I setup something more? Any ideas? |
fix for esp8266#5960 didn't take fragmented packets into account fixes esp8266#6218
Thanks for finding this bug. Fragmented UDP packets were indeed mismanaged. |
Basic Infos
Platform
Settings in IDE
Problem Description
While testing most basic UDP example I run across packet loss after an update of Arduino core. Don't get me wrong, I was eventually expecting some reliability issues with UDP communication, I am trying to send 4096 bytes. But after my tests, I got reliable packet loss with core version > 2.5.0. Using Board Manager I tested following versions and got this outputs in serial monitor (after using small python client, also provided in the issue):
2.5.0
Sums nicely to 4096.
2.5.1
Middle one is missing.
2.5.2
The same.
2.6.0-dev (git master)
Also the same. This results consist only first try, I ways resending the message multiple times, this 1480 bytes packet just reliably disappears.
I have everything set up for testing this issue, so if only you have some ideas to check, I would be happy to help.
MCVE Sketch
And small python sender:
The text was updated successfully, but these errors were encountered: