Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 06 Jun 2001 06:58:07 -0300
From:      "Daniel C. Sobral" <dcs@newsguy.com>
To:        "Louis A. Mamakos" <louie@TransSys.COM>
Cc:        Giorgos Keramidas <keramidi@otenet.gr>, Bob Willcox <bob@immure.com>, Jesper Skriver <jesper@skriver.dk>, hackers list <freebsd-hackers@FreeBSD.ORG>
Subject:   Re: How to disable software TCP checksumming?
Message-ID:  <3B1DFEAF.927E1DC3@newsguy.com>
References:  <20010529144114.I19771@luke.immure.com> <20010529221107.C49875@skriver.dk> <20010529155212.M19771@luke.immure.com> <20010530045200.A1031@hades.hell.gr> <3B1CACDA.96599BD5@newsguy.com> <200106051422.f55EM4n78505@whizzo.transsys.com>

next in thread | previous in thread | raw e-mail | index | archive | help
"Louis A. Mamakos" wrote:
> 
> >
> > It seems to me to be kind of moot to check the same value twice, unless
> > you suspect hardware problems. Aren't you talking about two different
> > checks over the same data instead of checksum off-loading?
> 
> Suspect hardware problem?  Of course you should!  That's why memory
> systems have parity or ECC, and I/O buses are similarlly protected.  At
> least on real computers.
> 
> The link-level CRC only protects the data as it goes over the link
      ^^^^^^^^^^

After reading the rest of his messages, I'm not so sure, but I would
think he was talking about _transport_ level check sum, and verifying
that with hardward (NIC) instead of software (IP stack).

> between the link-level hardware which generates the CRC and the box
> on the other end that receives it.  It does not protect the data
> end-to-end, so if it's gets corrupted whilst sitting in memory in
> an intermediate node, you won't detect that.
> 
> Why would it get corrupted?
> 
> 1.  Software.   Random unrelated other software does a random store in
> the buffer containing your packet sitting in memory.  Fancy device drivers
> that do scatter-gather I/O gets it wrong every now and then and points
> off into space.  mbuf cluster which should be treated as read-only isn't,
> and some other code hoses it.  (See PR kern/27782 at
> http://www.FreeBSD.org/cgi/query-pr.cgi?pr=27782 for an example of this.)
> 
> 2.  Hardware. I found broken UNIBUS hardware 15 or 20 years ago this
> way.  I had some broken hardware which took frame relay frames on
> a HSSI interface and turned them into AAL5 ATM cells that would get
> the cell reassembly wrong if you pushed too hard.  Or just plain
> broken memory that results in packet corruption.
> 
> I've personally experienced all these problems.  Maybe I'm just
> unluckly.  One common thread of my experiences is being close to the
> bleeding edge of technology where stuff isn't as mature as many people
> are used to.
> 
> This end-to-end issue is not a theoretical consideration.  While the
> 1's complement internet checksum isn't that strong, it does detect a
> bunch of bug-like behavior like this.
> 
> Louis Mamakos

-- 
Daniel C. Sobral			(8-DCS)
dcs@newsguy.com
dcs@freebsd.org
capo@the.secret.bsdconspiracy.net

	wow regex humor... I'm a geek

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3B1DFEAF.927E1DC3>