views:

213

answers:

3

I'm not sure if publish date matters, but it seems that all the recommended books I see are from like, pre-2000, or at the latest, around 2002. Hasn't there been much advance on the subject in almost 10 years? Are there any recently published network programming books, and are they any good? I posted this on GDnet but would like as many suggestions as possible:

I'm looking for a selection of books on C Network Programming. I'm not looking for beginners guides, I want something more advanced. I'd like it to cover concepts such as IOCP in detail (although I do have some experience with this already), topics discussing TCP/UDP protocol details, implementing ordering/reliability protocols on top of UDP. Network application architecture/design discussion (yes that's pretty general) would also be a bonus, as would a section on security (but that would be bordering on cryptography). Really I would just like to learn about things I don't already know, or even know about

Can anyone suggest any books that fit my description? ISBNs would help too if possible.

Edit: Platform should focus on Windows, but I'm not fussed if the book if mostly theory and applicable to many platforms.

+1  A: 

The networking APIs haven't changed a bit in the past 10 years. You program to the same Winsock2 on Windows, for example.

Comer's book on Windows socket programming is still great, and get yourself Stevens' TCP/IP protocols and implementations if you want to go deeper. Stevens focuses on Unix, but the socket API is pretty similar.

Eli Bendersky
+2  A: 

If you are interested in some book form for network stack implementations,
Understanding Linux Network Internals by Christian Benvenuti from O'Reilly is good.

After that, the next suggestion is,
TCP/IP Illustrated, Volume 1: The Protocols and,
TCP/IP Illustrated, Volume 2: The Implementation.
Yes, they are old, but then we have not improved much over that, yet...
Understanding these clearly will at least help you figure out what we need to fix more.

nik
+1  A: 

Most of the major ideas in network programming were worked out a while ago. Even bittorrent was developed in 2001 and that's pretty recent.

If you haven't read the Stevens books you really should. TCP/IP Illustrated(v1, v2, v3) is far and away the definitive work on understanding TCP/IP. If you're programming using bsd sockets then UNIX Network Programming (v1, v2) is essential (also note, winsock is basically based on the bsd sockets so they will help you understand how it works)

If you're doing C++ network programming the ACE framework has some good ideas. The 2 ACE book are from around 2003ish:

Matt Price
Stevens Illustrated V3 can be skipped. TCP for transactions never took off -- http://en.wikipedia.org/wiki/T/TCP, http://linuxgazette.net/issue47/stacey.html. It is unlikely to be engaged anymore.
nik
Fair enough, I only read the first one anyways :) That's when I really understood how TCP works
Matt Price