At Uni we had a book called "Computer Networking - A top down approach". One of the best teaching books I've ever read. The amount of detail is very nice balanced, and as the title says it's a top down approach where one layer at a time is discussed. Very interesting.