*BSD News Article 63287


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!newshost.telstra.net!act.news.telstra.net!psgrain!iafrica.com!pipex-sa.net!plug.news.pipex.net!pipex!tube.news.pipex.net!pipex!dish.news.pipex.net!pipex!tank.news.pipex.net!pipex!news.mathworks.com!newsfeed.internetmci.com!swrinde!sgigate.sgi.com!sdd.hp.com!hp-pcd!hpbs2500.boi.hp.com!hpax!cupnews2.cup.hp.com!raj
From: raj@cup.hp.com (Rick Jones)
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Re: UDP Performance Tuning
Date: 9 Mar 1996 00:39:29 GMT
Organization: Hewlett-Packard's Network Computing Division
Lines: 26
Message-ID: <4hqk01$ivf@hpindda.cup.hp.com>
References: <4hppr5$lbh@post.gsfc.nasa.gov>
Reply-To: raj@cup.hp.com
NNTP-Posting-Host: hpindio.cup.hp.com
X-Newsreader: TIN [version 1.2 PL2.2]

Karen Lolio x2857 (klolio@nastg.gsfc.nasa.gov) wrote:
: The error was ENOBUF - no system buffers available.

: 	Why does this happen under UDP?  Is this a bug, if so, is
: there a fix?  Are there tunable kernal parameters?  If so, where are
: they?  Thanks!!

It is not a bug - UDP has no flow control, so it is possible to send
datagrams faster than the net can accept them. This causes the
driver's transmit queue to fill, which will cause ENOBUFS to be sent
back.

You want to throttle your application so that it does not send data
faster than the network - either by pausing for sime short period of
time on each ENOBUFS, or by more proactive pacing.

TCP did well because it has some flow control - the TCP window, and
likely that window was small enought to ensure that it did not
overflow the transmit queue. On those occasions where it might have,
it will likely have slowed itself down by reducing its "congestion
window" for a time.

Sometimes, going slower in the beginning means going faster in the end...

rick jones
http://www.cup.hp.com/netperf/NetperfPage.html