八股题解: 1 TCP & UDP 区别; TCP: 面向连接, 可靠, 字节流, 为了保证可靠,牺牲了性能(效率) UPD: 无连接,不可靠, 高效 三次握手与四次挥手 第一次握手请求 SYN(X) (发起端) 第二次握手回包 SYN(Y)+ACK(X+1) (接收端) 第三次握手回报 ACK(Y+X) 第一次挥手: FIN 第二次挥手: ACK 第三次挥手: FIN 第次挥手: ACK (ACK之后进入TIME_WAIT状态) 短连接长连接,***场景下用哪个比较好; 短连接一次请求处理之后, 断开连接,下次请求再重新连接. 例如http1.0的时候,每一次http请求都是一次新的连接 长连接连接之后, 长时间保持, 需要发送数据是直接使用连接, 例如很多游戏应用使用长链接处理客户操作. TLS 握手流程: 客户端和服务器交换 Hello 信息:确定协议版本、加密套件、随机数等。 服务器发送证书:客户端验证服务器身份。 密钥交换:客户端和服务器生成共享的“预主密钥”,并通过 Diffie-Hellman 或 RSA 等算法生成会话密钥。 完成握手:通过加密的 Finished 消息确认握手成功。 数字证书 数字证书是一种基于公钥加密技术的电子文件,用于验证服务器(有时包括客户端)的身份,并在建立 TLS 安全通信时分发公钥. IO 多路复用,select,poll,epoll 区别; select: 使用轮询(效率低)是否有感兴趣的事件发生, 底层使用bitmap标记, 现在了1024的文件描述服上限 poll: 使用pollfd数组替换bitmap的实现,没有1024的限制了, 还是轮询(效率低) epoll: 使用事件触发通知,内核回调的方式, 避免了轮询,能够高效处理.