
网络编程
文章平均质量分 79
运动人生
本人很懒,什么都没留下!
展开
-
Netty学习要点
Netty学习要点1、UNIX的5种I/O模型2、epoll与select的对比3、私有协议栈可靠性设计4、ByteBuf和ByteBuffer对比6、Netty的线程模型7、Netty的高性能,可靠性,可定制性,可扩展性的分析8、多线程编程在Netty中的应用9、Netty的高性能分析10、Netty高可靠性设计UNIX的5种I/O模型: Linux...原创 2020-01-03 21:41:31 · 381 阅读 · 0 评论 -
I/O模型和Java的三种I/O的区别
I/O模型和Java的三种I/O的区别一、I/O模型:1、阻塞I/O模型: 最常用的I/O模型就是阻塞I/O模型,缺省情形下,所有文件操作都是阻塞的。在进程空间中调用recvfrom,其系统调用直到数据包到达且被复制到应用进程的缓冲区中或者发生错误时才返回,在此期间一直会等待,进程在从调用recvfrom开始到它返回到整段时间内都是被阻塞的,因此被称为阻塞I/O模型。2、非阻塞I/O模型...原创 2019-03-11 23:02:48 · 318 阅读 · 0 评论 -
TCP
TCP一、tcp粘包/拆包: 1、服务端分两次读取到两个独立的数据包,分别是D1和D2,没有粘包和拆包。 2、服务端一次接收到两个数据包,D1和D2粘合在一起,被称为TCP粘包。 3、服务端分两次读取到了两个数据包,第一次读取到了完整的D1包和D2包的部分内容,第二次读取到了D2包的剩余内容,这被称为TCP拆包。 4、服务端分两次读取到了两个数据包,第一次读取到了D1包的部分内容...原创 2019-03-17 17:33:30 · 327 阅读 · 0 评论 -
谈谈tcp中backlog参数
谈谈tcp中backlog参数 backlog指定了内核为此套接口排队的最大连接个数,对于给定的监听套接口,内核要维护两个队列:未连接队列和已连接队列,根据TCP三路握手中三个分节来分割这两个队列。服务器处于listen状态时,收到客户端syn分节(connect)时在未完成队列中创建一个新的条目,然后用三路握手的第二个分节即服务器的syn响应客户端,此条目在第三个分节到达前(客户端对服务端s...原创 2019-08-11 17:22:34 · 495 阅读 · 0 评论 -
Netty服务端创建过程分析
Netty服务端创建过程分析步骤一: 创建ServerBootstrap实例。步骤二: 设置并绑定Reactor线程池。Netty的Reactor线程池是EventLoopGroup,它实际就是EventLoop的数组。EventLoop的职责是处理所有注册到本线程多路复用器Selector上的Channel,Selector的轮询操作由绑定的EventLoop线程run方法驱动,在一个循环...原创 2019-09-01 17:30:23 · 202 阅读 · 0 评论 -
NIO服务端创建过程
NIO服务端创建过程1、NIO服务端序列图步骤一: 打开ServerSocketChannel,用于监听客户端的连接,它是所有客户端连接的父管道。ServerSocketChannel acceptorSvr = ServerSocketChannel.open();步骤二: 绑定监听端口,设置连接为非阻塞模式。acceptorSvr.socket().bind(new InetSo...原创 2019-09-19 19:51:45 · 263 阅读 · 0 评论