# 自己经历的面试问题总结

### 面试问题一： 说下虚拟机和容器区别

* 共同点都是在硬件和操作系统之上，虚拟机是完整操作系统，docker是应用容器引擎，是对进程的虚拟，基于操作系统之上虚拟
* 从启动方面，容器是秒级，虚拟机是分钟级
* 从资源方面，docker是在操作系统级别上虚拟，与内核交互，损耗低
* 从硬件方面，docker运行的镜像比虚拟机多，对系统利用率高
* 从隔离方面，docker属于进程级别隔离，隔离较弱，虚拟机是系统级别隔离
* 从安全方面，docker安全性较弱，docker的root用户和宿主机一样，一旦普通用户提升到root权限，可能会造成灾难性操作
* 从管理方面，dcoker集中和管理工具不成熟
* 从高可用和恢复行，docker可以对业务的快速部署和扩容伸缩
* 从交付方面，虚拟机可以通过镜像实现环境交付一致性，但docker只记录容器构建过程

### 面试问题二： 说下K8S与Docker区别

* Docker是开源应用容器引擎
* K8s是开源的容器集群管理系统

### 面试问题四： prometheus如何收集监控数据

> 通过各种 exporter 采集主机数据， 然后prometheus会采用http协议周期性的去export暴露的地址拉取监控样本数据

### 面试问题五：操作系统启动流程

* 1. 内核引导， bios自建，加载硬盘
* 2. 运行 init， 确定运行级别
* 3. 系统初始化
* 4. 建立终端
* 5. 进入系统登录界面

### 面试问题六：OSI七层模型

* 物理层
* 数据链路层
* 网络层
* 传输层
* 会话层
* 表示层
* 应用层

### 面试问题六： TCP与UDP协议不同

* TCP 可靠面向有连接，常用于点对点，安全性高
* UDP 高速面向无连接，常用于点对面，安全性低

### 面试问题七： 三次握手和四次断开过程

* 第一次握手： 建立连接时，客户端发送syn(syn=j)包到服务器，客户端并进入SYS\_SENT状态，等待服务器确认；
* 第二次握手： 服务器收到syn包，确认客户的syn(ack=j+1)，同时自己也发送一个syn(syn=k)包，既SYN+ACK包，服务器进入SYN\_RECV状态
* 第三次握手： 客户端收到服务器SYN+ACK包，向服务器发送确认包ACK(ack=k+1),此包发送完毕，客户端和服务器端进入ESTABLISHED状态，完成三次握手

### 面试问题八：为什么连接的时候是三次握手，关闭的时候却是四次握手？

> 关闭的时候，服务端回回复ACK报文，收到了断开请求，但不会立即关闭，需要服务端把所有的报文发送完，才会发送 FIN 报文

### 面试问题九：为什么不能用两次握手进行连接

> 两次握手让彼此知道对方是谁，第三次是确实准备好

### 面试问题十：如果已经建立了连接，但是客户端突然出现故障了怎么办？

> 服务端会有TCP计时器，默认2个小时，如果两个小时没有收到客户端发送的数据，服务器会发送默认10次的探测报文，如果没有反应，会认为客户端故障，关闭连接


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://close.gitbook.io/yun-wei-bi-ji/go/mian-shi/zi-ji-jing-li-de-mian-shi-wen-ti-zong-jie.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
