网络与数据库面试必知:TCP/IP、HTTP、数据库锁与优化

需积分: 10 6 下载量 113 浏览量 更新于2024-07-17 2 收藏 1.69MB PDF 举报
"该资源包含了计算机网络和数据库相关的面试问题,涵盖了从TCP/IP协议到操作系统,再到数据库管理和SQL的相关知识。" 计算机网络部分知识点: 1. TCP状态转换图: 描述了TCP连接从建立到结束的各个状态,包括SYN_SENT, SYN_RCVD, ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, TIME_WAIT等。 2. IP头部和TCP/UDP头部: IP头部包含了源和目标IP地址、协议号等信息;TCP头部则包含序号、确认号、端口号、窗口大小等字段,而UDP头部较简单,主要由源和目标端口号组成。 3. 网络7层模型: OSI七层模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,描述了网络通信的完整流程。 4. IP地址分类: 包括A、B、C、D、E五类,其中A、B、C用于主机,D用于多播,E保留不用。 5. 3次握手与4次挥手: 描述TCP连接建立和断开的过程,确保数据的可靠传输。 6. 交换机与路由器的区别: 交换机工作在数据链路层,处理MAC地址,而路由器工作在网络层,处理IP地址,实现不同网络间的通信。 7. TIME_WAIT(2MSL): TCP连接关闭后的状态,等待足够时间以确保所有数据都已传送并被接收。 8. TCP可靠传输、流量控制与拥塞控制: 通过序列号、确认应答、重传机制实现可靠性,通过滑动窗口机制进行流量控制,通过慢启动、拥塞避免、快速重传和快速恢复算法防止网络拥塞。 9. 网络编程步骤: 包括创建套接字、绑定、监听、接受连接和发送/接收数据等。 10. TCP与UDP的区别: TCP提供面向连接的、可靠的传输,而UDP是无连接的、不可靠的但效率更高的传输。 操作系统部分知识点: 11. 进程间通信方式: 包括管道、消息队列、共享内存、信号量、套接字等。 12. 常见信号: SIGINT(中断), SIGKILL(强制终止), SIGSTOP(停止), SIGTERM(优雅终止), SIGSEGV(段错误), SIGCHLD(子进程结束), SIGALRM(定时器报警)等。 13. 标准IO与文件IO的区别: 标准IO是缓冲的,而文件IO可能直接读写硬件。 14. wait和waitpid: wait等待所有子进程,waitpid可以指定等待特定子进程。 15. 父进程与子进程共享内容: 如打开的文件描述符、环境变量、信号处理函数等。 16. ELF文件格式: 用于Linux系统中的可执行文件、共享库和核心转储等。 17. Linux程序启动过程: 包括加载程序、解析可执行文件、分配内存、初始化堆栈和数据段等。 18. 死锁的四个必要条件: 互斥、请求与保持、不剥夺、环路等待。 19. 处理死锁的方法: 预防、避免、检测与恢复。 20. vfork函数: 创建一个与父进程共享所有资源的子进程,常用于实现进程间的特殊通信。 数据库部分知识点: 21. SQL的ACID属性: 原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。 22. 四种事务隔离级别: 读未提交(RU)、读已提交(RC)、可重复读(RR)、串行化(Serializable)。 23. 事务并发问题: 脏读、不可重复读、幻读等。 24. 数据库锁: 行级锁、页级锁、表级锁等,用于保证数据一致性。 25. 两段加锁协议: 在事务提交前完成所有锁定,提交后释放所有锁定。 26. InnoDB与MyISAM比较: InnoDB支持事务,MyISAM不支持;InnoDB有行级锁定,MyISAM为表级锁定。 27. 索引结构: B树、B+树、哈希索引、空间索引、全文索引。 28. 索引分类: 聚簇索引(数据行与索引存储在一起)和非聚簇索引(索引与数据分开存储)。 29. SQL优化: 使用合适的索引、减少全表扫描、避免笛卡尔积、优化JOIN操作等。 30. 分库分表: 通过水平切分和垂直切分来解决大数据量带来的性能问题。 31. MongoDB: NoSQL数据库,支持文档型数据存储,具有弹性扩展和高可用性。 32. MongoDB索引类型: 单键索引、复合索引、唯一索引、地理空间索引等。 33. 性能分析: 使用 Explain 等工具分析SQL查询性能,并进行调优。 这些知识点涵盖了计算机网络、操作系统和数据库的基础面试内容,对于准备相关职位的面试者来说非常有价值。