tmittet / sonos

http://blog.lookout.no/
76 stars 39 forks source link

kindly request for wifi packet lenght optimization #3

Open antonmeyer opened 8 years ago

antonmeyer commented 8 years ago

when I look at the wireshark trace I see a lot of small packets for a single SOAP request. I guess it is from the bunch of ethClient_write_P. I also guess that the client code should care about MTU and MSS. I also assume that your buffer-size of 50 byte is a tribute to the HW-limit. With ESP8266 this looks better.

nitech commented 7 years ago

Since you are asking a wifi-related question, I am wondering what changes you did to make the Sonos Arduino api work with a wifi board?

I am trying to get this working on a LoLin NodeMcu 1 board.

I've done some changes to SonosUPnP.h, like for instance replacing references to Ethernet with WiFi.h, but I don't know if I am on the right path.

antonmeyer commented 7 years ago

look at my fork should work, i was a bit lazy in the last month (busy with other projects)

nitech commented 7 years ago

Thanks. I'll check it out right away!

nitech commented 7 years ago

Yep, this seems to be working great. Thank you so much :-)

https://github.com/antonmeyer/sonos

tmittet commented 6 years ago

The amount of memory available is very limited. As you say buffer-size of 50 bytes is to avoid memory issues. I'm no network expert, why is the small packet size a problem, performance? I'm up for suggestions on how to improve this. I've made you a collaborator. Commit improvements or make a pull request. It's up to you :)

antonmeyer commented 6 years ago

hi tmittet, when I think twice my request is a bit academic approach. I found it a waste of network resources to send several packets with all its overhead, which the receiver has to reassemble. Also in terms of reliability a packet loss is more likely with more packets. But finally for control traffic with very low amount of overall traffic it does not matter. Normally you have a network software stack and MTU size is the parameter. I started with a ESP8288 which does not have hardware limitations like a attiny. I guess it is not worth to change it, unless you want to include streaming to your project.

tmittet commented 6 years ago

I totally support changing it if you want to do it :)

We could add a condition like:

ifndef SONOS_LOW_MEMORY_MODE

// Current implementation

else

// Optimized implementation

endif