1

I working on adding a jumbo frame functionality to my application. My problem is that I receive no ACK for frames with payload above 2000 bytes. My system looks as follows: the server sends requested measurement time to the client. The server side is an ARM processor with lwip implementation of tcp/ip stack and with enabled support of jumbo frames. The client side is a Python script on my PC with network interface having jumbo frames enabled.

With configuration as above and payload above default 1460 system works fine. I do run with payload of 2000 bytes without problems. The MSS on client side is 9158, WIN 64320. The server side is: MSS 2000 and WIN 8000. However, once I increase the MSS on server side above 2000 bytes communication collapses. On Wireshark I can see that first frame with length above 2000 doesn't get acknowledged by the client (PC side) and re-transmissions begin.

I will be thankful for any advice from experienced users. It looks to me that jumbo frame shouldn't be an issue, since I operate way above standard ethernet payload size without problem.

Cloud shark link(with tcp filter): https://www.cloudshark.org/captures/5bf2180b65cf?filter=tcp

Thank you in advance.

lukasz139
  • 11
  • 1
  • This is all wired Ethernet? And you’ve verified that your Ethernet NIC hardware and drivers support, and are configured for, jumbo frames? Is there a switch involved? Have you verified its jumbo frame support? Also, what OSes on client and server? – Spiff Aug 24 '18 at 05:04
  • Yes, it is all wired. I checked the MTU for network interface I am using on my PC and it is enabled to 9k frames. My server has jumbo frames enabled too and I see on Wireshark that 2000byte frames are transmitted. There is no switch on the way. As in the attached capture once paylaod exceeds 2000bytes there is no ACK from client. As mentioned in the post server is an ARM with LwIP stack, client is an Python script receiving over TCP socket. – lukasz139 Aug 24 '18 at 17:56

0 Answers0