TCP/IP network programming in C on Linux is good fun. All the advanced features of the stack are at your disposal, and you can do lot of interesting things in user space without getting into kernel ...
Thomas Herbert's book The Linux TCP/IP Stack: Networking for Embedded Systems is a thorough guided tour of the Linux kernel TCP/IP implementation. Herbert builds his description of Linux networking, ...