浙江建设职业技术学院塘栖校区网站,重庆唐卡装饰口碑怎么样,微信官方网站注册,搜索关键词排行榜TCP和UDP有什么区别#xff1f;TCP三次握手不是两次#xff1f;
TCP#xff1a;面向连接#xff0c;可靠的#xff0c;传输层通信协议。点对点#xff0c;占用资源多#xff0c;效率低。 UDP#xff1a;无连接#xff0c;不可靠#xff0c;传输层通信协议。广播TCP三次握手不是两次
TCP面向连接可靠的传输层通信协议。点对点占用资源多效率低。 UDP无连接不可靠传输层通信协议。广播协议简单占用资源少效率高。 两次握手客户端在第一次握手推出后造成资源浪费。
JAVA有几种IO模型
BIO同步阻塞IO可靠性差吞吐量低。适用于连接少且比较固定的场景。JDK1.4唯一选择。 NIO同步非阻塞IO可靠性好吞吐量较高。适用于连接多且连接短操作例如聊天室Netty。JDK1.4。 AIO异步非阻塞IO可靠性好吞吐量高适用于连接多且连接长操作例如相册服务器视频流JDK1.7 同步异步针对请求阻塞非阻塞针对客户端 客户端发请求一直等待服务器响应客户端阻塞请求同步 客户端发请求轮询服务器响应客户端非阻塞请求同步 客户端发请求等待服务器响应客户端阻塞请求异步 客户端发请求不等待服务器返回响应客户端非阻塞请求异步
JAVA NIO核心组件
Channel Buffer Selector Buffer缓冲区手动或自动将数据送到channel/client。 Channel接口类似流每个Channel对应一个Buffer缓冲区。Channel会注册到Selector上用于读写数据 Selector选择器能够检测多个注册的通道是否有事件发生。如果有事件发生对该事件进行相应的处理只用一个线程去管理多个通道连接极大地减少了系统开销简化了初始化成本和多线程之间上下文切换的成本。
selectpoll和epoll区别javaNIO使用那种机制
NIO中Selector核心实现机制。 用户空间和内核空间操作系统为保护系统安全将内核划分为两个部分。用户空间不能直接访问底层硬件设备必须通过内核空间。 文件描述符FD形式上是整数实际上是索引指向内核为每个进程维护进程所打开的文件记录表当程序打开/创建一个文件时内核就会向i昵称返回一个FD。 select会维护一个FD集合fd_set将fd_set从用户空间复制到内核空间激活socket。fdSet在x64大小2048。 poll类似select把fd_set优化为pollFd(链表)结构。fd集合突破大小限制。 epoll事件驱动不再扫描所有的fd只将用户关心读写的fd事件存放在内核的事件表中这样减少了从用户到内核的拷贝数据。 总结 select遍历 数组 受限内核2048 低 poll 遍历 链表 无上限 低 epoll 遍历 红黑树 无上限 高 java中可查看DefaultSelectorProvider源码在windows下使用WindowsSelectorProvider而Linux下根据Linux内核版本2.6使用EpollSelectorProvider否则使用默认的PollSelectorProvider。 select1984年poll1997年epoll2002年。受限于机器硬件。
描述下HTTP和HTTPS的区别。
HTTP网络通信协议。基于TCP使浏览器工作高效减少网络传输。 HTTPS是HTTP加强版。是HTTPSSL(Secure Socket Layer)。在HTTP的基础上增加了一系列的安全机制一方面保证数据传输安全另一方面对访问者增加了验证机制(证书)。 区别 1.HTTP连接简单无状态HTTPS传输经过证书加密安全性高 2.HTTP免费。HTTPS申请证书收费 3.他们的传输协议不同HTTP默认80端口HTTPS默认443端口 HTTPS缺点握手协议费时影响响应速度及吞吐量。HTTPS证书体系也并不是完全安全对于DDOS攻击也没用还会起反作用。功能越强大的证书越贵。