八股文骚套路系列指计算机基础来啦!✌️ 今天带来的是计算机网络相关的内容。
这篇文章,我主要会介绍如何准备计算机网络面试,推荐一些不错的书籍。并且,我还会总结出最常见的一些计算机网络面试问题,以方便大家把握重点。
另外,我在这个系列,也会逐渐将自己在准备秋招面试过程中的一些心得,以及一些技巧穿插的进行讲述,希望对大家有帮助!
计算机基础这块一般是中大厂面试问的比较多,并且不同的大厂面试之间对其重视程度也不一样。比如说字节、腾讯面试就非常重视计算机基础比如操作系统和计算机网络这块,他们会问很多相关的问题。而阿里、京东的面试偏向 Java 生态,像常用的一些中间件、框架经常会成为面试的重点。像阿里、京东的面试当然也会问计算机基础比如操作系统和计算机网络,不过问的深度相对来说比较一般。另外,如果你面客户端的岗位的话,计算机网络会问的更多一些。
最近校招已经开始了一段时间了,如果你目前的计算机网络基础不太好,可以先跟着我做救急准备,把下面这些知识点搞明白背清楚应付面试就差不多了,只要你别和面试官吹你熟悉计算机网络。按这篇文章救急准备的话,你对自己的评价应该是计算机网络基本掌握。
大家都知道,计算机网络的分层体系有几套不同的标准,如果你考研的话,在天勤和王道上看到更多的是按照OSI的七层网络参考模型来讲(我觉得用天勤和王道来学习计算机网络还不错),但是实际应用的话更多的是按照五层的体系结构来划分。面试过程中偏向与应用,所以问的比较多的也就是应用层、运输层、网络层的协议,物理层和数据链路层的东西面试基本不会被问到,所以准备面试过程中这块就不用看了。
我把要准备的问题,以及面试你要答到什么程度列在下面,就按这个准备面试应该差不多了。下面的问题在 JavaGuide 中都能找到解答,我是想在Guide哥的基础上告诉大家这些问题面试官常问的是哪些?一般会怎么问?以及你在回答问题时应该把哪些知识点答出来。
项目地址:https://github.com/Snailclimb/JavaGuide 。
网络层
网络层面试问的也相对较少,主要就是问IPV4,偶尔问一下ARP地址解析协议的的工作原理。
1.首先要记清楚 IPV4 地址是怎么分类的、以及地址的格式。这里经常结合代码题一起问你,我和很多同学都在面试中被面试官要求写一个程序判断给定的字符串是否是 IPV4 地址。
2.IPV4 子网划分面试中不怎么问,笔试题时经常有这个问题。
3.了解 IP 地址和 Mac 地址的区别,了解 ARP 地址解析协议并了解其工作原理。
传输层
面试中计算机网络的问题最常出现在这一章中。
1.记清楚 TCP 和 UDP 的区别。
2.TCP三次握手和UDP四次挥手。
这是面试计算机网络最最最常问的问题!!!你计算机网络就算其它的什么也不会,这个问题你必须要记清楚,如果面试官问出你这个问题你都答不上,面试官估计觉得你连敷衍都不想敷衍他了。
当面试官问你三次握手和四次挥手时,你要答出这三个点来。(1)为什么要三次挥手和四次挥手,如果不这样做会有什么影响。(2)三次握手四次挥手的整个流程。(3)有的面试官只要你答出三次握手和四次挥手的大体流程就好了,但是有的面试官会要求你答出三次握手和四次挥手时发送端和接收端分别发了哪些标记。就像下面 Guide哥 画的这张图一样。
3.TCP协议如何保证可靠传输
把 ARQ 协议、滑动窗口、流量控制、拥塞控制等回答清楚就算到位了。
应用层 :
(1)另一个最最最常问的问题,”在浏览器中输入 URL 地址到浏览器显示网页这个过程中计算机网络做了什么“。
这个问题无论时考研还是找工作都是常见的,建议把 JavaGuide 中这个问题的总结熟读并全文背诵。
(2)HTTP 1.0 和 HTTP 1.1 的主要区别
这个也要了解一下。
(3)HTTP 和 HTTPS 的区别
这个也是面试常考问题,这个问题展开以后能问的就比较多了。
在回答这个问题时你首先分别介绍一下 HTTP 和 HTTPS 的原理,以及区别。大致就是 HTTP 是通过明文在网络上传输的,HTTPS 是加密的。然后有的面试官问到这也就可以了,有的面试官不讲武德,想搞偷袭,会继续让你讲 HTTPS 建立连接的流程、然后会继续追着你问SSL 的工作流程。建议把这里好好准备一下,面试官一问你就可以展开讲,你就能消耗很多面试时间,这样面试官问其它问题的时间就少了,嘿嘿。
(4)HTTP请求常见的状态码
背几个常用的就好。
(5)DNS域名系统
这里你要可以描述清楚工作原理。也是面试常问问题,当除考研我也重点背过这里。
网络接口层
把网卡、网桥、交换机的概念、用途简单了解下就好,一般面试官不会问。
好了,把这些问题搞清楚,应付面试官应该就没什么问题了,赶紧去总结下答案然后好好背吧。如果你时间充分,想系统学一下计算机网络,那你就接着往下看。
如果想要系统地学习计算机网络相关的知识,首推 机械工业出版社的《计算机网络——自顶向下方法》 。
这本书的目录清晰,按照 TCP/IP 五层模型逐层讲解,对每层涉及的技术都展开了详细讨论,基本上高校里开设的课程的教学大纲就是这本书的目录了。
可能有一些小伙伴的学校用的是谢希仁老师的《计算机网络》这本书。其实,我个人是不太推荐这本书的。这本书的内容确实很详细,不过,很多地方有点过于啰嗦了。
《计算机网络——自顶向下方法》这本书被分成了 9 章,比较重要的章节及其介绍如下:
- 第 1 章 计算机网络和因特网 :主要讲了计算机网络相关的一些基础概念比如因特网、协议的定义。
- 第 2 章 应用层 :主要讲了应用层的各种协议比如 HTTP、FTP、SMTP 和 一些重要的概念比如 DNS、P2P 应用。
- 第 3 章 运输层 : 主要讲了运输层的相关协议比如 UDP 、TCP 。
- 第 4,5 章 网络层 :主要讲了网络层相关的各种协议比如 ICMP、IPv4 协议和各种网络层的相关概念比如路由器、防火墙。
- 第 6 章 链路层和局域网 :主要讲了链路层(也叫网络接口层)相关的概念和协议比如差错检测和纠正技术、多路访问链路和协议、MAC 协议。
针对 HTTP 这一章节,你还可以结合 《图解 HTTP 》这本比较有趣的书籍来学习。