编程导航教程

首页

计算机网络学习路线 | 26 年最新零基础到精通一条龙(万人收藏⭐️)

2024-05-11 15:09
阅读 2.0w
下载文档
评论
问答
笔记
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
大纲
    6

    编程导航学习网站:学编程、做项目、拿 Offer!

    企业高频面试题库:开始刷题,面试遇原题!

    精选简历模板大全:1 分钟搞定简历!

    AI 资源导航网站:获取最新 AI 黑科技!

    1 对 1 模拟面试:随时随地提升面试能力

    计算机网络求职高频面试题:开始刷题

    开篇介绍

    计算机网络是指将地理位置不同的多台计算机或设备通过通信线路进行连接,从而实现信息传递和资源共享,或者组成一个更完整的计算机系统。

    为什么要学计算机网络?

    如今,我们开发的绝大多数程序都依赖网络来加载文件和数据,比如网站、小程序、后台程序等,因此计算机网络的重要性不言而喻。

    学习计算机网络后,我们能够了解数据在不同计算机之间传输的过程和细节,一方面可以帮助我们了解一些基本的、生活中比较实用的网络知识,比如服务器、带宽、网速、流量等。另一方面,学好计算机网络,有助于我们开发出性能更高、更安全稳定的前端和后台应用。比如使用 HTTP 2.0 协议来代替 HTTP 1.x 来减少网页加载时间、使用 HTTPS 来提高网络的安全性、选用 UDP 而不是 TCP 协议来提高多人实时游戏数据的传输速度、在网络模型的第 4 层和第 7 层去实现负载均衡和 DDOS 防护等。

    计算机网络也有很多知识点和设计值得学习,可以应用到我们平时的项目开发、系统架构中,比如计算机网络分层思想、TCP 三次握手和四次挥手的连接机制、TCP 通过滑动窗口来进行拥塞控制等,学习这些思想也有助于我们更好地理解框架的设计和源码。

    此外,和操作系统一样,计算机网络也是 考研和面试的重点(尤其是前端和服务端开发),如果是大学期间的小伙伴,在课堂上就要认真学习!

    如果你想要从事网络方面的工作,比如网络工程师、网络运维、网络实施等,计算机网络一定要重点学习!核心中的核心!

    学习条件

    1. 至少学过一门编程语言(计算机网络理论知识较多,直接学容易被劝退)
    2. 急着找工作的同学可以先不学,等面试前直接看一些题目即可(从事网络方面的工作则必须好好学,不能等到面试再学)

    学习路线图

    计算机网络学习路线思维导图

    整体学习建议

    1)从整体到局部:计算机网络的理论知识较多,初学不建议啃教材或者专业书籍,而是通过一些趣味科普书籍或视频来逐步了解。建议和写文章一样,从整体到局部去学计算机网络,先了解有哪些网络分层、每个层次的作用和联系,再去按序了解每个层次内部的协议和细节。

    2)不要死记硬背:计算机网络知识不要去死记硬背,哪怕记不住也没关系,等自己开发程序的时候可以思考数据传输的过程(比如网站加载的过程),通过抓包等实操的方式来加深印象。

    3)重点突出:不从事网络相关工作的话,计算机网络不用学的很深入,学习完重点知识就够了,甚至直接通过看面试题去学习也完全没有关系。

    4)善用 AI 辅助学习:遇到不理解的网络概念或协议,可以问 AI 工具(如 ChatGPT、DeepSeek)让它用通俗的语言解释,或者让它画图演示数据传输过程。更多 AI 工具推荐可以看 AI 资源导航。

    AI资源大全网站

    5)考虑考证:如果要从事网络相关工作(比如网络工程师),建议去考一些认证,比如华为认证、思科认证等等,可以自行了解一下。

    知识体系

    学习重点

    • 计算机网络分层模型以及各层的作用
    • 数据在两台计算机之间的整个网络传输过程(网站加载过程)
    • 应用层协议:HTTP、HTTPS、DNS
    • 传输层协议:TCP(重中之重)、UDP

    知识点大全

    互联网基本概念

    • 计算机网络分类
    • 计算机网络性能指标(速率、带宽、时延、利用率、往返时间、丢包率、吞吐量)

    计算机网络分层模型【重点】

    • 分层思想
    • 协议和服务
    • OSI 七层模型
    • TCP / IP 四层模型

    应用层【重点】

    • 作用和原理
    • 应用进程通信方式(客户 / 服务器方式、P2P 对等方式)
    • 常用协议
      • HTTP【重点】
      • HTTPS【重点】
      • DNS【重点】
      • FTP
      • DHCP
      • NTP
      • 邮件相关协议
    • CDN

    传输层【重点】

    • 作用和原理
    • 复用和分用
    • 常用协议
      • TCP【重中之重】
        • 连接建立和断开(三次握手、四次挥手)
        • 流量控制
        • 拥塞控制
        • 超时重传机制
        • 可靠传输实现
        • 报文首部格式
      • UDP
        • 报文结构
      • UDP 和 TCP 的对比及应用场景

    网络层

    • 路由器
    • 常用协议
      • IP 协议(地址划分、IPV4、IPV6、数据报首部格式)
      • ICMP 协议
      • ARP / RARP 协议
      • NAT 协议
      • OSPF 协议
      • BGP 协议
    • 路由选择算法
    • VPN 技术

    数据链路层

    • 作用和原理
    • 封装数据帧
    • 差错控制
    • 可靠传输
    • MAC 地址
    • PPP 协议

    物理层(简单了解即可)

    • 作用和原理
    • 物理介质
    • 数据交换方式
    • 信道复用

    网络安全

    • 加密
    • 认证
    • 防火墙
    • 常见攻击及防范

    学习路线

    建议大家按照以下 3 个阶段来学习:

    阶段 1:基础学习

    学习目标:了解计算机网络基础知识,跟着一个视频或书籍过一遍,对网络分层模型和重点知识有个大致的印象即可。

    学习建议

    1)急于求职的话,本阶段可跳过,直接去看面试题。

    2)先看有趣的课外书:自学网络可能会比较枯燥,建议先看看有趣的课外书,比如《图解 HTTP》,当个睡前读物即可。

    3)选择适合的视频课程:正式学习网络的话,如果目标是求职,可以看《计算机网络微课堂》视频课来入门。如果目标是考研升学,还在学校的同学好好上课一般就没问题了,自学的话可以看《王道计算机考研 - 计算机网络》视频,也可以阅读《计算机网络 - 自顶向下方法》或《计算机网络 - 谢希仁》等书籍。

    4)面试前重点背八股:后面要面试前,再重点去背一些八股文就行。

    学习资源

    • ⭐ 计算机网络微课堂:强烈推荐,适合求职
    • 王道计算机考研 - 计算机网络:适合考研
    • 中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版)》:适合考研、学术
    • 中国大学 MOOC 哈工大计算机网络课程
    • ⭐ 《图解 HTTP》 提取码: 9gc7:轻松有趣的HTTP入门书
    • ⭐ 《图解 TCP / IP》 提取码: 9gc7:图文并茂的网络协议入门书
    • 《网络是怎样连接的》 提取码: 9gc7:通俗易懂的网络原理
    • 《计算机网络(第 7 版)》 谢希仁 提取码: 9gc7:经典教材
    • 《计算机网络 - 自顶向下方法(第 6 版)》 提取码: 9gc7:大黑书,难度比较大,一般不推荐
    • 浙大计算机网络基础:大学课件

    阶段 2:实际运用

    学习目标:根据自己的职业发展方向进行不同的实践,运用和巩固计算机网络知识。

    学习建议

    本阶段可跳过,在开发中实践即可。

    根据自己的职业发展方向进行不同的实践,比如:

    1. 后端开发:基于 Socket 开发自己的通讯应用 / 框架、实现自己的浏览器、阅读开发框架源码等
    2. 前端开发:使用 HTTPS 协议增加网站安全性、使用 HTTP 2 协议提高网站加载速度、使用控制台等抓包工具分析请求 / 响应
    3. 网络工程师:使用华为 eNSP 或 Cisco Packet Tracer 模拟器搭建网络拓扑并进行配置
    4. 安全工程师:使用 Wireshark 之类的抓包工具分析数据包 / 数据帧

    学习资源

    • 《计算机网络-自顶向下方法(第 6 版)》编程作业
    • 《计算机网络 - 自顶向下方法》习题 / 编程 / 实验答案
    • 哈工大计算机网络实验

    阶段 3:备战面试

    学习目标:掌握计算机网络高频面试题,顺利通过面试。

    学习建议

    1)优先看重点:面试时对计算机网络的考察主要是网络分层模型、HTTP/HTTPS、TCP/UDP 协议、网站加载过程等,要重点复习。

    2)结合专业知识:不同方向的专业知识会结合计算机网络来考察,比如前端的网站加载过程、后端的负载均衡实现等。

    3)多看真实面经:真实面经大全,了解不同公司对计算机网络的考察重点。

    更多求职干货:

    • 鱼皮的保姆级求职指南
    • 鱼皮的保姆级写简历指南
    • 编程导航的求职干货分享
    • 老鱼简历 - 写简历工具
    • 真实面经大全
    • 几百场真实面试视频
    • 1 对 1 AI 模拟面试
    • 面试题讲解视频 - 面试鸭 B 站账号

    面试考察形式

    面试时对计算机网络的考察主要有 5 种形式(主要针对前后端开发):

    1. 直接问你某个具体的知识点,比如:讲解 TCP 三次握手和四次挥手机制
    2. 结合不同方向的专业知识来考察,比如:谈谈网站的加载过程(前端)、聊聊四七层负载均衡的实现和优缺点(后端)
    3. 通过实际开发中遇到的问题考察你的网络基础,比如:网站加载过慢,有哪些优化方式?
    4. 问你某个框架(轮子)的核心设计和源码细节,可能会包含计算机网络知识点的运用,比如 Netty 针对 UDP 协议的封装设计
    5. 系统设计类问题,比如:如何实现一个浏览器?(这种问题相对比较少)

    经典面试题

    1. 计算机网络分层结构,各层有哪些常用协议?【高频】
    2. TCP 和 UDP 协议的区别?如何选择应用哪个协议?【高频】
    3. TCP 为什么需要三次握手和四次挥手?为什么不是两次握手、四次握手?为什么不是三次挥手?【高频】
    4. TCP 滑动窗口和拥塞控制机制
    5. TCP 如何保证可靠性?
    6. HTTP 协议常用状态码和含义
    7. HTTP 和 HTTPS 协议的区别?【高频】
    8. HTTPS 的原理、请求流程?
    9. HTTP 2 为什么快?
    10. HTTP 的短连接和长连接,以及如何选择?
    11. POST 和 GET 请求的区别【高频】
    12. 浏览器中输入URL 返回页面的过程?(包括 DNS 解析过程)【高频】
    13. Cookie 和 Session 的区别?

    面试题库

    • ⭐ 计算机网络面试题 - 面试鸭

    面试鸭刷题神器热门题库

    加油小伙伴们 💪🏻!

    程序员必备资源

    1)程序员学习交流圈:极客教程、实战项目、求职宝典

    2)程序员面试八股文:实习/校招/社招高频考点、企业真题解析

    3)程序员写简历神器:专业模板、丰富例句、直通面试

    4)AI 知识资源大全:前沿技术、最新 AI 资讯、提示词大全

    5)1 对 1 模拟面试:实习/校招/社招面试拿 Offer 必备