- 博客(81)
- 收藏
- 关注
原创 多路转接之epoll
本文梳理多路转接演进:select、poll 线性扫描;epoll 保存关注集合和就绪队列,避免传递 fd。区分 LT 与 ET:LT 在仍就绪时重复通知,ET 只依赖状态变化,必须配合非阻塞 I/O,并循环读写直到 EAGAIN。epoll 只负责通知,应用仍要管理缓冲区、协议边界和连接生命周期。
2026-09-14 15:43:22
214
原创 IO 多路转接 select
本章以"把'等'外包给内核"为主线讲透 select:从多路转接"一次盯一批 fd"的总纲入手,拆解函数原型、返回值、以及 1024 格位图 fd_set 的内核真相;随后落地 select 版 Echo 服务器,理清辅助数组与临时集合的档案/考勤分工;再把代码升华为"通知—派发—处理"四角色的 Reactor 事件模型;末了两章钻进内核看清 poll() 与双重循环的代价,结清六笔账,指出 epoll 何以取而代之。
2026-09-06 20:48:20
337
原创 五种 IO 模型与非阻塞 IO
IO的本质是“等待 + 拷贝”,高效IO的关键在于减少“等待”的比重。五种IO模型(阻塞、非阻塞、信号驱动、IO多路复用、异步IO)的核心差异在于“等待就绪”的方式不同。其中,IO多路复用通过一次等待多个文件描述符,在高并发场景下最具工程优势。需注意区分:阻塞/非阻塞关注调用时进程的状态,同步/异步关注结果的返回方式。
2026-09-05 15:36:31
352
原创 NAT、内网穿透
NAT通过将私有IP转换为公网IP,让海量内网主机共享少量公网地址,解决了IPv4枯竭问题。其核心是维护一张转换表,记录内网与公网端口的映射关系,实现双向翻译。但NAT也带来“外部无法主动连接内网”的限制。为绕过这一限制,发展出内网打洞(两端直连)和内网穿透(通过公网中转机暴露服务)两种技术。NAT是地址复用的核心机制,也是网络分层与边界设计的经典体现。
2026-09-05 12:11:09
301
原创 数据链路层:以太网与 ARP 协议详解
内容主要介绍数据链路层,以太网标准,MAC帧格式,以及IP与MAC地址的对比,和ARP的作用。本文详解数据链路层核心:以太网作为技术标准,定义MAC帧格式,解决相邻设备间“逐跳”传输。帧内同时存在MAC与IP地址,前者负责每站接力,后者指向最终目的地。当主机只知下一跳IP时,需ARP协议解析出对应MAC地址,为后续通信铺路。
2026-09-04 20:06:44
404
原创 传输层协议——TCP
TCP协议段格式、确认应答、超时重传、连接管理(三次握手、四次挥手)、流量控制、滑动窗口、拥塞控制、延迟应答、捎带应答、面向字节流、数据粘包、TCP异常情况
2026-09-03 15:21:40
405
原创 传输层协议UDP
为什么port是16位的 报头和有效载荷如何分离 有效载荷分用问题 UDP不存在数据包粘包问题 如何理解UDP协议报头 如何理解封装过程 如何理解报文?重新理解封装过程解包过程
2026-08-04 22:21:42
523
原创 Linux进程信号
Linux 进程信号,signal,信号产生、保存、捕捉,中断,coredump,信号的三种状态即对应表,block、pending、handler,内核态和用户态,中断向量表,操作系统的本质,sigaction,可重入函数,volatile,SIGCHLD
2026-06-23 15:17:26
2454
原创 进程间通信:管道、System V
进程间通信、IPC、匿名管道、命名管道、进程池实现、SystemV共享内存、消息队列、信号量、内核如何管理IPC资源
2026-06-20 02:27:41
396
原创 Linux文件系统
本文是一篇对Linux Ext文件系统工作原理的深度指南。文章从硬盘的LBA逻辑寻址出发,层层揭示了文件系统如何将分区划分为块组,并详细解析了其核心组件:超级块、位图以及最重要的inode。
2026-03-18 16:22:24
424
原创 文件基础IO
本文围绕基础 IO 展开,从文件的构成(内容与属性)、Linux 下文件分类及进程与文件的交互逻辑切入,详解 C 语言文件打开模式、open/close/write/read 等系统调用接口,剖析文件描述符的本质、分配原则及 dup2 重定向实现,深入阐释 “一切皆文件” 理念,聚焦内核级与 C 语言用户级缓冲区的特性、刷新策略及典型现象,最终落脚于简易 libc 库的设计思路。
2025-11-15 18:41:23
801
5
原创 进程控制:进程创建|进程终止|进程等待|进程替换
进程创建依赖 fork 函数,通过写时拷贝共享资源,常规用于父子进程分工,失败多因资源不足;进程终止分正常与异常,退出码反馈状态,错误码记录函数失败原因;进程等待通过 wait/waitpid 回收资源、获取 status 状态,支持阻塞与非阻塞模式;进程替换借 exec 函数簇实现,以 execve 为底层,可结合 fork 启动新程序,支持数组传参、PATH 查找及自定义环境变量。
2025-11-08 17:33:18
1042
5
原创 C++11:智能指针
本文本文围绕智能指针展开展开,从 RAII 设计思路出发,详细讲解了 unique_ptr、shared_ptr、weak_ptr 的特性、使用、实现及删除器相关内容,全面剖析了智能指针在资源管理中的核心机制与应用。
2025-10-29 17:04:45
923
1
原创 C++11:可变参数模板,lambda,function包装器
可变参数模板,包的展开方式,Lambda表达式,function包装器,bind
2025-10-21 20:15:38
1013
原创 stack、queue(priority_queue)的模拟实现和deque的简单介绍
stack,queue,priority_queue,deque
2024-04-23 22:31:22
998
原创 C++:vector容器(memcpy浅拷贝问题、迭代器失效问题)
文章简要介绍了vector容器,重点分析了memcpy浅拷贝和迭代器失效问题
2024-01-26 18:58:47
2174
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅