I made an iPhone app using Cordova with cordova-plugin-file-transfer that uploads videos from the Camera Roll. When uploading over AT&T LTE the app uploads very quickly but then times out waiting for a response from the server. Problem does not occur when uploading using Telstra LTE or Wi-Fi.
Performing a packet capture on the web server shows that packets are still arriving at the server 60 seconds after the app reached 100%.
(I further verified this by displaying the number of bytes sent by the app in real time vs. the number of bytes arriving at the web server using iptables accounting.)
As the upload is occurring over HTTPS I know it isn't a transparent proxy.
I suspect that AT&T have 'Large Receive Offload' enabled on one of their routers and LRO is buffering the underlying TCP connection for the HTTP POST (over HTTPS).
My server is located in Australia (~200ms).
I've had the following ideas but I wanted to reach out to the community as well. 1) Increase timeout to something stupid. 2) Chunk the upload in the application layer to say 1mb or 5mb chunks 3) Attempt to reproduce the environment using a linux router in VMWare with LRO enabled on the VMXnet3 adapter.
Can you suggest something else I could try?