Hi all, 

I'm using OpenBSD 5.3 to provide an Alix-based home firewall. Thank
you all for the commitment to elegant, well-documented software which
isn't pernicious to the mental health of its users.

I've a question about the new checksum changes[0], being interested 
in such things and having listened to Henning's presentation and 
poked around in the archives a little. My understanding is that 
checksums are now always recalculated when a header is altered, 
never updated.[1]

Is that right and if so has this affected NAT reliability? 
Recalculation here would compromise reliable end-to-end transport 
as the payload checksum no longer covers the entire network path, 
and so break a basic transport layer design principle.[2][3]

best, 
Richard.

[0] http://www.openbsd.org/54.html "Reworked checksum handling for
network protocols."

[1] e.g.
   26:45 slide 27, 'use protocol checksum offloading better'
   http://quigon.bsws.de/papers/2013/EuroBSDcon/mgp00027.html 
   30:51 slide 30, 'consequences in pf'
   http://quigon.bsws.de/papers/2013/EuroBSDcon/mgp00030.html
   https://www.youtube.com/watch?v=AymV11igbLY 
   'The surprising complexity of checksums in TCP/IP'

[2] V. Cerf, R. Khan, IEEE Trans on Comms, Vol Com-22, No 5 May 1974
Page 3 in original emphasis. 

> The remainder of the packet consists of text for delivery to the
> destination and a trailing check sum used for end-to-end software
> verification. The GATEWAY does /not/ modify the text and merely
> forwards the check sum along without computing or recomputing it.

[3] Page 3. http://www.ietf.org/rfc/rfc793.txt

> The TCP must recover from data that is damaged, lost, duplicated, or
> delivered out of order by the internet communication system. [...]
> Damage is handled by adding a checksum to each segment transmitted,
> checking it at the receiver, and discarding damaged segments. 

Reply via email to