怎样学好计算机网络,如何才能学好计算机网络

计算机网络几乎是和计算机同步发展起来的 , 发展至今 , 网络几乎与电力一样 , 成为现代社会的基础设施 。互联网发展至今 , 几乎每一次技术大革新都是由基础网络的升级所引发的 , 比如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连接?
诸如此类的问题还有很多很多 , 这些问题在教科书找不到答案 , 在互联网上也找不到答案 , 那是因为我写的答案还没有发布到互联网上 。

    推荐阅读