From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Cross Message-Id: <200111261928.OAA12147@augusta.math.psu.edu> To: 9fans@cse.psu.edu Subject: Re: [9fans] Nagle algorithm In-Reply-To: <20011126112312.80AC9C7901@cesium.clock.org> Cc: Date: Mon, 26 Nov 2001 14:28:23 -0500 Topicbox-Message-UUID: 2a4840de-eaca-11e9-9e20-41e7f4b1d025 In article <20011126112312.80AC9C7901@cesium.clock.org> you write: >| If that's a problem for your cat, you could convince >| your cat to use Bio; and retain your abstraction as well. > >And how does your write(2) or wrapper around write(2) >know what the present maximum segment size is, given >that it can be altered at any time via a local interface >MTU change or a change in the path MTU? Why does my write(2) care? If my write-wrapper picks a decent default, does it matter much? I suppose one could argue that there might always be a runt packet on the end when the buffer is written, depending on, eg, the MTU and size of the buffer, but I claim that expense will be amortized over the lifetime of the connection. >How does pulling that into a wrapper which is used >almost universally fundamentally differ from retaining >in the TCP code with a system call which allows it to >be turned off on those rare occasions you want to do so? It has to do with abstraction, on one hand, and proper seperation of function. The TCP has no business trying to guess what my application is doing; that's for my application to decide. TCP should be abstracted away from that stuff. - Dan C.