TCP/IP

Started by
6 comments, last by pulpfist 14 years, 9 months ago
Anybody got a book recommendation for learning about the internet? Something maybe with some practice programs? For instance after I'm done reading I would want to be able to write something like a chess program with a Windows version and a Linux version. And you could play someone on the other side of the world. I suppose you could type in an IP address but also I suppose I'd like to learn how to program a server where everybody logs on and looks for games. Basically I know next to nothing about the internet. I vaguely know that IP address is sort of like a phone number. But I don't know how the phone network functions either. I don't even know what http:// means.
Advertisement
TCP/IP is what is often refered to as the network stack. It is implemented in the operating system, and consists of different protocols distributed over several layers
As application programmers we usually deal with the protocols at layer 7 (Application layer) I'm sure you recognize some of them, like HTTP and FTP.

If you want to dig into the network technologies you should look for books on the subject Network Topology
The most common topology used today is probably the one used in internet and LANs called Ethernet

But, if all you want to do is to be able to write a program to communicate over the net (Assuming ethernet), all you really need is to find a network API for the language you are using.

There is a lot of different APIs out there, like the Beej's Guide to Network Programming. This is a C API that has been around for a long time. Being very old its not exactly user friendly but works on pretty much any platform (Linux, Unix, Windows, etc.)

Languages like Java, Python and C# has other and much more user friendly APIs so I guess you have to decide on what language to use before we can give you any speciffic help on that
Oh, C++. Mostly I use the g++ compiler.

Actually I programmed something with sockets a long time ago but it seemed sort of like "magic" to me. I never really learned it very deep and honestly I can't remember sockets at all, I just remember they weren't too hard to pick up.
I can't help you much about what books to read as I haven't really read a lot of them.
However, I know that RakNet is a popular choise for that kind of thing.

Asio is another nice C++ API. Simple and low level
Okay. I guess API is all I really need to know for practical stuff.

But if anybody knows a good book to read to learn all about TCP/IP, protocols, network stacks, and layers I'd like to know. I doubt I'll use the knowledge but it seems like something I ought to understand.

I guess I would also like to really understand how packets and information and all that is actually transmitted so I guess that would be network topology.
Start with reading Beej's Guide to Network Programming Using Internet Sockets. It doesn't tell you absolutely everything about networking, but you don't really need to know absolutely everything. It's better to interleave some practical experience with the academic learning.

If you really want to know about networking then you probably want a book like 'Computer Networks and Internets' or 'Computer Networks' but there is far more in those tomes than you'll ever need as an application programmer.
Free download. Sweet.
I just dug up the book we used at school.
Computer Networking: A Top-Down Approach Featuring the Internet

Its a great book, written specifically for engineers (sketches, drawings, easy to understand, examples and pseudo code) and focuses on the technologies used by internet.

This topic is closed to new replies.

Advertisement