Return to BSD News archive
Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!munnari.OZ.AU!news.ecn.uoknor.edu!solace!nntp.uio.no!news.cais.net!hunter.premier.net!uunet!inXS.uu.net!news.artisoft.com!not-for-mail From: mday@elbereth.org (Matt Day) Newsgroups: comp.os.linux.networking,comp.unix.bsd.netbsd.misc,comp.unix.bsd.freebsd.misc Subject: Re: TCP latency Date: 10 Jul 1996 19:11:13 -0700 Organization: Xln xwvtb yunhwbn ju ljq qyue cjub eudryke "Ethereal"? Lines: 36 Message-ID: <4s1ns1$2bg@coyote.Artisoft.COM> References: <31DC8EBA.41C67EA6@dyson.iquest.net> <x7ybkxgcx2.fsf@oberon.di.fc.ul.pt> <31E1698E.2EAA7F26@lambert.org> NNTP-Posting-Host: coyote.artisoft.com Xref: euryale.cc.adfa.oz.au comp.os.linux.networking:44739 comp.unix.bsd.netbsd.misc:3993 comp.unix.bsd.freebsd.misc:23259 In article <31E1698E.2EAA7F26@lambert.org> Terry Lambert <terry@lambert.org> writes: >Pedro Roque Marques wrote: >[..] >] I'll better just point the differences and let you make an opinion >] about it. The big big difference between the 2 is the way the handle >] timers: BSD with fast and slow timeout and linux with per socket >] timers with precise values. You can argue that those 200ms/500ms are >] cheaper when you have a loaded machine... however those functions have >] to look though all the sockets and have an O(n) complexity. On Linux, >] on the other hand you have an O(n) complexity in the add_timer >] function which is called for every send and receive. True, the cost of >] Linux timers is greater but they are always more precise than BSDs >] timers. Since i religiously dislike the BSD way of doing TCP timers >] ;-) let me add that those timer values will probably be a bit more >] broken under high load :-) > >Actually, the BSD code will retry on a transient "no route to host" >failure, and the Linux system will give up the connection (cv: the >bug report by Matt Day). Correction/clarification: Only when establishing a connection does the BSD code behave differently from Linux: BSD will retry upon "host/network unreachable" errors, while Linux will fail immediately. Neither behavior is a bug; they're just different. I never filed a bug report about this, as there is no bug. It would be nice, however, to control (via sysctl, or whatever) this behavior on both BSD and Linux systems. Both BSD and Linux will retry upon transient "host/network unreachable" errors once the connection is established, for obvious reasons. Furthermore, how BSD and Linux interpret the "host/network unreachable" error has nothing to do with what Pedro was complaining about. Matt Day <mday@elbereth.org>