We have an FTP server running on the DK-S7 board. We have succeeded in FTPing large files (20 MBytes) from the S7 SDRAM (ramdisk) to a host computer. However, going the other way, the FTP of large files (anything over 1 MByte) from the host to the S7 SDRAM (ramdisk) is failing and also bringing down NetX as well (pings from host to S7 are no longer successful). Further debugging with wireshark over the interface shows "TCP Window Full" after a few successful data packets have been sent. Here is a dump of from wireshark. Host is 10.1.1.2, and S7 is 10.1.1.10 A few successful packets sent and ack'ed 459 117.120436 10.1.1.2 10.1.1.10 FTP-DATA 1514 FTP Data: 1460 bytes 460 117.121509 10.1.1.10 10.1.1.2 TCP 60 20 → 49352 [ACK] Seq=1 Ack=96361 Win=2048 Len=0 461 117.121522 10.1.1.2 10.1.1.10 FTP-DATA 1514 FTP Data: 1460 bytes 462 117.121540 10.1.1.2 10.1.1.10 FTP-DATA 642 [TCP Window Full] FTP Data: 588 bytes 463 117.122837 10.1.1.10 10.1.1.2 TCP 60 20 → 49352 [ACK] Seq=1 Ack=97821 Win=2048 Len=0 464 117.122850 10.1.1.2 10.1.1.10 FTP-DATA 1514 [TCP Window Full] FTP Data: 1460 bytes 465 117.423861 10.1.1.2 10.1.1.10 ICMP 74 Echo (ping) request id=0x0001, seq=72/18432, ttl=128 (no response found!) 466 117.426852 10.1.1.2 10.1.1.10 TCP 1514 [TCP Retransmission] 49352 → 20 [PSH, ACK] Seq=97821 Ack=1 Win=64240 Len=1460 467 118.026863 10.1.1.2 10.1.1.10 TCP 1514 [TCP Retransmission] 49352 → 20 [PSH, ACK] Seq=97821 Ack=1 Win=64240 Len=1460 468 119.226905 10.1.1.2 10.1.1.10 TCP 1514 [TCP Retransmission] 49352 → 20 [PSH, ACK] Seq=97821 Ack=1 Win=64240 Len=1460 469 120.073410 10.1.1.2 10.255.255.255 UDP 86 57621 → 57621 Len=44 470 121.626926 10.1.1.2 10.1.1.10 TCP 1514 [TCP Retransmission] 49352 → 20 [PSH, ACK] Seq=97821 Ack=1 Win=64240 Len=1460 471 122.116351 10.1.1.2 10.1.1.10 ICMP 74 Echo (ping) request id=0x0001, seq=73/18688, ttl=128 (no response found!) I have tried window sizes of 2048 (default) and 8192 on the S7 but no luck in either case. Window scaling is not being used (default NetX setting). Accordong to this post: https://ask.wireshark.org/questions/12474/why-am-i-seeing-tcp-window-full-on-upload [The TCP Window Full]is not really a flag, it's a diagnosis made by Wireshark's TCP expert. It means that Wireshark has seen as many bytes being sent as the receiver signaled to be able to receive before the sender needs to stop and wait for an acknowledgement. So it seems we are sending the S7 data faster than it can ack? Shouldn't TCP take care of flow control? Or are ACKs getting lost on the way back from the S7 in the NetX stack somewhere? How would one go about debugging NetX in this case? A somewhat related question, how to change the MTU of packets in NetX. Does NetX support jumbo packets?
↧