On Mon, 4 Jan 2010, [email protected] wrote: > > Attempting to avoid such bugs on the client side is an exercise in futility, > due to the nature of TCP and IP underneath it. You cannot in general prevent > packet fragmenation, reassembly, rebuffering, and all sort of other > entertaining stuff from accurring, so your attempts to align your buffering to > accomodate a broken received that doesn't handle its buffers properly are > going > to fail - the only question is when, not if.
Ned's right, of course, though the SMTP specification is vague about exactly what a "reliable ordered data stream" consists of. For a real instance of "entertaining stuff", I once had fun diagnosing a bug in a Fortigate firewall that attempted to do TCP resegmentation. I wouldn't have noticed, except that it screwed up if the segment happened to be (n*512)+1 bytes long, causing all but the first 512 bytes of the segment to be lost, which in turn caused the occasional message to get stuck on the queue. Tony. -- f.anthony.n.finch <[email protected]> http://dotat.at/ GERMAN BIGHT HUMBER: SOUTHWEST 5 TO 7. MODERATE OR ROUGH. SQUALLY SHOWERS. MODERATE OR GOOD.
