MACRaw cause a freeze in communication TCP socket

Really weird problem only happen on Windows (for some reason, maybe related to the TCP/IP stack of the O.S.).

I configured the W5500 as a Webserver with a BACnet server that need MACRaw socket and one other with UDP. Each time I loaded my webpage on a client(firefox in this case), the first files loaded succesfully loaded but then, after a short, the client stop sending request for a while then started again. After many days of searching and headbutt on the wall, I opened my server from linux on my laptop and it loaded in like 1/10000 of the normal time. I noticed that the “SYN” and the black “SYN RETRANSMISSION” didn’t affected the transmission like on Windows. FFW a couple hour and I’ve notice that when I disabled the BACnet, the wiznet sended “RST SYN” and it seemed to canceled the freeze from the windows client.

In the end, I tested the BACnet but only with a UDP socket and no MACraw and notice the soothing “RST SYN” were sent.

I’m still working on a way to fix this but if any one of you got the same problem (extra point for solution) it would be great to share this knowledge.

(Sorry for bad english)

Thank you,

Ben

Can you share network logs for both situations? Their analysis should give an idea what may cause misbehavior, and then I guess it will require digging into the web server code. I did not have experience with MACRAW, but I guess that it is not designed for performance as only socket 0 may work in this mode, and to get max performance for it you must allocate all buffers for sockets 0. And even in this case there’s a risk of RX buffer overflow (well, in your circumstances not really) forcing software managing protocol issue, and it is a good question how good software can cope with it. Also W5500 to/from processor transmission speed may become a bottleneck.

However MACRAW should be a good choice because W5500’s TCP stack provides 8 only simultaneous sockets, with MACRAW you can manager more sockets in software.