Subject: [tcpm] Separate header checksums and WiFi

From: Michael Welzl <[email-masked]>
Date: 31 Jan 2007 16:13:43 +0100

Dear all,

A long time ago, at the San Diego IETF meeting in August 2004,
I presented an idea called "Corruption Notification Options"
(a proposal which is some sort of a refined specification of
the TCP HACK idea) to this group.

The group's feedback was that this is useless, as errors
occur in such a clustered fashion that you wouldn't see
any packets with an intact header but erroneous payload
(which is the only situation where the scheme would
yield any benefit). I think that it was Gorry Fairhurst
who said this.

I figured that the only convincing way to prove him
wrong is to actually do a real-life test. I did, and
proved him right  :)  that is, disabling checksums for
parts of packets doesn't yield much of a benefit in
WiFi networks, where it seems that frames are delivered
in an all-or-nothing fashion.

Doing this test requires patching the device driver (to
disable the link layer CRC), and above all, finding a good
student - all of this took quite some time, but now it's
over, and the documentation can be found at:
http://www.welzl.at/research/projects/corruption/
(bottom of the page)

I learned my lesson, and thought I'd share it with you -
but this result only concerns WiFi. I'll keep this as a
low-priority "background" project and may take a closer
look at other link layers one day... in any case, that
topic still interests me, and I can't believe that it
wouldn't be possible to get a benefit out of such a scheme.

I'm sending this note to TCPM, TSVWG and DCCP because there
are similar mechanisms there (DCCP: the Data Checksum option; SCTP:
http://www.ietf.org/internet-drafts/draft-stewart-sctp-pktdrprep-06.txt
although I just noticed that this is apparently not a WG item...
still, it's SCTP related).

This note also goes to ICCRG, because I think that this should
be the place for related discussions (in fact Lachlan Andrew
will give us a related talk at our upcoming meeting:
http://www1.tools.ietf.org/group/irtf/trac/wiki/Agenda )

Cheers,
Michael

_______________________________________________
tcpm mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/tcpm

---

From: Joe Touch <[email-masked]>
Date: Wed, 31 Jan 2007 07:58:47 -0800

> yield any benefit). I think that it was Gorry Fairhurst

There was a separate issue - you need to *know* the header is intact.
For TCP, there's no separate header checksum to provide that
information. I.e., this might be possible with UDP-lite, but isn't with
UDP or TCP. This might not affect the SCTP or DCCP variants, depending
on what their checksums cover.

Joe

-- 
----------------------------------------
Joe Touch
Sr. Network Engineer, USAF TSAT Space Segment

---

From: Michael Welzl <[email-masked]>
Date: 31 Jan 2007 17:07:55 +0100

> For TCP, there's no separate header checksum to provide that

Well, that's what my proposal added  :)

> on what their checksums cover.

It will affect the DCCP Data Checksum, which is just the
same as my TCP proposal. The SCTP proposal is a little
different.

Cheers,
Michael

---

From: Ethan Blanton <[email-masked]>
Date: Wed, 31 Jan 2007 11:43:23 -0500

> in an all-or-nothing fashion.

I have to applaud this move.  All too often we only talk about the
things we did that *worked*, and the same questions about things that
any number of people would tell you doesn't work come up over and
over.  For this particular topic, there is now a citation, so the next
guy won't have to go try it himself.  Thank you.

Ethan

-- 
The laws that forbid the carrying of arms are laws [that have no remedy
for evils].  They disarm only those who are neither inclined nor
determined to commit crimes.
		-- Cesare Beccaria, "On Crimes and Punishments", 1764
_______________________________________________
tcpm mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/tcpm

---

From: Joe Touch <[email-masked]>
Date: Wed, 31 Jan 2007 08:54:16 -0800

> On Wed, 2007-01-31 at 16:58, Joe Touch wrote:
...
> Well, that's what my proposal added  :)

Did your experiment measure that aspect? That's the key question - how
many packets have recoverable headers...

Joe

---

From: Michael Welzl <[email-masked]>
Date: 31 Jan 2007 18:13:13 +0100

> many packets have recoverable headers...

Yes! It's a sad, sad story (well, for me it was  :)   ).
See the tables on pages 62ff of
http://www.welzl.at/research/projects/corruption/index.html

To give you an example, in the measurement on page 61,
we had approx. 479k received packets, of which 178 were
received with errors and 14 had an intact header checksum.

That's the approximate order of magnitude... tens or
hundreds, if not less, out of hundreds of thousands.

By the way, I'd like to point out that all the credit
for this measurement goes to the master student who
did it, Mattia Rossi - he really put a lot of effort
into this. BTW, he's now in Australia (Perth), taking
a break, and soon looking for a job there AFAIK;
his email address is (hopefully still working?)
[email-masked] and I'm cc'ing him.

Cheers,
Michael

---

From: Joe Touch <[email-masked]>
Date: Wed, 31 Jan 2007 09:14:33 -0800

Beyond what Ethan is suggesting, this is useful to write up more fully
and publish, e.g., at Globecom or ICC. Negative results, as Ethan notes,
are critical to the community as a whole.

Joe

Ethan Blanton wrote:
> ------------------------------------------------------------------------
>

---

From: Michael Welzl <[email-masked]>
Date: 31 Jan 2007 18:17:01 +0100

I agree, and am happy to contribute what I have!!!!!

(which is: the results, but not the time)

-- 
Michael Welzl <[email-masked]>
University of Innsbruck