Slow TCP/IP Performance When Resuming Large Data Transfer
This article was previously published under Q154579 On This PageSYMPTOMS
Windows 95 clients using the TCP/IP protocol may experience a considerable
delay resuming data transfer to client applications that take a long time
to clear the receive window.
Observing a Protocol Analyzer trace of the slow performance shows the following behavior:
Sample Protocol Analyzer Trace1 0.000 Client -> Server TCP .A...., len: 0, seq:2192824888, ack: 578989364, win: 0 2 153.452 Client -> Server TCP .AP..., len: 512, seq:2192824888, ack: 578989364, win: 0 3 0.008 Client -> Server TCP .A...., len: 0, seq:2192825400, ack: 578989364, win:14336 4 0.002 Client -> Server ARP Reply 5 0.001 Server -> Client TCP .A...., len: 1460, seq: 578992284, ack:2192825400, win:48640 6 0.005 Client -> Server TCP .A...., len: 0, seq:2192825400, ack: 578989364, win:14336 7 0.195 Client -> Server TCP .A...., len: 0, seq:2192825400, ack: 578989364, win:14336 8 4.785 Server -> Client TCP .A...., len: 357, seq: 578993744, ack:2192825400, win:48640 9 0.003 Client -> Server TCP .A...., len: 0, seq:2192825400, ack: 578989364, win:14336 10 0.193 Client -> Server TCP .A...., len: 0, seq:2192825400, ack: 578989364, win:14336 11 235.180 Client -> Server ARP Reply 12 0.000 Server -> Client TCP .A...., len: 1460, seq: 578989364, ack:2192825400, win:48640 CAUSE
The server falls out of sequence because its window probes are 240 seconds
apart. Therefore, the server has to arp for the client's MAC address when
the client advertises its new window space.
The reason this causes the server to fall out of sequence is that the server begins sending data immediately after discovering that the client has additional window space. Because the arp table entry for the client is in the resolving state when the server starts indicating data, TCP/IP cannot send the data to the client. Per RFC, the arp cache only buffers one packet when the destination IP address is in the resolving state. Windows 95 buffers the last packet only, so all sends, except for the last, are dropped until the arp entry has been resolved. When the arp entry for the client is resolved, TCP/IP sends the last packet that was cached to the client, which is out of sequence because the prior sends were dropped while the arp entry was resolving. The delay that occurs is caused by the server taking 240 seconds to send the correct sequence number. The reason the server takes 240 seconds to send the correct sequence number is that a retransmit timer started running. The retransmit timer takes 240 seconds to finish before the packet with the correct sequence number can be sent. STATUS
This problem no longer occurs in Windows 98. To resolve this problem, install the current version of Windows. For information about the current version of Windows, visit http://www.microsoft.com/windows (http://www.microsoft.com/windows).
MORE INFORMATION
| Article Translations
|
Back to the top
