Beej's Guide to Network Programming
beej.us
beej.us
Even if you don't code the examples, reading them will give you so much information.
But then, I must confess I too started network programming with this guide :) It presents the basics nicely, but there's a lot more you should learn about network programming.
For basic info on Epoll: http://www.devshed.com/c/a/BrainDump/Linux-Files-and-the-Eve... epoll socket tutorial: http://kovyrin.net/2006/04/13/epoll-asynchronous-network-pro...
Or kqueue if your OS supports it: http://wiki.netbsd.org/tutorials/kqueue_tutorial/
Lower level details on level triggered vs edge triggered interrupts: http://en.wikipedia.org/wiki/Interrupt#Level-triggered
Overview of the thundering herd problem: http://www.citi.umich.edu/projects/linux-scalability/reports...
This is the number one thing that got me through network class back in university. Next to that is the professor's office hour. I don't think I even touched the textbook.