How a large ATM MTU causes deadlocks in TCP data transfers

The implementation of protocols, such as TCP/IP, and their integration into the operating system environment is crucial for protocol performance. Putting TCP on high-speed networks, e.g., ATM, with large maximum transmission units causes the TCP maximum segment size to be relatively large. What Nagle's algorithm considers a "small" segment is no longer small, which affects the TCP performance. The authors report on TCP/IP throughput and RPC response time performance measurements for various sizes of send and receive socket buffers, using the Sparc10 architecture machines Axil 311/5.1 running SunOS 4.1.3 connected to a FORE System's ATM network. For some common combinations of socket buffer sizes the authors observe a dramatic performance degradation to less than 1% of expected throughput and to one order-of-magnitude longer response time than expected. The performance degradation is caused by a deadlock situation in the TCP connection which is resolved by the 200 ms spaced timer generated TCP delayed acknowledgment. The authors explain the causes of the deadlock situations, and discuss means to avoid or prevent them. >