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