前言
如今计算机网络基本可以说是中、大厂面试必问的内容,但是现在好多文章的答案并不够全面深刻,有的则过于详细,不利于面试以下是借鉴资料和他人文章,总结常见计算机网络面试题,希望为大家带来帮助。
一、计算机网络分层体系结构(五层举例)
-
应用层:为应用程序提供交互服务。在互联网中的应用层协议很多,如域名系统DNS、HTTP协议、SMTP协议等。
-
传输层:负责向两台主机进程之间的通信提供数据传输服务。传输层的协议主要有传输控制协议TCP和用户数据协议UDP。
-
网络层:选择合适的路由和交换结点,确保数据及时传送。主要包括IP协议。
-
数据链路层:在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。
-
物理层:实现相邻节点间比特流的透明传输,尽可能屏蔽传输介质和物理设备的差异。
二、三次握手
三、四次挥手
四、为什么不是两次握手
五、四次挥手中为什么等待2MSL
六、HTTP和HTTPS区别
- HTTP协议是免费使用的,而 HTTPS 协议需要到CA机构申请证书,需要缴纳费用,HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL/TLS加密传输协议,信息是密文。
- HTTP的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全和HTTP通信相比HTTPS 通信会由于加减密处理消耗更多的CPU和内存资源。
- HTTP和HTTPS使用的端口也不一样,前者是80,后者是443。
七、对称加密与非对称加密
对称加密:
对称加密是指加密和解密使用同一个密钥的方式,一方通过密钥将信息加密后,把密文传给另一方,另一方通过这个相同的密钥将密文解密,转换成可以理解的明文。
非对称加密:
使用一对非对称密钥加密,即公钥和私钥,公钥可以随意发布,任何人都能获得,但私钥只有自己知道,发送密文的一方使用对方的公钥进行加密处理,对方接收到加密信息后,使用自己的私钥进行解密。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以叫作非对称加密。
八、什么是数字证书
九、HTTPS工作流程
HTTPS协议是安全的,因为HTTPS协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。但是HTTPS在内容传输使用的是对称加密,在证书验证阶段使用非对称加密。所以HTTPS加密方式是:对称加密 + 非对称加密混合。
① 证书验证阶段:
1)浏览器发起 HTTPS 请求;
2)服务端返回 HTTPS 证书;
3)客户端验证证书是否合法,如果不合法则提示告警。
② 数据传输阶段:
1)当证书验证合法后,在本地生成随机数;
2)通过公钥加密随机数,并把加密后的随机数传输到服务端;
3)服务端通过私钥对随机数进行解密;
4)服务端通过客户端传入的随机数构造对称加密算法&#