无论是最开始的局域网,还是发展到今天的互联网。无论是较早的企业windows与环境,还是发展到今天的各种云服务,都离需要进行网路通信。网络通信的基础就是计算机网络协议,有网络的地方就有网络协议,因此对于程序员,IT运维人员,网络安全从业者等人员,掌握常见的网络协议对于问题定位,业务优化,安全防护都是十分重要的。同时计算机网络作为计算机,电子,通信,网安等多个专业必修科目,也凸显了其重要性,因此计算机网络协议方面的知识是ICT等从业人员必备的技能之一。同时计算机网络协议的内容也是各个面试过程中必然会被问及的一个方面,因此对于相关的从业人员来说理解,掌握并记忆这方面的内容是必要的。
专栏亮点
亮点一是本专栏则是立足于让从业者能够读懂具体数据包,通过分析实际数据包,为理解协议背后的业务场景而生,而非死记硬背一些知识点。目前网络协议很多书籍和材料比较偏向理论,不够实战化。如果一个新手上来就看RFC的话,无异于天书,一定会失去学习网络协议的想法。即使是阅读大学课程中计算机网络所采用谢希仁老师的教材,亦或是国外经典教材TCP/IP协议卷一,尽管已经在RFC基础上做了精简,依然是一部大头书。TCP/IP 卷二,三讲述了如何使用C语言实现协议过程,这样的难度无疑更大,而且事实上多数的程序员并不需要去深入代码层次的细节。
亮点二是目前很多网络协议介绍的协议仅限于TCP/IP,HTTP,DNS等常见协议,本专栏则涵盖了TCP/IP,SSL,HTTP,DNS,SMB,RPC,LDAP,Kerberos,DHCP,RDP,windows主流协议(NTLM,LSA,SAM,NETLOGON,SRVSVC),满足绝大多数业务场景和从业者的需求。
亮点三是将我多年的流量分析和网络安全方面的经验进行总结,给后来者提供一个更加快速和高效的学习计算机网络的方法。无论是对于面试,工作还是学习起到事半功倍的效果。事实上在我过往大学和工作的学习经验中,计算机网络协议的学习并不容易,这是一个漫长的过程,如何让一个新手或者初学者,从海量材料中,化繁为简,快速的理解协议数据包则很重要。在我从事DPI/IDS,网络安全的过程中发现,发现即使对于非科班出身,没有计算机网络经验的毕业生来说,如果能够让他去分析实际的协议通信数据,那么他能够很快的理解TCP,UDP,SSL,HTTP等协议原理,而不是死记硬背TCP是有连接的,TCP是可靠的,TCP是有序的,而UDP则不具有这些特点。同时对于SSL协议是如何交换密钥和算法,证书又是如何在其中起到该有的作用,这些都可通过实际的报文进行完美的呈现,从而让学习达到事半功倍的效果。同时对于流,五元组等一些在这些书籍中没有提到的概念,同时在网络功能领域经常使用的会有清晰的认识。
你的收获
- 能够快速的还原网络数据包背后的业务含义
- 能够快速掌握常见的互联网协议要点,TCP/IP/TLS/DNS/HTTP等
- 能够快速掌握windows域环境常见协议要点,SMB/RPC/Kerberos/NTLM/LSA/LDAP/SAM等
内容介绍
- PCAP数据包格式
- IP地址漫谈
- TCP协议分析实战
- UDP协议分析实战
- TLS协议分析实战
- 加密体系发展
- 数字证书校验过程
- DNS协议分析实战
- HTTP协议分析实战
- SMB协议分析实战
- RPC协议分析实战
- LDAP协议分析实战
- Kerberos协议分析实战
- DHCP协议分析实战
- RDP协议分析实战
- NTLM协议分析实战
- LSA协议分析实战
- SAM协议分析实战
- NETLOGON协议分析实战
- SRVSVC协议分析实战
- SSH协议分析实战
- 传输层端口简介
- 多种协议之间的关系
- 访问一个网站会经历哪些过程
目标读者
- 程序员
- 网络安全从业者
- IT运维从业者
- 网络协议初学者
网络协议简述
1,什么是网络协议
如果单纯从面试的角度出发就是IP,TCP,UDP,SSL,HTTP,DNS等常见的协议交互过程,比如TCP与UDP的区别,TCP的流量控制,HTTP的状态码,SSL的对称加密和非对称加密等等。这些内容后面都会有单独的章节进行分析。
如果给定一个比较通用的说法,那我的理解就是通信的双方为了进行通信或者说是数据交换而建立的规则、标准或约定的集合。常见的计算机网络协议如刚才所述。当然网络协议远不止这些,还包括SMB,RPC,LDAP,NTLM,Kerberos协议等,图1是wireshark能够解析的网络协议数量:
图 1
可以看到wireshark中支持的公有协议数量已经非常的多,除此之外还有大量的各行各业使用的私有协议,总之网络协议的数量是非常的多。
但是多数协议往往只是应用在某个特定的领域;像GTP,PFCP应用在核心网领域,MQTT应用在物联网领域,远不如TCP/IP协议族是当今互联网的基础那应用的广泛,因此本课程只聊一聊TCP/IP,SSL,HTTP,DNS,SSH,SMB,RPC,LDAP,Kerberos,DHCP,RDP,windows主流协议(NTLM,LSA,SAM,NETLOGON,SRVSVC)这些最常见的协议。当你了解了这些基础协议之后,在此基础上是很容易对于其他的协议进行扩展的,比如QUIC协议就是TCP和TLS的优点集合。
2,如何快速的学习网络协议
前面已经提到一些参考书籍理论阐述是很充足,但是给初学者的感受就是较为抽象,难度偏大,学习时间长。因此本次专栏课程主要注重分析实际的网络数据包,如图2:
图 2
从实际报文的角度对于协议中的重点协议加以说明。通过具体的通信数据,使得我们对于计算机网络的认识不仅仅停留在理论阶段,而是实际的感受到协议在数据传输过程中的具体作用。同时也能够让初学者以能够快速的理解网络协议过程,让具有一定基础的程序员能够加深并很容易记住一些抽象的过程。
实际操作过程用到的工具是wireshark,这是一款应用最为广泛和著名的抓包分析工具,关于这款工具我有一个专栏《Wireshark从入门到精通》做了细致和深入的讲述,感兴趣的可以作为参考。当然为了保障专栏的完整性,我也会将以前写过的一些章节会加入到本专栏中方便读者的阅读。希望通过本专栏的介绍能够对于学习计算机网络协议的同学们产生一定的价值和帮助。
本文为优快云村中少年原创文章,未经允许不得转载,博主链接这里。