If your terminal emulation session appears to be frozen or unresponsive for 2 to 3 minutes and then eventually unfreezes, then you may be experiencing a "TCP retransmission timeout" issue in Windows CE devices. This problem is known to Microsoft and several hardware vendors. Microsoft provided a partial fix for CE 4.2, but not all hardware vendors used the fix and for some reason, the fix was not included in Windows CE 5.0 http://support.microsoft.com/default.aspx?scid=kb;en-us;887697
Here is what happens:
- User submits entry in CETerm.
- CETerm hands data to Windows CE socket TCP/IP subsystem.
- Windows CE TCP subsystem sends data packet over RF.
- The packet is lost due to a collision, interference, roaming, or security re-negotiation.
- TCP is a "reliable" protocol and TCP subsystem does *not* get acknowledgement from the host.
- TCP subsystem waits for some period of time - "retransmit timeout". The subsystem will keep trying to send the same packet of data until it succeeds. For some reason, Windows CE will sometimes increase this delay to 2-3 minutes. This is the cause of the delay you observe.
- After 2-3 minutes delay, the packet is resent successfully from the device.
- Host replies to CETerm
- X-Clock (for IBM emulation sessions) is cleared.
While this one CETerm TCP connection is waiting, other new connections will work just fine. This is why ping (ICMP, not TCP) and new TCP connections look OK.
After CETerm hands the data to the TCP subsystem, it has no control and cannot request a faster re-send. CETerm must simply wait for the host response.
The only thing you can do is to try to prevent the initial lost packets using the techniques to remove sources of interference and make sure your RF coverage is good. Also, be sure to upgrade all your wireless drivers (especially any Cisco access points) to the latest software to minimize errors which cause re-transmissions.
We think that Microsoft will eventually improve this behavior because Symbol/Motorola has been applying pressure, but it will probably only be better in new OS builds. We don't expect a fix for CE 5.0 platforms.