Newsgroups: vmsnet.networks.tcp-ip.cmu-tek
Subject: Performance problems with CMUIP 6.6-4
From: <jlhall@ficc.ferranti.com>
Date: Wed, 20 Jan 93 17:55:58 CST
Reply-To: CMU-OpenVMS-IP@drycas.club.cc.cmu.edu
Organization: The Internet
Return-Path: <@andrew.cmu.edu:CMU-OpenVMS-IP-Request@drycas.club.cc.cmu.edu@mccall.com>
CC: jlhall@ficc.ferranti.com
Errors-To: CMU-OpenVMS-IP-Request@drycas.club.cc.cmu.edu
X-Mailer: ELM [version 2.2 PL13]

Greetings:

  We have run into a performance problem using the CMU tcpip package
to send data using the tcp protocol to a non-VAX system.  We decided
to run a "stress test" scenario where data is sent back and forth
between the two systems as fast as is possible.  It appears that the
problem is that the CMU driver is "holding" onto the data until an
acknowldegement IP packet is sent from the remote system acknowledging
the previous data sent.  Because tcpip is a bit oriented protocol with
windowing, it should be possible to transmit several packets without
receiving an acknowledgement.  Because this is difficult to describe
without some accompanying data, I have included an edited portion of
the printout from our LAN analyzer.  In the following report, the
interpacket time refers to the amount of time that has elapsed since
the previous trace point.

Configuration data:
   VMS 5.4-2
   CMU/Tek 6.6-4  (held off of the -5 and -5A releases due to
                   reported problems with those releases)
   VAX 6000-420


In the following printout, a size of 64 represents an IP packet
that contains NO TCP data, it is just an acknowledgement between
drivers.  The time from point 0 to point 1 is listed as 0.00 ms,
but that is because the previous point was not traced.  The
system names in this report have been changed for security
reasons:


       SOURCE      DESTINATION      SIZE     Interpacket time

     1 Remsys      VAXsys             64         0.000 ms
                      Window: 6144
                Control bits: Acknowledgement Field is Valid (ACK)
     2 VAXsys       Remsys           344         7.324 ms
                      Window: 7224
                Control bits: Push Function Requested (PSH)
                              Acknowledgement Field is Valid (ACK)
     3 Remsys      VAXsys            218        11.299 ms
                      Window: 6144
                Control bits: Push Function Requested (PSH)
                              Acknowledgement Field is Valid (ACK)
     4 VAXsys       Remsys            64         5.562 ms
                      Window: 7064
                Control bits: Acknowledgement Field is Valid (ACK)
     5 VAXsys       Remsys            64         4.685 ms
                      Window: 8192
                Control bits: Acknowledgement Field is Valid (ACK)
     6 Remsys      VAXsys            106         1.913 ms
                      Window: 6144
                Control bits: Push Function Requested (PSH)
                              Acknowledgement Field is Valid (ACK)
     7 VAXsys       Remsys            64         5.767 ms
                      Window: 8144
                Control bits: Acknowledgement Field is Valid (ACK)
     8 Remsys      VAXsys            158         6.926 ms
                      Window: 6144
                Control bits: Push Function Requested (PSH)
                              Acknowledgement Field is Valid (ACK)
     9 VAXsys       Remsys            64         6.357 ms
                      Window: 8044
                Control bits: Acknowledgement Field is Valid (ACK)
    10 Remsys      VAXsys            174         6.539 ms
                      Window: 6144
                Control bits: Push Function Requested (PSH)
                              Acknowledgement Field is Valid (ACK)
    11 VAXsys       Remsys            64         6.567 ms
                      Window: 7928
                Control bits: Acknowledgement Field is Valid (ACK)
    12 VAXsys       Remsys            86        18.194 ms
                      Window: 7928
                Control bits: Push Function Requested (PSH)
                              Acknowledgement Field is Valid (ACK)
    13 Remsys      VAXsys             64       121.234 ms         <<<<
                      Window: 6144
                Control bits: Acknowledgement Field is Valid (ACK)
    14 VAXsys       Remsys           344         7.212 ms
                      Window: 7928
                Control bits: Push Function Requested (PSH)
                              Acknowledgement Field is Valid (ACK)
    15 Remsys      VAXsys            218        11.109 ms
                      Window: 6144
                Control bits: Push Function Requested (PSH)
                              Acknowledgement Field is Valid (ACK)
    16 VAXsys       Remsys            64         5.509 ms
                      Window: 7768
                Control bits: Acknowledgement Field is Valid (ACK)
    17 Remsys      VAXsys            106         6.418 ms
                      Window: 6144
                Control bits: Push Function Requested (PSH)
                              Acknowledgement Field is Valid (ACK)
    18 VAXsys       Remsys            64         6.232 ms
                      Window: 7720
                Control bits: Acknowledgement Field is Valid (ACK)
    19 Remsys      VAXsys            158         6.569 ms
                      Window: 6144
                Control bits: Push Function Requested (PSH)
                              Acknowledgement Field is Valid (ACK)
    20 VAXsys       Remsys            64         5.942 ms
                      Window: 7620
                Control bits: Acknowledgement Field is Valid (ACK)
    21 Remsys      VAXsys            346         7.186 ms
                      Window: 6144
                Control bits: Push Function Requested (PSH)
                              Acknowledgement Field is Valid (ACK)
    22 VAXsys       Remsys            64         7.685 ms
                      Window: 7332
                Control bits: Acknowledgement Field is Valid (ACK)
    23 VAXsys       Remsys            86         4.545 ms
                      Window: 7332
                Control bits: Push Function Requested (PSH)
                              Acknowledgement Field is Valid (ACK)
    24 Remsys      VAXsys             64       131.660 ms         <<<<
                      Window: 6144
                Control bits: Acknowledgement Field is Valid (ACK)
    25 VAXsys       Remsys           336         7.079 ms
                      Window: 7332
                Control bits: Push Function Requested (PSH)
                              Acknowledgement Field is Valid (ACK)

Although there are pauses of greater than 120 ms between successive
writes, the VAX seems to wait for the 64 byte no data ACKs before
proceeding.  Our program internal trace data suggests that data
messages 25 and 14 were submitted to CMU with IO$_WRITEVBLKs within
10ms of messages 23 and 12.  The driver seems to be waiting for the
acknowledgements 24 and 13, which I assert that is unnecessary
due to the window sizes.  Setting the push bit ONLY seemed to
force CMU to set the push bit in the packets transmitted, and not to
cause CMU to flush the buffers.

Any ideas?  We welcome configuration changes, etc. for the CMU
package.

Thanks,
jonathan hall (jlhall@ficc.ferranti.com)

--
Cheers,
  Jonathan Luke Hall (jlhall@ficc.ferranti.com)