自己经历的面试问题总结
Last updated
Last updated
共同点都是在硬件和操作系统之上,虚拟机是完整操作系统,docker是应用容器引擎,是对进程的虚拟,基于操作系统之上虚拟
从启动方面,容器是秒级,虚拟机是分钟级
从资源方面,docker是在操作系统级别上虚拟,与内核交互,损耗低
从硬件方面,docker运行的镜像比虚拟机多,对系统利用率高
从隔离方面,docker属于进程级别隔离,隔离较弱,虚拟机是系统级别隔离
从安全方面,docker安全性较弱,docker的root用户和宿主机一样,一旦普通用户提升到root权限,可能会造成灾难性操作
从管理方面,dcoker集中和管理工具不成熟
从高可用和恢复行,docker可以对业务的快速部署和扩容伸缩
从交付方面,虚拟机可以通过镜像实现环境交付一致性,但docker只记录容器构建过程
Docker是开源应用容器引擎
K8s是开源的容器集群管理系统
通过各种 exporter 采集主机数据, 然后prometheus会采用http协议周期性的去export暴露的地址拉取监控样本数据
内核引导, bios自建,加载硬盘
运行 init, 确定运行级别
系统初始化
建立终端
进入系统登录界面
物理层
数据链路层
网络层
传输层
会话层
表示层
应用层
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次的探测报文,如果没有反应,会认为客户端故障,关闭连接