https://www.amazon.com/Computer-Networking-Top-Down-Approach...
I'm using these two. The Tanenbaum book has a 6th edition, and I think the Top Down one has some newer editions as well. Not sure if they're the best, although they do seem relatively thorough, especially Tanenbaum.
[1]https://www.amazon.com/Computer-Networking-Top-Down-Approach...
I dived into the topic two years ago using Computer Networking: A Top-Down Approach (https://www.amazon.com/Computer-Networking-Top-Down-Approach...)
As someone with about ten years experience in web-dev, but no formal CS education, I found the difficulty level to be just right.
It explains just about every networking concept in grueling detail. However I don't remember anything I learned in that class, and now as a working developer don't have the time to work through a 900 page textbook.
These Youtube playlists covered the important networking parts. Search Wikipedia for the topics you don't understand.
1) Stanford Networking: https://www.youtube.com/playlist?list=PLx_Dnlrnkd6f3mtJgmoBk...
2) New Boston: https://www.youtube.com/playlist?list=PL6gx4Cwl9DGBpuvPW0aHa...
3) Gate Lectures by Ravindrababu Ravula: https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPn...
* Head First Networking (O'Reilly, 2009): http://shop.oreilly.com/product/9780596521561.do
* Hands-On Networking Fundamentals, 2nd Edition (Cengage Learning, 2013): https://shar.es/1EUsPD
* Computer Networking: A Top-Down Approach (7th Edition) (Pearson, 2016): https://www.amazon.com/Computer-Networking-Top-Down-Approach...
If you prefer books check out
https://www.amazon.com/Computer-Networking-Top-Down-Approach...
Or for video lectures:
https://www.youtube.com/playlist?list=PLoCMsyE1cvdWKsLVyf6cP...