Messages in this thread |  | | | Subject | Re: [2.0.x/2.1.x] Lots of ICMP error msgs | | From | Andreas Kleen <> | | Date | Tue, 30 Sep 1997 18:15:22 +0200 |
| |
> > Letting the chips fall where they may, I quote Andi Kleen: > >I have seen them with broken Modems (especially ELSAs who got too hot) > >or terminal servers (Ascend MAX). Strictly speaking it's against the RFC > >anyways to log checksum errors. It's only enabled in 2.1. to catch bugs, > >that it is enabled in the 2.0.x masquerading code is a bug IMHO. There are > >many legitimate reasons why a packet might get corrupted. > > Oh, like the kernel mis-sequencing a packet. I know it's doing it, but I > haven't had time to collect enough data to really prove it beyond the > hardware (Intel has been known to report data incorrectly, but ...)
If you get a usable tcpdump log send it to netdev@nuclecu.unam.mx
> > I have data to indicate the kernel getting or assembling the headers and > data segments exactly TWO frames out of sequence. That has explained every > csum (TCP csum) failure I have captured. I suspect it may be a wild race > condition -- an interrupt at an odd time (those are kinda hard to localize.)
What do you mean with 'headers' and 'data segments' here? A bug in the IP-level fragmentation or in the TCP reassembly algorithms? This probabality is very low for both things: ICMP messages are never fragmented, so a fragment reassembly bug can't cause this (in theory a very buggy, non rfc compliant implementation could send fragmented ICMPs, but that's unlikely). TCP packets are usually not fragmented neither, unless you're dealing with a buggy implementation that doesn't do path mtu discovery properly (possible, but unlikely). When the TCP segment reassembly has a bug it'll never cause bad checksum messages, because TCP packets with a wrong checksum are thrown away early and the reassembly algorithm never sees them. If there really is a bug there it could be only catched by additional checksums at the application level, but I know of no protocol who does this.
-Andi
|  |