I never took a formal course on computer networking and have just learned bits and pieces along the way. However, I would like to fill in the gaps in my knowledge and learn more about networking, specifically in TCP/IP, CIDR, subnets, network masks, routers, gateways, NAT, firewalls, etc. I assume most of these topics would be covered in a networking 101 course of some kind.<p>Any suggestions on the best resources for studying these topics? Could be a book, an online course, a website with articles, etc.<p>Any suggestions are much appreciated. Thanks.
0. Get a Linux.<p>1. Read LARTC [<a href="http://www.lartc.org/" rel="nofollow">http://www.lartc.org/</a>].<p>2. Get a virtual machine hypervisor, a one that can work with a Linux bridge.
KVM/libvirt should do, as should LXC on libvirt or lxc tools (lxc-create,
lxc-start and the like). Avoid Docker, as its networking is not supposed to be
understood by operator.<p>2.5. Setup several Linux guests. Three or four should be enough to see
necessary bits.<p>3. Try to setup different networks by hand (avoid using ifup/ifdown and their
equivalents; use /(s)bin/ip, /sbin/ifconfig, and /sbin/route).<p>3.5 Learn how to use tcpdump (pay attention to -i option). Try understanding
why some packets show up duplicated.<p>4. Profit.<p>Note that in 2. you may easily replace VMs with physical machines with several
network cards, but I guess it would be easier to go with VMs.
Take a look at this course : <a href="https://lagunita.stanford.edu/courses/Engineering/Networking/Winter2014/about" rel="nofollow">https://lagunita.stanford.edu/courses/Engineering/Networking...</a> . The recommended book is Computer Networking: A Top-Down Approach by Kurose and Ross.