Communication benchmarks with the Ancor Fibre Channel Fabric
D. Davids reported a problem of deadlock which can be reproduced with many types of machines and is independent of the physical medium on which the TCP transfer is performed.
The program used to test out the performance of data transmission was `ttcp' (the same as we used to obtain results in paragraph II). The experiment was achieved between heterogeneous machines (a RS/6000 IBM workstation and a non IBM workstation). Owing to a network analyser, one was able to see what was really happening during the communication between the two machines.
Under the same conditions of use (message size of 2048 bytes, socket buffer size of 8192 bytes, message sent 1000 times), tests have been performed between the following platforms, and a surprisingly low transmission speed has been measured:
Sender: HP-725 ATM (MMF) ---> Receiver: RS/6000-530 ATM (MMF) 20.5 Kbps
Sender: HP-725 CDDI (UTP5) ---> Receiver: RS/6000-530 FDDI (MMF) 30.5 Kbps
Sender: ULTRIX FDDI (MMF) ---> Receiver: RS/6000-530 FDDI (MMF) 30.5 Kbps
The trace achieved by the network analyser is given below:
Delta Time DATA---> Contents of the DATA packet --->
in Seconds <----ACK <---- Contents of the ACK packet
DEC,HP ---> IBM ACK=179200002 SEQ=6841346 LEN=2048 WIN=8192
0.0022 DEC,HP ---> IBM ACK=179200002 SEQ=6843394 LEN=4096 WIN=8192
0.1952 DEC,HP <--- IBM ACK=6847490 WIN=16384
0.0017 DEC,HP ---> IBM ACK=179200002 SEQ=6847490 LEN=2048 WIN=8192
0.0019 DEC,HP ---> IBM ACK=179200002 SEQ=6849538 LEN=4096 WIN=8192
0.1969 DEC,HP <--- IBM ACK=6853634 WIN=16384
0.0019 DEC,HP ---> IBM ACK=179200002 SEQ=6853634 LEN=2048 WIN=8192
0.0014 DEC,HP ---> IBM ACK=179200002 SEQ=6855682 LEN=4096 WIN=8192
0.1966 DEC,HP <--- IBM ACK=6859778 WIN=16384
0.0019 DEC,HP ---> IBM ACK=179200002 SEQ=6859778 LEN=2048 WIN=8192
0.0015 DEC,HP ---> IBM ACK=179200002 SEQ=6861826 LEN=4096 WIN=8192
0.1965 DEC,HP <--- IBM ACK=6865922 WIN=16384
0.0014 DEC,HP ---> IBM ACK=179200002 SEQ=6865922 LEN=2048 WIN=8192
0.0018 DEC,HP ---> IBM ACK=179200002 SEQ=6867970 LEN=4096 WIN=8192
0.1975 DEC,HP <--- IBM ACK=6872066 WIN=16384
0.0013 DEC,HP ---> IBM ACK=179200002 SEQ=6872066 LEN=2048 WIN=8192
0.0016 DEC,HP ---> IBM ACK=179200002 SEQ=6874114 LEN=4096 WIN=8192
0.1964 DEC,HP <--- IBM ACK=6878210 WIN=16384
In this trace, one can easily see the result of the TCP implementation: the sender first sends 2 Kbytes of data, then it waits until it is able to send 4 KBytes, then it waits for an acknowledgment as it wants to send again 4 KBytes instead of 2 KBytes. One can also see that the receiver decides to wait for other data packets before sending its acknowledgment packet. So a deadlock occurs and it is deblocked only after a time expiry of 200 milliseconds.
One can also remark that the size of the message to be transferred was set to 2048 bytes, but in many cases, two messages were grouped together to form a message of 4096 bytes to be sent.
For more details, see , which is a note currently being written by D. Davids.
Generated with WebMaker