八股题解:
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: 使用事件触发通知,内核回调的方式, 避免了轮询,能够高效处理.