计算机网络考点分析与总结
我发现在计算机网络问的是真的多,比操作系统多太多了,而且问的范围也很大,可以说,在所有的八股文中,计算机网络 和 mysql 和 Java 语言,这三者可以说是同样多的,也是所有八股文中,占比最多的三门知识。
下面我先给大家分析一下计算机网络 各个知识点的考点以及大公司和小公司在计算机网络 上的考点,并且会按照出现的频率来给大家弄清楚考点,最后还有给出面试中都是怎么询问的(同一个问题有多种提问方式,我也都列出来了)
希望大家可以认真看一下,看完你内心也有一个大概了。
一、考点比例分布
我在统计的时候,把知识划分为应用层 + 传输层 + 网络安全 + 其他四个模块,大概 85% 的考点都在应用层 + 传输层,并且应用层和传输层出现的比例差不多一样,15% 在网络安全相,网络层和链路层,基本很少问,所以我们在复习的时候,是优先复习下应用层 + 传输层,其他网络层,链路层充当加深理解吧,就是把知识点了解下,然后掌握几道可能问题的题就差不多了。
二、大公司与小公司
看了很多份面经,小公司基本不考,像一些银行/金融之类的,倒是会问一些,不过问的比较简单,不痛不痒的,比如让你讲一下三次握手,或者问一下 tcp 和 udp 的区别。
总的来说就是,主 C++/Go 的大公司,这块问的最多,而且有些问的很细,可能会连续追问啥的。
三、超详细考点总结(按照出现频率排序)
下面我分模块,按照需要掌握的知识点以及面试官的提问方式来总结,并且会把相对高频的考点放在上面
1.1 应用层需要掌握的知识点(按照出现频率排序)
1、http:
- http和https的区别,
- http 常见请求方法(get和post的区别) + http 报文包含的一些属性 + http 常见状态码的含义(3xx额外关注下)
- http 长连接,开启/关闭
- http 存在哪些问题
- 1.0,1.1,2.0,3.0版本区别
2、https:
- Https 的加密过程(对称/非对称加密 + 摘要 + 数字证书)
- 理解数字证书的用处
- https的缺点
3、掌握 DNS 的解析过程 + 用到的协议
4、浏览器输入一个 url 的解析过程
5、理解 arp以及大致的原理 + 存在的安全隐患
6、ping协议的原理 也看下(ping协议不算应用层)
1.2 应用层的提问方式(安排出现频率排序)
1、讲一下https和http的区别
2、http和https的区别?https的加密过程?
3、https加密的机制了解过吗?
4、https为什么是安全的
5、Https连接流程
PS:2,3,4,5这几道可以说都是一道题
6、说说http请求报文包含什么?(追问:Content-Length知道吗?如果Content-Length的长度 大于报文的实际长度,分析下会有什么问题? )
7、Http的请求报文和响应报文各有哪几部分组成
8、HTTP1.0,1.1,2.0,3.0
9、打开一个网页 使用到了哪些其他协议?
10、上来先是 url 解析过程,然后引出了下面一堆问题:
11、涉及到dns的解析过程,如何进行解析的
12、http方法了解哪些
(1) 为什么要有这些不同的方法,post get 不就可以实现了吗
(2) get post 区别是什么
13、数字证书是什么?数字证书包含什么?
14、http,请求头,状态码?
15、http状态码有哪些(1xx-5xx),那讲一下301与302的区别?
16、499和502出现的原因是什么?
17、讲一下dns过程。给一个网址www.google.com,dns服务器如何逐级解析的?
18、DNS解析在网络不好的情况下怎么办
19、DNS解析请求的服务器单机并且响应速度慢怎么办
20、需要ARP解析的原因
21、说一下arp协议,arp协议有什么安全隐患?
22、HTTP如何保持长链接
23、ttp 协议和TCP协议的关系是什么
24、Http TCP 都有保活 keep-alive 机制 两者有什么区别
25、https中传输会经过网关,为什么网关不能知道他们的密钥
2.1 传输层需要掌握的知识点(按照出现频率排序)
1、三次握手
- 握手流程(包括状态码的变化)以及为啥需要三次
-
三次握手过程是否可以携带数据
-
seq可以从0开始吗?
2、四次挥手(可以问的问题比三次挥手多的多)
- 握手流程(包括状态码的变化)以及为啥需要四次
-
Time-wait 和 close-wait 状态码
-
Time-wait 过多应该如何处理
-
为什么需要等到 2ML
3、TCP与UDP
- 理解为啥 TCP 是可靠的,采用了什么方法
- 掌握流量控制和拥塞控制的原理和区别
- TCP和UDP的区别以及应用场景
- 如何实现一个可靠的 UDP
- TCP拆包粘包问题
- qq登陆/视频会议这些用到了哪些协议
- 套接字socket
2.2 传输层的提问方式(安排出现频率排序)
TCP的三次握手和四次挥手是重灾区:
1、讲一下四次握手流程,为什么需要四次握手?
2、讲一下tcp四次挥手,time-wait干嘛的,close-wait干嘛的,在哪一个阶段?
3、状态CLOSE_WAIT在什么时候转换成下一个状态呢?
4、我们看到CLOSE_WAIT出现在什么时候呢?
5、为什么要等 2MSL
6、服务端主动发起关闭还是客户端主动发起关闭TCP?(答了客户端,面试官不满意)
7、讲一下三次挥手,为什么是三次?两次不可以吗?
8、三次握手连接阶段,最后一次ACK包丢失,会发生什么?
9、第三次握手是否可携带数据
10、tcp和udp有什么区别?分别应用于哪些场景?
11、TCP协议如何保证可靠性
12、tcp如何保证有序
13、tcp如何保证不会接受重复的报文
14、Tcp粘包拆包问题?
15、TCP拥塞控制与流量控制区别?
16、现在我们视频面试用到哪些协议(DNS,HTTP,HTTPS,TCP,UDP),UDP用在哪里?
17、一台主机可以有多少个端口? (答:65535 ,这个值是可以修改的),为什么会有端口号的限制呢?与哪些因素有关
18、套接字的组成
19、假设一个服务器支持10万个客户端同时进行tcp连接,但是同一时刻,只有二三百的客户端传输数据,属于活跃连接,如何能快速查询哪些是活跃连接呢?
2、用什么数据结构,相当于让你设计一个服务器端的小程序,如何实现?
3.1 其他
1、对称加密和非对称加密,以及常见的加密算法
2、理解什么是sql注入攻击 + xss攻击 + cors 攻击
3、理解以太网协议
4、计算机网络四层模型,五层模型和七层模型都了解下
5、
3.2 其他(安全+其他几层划分在一起)
1、讲一下五层⽹络模型
2、xss攻击、cors攻击原理?
3、讲一下你了解的对称加密算法和非对称加密算法(DES,AES,RSA),非对称加密如何保证它的安全性?
4、数据链路层的作⽤
5、主机A与主机B数据链路层通信的过程
6、一个MTU最大是1500字节,那么最多包含多少的数据(ip头部字节大小为20~60,最多数据即1500-20=1480)