I am looking at an application which transmits precisely 4380 bytes over HTTP, including headers, before the connection stalls. 4380 happens to be exactly 3 times the maximum segment size of a 1500-byte Ethernet frame (1500 bytes minus 40 bytes of TCP/IP headers times 3).
The connection appears to remain open; it's just that no data is being received.
Why would it stall after precisely 3 ethernet frames? Where should I start looking for a reason?