Return to BSD News archive
Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!newshost.telstra.net!act.news.telstra.net!psgrain!usenet.eel.ufl.edu!gatech!newsfeed.internetmci.com!DMZ.teir.com!r2d2.teir.com!usenet From: cwilliam@teir.com (Curtis Williams) Newsgroups: comp.unix.bsd.freebsd.misc Subject: Re: FreeBSD Losing to Linux - Please Help Date: Fri, 05 Apr 1996 14:06:03 GMT Organization: Thomson Electronic Infomation Resources Lines: 48 Message-ID: <316524bc.175490932@news.teir.com> References: <4ju4rb$67q@post.gsfc.nasa.gov> <SCOTTE.96Apr4083440@odie.center.uscs.com> NNTP-Posting-Host: cwilliam-pc.teir.com X-Newsreader: Forte Agent .99d/32.182 On 04 Apr 1996 16:34:39 GMT, scotte@center.uscs.com (L. Scott Emmons) wrote: >In article <4ju4rb$67q@post.gsfc.nasa.gov> kjeffers@nastg.gsfc.nasa.gov (Karen Jefferson x2857) writes: > >> Although our preference had been to use FreeBSD, the UDP performance >> was terrible (200 Kbps over Ethernet), and we kept getting ENOBUF >> errors which makes FreeBSD an unacceptable choice. > Another item to check is your tcp retransmit rate. Since udp is a datagram service it doesn't guarantee delivery. tcp will guarantee delivery and will retransmit any lost packets. tcp should lose packets at the link layer at the same rate udp does; consequently if you are losing a lot of udp packets you should also see a correspondingly high tcp retransmit rate. Unless something else is going on that is. There are many factors contributing to udp packet loss including transmission rate, line quality, router congestion etc. With the exception of transmission rate (tcp has a max packets outstanding sliding window) all of these factors effect both udp and tcp packets at the link level. At the link layer the only difference between tcp and udp is the packet type field (can't remember any more but tcp has a value of 7 and udp is 15 or something link that). The difference is that tcp retansmits so the user never sees "lost" tcp packets. udp, by design, doesn't retransmit so you do see the lost packets. I once wrote a udp based error reporting system for a satellite based communicatons system (used udp against my better judgement because I was told to). During testing I managed to put about ten million packets originating from 50 nodes through the system without a lost packet. It worked fine in production also until programmers discovered that it made a powerful debuggin tool (don't know why they needed to debug production systems :-( ) Once that was discovered they started pumping extremely large udp messgaes through at very high rates. The server was running on an HP9000-350 which I think had a motorola 68020 processor in those days-- which immediately became overloaded and started dropping udp packets (buffers filled up while processor was busy doing other things). When the complaints started coming in I was unable to reprodcue the problems in the lab until I understood how they were using (misusing) the system. Switched over to tcp which fixed things immediately. Hope this helps. Curt Williams VP, Technology Thomson Electronic Information Resources (TEIR) cwilliam@teir.com