
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文将从为什么需要内存池讲起,重点探讨内存池的设计哲学,并详细拆解其实现方案,从而搭建起读者对内存池从理论到实践的完整认知模型。

本文介绍了如何从零实现一个基于Reactor模型和线程池的TCP服务器。首先分析了传统阻塞IO模型和一连接一线程模型的局限性,指出它们在高并发场景下的性能问题。然后引入非阻塞IO和IO多路复用技术,提出Reactor模型作为解决方案。Reactor模型由多路复用器、事件分发器和事件处理器三部分组成,能够高效管理大量并发连接。进一步引入线程池来提升性能,将IO操作与业务处理分离,Reactor线程负

本文介绍了如何从零实现一个基于Reactor模型和线程池的TCP服务器。首先分析了传统阻塞IO模型和一连接一线程模型的局限性,指出它们在高并发场景下的性能问题。然后引入非阻塞IO和IO多路复用技术,提出Reactor模型作为解决方案。Reactor模型由多路复用器、事件分发器和事件处理器三部分组成,能够高效管理大量并发连接。进一步引入线程池来提升性能,将IO操作与业务处理分离,Reactor线程负

本文介绍了Linux异步I/O框架io_uring的原理与实践。首先分析了五种I/O模型的特点,指出前四种都是同步I/O,而io_uring是真正的异步I/O。io_uring通过提交队列(SQ)、完成队列(CQ)和内存映射技术,避免了用户态与内核态的数据拷贝。文章详细讲解了liburing库的关键接口,包括队列初始化、任务提交和结果处理等。最后通过实现一个单线程Echo服务器示例,展示了如何利用

本文介绍了Linux异步I/O框架io_uring的原理与实践。首先分析了五种I/O模型的特点,指出前四种都是同步I/O,而io_uring是真正的异步I/O。io_uring通过提交队列(SQ)、完成队列(CQ)和内存映射技术,避免了用户态与内核态的数据拷贝。文章详细讲解了liburing库的关键接口,包括队列初始化、任务提交和结果处理等。最后通过实现一个单线程Echo服务器示例,展示了如何利用

摘要:本文深入剖析TCP网络编程中的POSIX API工作原理及核心机制。重点讲解了三次握手和四次挥手过程,揭示了SYN Flood攻击原理及防御策略(如SYN Cookie)。详细分析了socket()、bind()、listen()等API如何操作TCP控制块(TCB),包括连接队列管理(半连接/全连接队列)。针对异常情况(如断电)提出了保活机制和超时重传的解决方案,并解释了TIME_WAIT

Reactor,中文意为“反应堆”。它不是一种具体的 API,而是一种设计思想。其核心在于将 I/O 事件的处理流程“反转”过来传统模式:应用程序主动调用 API(如recv)去读取数据,如果没有数据,线程就会阻塞。Reactor 模式:应用程序向 Reactor 注册感兴趣的事件(如“某 Socket 可读”)和对应的处理函数(回调函数)。Reactor 负责监听这些事件,一旦事件就绪(如数据到

本文介绍了一个基于微服务架构的项目,包含用户管理、好友管理、文件管理等7个子服务。项目采用多种技术框架:使用gflags解析命令行参数,spdlog记录日志,protobuf进行数据序列化,brpc实现RPC通信,Redis和MySQL分别作为缓存和数据库,etcd作为注册中心。还涉及WebSocket、语音识别等技术,采用CMake构建和Docker部署。该项目整合了多种主流中间件和技术栈,具有

IPv4与IPv6协议对比及过渡技术 摘要:本文分析了IPv4地址枯竭问题及解决方案。IPv4仅有43亿地址,而NAT技术通过地址转换(SNAT/DNAT)和端口复用(PAT)缓解了公网IP消耗。IPv6采用128位地址(约3.4×10³⁸个),彻底解决地址不足问题。其首部设计固定为40字节,取消校验和,采用多播替代广播,并强制IPsec加密。过渡技术包括双协议栈和隧道封装。IPv6在地址空间、转

TCP(传输控制协议)是互联网数据传输的基石之一。在OSI模型中,它属于传输层协议,负责端到端(End-to-End)的可靠通信,是构建HTTP、HTTPS、FTP等应用协议的底层支撑。如果说IP协议是互联网的“公路网”,负责将数据包从源地址送到目标地址,那么TCP就是公路上的“物流系统”,确保包裹(数据)完整、有序、无误地送达。在确保可靠性的同时,还以合理的复杂度来换取性能的提升。








