每日八股
1. TCP粘包和拆包
2. HTTPS和HTTP的区别
3. IO网络模型有哪些
4. select/poll/epoll是什么
2. HTTPS和HTTP的区别
3. IO网络模型有哪些
4. select/poll/epoll是什么
全部评论
4. 都是用来实现IO多路复用的系统调用,select使用数组管理文件描述符(Socket),需要全量遍历,poll改为链表,解决上限问题,而epoll使用红黑树管理Socket,高效增删改,采用事件驱动机制:给每个Socket注册一个回调函数,只关注活跃的,不需要全量遍历
3. 阻塞式 IO:调用后一直阻塞等待。非阻塞式IO:轮询发起请求。IO 多路复用:一个线程同时监控多个连接。信号驱动I/O:注册信号处理函数,数据好了发送信号,异步I/O:发起请求后立即返回。内核完成后直接将数据拷贝到用户缓冲区,并发送信号通知进程。
2. HTTPS的端口号变为443,另外SSL加密防窃听,校验和防篡改,身份认证防冒充。
1. 因为TCP是面向字节流的,不保留消息的边界。
粘包是客户端发送多个数据,服务端接受到一个数据,解决方法有特殊符号分割或者头部固定长度作为长度。
拆包时因为最大报文段长度的限制,导致客户端发送一个数据,服务端接收多个数据
相关推荐
查看9道真题和解析