James F. Kurose, Keith W. Ross
Building on the successful top-down approach of previous editions, this edition continues with an early emphasis on application-layer paradigms and application programming interfaces, encouraging a hands-on experience with protocols and networking concepts.
I work in web development, but I don't have a great understanding of network protocols. I recall hearing an analogy that TCP, HTTP, and SSL can be thought of as a series of nested envelopes around the actual request content.
I also have a fuzzy idea TCP consists of packets, which are verified on the other end. But I'm sort of picturing the HTTP request being chopped into packets, too...
So basically, I don't understand this stuff well at all. Can anybody give a good overview of this? Also, is there a beginner-friendly book or other resource that you'd recommend?
We had computer networking on school and we had to buy this book it really helps. It explains every layer of the OSI model. (From the internetcabel and routers up to the tcp udp protecol layers up to the application layer). If you want to have more basic knowledge of how it all works this is a must read.
I am looking for a primer to learn TCP/IP basic knowledge.
Can someone give me some suggestions on books or online resources?
// Update the title based on comments
Two books that I used in my studies:
Stevens' TCP/IP Illustrated is still a very good resource to learn the basics of protocols.
I've always wanted to learn TCP or UDP(I hear UDP sucks though) in C# but I can never find ANY tutorial that can teach it. I mean, I've googled tutorials to the point where the results aren't even relevant anymore. Almost every tutorial I've come across explains TCP as if I already knew it, or they introduce terms but never explain them. After a few months, I have made absolutely NO progress. Any help here?
Note: I am not a beginner programmer, I have experience making programs. It's just the TCP tutorials out there suck.
I think it's difficult to find tutorials for TCP and UDP specifically because they are specific protocols (although very frequently used) and Microsoft are trying to abstract all these concepts so that your application is not dependent of the underlying technology.
Nowadays, you'll be advised to use Windows Communication Foundation (WCF); and you have a lot of resources from MSDN or the beginner's guide.
By the way, learning TCP cannot be done with a tutorial, but with a book focused on networking such as this one. If you do so, you'll also learn why UDP doesn't "suck"...
I want to leave strictly desktop programming and start exploring networking. I want to make a little program that just sends data from computer A to B running the same program.
Just a few questions before I start...
1) What is a better language for net programming Python or C#?
2) Could you recommend some stuff to help me understand how data is sent over the web?
Both languages are equally capable. It is a matter of personal preference.
What resources you need will depend on the application you intend to write. The two most important things you will need to know:
You're diving into a very broad subject, with a lot of information. I found this book to be helpful to me.