[comp.protocols.tcp-ip] newer

van@LBL-CSAM.ARPA (Van Jacobson) (06/27/87)

Bill Nowicki of Sun kindly sent me a long list of bug fixes for our
Sun version of the 4.3bsd tcp code.  I think I've incorporated all
his fixes in a new version.  At the same time, Mike Karels of Berkeley
fixed four or five minor bugs in the 4.3 code.  I've incorporated
those fixes as well.

Also, you may have noticed that the retransmit timer code was almost
completely broken in the previous version.  We have been using the
new timer algorithm I described on the tcp-ip list a few weeks ago.
Although the new algorithm has been working well in several weeks
of tests at LBL, I didn't want to pass out experimental code.  I
tried to back-fit the original timer code and blew it.  It looks
like the new timer algorithm is about to go into 4.3bsd so we've
left it in the new version of the Sun code.

The new code is compressed tarchive 4.3tcp4sun3.3.tar.Z available
via anonymous ftp from lbl-rtsg.arpa.  Note that this code is for
Sun OS 3.3.  As Bill Nowicki has pointed out, you *DON'T want to
USE IT WITH Sun OS 3.4*: 3.4 already contains the 4.3bsd tcp code
and, since 3.4 has most of the 4.3 icmp fixes as well, several
features that we've ifdef'd out are enabled in Sun's 3.4.

 - Van

weiser.pa@XEROX.COM (09/26/87)

Although Van Jacobson modestly states you don't want to run his code if
you have Sun 3.4, I continue to measure large performance differences in
extreme cases.  I get the following times for transferring 10 megabytes
memory-to-memory (in other words, the client generates the bytes from
thin air, and the server puts them all into the same buffer):

33 secs		SunOs 3.4
23 secs		The Berkeley 4.3 + fixes courtesy of Van Jacobson, on top of
3.3.

This times are measured from Sun-3/260 to Sun-3/260 on the same
ethernet.  Base load on the ethernet was 10-20%, so conceivably these
times could improve a bit.

I suspect that what accounts for the difference is that the SunOS 3.4
never seems to generate an ethernet packet larger 576 bytes or so when
operated through tcp, even though with UDP it generates the full 1500+
byte packets.  netstat -i gives an MTU of 1500.

-mark