![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
文章平均质量分 94
绅士同萌
这个作者很懒,什么都没留下…
展开
-
Netty学习系列4—深入解析高性能和可靠性设计
Acceptor 接收到客户端TCP连接请求处理完成后(可能包括介入认证等), 将新创建的SocketChannel注册到I/O线程池(sub reactor线程池) 的某个I/O线程上, 由它负责SocketChannel的读写和辩解码工作. Acceptor线程池只用于客户端的登录、握手和安全认证, 一旦链路建立成功, 就将链路注册到后段subReactor线程池的I/O线程上, 由I/O线程负责后续的I/O操作.从架构层面看, 一个NIO线程确实可以完成起承担的职责。原创 2023-09-30 12:58:47 · 235 阅读 · 0 评论 -
Netty学习系列3—解析netty架构与多线程运用
Acceptor 接收到客户端TCP连接请求处理完成后(可能包括介入认证等), 将新创建的SocketChannel注册到I/O线程池(sub reactor线程池) 的某个I/O线程上, 由它负责SocketChannel的读写和辩解码工作. Acceptor线程池只用于客户端的登录、握手和安全认证, 一旦链路建立成功, 就将链路注册到后段subReactor线程池的I/O线程上, 由I/O线程负责后续的I/O操作.从架构层面看, 一个NIO线程确实可以完成起承担的职责。原创 2023-09-30 12:55:53 · 512 阅读 · 0 评论 -
Netty学习系列2—探索Netty客户端服务端
根据TCP三路握手过程中三个分节来分隔这两个队列. 服务器处于listen状态, 收到客户端syn分节connect时在未完成队列中创建一个新的条目, 然后用三路握手的第二个分解即服务器的syn响应客户端, 此条目在第三个分解到达前(客户端对服务器syn的ack)一直保留在未完成连接队列中, 如果三路握手完成, 该条目将从未完成丽娜姐队列半岛已完成连接队列尾部. 当进程调用accept时,从已完成队列中的头部去除一个条目给进程, 当已完成队列为空时进程将睡眠, 直到有条目在已完成连接队列中才唤醒。原创 2023-09-30 12:50:16 · 66 阅读 · 0 评论 -
Netty学习系列1—研究TCP粘包/拆包与私有协议栈
私有协议具有封闭性, 垄断性,排他性的特点. Netty提供的异步TCP协议栈开发一个私有协议栈, 该协议栈被命名为Netty协议栈.由两个部分组成:消息头,消息体。原创 2023-09-30 12:45:31 · 54 阅读 · 0 评论 -
网络编程系列2—详解套接字编程常用函数
它在调用进程(父进程)中返回一次,返回值是新派生进程(子进程)的进程ID;因此,返回值本身告诉当前进程是子进程还是父进程。我们称调用exec的进程为调用进程,新执行的程序为新程序。对于网际网协议,协议地址是32位的IPv4地址或128位的16位的TCP或UDP端口号的组合。如果父进程想跟踪它所有的子进程的ID,必须记录每次调用fork的返回值。close一个TCP套接字的默认行为是把该套接字标记为关闭,然后立即返回调用程序。内核给任何一个给定的监听套接字维护两个队列,未完成连接队列,已完成连接队列。原创 2023-09-30 12:35:52 · 59 阅读 · 0 评论 -
网络编程系列1—探究OSI模型以及五种IO模型
任何UDP套接字都有发送缓冲区大小,不过它仅仅是可以写到该套接字的UDP数据包的大小上限,UDP是不可靠的,不必保存应用程序的数据副本,所有是无需一个真正的发送缓冲区。当某个应用进程调用write时,内核从该应用进程的缓冲区中赋值所有数据到套接字发送缓冲区。多个进程可能同时使用TCP,UDP和SCTP这三张传输层的协议中的。TCP无法仅仅通过查看目的端口号来分离外来的分节到不同的端口。如果该套接字发送缓冲区容不下所有数据,该应用进程进入睡眠。目的:可靠的实现TCP全双工连接的终止。原创 2023-09-30 12:27:39 · 37 阅读 · 0 评论