1. TCP/IP 协议栈详解
问:请详细描述TCP三次握手和四次挥手的过程,并解释为什么需要三次握手?
答:三次握手是为了建立可靠的连接,防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。挥手时,FIN_WAIT_2状态的存在是为了等待上一个发送的数据包被确认。
2. HTTP与HTTPS区别
问:HTTPS是如何保证安全的?SSL/TLS握手过程是怎样的?
答:HTTPS通过SSL/TLS协议对数据进行加密。握手过程包括客户端发送支持的加密套件、服务器返回证书及公钥、客户端验证证书并生成预主密钥、双方协商生成会话密钥等步骤。
3. DNS解析过程
问:在浏览器输入URL到页面展示,DNS解析经历了哪些步骤?
答:本地缓存 → 递归DNS服务器 → 根DNS → 顶级DNS → 权威DNS。涉及迭代查询与递归查询的区别。
1. 常用命令
问:如何查看当前系统的CPU负载?如何查找占用内存最高的进程?
答:使用 top 或 uptime 查看负载;使用 ps -aux --sort=-%mem | head -n 10 查找高内存进程。
2. 文件权限与inode
问:解释Linux文件权限rwx的含义,inode是什么?
答:rwx分别代表读、写、执行权限。inode是文件系统的元数据结构,存储文件的属性信息(如权限、所有者、大小、时间戳等),但不包含文件名。
3. 日志分析
问:如何实时查看系统日志并过滤关键字?
答:使用 tail -f /var/log/syslog | grep error。
1. MySQL基础
问:索引失效的场景有哪些?如何优化慢查询?
答:索引失效包括对索引列进行函数运算、类型隐式转换、模糊查询以%开头等。优化慢查询需使用Explain分析执行计划,优化SQL语句或添加合适索引。
2. Redis原理
问:Redis的数据结构有哪些?持久化机制RDB和AOF的区别?
答:String, List, Set, Hash, ZSet等。RDB是快照形式,恢复快但可能丢失数据;AOF是日志形式,数据安全性高但文件较大。
1. 网络连通性问题
场景:用户反馈无法访问某个网站,请描述你的排查思路。
答:1. 检查本地网络连通性(ping);2. 检查DNS解析(nslookup/dig);3. 检查端口连通性(telnet/curl);4. 检查中间网络设备路由;5. 检查服务端状态。
2. 服务器性能瓶颈
场景:服务器CPU使用率100%,如何定位原因?
答:1. 使用top查看哪个进程占用高;2. 使用top -Hp查看该进程下的线程;3. 使用strace或perf分析进程系统调用或热点代码;4. 结合业务日志分析是否流量突增或死循环。