- /* Must determine the maximum segment size to determine maximum file chunk size */\r
- uint16_t MaxSegmentSize = uip_mss();\r
+ /* Must determine the maximum segment size to determine maximum file chunk size - never send a completely\r
+ * full packet, as this will cause some hosts to start delaying ACKs until a non-full packet is received.\r
+ * since uIP only allows one packet to be in transit at a time, this would cause long delays between packets\r
+ * until the host times out and sends the ACK for the last received packet.\r
+ */\r
+ uint16_t MaxSegmentSize = (uip_mss() >> 1);\r