做者:李振两
连接:https://www.zhihu.com/question/22354846/answer/101432582
来源:知乎
著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。编程
1. 入门
第一本书 建议看谢希仁的《计算机网络基础》windows
2.进阶
而后第二本要看 《TCP/IP详解1:协议》
这个阶段须要多思考和动手
网络在LINUX系统上发挥的最淋漓尽致,因此在学习的时候最好学习LINUX配合使用
学习LINUX,推荐《鸟哥的LINUX私房菜:基础篇》
学习网络过程当中,要不断抓包分析等,本身能写些简单的应用来发包更是完美
抓包工具推荐:LINUX环境下用TCPDUMP,windows环境下用 wireshark
这个阶段写习完后,已是个小高手了。网络
主要技能应该是:
对TCP,IP,DNS,icmp等协议应该都蛮熟了得了,dhcp/tftp/ftp等协议也应该都懂些,重点是要学会如何分析一个协议
LINUX系统的基本操做也差很少了架构
3.高手阶段
这个阶段须要有一点的编程能力,指C/C++编程
主要学习的方向是
协议的实现和协议的架构原理
协议的实现方面, 主要学习底层协议(指传输层及如下)的实现, 这些协议都是在操做系统层面实现的,最好的教材是《TCP/IP详解:实现》
至于网络架构这块,能够学习《计算机网络》这本书工具
大概就说这么多了~~
计算机网络的核心在于
协议—-LINUX操做系统—-C/C++
这三块结合起来,并不断的实践和思考~~才能成为真正高手学习