计算机网络几乎是和计算机同步发展起来的,发展至今,网络几乎与电力一样,成为现代社会的基础设施。互联网发展至今,几乎每一次技术大革新都是由基础网络的升级所引发的,比如90年代宽带网络的出现,导致了互联网的普及,2000年后移动网络的出现直接引发了移动互联网的繁荣。如何成为一个合格的网络工程师,个人认为要从理论实践两方面入手,在理解基础理论的基础上动手实践,这样可能会达到事半功倍的效果。
现在网络的理论基础——OSI七层模型
在网络发展的早期(20世纪80年代前),计算机网络是有各家厂商自己独立建造的,不同厂家之间的设别无法互联互通,所以大规模网络发展速度很慢。到了80年代中期,ISO国际标准化组织推出了OSI七层开放模型,这才确定了计算机网络的基础理论架构并沿用至今,可以说到目前为止,几乎所有的计算机网络都是参考OSI七层模型来实现的。
所以如果要学习计算机网络,在基础理论上,OSI七层模型是一个绕不过的坎。OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互连系统参考模型。每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI的服务定义详细说明了各层所提供的服务。某一层的服务就是该层及其下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是怎么实现的无关。
对于七层理论,它本身可能知识个框架协议,并不涉及具体的协议细节,所以一般刚入门的话是会摸不到头脑的。步骤上可以先从比较高的层面去理解,然后再到每层去详细了解。建议可以选择一种网络,比如固网,然后将固网在七层中对应的协议找出来细细理解。并找些重点协议(比如TCP/IP)仔细研读。
动手实践是最好的方式
对于理论的理解,最好是要在实践基础上,而且计算机网络是一门特别讲求实践的工程科学。有些基础的网络协议,必须要动手才会理解深刻。比如对于TCP/IP协议的理解,就需要自己动手配置网络,配置一些应用,这样就会对IP地址,端口这些概念了然于心。此外,有机会的话要多接触一些主流的网络设备,比如华为,思科等,掌握一些这些设备的基本设置,学会自行组网。对于网络工程师来说,前期的一些网络配置什么的,只要有机会实践,还是相对比较容易掌握的,难得是网络优化以后组网方案得设计等,这些需要具备一定得经验积累后才会逐步有所体会。
要想学好计算机网络,必须学会抓包。连抓包都不会,想学好计算机网络等于做梦。
抓好包了,还需要分析协议字段,还需要分析时序。没有扎实的协议理论知识,看到报文也是白搭,因为你不知道哪些报文是和本次通信相关的、哪些又是无关的。
面对浩如烟海的报文,需要把相关的内容给过滤出来,如同警察破案,需要缩小嫌疑人的包围圈,这样会节省大量的时间。
把报文过滤出来,就可以分析了?
明文的报文非常好分析,因为明文的报文,通常是指没有加密的报文,协议头、协议体是人类人类自然阅读体,只要认识中英文,阅读起来就如同看白话文一样简单。
但是,那些被加密的报文,比如ESP、TLS,你想研究的协议报文全部被外层协议头ESP/TLS之流封装起来,然后加密传输,你怎么去分析内层货物报文?
如果把ESP/LTS比喻成集装箱,那么内层的协议就是被运输的货物,集装箱装载好货物,就锁起来,只有到达终点,货物的主人才可以用钥匙打开货柜,才能知道货物是什么样子!
抓包的行为就如同高速收费站的摄像头拍照,凡是经过闸口的集装箱统统拍照留念。但是通过照片永远都不会知道集装箱里装载的是什么货物。
难道检查站的工作人员不能看货柜里的货物吗?
当然可以了,前提是有钥匙。
ESP/TLS/SSH的加密流量,是典型的对称加密,通信双方的钥匙是一摸一样的。不仅收货人可以打开,发件人同样可以打开。
互联网、无线局域网、5G移动网络,加密流量慢慢成为了主力军。当你抓包时,除了ARP、DNS、ICMP这些是明文,还包括TCP三次握手、四次分手是明文,你看到的大多数是TLS加密流量。
如果你使用的是VPN,看到的只有一种或几种加密流量,ESP/TLS/DTLS,全加密了,怎么分析内层协议?
如果一切都那么简单,计算机网络压根不会那么难学了!
接着来谈另外一个话题,即使所有的加密报文都被Wireshark破解了,以明文可读的方式呈现在你面前,可以解答出我以下几个问题吗?
- 为何TLS要跑在TCP上,而不是UDP上?
- TLS的底层是否一定要TCP?
- TLS除了跑在TCP上,还可以跑在什么协议上?
- 为何DTLS可以跑在UDP上?
- TLS在握手协商阶段,从明文传输切换倒密文传输,在明文传输阶段没有报文完整性保护,就不担心报文被第三方篡改?
- 为何很多加密算法都有初始化向量,主要意义是什么?
- 为何电脑总是无法访问某些https网站?
- 什么是漫游?漫游包含哪些关键技术?
- 为何商用的无线局域网可以实现快速漫游,包含哪些黑科技?
- 为何5G手机可以在高速列车上可以保持TCP连接?
诸如此类的问题还有很多很多,这些问题在教科书找不到答案,在互联网上也找不到答案,那是因为我写的答案还没有发布到互联网上。
本文来自投稿,不代表天一生活立场,如若转载,请注明出处:http://tiyigo.com/it/40772.html