- 博客(11)
- 收藏
- 关注
原创 异步IO——io_uring的实现
本文介绍了Linux异步I/O框架io_uring的实现原理与应用。io_uring通过共享内存中的提交队列(SQ)和完成队列(CQ)实现高效异步I/O,相比epoll减少了系统调用开销。文章详细讲解了io_uring的架构、liburing库的两种安装方法,并展示了如何基于io_uring构建高性能TCP服务器。通过将accept、send/recv等操作异步化,io_uring显著提升了服务器并发处理能力,为高负载场景提供了更优的I/O解决方案。最后还提供了与传统epoll实现的性能对比分析。
2025-12-04 09:00:33
1013
原创 TCP简易发包工具实现(测qps)
本文介绍了一个简易TCP发包工具的实现,用于测试服务器QPS(每秒查询率)。该工具具有多线程并发、灵活配置、数据验证和性能统计功能。通过socket API建立TCP连接,支持128-512字节数据包测试,使用多线程均匀分配请求。测试结果显示成功/失败次数、总耗时和QPS值。该工具简单实用,可作为网络性能测试的基础框架,后续可扩展支持HTTP协议和分布式测试等高级功能。
2025-12-03 08:52:33
652
原创 DPDK实现用户态tcp、ip协议栈
摘要 本文介绍了DPDK(数据平面开发工具包)如何通过绕过Linux内核协议栈实现高性能网络数据处理。DPDK通过零拷贝技术直接将网卡数据映射到用户态内存池,避免了内核与用户态间的频繁切换。文章详细分析了传统Linux网络协议栈的瓶颈,并对比了DPDK的架构优势。同时阐述了TCP/IP五层网络模型及各层协议(以太网、IP、TCP/UDP)的数据封装过程。最后展示了使用DPDK实现简单UDP回显应用的关键步骤,包括环境初始化、数据接收处理等核心流程。DPDK通过用户态直接处理网络数据,显著提升了网络性能。
2025-12-02 09:00:45
1308
原创 DPDK的原理以及环境搭建
本文介绍了在VMware虚拟机中配置DPDK(数据平面开发套件)的详细步骤。首先概述了DPDK的核心原理(轮询模式、用户态驱动、大页内存)及其在数据中心、5G核心网等场景的应用价值。然后详细讲解了配置过程:确认网卡信息、添加多块网卡、修改网卡配置、设置2M/1G大页内存、下载DPDK源码并配置环境变量。最后通过dpdk-setup.sh脚本完成编译环境配置、内核模块加载及网卡绑定。文中提供了多个关键命令和配置截图,并附有相关参考链接,帮助读者顺利完成DPDK环境搭建。
2025-12-01 21:34:24
1009
原创 协程设计原理与实现
摘要:协程是一种用户态轻量级线程,解决了传统多进程/线程模型在高并发场景下的性能瓶颈和编程复杂性。协程实现基于三个核心原语操作:create()、yield()和resume()。有三种实现方式:1)setjmp/longjmp方式简单但功能有限;2)ucontext方式功能完整但已被废弃;3)汇编方式性能最优但实现复杂。协程需要管理就绪、睡眠和等待三种状态,分别使用队列和红黑树等数据结构组织。协程结构体包含上下文环境、回调函数、参数、栈空间等成员,实现同步编程风格下的异步执行性能。
2025-11-20 08:59:38
1012
原创 基于 epoll 的 Reactor 模式实现:从原理到百万并发实践
本文深入探讨了基于epoll的Reactor模式实现,从核心原理到百万并发实践。首先剖析了epoll机制的高效原理,包括其红黑树存储结构和O(1)时间复杂度的事件通知机制,并对比了水平触发与边缘触发模式的特点。文章详细介绍了Reactor模式的分层设计,包括事件循环、连接处理和回调机制等核心组件。 重点阐述了实现细节:通过conn结构体优化连接管理,采用函数指针实现灵活回调,并展示了accept、recv、send等关键回调函数的实现逻辑。
2025-11-19 13:53:19
1252
原创 网络io与io多路复用select,poll,epoll
摘要:本文介绍了Linux网络I/O的基础知识,重点分析了套接字(Socket)通信模型和服务端流程,包括socket()创建、bind()绑定、listen()监听、accept()接受连接以及recv()/send()数据传输。文章阐述了TCP套接字与文件描述符(fd)的映射关系,并对比了传统"一请求一线程"模型的优缺点。最后引入I/O多路复用概念,概述了select、poll和epoll三种机制的特点和性能差异,为后续深入讲解select函数实现原理奠定基础。
2025-11-18 14:56:15
1246
原创 使用VirtualBox安装20.04ubuntu(server)虚拟机
本文详细介绍了在VirtualBox中安装Ubuntu 20.04 LTS Server的过程。主要内容包括:1)VirtualBox和Ubuntu镜像的下载;2)虚拟机创建和参数配置;3)系统安装步骤及网络设置;4)将NAT模式改为桥接网卡并配置静态IP;5)SSH远程连接配置。通过本教程,读者可以在本地快速搭建一个可远程访问的Linux开发环境,适用于网络编程、服务器开发等场景。文中特别强调了静态IP配置的重要性,并提供了详细的网络配置方法。
2025-11-17 13:00:21
1428
原创 Makefile 入门使用与深入解析(超详细!!!)
文章摘要: 本文详细介绍了Makefile的基本使用与核心概念(超详细!!)包括其自动化编译管理、依赖关系处理等核心功能。Makefile通过定义目标(target)、依赖(prerequisites)和命令(recipe)实现高效构建,支持伪目标(.PHONY)避免文件冲突。文章以C语言项目为例,演示了Makefile的基本结构、编译流程(依赖图构建、时间戳检查、命令执行),并强调了跨平台、增量编译等工程化优势。关键点包括:Tab缩进规则、变量简化重复输入、默认目标机制及clean等常见伪目标的使用场景。
2025-09-29 00:41:52
731
原创 在LuBancat 1 上安装Miniconda(保姆级别指南,同样适用其他Linux 系统)
本文提供了在LuBancat 1(及其他Linux系统)上安装Miniconda的详细指南(保姆级指南)。首先介绍了系统架构识别方法,强调下载对应架构版本的重要性。然后讲解了Conda和Miniconda的区别,推荐使用轻量级的Miniconda。安装步骤包括:下载脚本、赋予权限、选择安装路径、配置环境变量等。最后列举了常用conda命令,涵盖环境管理、包管理等功能。该指南特别适合ARM架构设备用户,能帮助快速搭建Python开发环境。
2025-09-26 17:34:46
1039
原创 git 学习
Git基础与高级使用摘要 本文介绍了Git版本控制工具的基础和高级使用方法。基础部分包括:初始化设置用户名邮箱、创建仓库、四个工作区域(工作区/暂存区/本地仓库/远程仓库)和三种文件状态(已修改/已暂存/已提交)。高级功能涵盖:主流GUI工具(GitKraken/GitHub Desktop等)、分支管理(创建/切换/合并)、版本回滚(reset/reflog)以及远程仓库操作。特别说明了add和commit的区别,commit会生成可回溯的版本号,而reset命令可通过--hard/--soft/--mi
2025-09-20 15:27:34
643
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅