高性能网络设计
文章平均质量分 92
adagio9z
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
协程的作用与工作原理
协程的作用与工作原理摘要 协程是一种轻量级线程,能够在单线程内实现多任务并发执行。其主要作用体现在:1)解决传统同步阻塞方式下线程资源浪费问题;2)避免异步回调带来的代码逻辑混乱。协程通过"同步逻辑+异步性能"的方式,在执行IO操作时主动让出CPU,待IO就绪后再恢复执行,既保持了代码的可读性,又实现了高性能并发。 典型应用场景如B站首页数据获取,协程可并发请求多个服务数据,在等待IO时切换执行其他任务,显著提升响应速度。实现方式主要有两种:1)setjmp/longjmp通过保存/恢复原创 2025-12-25 18:49:55 · 985 阅读 · 0 评论 -
UDP可靠性传输协议
摘要 本文对比分析了UDP和TCP协议的核心特性及适用场景。UDP是无连接的不可靠协议,支持多播通信,面向报文传输,首部开销小(8字节),适用于实时应用;TCP是面向连接的可靠协议,仅支持单播,面向字节流传输,首部较大(20-60字节),适合文件传输等场景。文章详细解析了TCP的可靠性机制(ARQ协议、流量控制、拥塞控制),包括停等式、回退n帧和选择重传三种重传算法,并阐述了TCP通过滑动窗口实现流量控制的原理。最后指出UDP要实现可靠传输需依赖上层协议补充ARQ机制(如KCP协议),而TCP已内置完整的可原创 2025-12-25 16:07:31 · 1042 阅读 · 0 评论 -
Posix网络开发常用API详解
在 Linux 系统的 C 语言网络编程领域,POSIX(Portable Operating System Interface)网络 API 是构建网络应用的核心基础。POSIX 标准定义了一套跨平台的操作系统接口,而其网络编程接口则为开发者提供了从底层套接字创建到高层数据传输的完整解决方案。原创 2025-06-26 12:34:06 · 874 阅读 · 0 评论 -
网络io与tcp服务器
本文主要在linux上用c语言实现一个tcp server,在这个场景下可以把网络IO 理解为客户端与服务器之间通信的通道。各种即使通讯软件,例如微信刷抖音短视频github/gitlab 上 git clonelisten 监听套接字:监听是否有新的客户端请求,有则创建一个新的tcp连接与clientfdtcp连接:listen收到新的客户端请求后为该客户端创建一个tcp连接clientfd 客户端文件描述符。原创 2025-05-24 17:11:06 · 2194 阅读 · 0 评论 -
网络io的多路复用:select/poll/epoll详解
本文详细介绍了三种网络I/O多路复用技术:select、poll和epoll。首先分析了一请求一线程方式的弊端,指出多路复用技术可以有效解决高并发问题。select通过比特位集合管理文件描述符,但存在参数复杂、效率低下等缺点;poll采用结构体数组pollfd,比select更灵活高效;epoll则是Linux内核的重大改进,通过事件触发机制显著提升性能。文章分别展示了三种技术的代码实现,对比了它们的工作原理和优缺点,为开发高并发网络应用提供了技术参考。原创 2025-06-05 17:24:17 · 1866 阅读 · 0 评论 -
事件驱动reactor的原理与实现
本文介绍了事件驱动框架Reactor的原理与实现。通过分析传统网络IO模型的不足,提出使用Reactor模式来管理IO事件。文章详细讲解了Reactor的核心数据结构设计,包括双缓冲区和联合体的使用。重点展示了服务器初始化、客户端连接处理、数据收发等关键流程的实现代码,特别是事件注册和状态转换机制。该框架通过epoll多路复用结合回调函数,实现了高效的请求-响应处理循环,为构建高性能网络服务提供了基础架构。原创 2025-06-13 13:53:35 · 843 阅读 · 0 评论
分享