Xref: utzoo comp.protocols.iso:266 comp.protocols.tcp-ip:6617 comp.protocols.misc:536 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!purdue!decwrl!mogul From: mogul@decwrl.dec.com (Jeffrey Mogul) Newsgroups: comp.protocols.iso,comp.protocols.tcp-ip,comp.protocols.misc Subject: Re: TCP/IP vs. OSI Performance Message-ID: <502@gnomea.pa.dec.com> Date: 29 Mar 89 00:43:10 GMT References: <529@skep2.ATT.COM> <9882@megaron.arizona.edu> <14957@bellcore.bellcore.com> Organization: DEC Western Research Lines: 36 In article <14957@bellcore.bellcore.com> karn@ka9q.bellcore.com (Phil Karn) writes: >>It turns out that ISO IP is more efficient in its use of >>memory; you know at the first fragment the length of the entire message, >>so you can preallocate... > >I don't quite understand this. If you represent packets as linked lists of >dynamically allocated buffers, then there is no need with either DoD IP or >ISO 8473 to preallocate memory when reassembling fragments. > [...] >It is true that knowing how long an entire datagram is could save you some >CPU time if you're so memory-starved that you won't be able to reassemble >it; you could toss all of the fragments as soon as you receive them instead >of running out of memory halfway through reassembly and having to toss the >partially reassembled datagram. I don't see this as a big advantage, >though, since any system that runs out of memory often enough for this to be >a signficant performance factor is going to have many other, much more >serious problems. As Chris Kent and I wrote (after Dave Mills raised the issue) in our paper "Fragmentation Considered Harmful" (SIGCOMM '87), one problem is that because IP doesn't tell you how much space is needed, you can run into pseudo-deadlock when several large packets are being reassembled. If the rate of incoming fragmented packets is high enough, it doesn't matter how much memory you have, because the situation is unstable: once you begin to run out of memory, you're likely to see new fragments arrive faster than the old ones time out. The real problem, of course, is that IP-style internetwork fragmentation is generally a bad idea ("Harmful", in fact). Issues of "efficiency in the use of memory" are second-order compared to efficient mechanisms for avoiding fragmentation. I certainly agree with Phil that variable- length fields are a false economy. -Jeff