In order to cover for my (glaring) lack of knowledge in the basics of networking, I'm looking for a book which would ideally cover:

-> 1 or 2 chapters on the transport layer: tcp, udp...

-> 1 or 2 chapters on the application layer: http, dns...

-> rest of the book would be devoted to pratical way of sending data across the wire using Java-related technologies. This would involve discussions about existing products (eg. hessian, protobuf, thrift, tibco...) , performances comparisons, case studies...etc..

Does such a book exist ?

Edit: Thanks for all the answers so far... however most of the books listed focus heavily on the lower levels of the networking stack (ie. tcp/ip, network administration...). This is one-half of the answer only. I'm still eager to hear suggestions about the other half: discussions around the "state of the art" options available to the Java developer to ferry data around, what products/frameworks are available and how do they compare.

Edit
Report