Inside the Linux Packet Filter, Part II

Gianluca concludes the packet's journey through the kernel, picking up with TCP processing.

Conclusion

Following a packet's journey through the kernel can be an
interesting experience. In our trip we encountered typical kernel
data structures (such as skbuffs), discovered idiomatic programming
techniques (such as the use of structures with function pointers as
an efficient alternative to C++ objects) and met some new 2.4
mechanisms (softirqs).

If you are eager to learn more on the subject, arm yourself
with kernel sources and a comfortable editor, swallow a good cup of
coffee and start peeking here and there. The price is cheap, and
fun is guaranteed!