When the CRC and TCP Checksum Disagree

This post recycles the title of a famous paper from “Craig Partridge and Jonathan Stone”:http://www.cc.gatech.edu/classes/AY2002/cs8803d_spring/papers/checksum.pdf from 2000. Traces shows that between 1 packet in 1100 and 1 packet in 32000 fails the TCP checksum - even thought a link layer CRC was used. The TCP/UDP checksum is also ineffective at detecting bus specific errors since these errors with simple summations tend to be self canceling. The paper is worth to read it: it talk about the sources of errors, how TCP react and how to reduce the error rate....

July 11, 2010 · 3 min · Hagen Paul Pfeifer

Bluethooth Over WiFi

Bluetooth (IEEE 802.15.1) is a clean wireless industry standard using the ISM band (between 2,402 GHz and 2,480 GHz). Version 2.0 + EDR (Enhanced Data Rate) provides a practical data transfer rate up to 2.1 megabits per second. This sounds huge compared to Version 1.0 but practical is can be really awkward if you want to transfer large files. Version 3 of the core specification add a clever extension to increase the data rate: it enables the possibility to use the (hopefully available) WiFi link to transfer data....

July 8, 2010 · 1 min · Hagen Paul Pfeifer

Tracing and Time Measurements

In user-space the answer is often simple: use @gettimeofday@ if microseconds resolution is sufficing. Another often used mechanism is to use the time stamp counter - but as mentioned in another blog-post in the lion share of all use cases the advice is often too narrow because of clock variances in SMP/CMP systems and hibernation issues. #define rdtscll(val) \ \_\_asm\_\_ \_\_volatile\_\_("rdtsc" : "=A" (val)) In kernel-space the timing capabilities are a little bit more complex and several functions are provided....

July 7, 2010 · 1 min · Hagen Paul Pfeifer

Libhashish Cacheline Optimization for SMP Systems

Today I spoted some cacheline misses triggered due to some false sharings in libhashish My CPU model (athlon 64 X2 dual-core) has the following cache and memory structure: instruction cache, data cache, instruction TLB, data TLB, L2 data TLB, L2 instruction TLB and a unified L2 cache, each core (no shared L3-Cache): L1-DTLB: 4K byte pages, fully associative 32 entries (2M/4M pages: 8 entries) L1-ITLB: 4K byte pages, fully associative 32 entries (2M/4M pages: 8 entries) L2 DTLB: 4K byte pages, 4-way associative....

July 1, 2010 · 5 min · Hagen Paul Pfeifer

Crisis of Capitalism

Animated presentation held by sociologist David Harvey and Professor Philip Zimbardo for Royal Society for the encouragement of Arts, Manufactures and Commerce (RSA): “RSA Animate - The Secret Powers of Time”:http://www.youtube.com/watch?v=A3oIiH7BLmg “RSA Animate - Crises of Capitalism”:http://www.youtube.com/watch?v=qOP2V_np2c0

June 30, 2010 · 1 min · Hagen Paul Pfeifer

Nothing Absorbing, Just Hacking

Nothing really interesting these evening - just the usual hacking session. Linus is back from vacation and pent-up patches should be soaked up the next days. Eric submitted one patch after the other and the comment of Davem take the biscuit: “Slow down Eric, you’re on fire :-)”. Mathieu Lacage - let’s call him the ns-3 main developer ;-) - posted a patch where he fixed a uninitialized memory access, spotted by valgrind....

June 28, 2010 · 2 min · Hagen Paul Pfeifer

Unjoyous OO Python

Today I spend some hours to complete a python project. Because the project should expandable and manageable the functionality is splitted into classes, packages and so on - python best practices. But, as long as I program with python I don’t understand why this language is so hyped! Several years back I wanted to leave Perl as the scripting language of choice (sometimes I still use Perl). As far as I remember I looked at Python and Ruby and finally I decided to use Ruby....

June 26, 2010 · 2 min · Hagen Paul Pfeifer

Computer Weekend and ...

Münchner Stadtlauf as a distraction (but only 10 kilometers). PS: the compiler optimization patch is now mainline.

June 25, 2010 · 1 min · Hagen Paul Pfeifer

TCP Window Scaling and SYN Cookies

During some off-line discussion with Florian - one of the main developers of TCP SYN cookies - I was a little bit skeptic about the mechanism and the interplay with the TCP window scaling option. First I will describe these two mechanism; later on I will discuss their relationship and interplay. At the end I will discuss the regression and possible solutions. I shifted this off-line discussion to the kernel ml because it is not that trivial as it sounds....

June 24, 2010 · 6 min · Hagen Paul Pfeifer

'IETF: TCP Authentication Option'

Just now, two new Request for Comments are now online available: “RFC 5925”:http://www.rfc-editor.org/rfc/rfc5925.txt - The TCP Authentication Option “RFC 5926”:http://www.rfc-editor.org/rfc/rfc5926.txt - Cryptographic Algorithms for the TCP Authentication Option (TCP-AO) These two standards (and probably upcomming enhancements in several years ;) are the replacement for TCP MD5 Option (RFC 2385). TCP-AO specifies stronger Message Authentication Codes to protect against replay attacks for long lived connections like BGP sessions. It is a generic contaier where other authentication codes can be used....

June 22, 2010 · 1 min · Hagen Paul Pfeifer