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