Reddit Reddit reviews Computer Networking: A Top-Down Approach (7th Edition)

We found 15 Reddit comments about Computer Networking: A Top-Down Approach (7th Edition). Here are the top ones, ranked by their Reddit score.

Computers & Technology
Books
Networking & Cloud Computing
Computer Networks, Protocols & APIs
Computer Networks
Computer Networking: A Top-Down Approach (7th Edition)
Check price on Amazon

15 Reddit comments about Computer Networking: A Top-Down Approach (7th Edition):

u/sharjeelsayed · 28 pointsr/compsci

Computer Networking: A Top-Down Approach (7th Edition)
https://www.amazon.com/Computer-Networking-Top-Down-Approach-7th/dp/0133594149

CS144 Introduction to Computer Networking Stanford University
https://suclass.stanford.edu/courses/course-v1:Engineering+CS144+Fall2016/courseware/ac9d1eef5aaa4bb5bcfe4d42f51f0f5b/c5c384e648cf404c837d05497c6e36b0

Beej's Guide to Network Programming
http://beej.us/guide/bgnet

Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition)
https://www.amazon.com/Unix-Network-Programming-Sockets-Networking/dp/0131411551

High Performance Browser Networking
https://hpbn.co

Eli The Computer Guy Youtube
https://www.youtube.com/playlist?list=PLF360ED1082F6F2A5

Load Balancing Servers, Firewalls, and Caches
http://www.amazon.com/Load-Balancing-Servers-Firewalls-Caches/dp/0471415502

More at http://Learn.SharjeelSayed.com

u/ash663 · 8 pointsr/compsci
u/wallytooth · 3 pointsr/cscareerquestions

I used Computer Networking: A Top Down Approach [0]. The title pretty much sums it up, you start at the application layer and work your way down through each layer. I found this approach helpful since it started with something relatively familiar (app layer) and then digs down through the layers to find out how it's really working. For me, at least, this is preferable to starting on the bottom where you don't really have as much context for what's happening.

[0] https://www.amazon.com/Computer-Networking-Top-Down-Approach-7th/dp/0133594149/ref=sr_1_2?ie=UTF8&qid=1536784010&sr=8-2&keywords=networking+textbook

u/shaigb · 3 pointsr/netsecstudents

https://www.amazon.com/Computer-Networking-Top-Down-Approach-7th/dp/0133594149

This is the 7th edition, i have the 5th which is extremely valuable and precise in it's context. Built very good and easy to understand, but also VERY in-depth.

u/FearMonstro · 3 pointsr/compsci

Nand to Tetris (coursera)

the first half of the book is free. You read a chapter then you write programs that simulate hardware modules (like memory, ALU, registers, etc). It's pretty insightful for giving you a more rich understanding of how computers work. You could benefit from just the first half the book. The second half focuses more on building assemblers, compilers, and then a java-like programming language. From there, it has you build a small operating system that can run programs like Tetris.

Code: The Hidden Language of Hardware and Software

This book is incredibly well written. It's intended for a casual audience and will guide the reader to understanding how a microcontroller works, from the ground up. It's not a text book, which makes it even more more impressive.

Computer Networking Top Down Approach

one of the best written textbook I've read. Very clear and concise language. This will give you a pretty good understanding of modern-day networking. I appreciated that book is filled to the brim of references to other books and academic papers for a more detailed look at subtopics.

Operating System Design

A great OS book. It actually shows you the C code used to design and code the Xinu operating system. It's written by a Purdue professor. It offers both a top-down look, but backs everything up with C code, which really solidifies understanding. The Xinu source code can be run on emulators or real hardware for you to tweak (and the book encourages that!)

Digital Design Computer Architecture

another good "build a computer from the ground up" book. The strength of this book is that it gives you more background into how real-life circuits are built (it uses VHDL and Verilog), and provides a nice chapter on transistor design overview. A lot less casual than the Code book, but easily digestible for someone who appreciates this stuff. It culminates into designing and describing a microarchitecture to implement a MIPS microcontroller. The diagrams used in this book are really nice.

u/PNX9 · 3 pointsr/netsecstudents

This is a great list, thank you very much.
I also happened to decide to study networking but for a bit deeper, my choice was this book.

https://www.amazon.com/Computer-Networking-Top-Down-Approach-7th/dp/0133594149

This is a complete networking essentials, for grads, phDs, masters.

Is also has a helper site with video notes and animations

https://wps.pearsoned.com/ecs_kurose_compnetw_6/216/55463/14198700.cw/index.html

u/keepthethreadalive · 2 pointsr/AskNetsec

I don't know much about any other websites other than Coursera, so I don't know if there are any courses I'm missing on the other websites.

Security:

On Coursera, I highly recommend the
Cyber Security Specialization. It covers a varied approach to security from multiples perspective and a great start for anyone.

After that you will have to look around for the specific type of security you are interested in. You won't find a MOOC because it is probably too specialized.

If you want a more mathematically rigorous courseload in crypto, I would suggest doing both Crytography I and Lectures by Christof Paar

Networking:

Sadly I haven't come across a good networking course. My current suggestion is to read Computer Networking: A Top down approach. You should be able to find PDFs of 6th ed (don't tell anyone I said that) which is similar to the 7th ed except the last chapter.

After that, you should be comfortable enough, but if you want to dive in deeper, read CCNA and CCNP books for the specific part you want to get a good understanding of (I would suggest starting with CCNA R&S).

u/Sathwik_Matsa · 2 pointsr/HowToHack

Computer Networking : A Top Down Approach

Also check out CompTIA N+ materials

u/codeleecher · 2 pointsr/linux4noobs

Internet is a very complex global network of networks. Internet security is a bit vague term, what you really are looking for is network security, but even before you go for understanding security you first need to understand how network communication works. First understand the basics.

Network communication is made possible by hardware and software stack. Electrical/telecom engineers take care of the hardware part, i-e how the data has to be multiplexed into signals (see Frequency division multiplexing, Time Division Multiplexing) and transmitted over through some medium and de-multiplexed again at the receiver end.

Software stack is an implementation of set of protocols/standards through which communication between processes, devices and networks is made possible, the famous one is TCP/IP stack. There is another conceptual networking model OSI model as well but TCP/IP is the most well known and widely implemented protocol stack. Make yourself familiar with the TCP/IP stack, you should grasp basics like how different layers of stack communicate with each other and how different protocols work together to make the magic of internet possible.

You should learn the HTTP request/response flow and then relate it to what you have learned so far.

When you are done with these, move towards more advance stuff. Network security involves understanding about cryptographic algorithms that includes symmetric (eg AES) and public key cryptography (RSA) and hashing algorithms (SHA, MD5 etc). Get an overview about these systems, how and why they are used. These cryptographic algorithms/concepts Cryptography is based on mathematics especially number theory but you don't need to worry about that at the moment. Abstract understanding is important before you get into more details.

Learn about how SSL works. Exploits work at almost all levels of protocol stack, starting from exploits in HTTP and TCP to lower level packet sniffing and Man in the middle attacks. Learn a front end web language i-e javascript and at least know about one server side scripting language, PHP is one of the easiest to learn.

I recommend Computer Networking: A top down Approach by Kurose, this book explains the complex concepts in a very intuitive language and is used as a text for undergraduate networks course throughout the world.

Computer Networking: A Top-Down Approach

Cryptography and Network Security: Principles and Practice

There is another very good book TCP/IP Protocol Suite by Behroz Forouzan but the text is very dense and detailed, and usually is taught at advanced undergraduate or graduate level networking courses.

Read good and famous security blogs and Keep learning with a lot of patience. Cheers!

u/bonekeeper · 2 pointsr/cscareerquestions

I looked at the FreeCodeCamp curriculum, it looks good for an entry level javascript developer, so since you already started it, you might as well finish it (since, like I said, everybody implicitly expects you to know at least one of python/js/perl as well as HTML+CSS).

2 hours per day is a bit too little IMO - but I understand that it's hard to find time when you have a demanding job and a family that needs time and attention. Just study as much as you can, 2h being the mininum (do keep in mind that CS students, your competition, will be studying at least 8h/day for at least 4 years with tons of homework and more advanced material). So you should probably focus on studying more in the weekends (just typing and thinking about this, I'm actually lucky I started when I was a kid, with all my bills paid for!)

Anyways. You should focus on getting a job first - do keep doing the FreeCodeCamp, as many hours in the day and weekends as you can. Explain to your significant other, if you haven't already done so, your plan - that you're studying hard to upgrade your career, that it might take some time away from them but it will pay off in the long run, etc. Ideally you should be studying at least 4h/day, so try to keep close to that, study more on weekends if necessary. Check this guy for reference on his plan and what he's studying (and note that he's studying full-time - a luxury, I know, but just to put your 2h/day into perspective). This guide is helpful too. Note that you don't need to know all that to get an entry-level development job, but keep that plan in mind for the long run (as you progress your career).

Once you finish the FreeCodeCamp, or even before (I would say, once you finish "Basic Algorithm Scripting"), try doing some local interviews if you can do it without jeopardizing your current job just to get a feel of how interviews work. You won't be trying to get a job (but hey, if you do, awesome), this is just to get your feet wet on interviewing (which is a skill in itself). Since you're not shooting to get a job right now, you won't be as nervous, which is the state of mind you want to be in. If you're relaxed you can talk better, think better, make jokes, be more presentable, which is great - this will put you in the right mood for your future interviews. Try finding people online that can do mock interviews with you in the area you will be focusing on (web/javascript/frontend initially).

Once you're past the basic HTML/CSS part and you start studying JavaScript, I suggest you look into Python as well at the same time. It is a very simple language, quick to learn, and will double your opportunities for employment. As you study both at the same time, you might notice that you like one or the other better - if that happens, focus more on the one you like better, this will accelerate your learning and get you ready for a job faster in your chosen language.

At one point you'll finish HTML/CSS and JavaScript+Python (finish as in be comfortable with them - you'll see that you'll still learn new things as years go by, it will take a few years for you to "master" them). After you're comfortable with JavaScript and Python (and hopefully gainfully employed in development), start studying that book (where you'll learn a GREAT deal about many important things, it will be a dense read, and you will come out of it knowing assembly and C) and then you can focus on algorithms and exercising your thinking with algorithmic puzzles and how computer networks work, operating systems and everything that is generally on this list.

Then after studying all that and with 2-4 years of experience under your belt (and still studying 4h/day), you can start thinking about the next level in your career and preparing for it (larger companies, mid to senior positions, etc) - add a couple more years of experience and you'll be ready to interview for large Valley companies (Google, Apple, FB, etc).

If you plan to self-study all the way through and never join an University, you can look into full-fledged CS courses online and follow that to get a complete theoretical background on CS (that all your colleagues will eventually have and expect of you, at some point in the future).

u/dgpoop · 1 pointr/networking

Computer Networking: A Top-Down Approach

The book should be mostly sufficient for a modern approach to "end systems". The text content for SDN and NFV is fairly short, while the rest of the content digs pretty deep into the technical side of networking. If you get the newest version, it has been updated to accommodate newer concepts like SDN etc. Included with the book is access to online resources like Wireshark labs to reinforce learning.

u/empleadoEstatalBot · 1 pointr/argentina

> For those who prefer video lectures, Skiena generously provides his online. We also really like Tim Roughgarden’s course, available from Stanford’s MOOC platform Lagunita, or on Coursera. Whether you prefer Skiena’s or Roughgarden’s lecture style will be a matter of personal preference.
>
> For practice, our preferred approach is for students to solve problems on Leetcode. These tend to be interesting problems with decent accompanying solutions and discussions. They also help you test progress against questions that are commonly used in technical interviews at the more competitive software companies. We suggest solving around 100 random leetcode problems as part of your studies.
>
> Finally, we strongly recommend How to Solve It as an excellent and unique guide to general problem solving; it’s as applicable to computer science as it is to mathematics.
>
>
>
> [The Algorithm Design Manual](https://teachyourselfcs.com//skiena.jpg) [How to Solve It](https://teachyourselfcs.com//polya.jpg)> I have only one method that I recommend extensively—it’s called think before you write.
>
> — Richard Hamming
>
>
>
> ### Mathematics for Computer Science
>
> In some ways, computer science is an overgrown branch of applied mathematics. While many software engineers try—and to varying degrees succeed—at ignoring this, we encourage you to embrace it with direct study. Doing so successfully will give you an enormous competitive advantage over those who don’t.
>
> The most relevant area of math for CS is broadly called “discrete mathematics”, where “discrete” is the opposite of “continuous” and is loosely a collection of interesting applied math topics outside of calculus. Given the vague definition, it’s not meaningful to try to cover the entire breadth of “discrete mathematics”. A more realistic goal is to build a working understanding of logic, combinatorics and probability, set theory, graph theory, and a little of the number theory informing cryptography. Linear algebra is an additional worthwhile area of study, given its importance in computer graphics and machine learning.
>
> Our suggested starting point for discrete mathematics is the set of lecture notes by László Lovász. Professor Lovász did a good job of making the content approachable and intuitive, so this serves as a better starting point than more formal texts.
>
> For a more advanced treatment, we suggest Mathematics for Computer Science, the book-length lecture notes for the MIT course of the same name. That course’s video lectures are also freely available, and are our recommended video lectures for discrete math.
>
> For linear algebra, we suggest starting with the Essence of linear algebra video series, followed by Gilbert Strang’s book and video lectures.
>
>
>
> > If people do not believe that mathematics is simple, it is only because they do not realize how complicated life is.
>
> — John von Neumann
>
>
>
> ### Operating Systems
>
> Operating System Concepts (the “Dinosaur book”) and Modern Operating Systems are the “classic” books on operating systems. Both have attracted criticism for their writing styles, and for being the 1000-page-long type of textbook that gets bits bolted onto it every few years to encourage purchasing of the “latest edition”.
>
> Operating Systems: Three Easy Pieces is a good alternative that’s freely available online. We particularly like the structure of the book and feel that the exercises are well worth doing.
>
> After OSTEP, we encourage you to explore the design decisions of specific operating systems, through “{OS name} Internals” style books such as Lion's commentary on Unix, The Design and Implementation of the FreeBSD Operating System, and Mac OS X Internals.
>
> A great way to consolidate your understanding of operating systems is to read the code of a small kernel and add features. A great choice is xv6, a port of Unix V6 to ANSI C and x86 maintained for a course at MIT. OSTEP has an appendix of potential xv6 labs full of great ideas for potential projects.
>
>
>
> [Operating Systems: Three Easy Pieces](https://teachyourselfcs.com//ostep.jpeg)
>
>
>
> ### Computer Networking
>
> Given that so much of software engineering is on web servers and clients, one of the most immediately valuable areas of computer science is computer networking. Our self-taught students who methodically study networking find that they finally understand terms, concepts and protocols they’d been surrounded by for years.
>
> Our favorite book on the topic is Computer Networking: A Top-Down Approach. The small projects and exercises in the book are well worth doing, and we particularly like the “Wireshark labs”, which they have generously provided online.
>
> For those who prefer video lectures, we suggest Stanford’s Introduction to Computer Networking course available on their MOOC platform Lagunita.
>
> The study of networking benefits more from projects than it does from small exercises. Some possible projects are: an HTTP server, a UDP-based chat app, a mini TCP stack, a proxy or load balancer, and a distributed hash table.
>
>
>
> > You can’t gaze in the crystal ball and see the future. What the Internet is going to be in the future is what society makes it.
>
> — Bob Kahn
>
> [Computer Networking: A Top-Down Approach](https://teachyourselfcs.com//top-down.jpg)
>
>
>
> ### Databases
>
> It takes more work to self-learn about database systems than it does with most other topics. It’s a relatively new (i.e. post 1970s) field of study with strong commercial incentives for ideas to stay behind closed doors. Additionally, many potentially excellent textbook authors have preferred to join or start companies instead.
>
> Given the circumstances, we encourage self-learners to generally avoid textbooks and start with the Spring 2015 recording of CS 186, Joe Hellerstein’s databases course at Berkeley, and to progress to reading papers after.
>
> One paper particularly worth mentioning for new students is “Architecture of a Database System”, which uniquely provides a high-level view of how relational database management systems (RDBMS) work. This will serve as a useful skeleton for further study.
>
> Readings in Database Systems, better known as the databases “Red Book”, is a collection of papers compiled and edited by Peter Bailis, Joe Hellerstein and Michael Stonebreaker. For those who have progressed beyond the level of the CS 186 content, the Red Book should be your next stop.
>
> If you insist on using an introductory textbook, we suggest Database Management Systems by Ramakrishnan and Gehrke. For more advanced students, Jim Gray’s classic Transaction Processing: Concepts and Techniques is worthwhile, but we don’t encourage using this as a first resource.
>

> (continues in next comment)

u/rogchap · 1 pointr/golang

Best book: Computer Networking Top Down Approach: https://www.amazon.com/Computer-Networking-Top-Down-Approach-7th/dp/0133594149/?pldnSite=1
It’s not Go specific but you need to start at the fundamentals.

u/DragonSlayer9999 · 1 pointr/slavelabour

Looking for solutions manual of Computer Networking: A Top-Down Approach (7th Edition) in 7th edition only:

The solutions manual is easily available in 6th Edition, but I am looking for the 7th Edition Solutions Manual only. Willing to pay $5 PayPal. There seems to be a version here but I cannot access it, so perhaps someone else can.

Willing to pay $5 PayPal.

Thanks!