自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(124)
  • 收藏
  • 关注

原创 深入解析C++实时系统中的时间与定时器机制:从零手写高精度Rate与定时控制组件

摘要: 工业级系统(如自动驾驶框架Cyber RT)需要高精度、抗干扰的时间管理机制。尽管C++11提供了<chrono>库,但其冗长语法、时间跳变风险(如NTP同步导致回滚)以及物理单位不统一等问题促使开发者自建时间架构。核心组件包括: Duration:基于纳秒的时间段,封装线程休眠; Time:区分挂钟时间(Now())和单调时间(MonoTime()),避免回滚影响; Rate:定频控制器,通过计算“预期结束时间”补偿调度误差,消除累积漂移。 Rate的核心逻辑是每次循环基于绝对时间修正

2026-03-05 22:36:24 412

原创 C++ 并发编程的深水区:深入剖析内存模型与六大内存序

这篇文章主要讲解 C++ 多线程无锁编程的核心 ——std::atomic 与内存序,指出多线程下指令重排、CPU 缓存可见性问题会引发数据竞争与未定义行为,而内存序就是用来约束重排、保证跨线程内存可见性的。文章详细介绍了六种内存序的作用与场景,重点讲解了 release-acquire 的同步机制,并结合 SPSC 无锁队列实战演示了内存序的正确使用,同时提醒开发者在不确定时优先使用默认的 seq_cst,借助 ThreadSanitizer 排查问题,且不能只依赖 x86 的强内存模型就忽略 ARM 等

2026-03-04 21:11:23 671

原创 深入解析高性能 C++ 线程池的设计与实现 —— 以 Cyber RT 为例

本文深入剖析了一个工业级C++线程池的实现,重点介绍了其核心架构、避免CPU空转的优化技巧、泛型任务提交的实现方法以及优雅的生命周期管理。线程池由工作线程组、有界任务队列和状态控制器组成,通过阻塞等待机制避免CPU空转,利用模板元编程和完美转发实现泛型任务提交,并采用原子操作和条件变量确保线程安全。该实现具有稳定、高效和可扩展的特点,适用于高性能系统开发。

2026-03-03 22:31:16 477

原创 C++ 高性能并发编程:无锁哈希表 (AtomicHashMap) 的设计与实现

本文探讨了一种基于链表法的无锁哈希表(AtomicHashMap)实现。相比传统加锁方案,该设计利用CAS原子指令实现非阻塞操作,特别适合高并发读多写少场景。核心采用固定桶数组+有序单向链表结构,通过Dummy Head节点简化插入逻辑。关键点包括:1)无锁插入通过CAS保证链表完整性;2)原子更新value_ptr实现值替换;3)读操作完全无锁且无等待。文章同时指出内存安全风险,建议在高并发场景使用SMR技术。该结构通过分桶设计、原子链表操作和读写分离,为实时系统提供了极低延迟的并发访问能力。

2026-03-02 23:35:34 677

原创 C++ 高性能并发编程:从零构建极速有界无锁队列 (RingBuffer)

本文探讨了从无界无锁队列到基于环形数组的有界无锁队列的优化过程。针对极速高频并发场景下动态内存分配的性能瓶颈,提出预分配连续内存方案,通过三游标设计(head_、tail_、commit_)解决MPMC并发中的脏读问题。重点分析了伪共享(False Sharing)对性能的影响,提出使用内存对齐(alignas)隔离高频变量以提升吞吐量。同时介绍了CPU退让(cpu_relax)和优化取模运算等底层技术,最终实现零内存分配、高性能的无锁环形队列,适用于自动驾驶、金融交易等对延迟极度敏感的场景。

2026-03-02 13:20:11 650

原创 C++ 高性能并发编程:手写一个无界无锁队列 (Unbounded Lock-Free Queue)

本文介绍了一种基于链表的高性能无界无锁队列实现。针对无界队列在并发环境下的内存管理难题,文章提出采用引用计数机制来安全回收节点内存,避免Use-After-Free问题。通过std::atomic和CAS操作实现线程安全的入队(Enqueue)和出队(Dequeue),其中生产者采用Wait-Free优化,消费者通过引用计数安全释放节点。文章还展示了如何与WaitStrategy策略结合,实现优雅的队列空等待。最后指出链表结构在内存分配上的局限性,为后续介绍基于数组的有界无锁环形队列做铺垫。该实现适用于高并

2026-03-01 11:07:24 895

原创 C++ 高性能并发编程:如何优雅地让你的线程“等一等”?——详解多态等待策略 (WaitStrategy)

文章摘要: 本文探讨了并发编程中"生产者-消费者"模型的等待策略优化问题。针对不同业务场景对延迟和CPU消耗的不同需求,作者提出采用策略模式将等待逻辑从队列实现中解耦。通过定义WaitStrategy抽象基类,实现了五种典型等待策略:阻塞等待(最高延迟但零CPU消耗)、超时阻塞等待(带故障恢复)、休眠等待(轻量级延迟)、调度让步等待(平衡型)和忙等待(最低延迟但高CPU消耗)。这种设计避免了硬编码的"if-else"结构,符合开闭原则,使系统能根据不同场景灵活选择最优

2026-02-28 21:27:33 580

原创 拒绝做概率模型的“赌徒”:我是如何用 Copilot 进行结提示编程的

本文分享了使用Copilot作为代码助手的实用工作流。作者强调不应让AI直接编写核心业务代码,而是将其作为"结对编程助手"主导开发过程。工作流分为五个阶段:1)通过AI快速解析代码结构和数据流;2)需求分析阶段与AI讨论方案并验证思路;3)编码时先提供详细逻辑再让AI补充代码;4)利用AI编写测试脚本和查找潜在bug;5)处理文档和配置等杂务。文章指出,AI的上限取决于开发者如何引导,建议把控架构设计后让AI完成细节填充和检查工作,这才是高效安全的使用方式。

2026-02-28 00:27:39 750

原创 C++ 高性能并发编程:从零实现一个线程安全的无锁对象池

本文介绍了如何将单线程对象池升级为工业级线程安全无锁对象池。通过分析ABA问题的本质,提出采用带版本号的侵入式链表设计,利用CAS原子操作和版本号递增机制确保并发安全。核心代码展示了无锁获取和归还对象的实现,仅200行左右即完成高性能并发组件,体现了现代C++的高效与优雅。该方案结合智能指针实现透明使用,为高并发系统提供纳秒级延迟保障,其"原子变量+版本号"的设计模式也可广泛应用于其他无锁数据结构开发。

2026-02-27 21:37:19 955

原创 C++ 高性能内存管理:从零实现一个无锁对象池(单线程版)

摘要: 本文介绍了基于std::shared_ptr和侵入式链表的高效对象池实现,用于解决C++高性能场景中内存分配的性能瓶颈。通过预分配连续内存和循环利用对象,消除了内存碎片和系统调用开销。核心设计利用空闲对象自身存储链表指针(侵入式设计),实现零额外内存消耗。关键代码通过自定义删除器的智能指针自动归还对象,用户无需手动管理。当前版本为单线程实现,后续将扩展为无锁线程安全方案。该方案以空间换时间,适用于游戏引擎、高频交易等对延迟敏感的场景。

2026-02-26 17:30:20 541

原创 C++ 高性能并发编程:基于 RAII 与 CAS 的轻量级原子读写锁设计

本文介绍了一种高性能原子读写锁的实现方案,主要针对C++17标准库锁在低延迟高并发场景下的性能瓶颈。文章采用分层设计思想,将锁的管理与实现解耦: 首先通过模板元编程实现RAII风格的锁守卫(ReadLockGuard/WriteLockGuard),利用对象生命周期自动管理锁,避免死锁风险,同时保持零开销抽象和代码复用性。 核心锁实现基于std::atomic,采用单变量状态机设计: 使用一个atomic<int32_t>表示锁状态:0(空闲)、-1(写锁)、>0(读锁计数) 通过CAS指

2026-02-25 21:01:14 829

原创 RAG 实战 (下):打造多轮对话知识助手

本文介绍了如何构建一个支持多轮对话的RAG系统,主要解决传统RAG无法处理上下文指代和引用来源的问题。通过LCEL管道实现标准检索-生成流程,并重点讲解了"历史感知检索器"的两阶段设计:先通过查询改写解决指代问题,再检索文档生成答案。文章详细展示了如何使用create_retrieval_chain封装完整问答系统,包括对话历史管理、引用来源标注等功能,最后介绍了生产级特性流式输出的实现方式。整个方案从基础RAG出发,逐步扩展到支持多轮对话、上下文记忆和引用显示的完整系统。

2026-02-24 23:39:13 717

原创 RAG 实战 (上):构建向量知识库

本文介绍了如何通过RAG(检索增强生成)技术让大模型处理私有数据,包括PDF、Markdown文档和网页内容。主要内容涵盖: 数据加载:使用PyPDFLoader、TextLoader和WebBaseLoader等工具加载不同类型的数据源,支持批量处理目录文件。 文本分割:重点讲解了RecursiveCharacterTextSplitter的分块策略,包括chunk_size和chunk_overlap参数的设置技巧,以及基于Token的分割方法。 向量存储:比较了OpenAI和本地BGE模型的优劣,并演

2026-02-23 22:32:58 603

原创 注入灵魂:记忆管理与工具调用

文章摘要:本文介绍了如何通过Memory和Tool Calling解决大模型无状态和封闭性问题。Memory部分讲解了使用RunnableWithMessageHistory实现多轮对话,以及通过trim_messages控制Token成本。Tool Calling部分重点介绍了@tool装饰器的使用规范、工具绑定方法,并详细解析了工具调用的完整闭环流程(模型选择工具→执行函数→返回结果)。文中包含代码示例,展示了会话历史管理、消息裁剪、工具定义及手动执行工具的实现方法。

2026-02-22 23:54:41 661

原创 精准控制:提示词工程与结构化输出

摘要:本文介绍如何通过提示词模板和结构化输出来优化大模型应用。提示词模板部分涵盖基础字符串模板、聊天模板和少样本提示(包括静态示例和动态示例选择),帮助管理输入变量和角色信息。结构化输出部分重点讲解如何使用with_structured_output方法,结合Pydantic模型强制生成可解析的JSON数据,包括基础用法和嵌套结构的进阶应用。这些技术能有效提升模型输出的可控性和可用性,适用于开发更可靠的AI应用。

2026-02-21 19:34:28 631

原创 LangChain 新范式:从 LCEL 到流式对话

摘要:本文介绍LangChain框架及其核心组件LCEL(LangChain Expression Language),帮助开发者简化大模型应用开发。主要内容包括:1)LangChain解决模型碎片化、数据连接和流程编排等开发痛点;2)环境配置与API密钥设置;3)使用ChatModel进行对话交互;4)LCEL语法通过管道符"|"组合Prompt、Model和Parser组件;5)实现流式输出提升用户体验。文章提供了完整代码示例,适合LangChain初学者学习基础开发模式。

2026-02-19 21:53:46 777

原创 大语言模型应用快速了解

本博客简明介绍了大语言模型(LLM)的基本原理、主要能力和典型应用场景。内容涵盖了多模态能力、Agent智能体与生态工具、提示工程(包括CO-STAR框架、少样本/多示例提示、思维链提示、自我批判与迭代)、嵌入模型与语义检索、RAG检索增强生成、多模态应用案例、主流模型对比与选型建议、安全合规要点以及应用建议。文章适合开发者、产品经理和AI爱好者快速了解大语言模型的核心知识与实际应用。

2026-02-18 20:39:23 762

原创 一文讲通:二分查找的边界处理

本文详细解析了二分查找算法的三种区间定义及其实现方式:左闭右开区间[left, right)、闭区间[left, right]和开区间(left, right)。重点分析了每种区间的特点、适用场景、循环条件选择依据以及边界更新逻辑,并提供了对应的代码实现。文章推荐采用左闭右开区间作为最佳实践,因其逻辑清晰、避免数组越界且被标准库广泛采用。强调必须严格保持区间定义与循环条件的一致性,避免混用导致的逻辑复杂和错误风险。通过系统梳理二分查找的边界处理问题,帮助开发者正确理解和应用这一经典算法。

2026-02-12 17:33:53 595

原创 补充:使用 /etc/cron.d 管理定时任务

本文介绍了Linux系统中/etc/cron.d目录的作用及使用优势。与集中式的/etc/crontab不同,/etc/cron.d允许将定时任务分散到多个文件中,每个文件都遵循crontab格式并包含用户字段。这种模块化方式具有显著优势:便于维护和审计、支持版本控制和自动化部署、降低多人协作冲突风险、更适合软件打包管理。文章详细说明了文件格式、实践步骤和工程应用建议,推荐优先使用/etc/cron.d来管理定时任务,特别适用于需要规范化、可审计和自动化运维的场景。

2026-02-05 23:35:57 687

原创 实习笔记:用 /etc/crontab 实现定期数据/日志清理

本文介绍了使用Linux系统级定时任务文件/etc/crontab实现自动化数据清理的方法。重点讲解了其与用户级crontab -e的区别、标准格式配置(包含用户字段)、环境变量设置等核心内容。文章提供了完整的实施流程:从测试验证、脚本部署到正式配置,强调需使用绝对路径、设置日志记录、选择低峰时段执行等要点。同时提醒注意权限控制、环境变量缺失等常见问题,并建议通过dry-run测试和备份保障安全性。最后对比了systemd timers等替代方案,为系统管理员提供了一套完整的定时任务管理方案。

2026-01-31 16:55:56 554

原创 C++17 新特性详解

C++17核心特性摘要 C++17标准引入了多项重要改进: 结构化绑定:支持数组、元组和结构体的元素解包,简化代码并提升可读性 if/switch初始化语句:允许在条件语句中声明变量,限制变量作用域 constexpr if:实现编译期条件分支,替代部分SFINAE技巧 折叠表达式:简化可变参数模板操作,支持多种二元运算符 这些特性显著提升了代码简洁性、安全性和性能,使C++17成为现代C++开发的重要里程碑。结构化绑定特别适用于容器遍历,constexpr if优化了模板元编程,而折叠表达式简化了参数包处

2026-01-28 23:57:07 1236

原创 后端实习生Git实战总结:从踩坑到熟练协作

Git团队协作开发实战指南 本文总结了后端实习生在实际团队开发中遇到的Git常见问题及解决方案。主要内容包括: 基础操作:克隆仓库的HTTPS与SSH协议选择,远程分支拉取与本地分支关联的正确流程。 日常开发流程:使用git stash暂存修改、拉取代码后解决冲突的标准操作顺序,以及commit和push的最佳实践。 代码整合方式:对比merge与rebase的区别,建议个人分支使用rebase保持线性历史,公共分支使用merge避免冲突。 团队协作流程:GitHub PR与GitLab MR的提交流程,以

2026-01-24 17:50:28 836

原创 C++14 核心特性全解析:让现代C++代码更简洁高效

C++14作为C++11的优化补充,通过多项"小而美"的特性提升开发效率。核心改进包括:变量模板实现泛型常量语义直达、泛型Lambda支持auto参数和初始化捕获增强灵活性、函数返回类型推导简化语法、std::quoted简化带引号字符串处理、读写锁优化并发性能。这些特性虽非颠覆性创新,但通过精准优化常见场景,显著提升了代码简洁性和可维护性,使现代C++开发体验更加流畅自然。

2026-01-18 18:46:29 827

原创 从 OneThreadOneLoop 线程池到进程池:高性能 Reactor 服务器的演进

本文介绍如何将高性能IO模型OneThreadOneLoop从线程池改造为进程池实现。改造后的进程池版本具有内存隔离、独立CPU核心占用等优势,避免线程安全问题,但需解决进程间通信和文件描述符传递问题。核心实现包括:1)使用socketpair创建双向管道进行进程间通信;2)通过SCM_RIGHTS特性传递文件描述符;3)EventLoopProcess类封装单个进程生命周期;4)EventLoopProcessPool实现轮询负载均衡。服务器主类ReactorServer适配进程池模型,调整连接处理流程和

2025-11-13 17:13:19 705

原创 从单 Reactor 线程池到 OneThreadOneLoop:高性能网络模型的演进

本文介绍了高性能网络编程中的OneThreadOneLoop模型及其关键组件Channel的设计。该模型通过主线程监听新连接,子线程各自维护事件循环(EventLoop),将连接分配给子线程处理,避免了线程竞争和切换开销。核心组件Channel封装了文件描述符、事件及回调,实现了事件与处理的解耦,提高了代码可维护性。EventLoop类负责线程内事件监听与分发,通过EpollDemultiplexer实现多路复用。这种设计显著提升了高并发场景下的性能表现,是网络编程中的经典架构模式。

2025-11-13 14:23:33 744 1

原创 从单 Reactor 单线程到单 Reactor 线程池:手把手改造高性能服务器

本文介绍了如何将一个单Reactor单线程服务器改造为单Reactor线程池模型,以提升服务器并发处理能力。首先分析单线程模型的瓶颈,指出当面对耗时业务或高并发请求时性能下降的问题。接着详细实现了两个基础组件:线程安全的锁机制(MutexLock和LockGuard)和可复用的线程池(ThreadPool)。最后展示了如何在原有ReactorServer中集成线程池,通过将耗时业务处理剥离到线程池中,使Reactor线程专注于I/O事件处理,从而充分利用多核CPU优势,提升服务器整体性能。

2025-11-10 23:50:27 766

原创 深入解析 Reactor 模式:从基类设计到模块协同的高性能服务器实现

本文深入解析了Reactor模式在Linux系统中的实现,重点介绍了事件驱动架构的核心组件。通过基类EventDemultiplexer定义统一接口,派生类EpollDemultiplexer实现epoll机制;EventHandler基类抽象事件处理流程,派生类AcceptorHandler和ClientHandler分别处理新连接和客户端通信。这种模块化设计实现了高效的I/O事件分发和处理,为高并发网络编程提供了清晰的框架。

2025-11-10 20:16:26 1300

原创 我自己对三种 IO 多路复用的理解

IO多路复用技术笔记:比较select、poll、epoll三种模型。核心思路是用单线程通过内核监控多个文件描述符(FD),当事件就绪时快速定位连接处理数据。select使用位图管理FD,但存在1024数量限制和遍历效率问题。poll改用动态数组解决FD数量限制,但仍需完整遍历。epoll通过内核红黑树和就绪队列实现O(1)事件检测,支持水平/边缘触发模式,适合高并发场景。三种模型差异主要在FD管理方式和事件筛选效率上,其中epoll性能最优但仅限Linux系统。

2025-11-08 19:21:37 1523 1

原创 Epoll 服务器实战教学:从 Poll 到高性能事件驱动模型

本文详细介绍了从Poll迁移到Epoll服务器的关键修改与优化。主要内容包括:核心数据结构替换为epoll_event,通过epoll_create1/epoll_ctl/epoll_wait三步骤管理事件,采用一次性注册而非循环重建数组的方式。重点分析了epoll相较于select/poll的核心优势:事件驱动机制、零拷贝设计、支持高并发连接,以及水平触发与边缘触发的选择建议。最后介绍了基于epoll的Reactor模型及其多线程实现方案,展示了epoll在高性能网络编程中的实践应用。通过具体代码示例,阐

2025-11-08 15:26:31 862

原创 Poll 服务器实战教学:从 Select 迁移到更高效的多路复用

本文详细介绍了如何从Select服务器迁移到Poll模型,分析了Poll的核心修改点及其优化与局限性。Poll通过struct pollfd数组替代fd_set,突破了Select的FD数量限制,简化了最大FD的维护。文章阐述了事件注册方式、等待事件和处理就绪事件的差异,并指出Poll仍需遍历整个数组检查事件、不支持边缘触发等问题。测试表明Poll在功能上与Select表现一致,但支持更高并发。尽管Poll优于Select,但在高并发场景下仍建议使用epoll模型。迁移建议包括替换数据结构、移除_max_f

2025-11-06 22:26:26 683

原创 Select 服务器实战教学:从 Socket 封装到多客户端并发

本文介绍了基于Linux Select模型的I/O多路复用服务器实现方案。采用"虚基类抽象+派生类实现"的设计思想,通过Socket虚基类定义统一接口,TcpSocket派生类实现具体功能,SelectServer类负责事件管理。文章详细解析了核心代码实现,包括Socket抽象类、TcpSocket实现、SelectServer事件循环和客户端处理等关键模块。特别强调了Select使用时的7大注意事项:必须重置FD集合、正确维护max_fd、忽略SIGPIPE信号、处理accept的非致

2025-11-06 10:54:42 1480

原创 深入理解五种 IO 模型与非阻塞 IO:从原理到场景选型

本文系统梳理了五种IO模型的原理与适用场景。从最基础的阻塞IO,到非阻塞IO、IO多路复用、信号驱动IO,再到异步IO,详细剖析了每种模型的工作机制、优缺点及典型应用案例。重点分析了IO多路复用技术(select/poll/epoll)在高并发场景下的优势,以及异步IO在超大规模系统中的性能潜力。文章还提供了选型决策矩阵,根据不同业务场景(并发量、延迟要求等)给出具体建议。最后强调技术选型需权衡性能与复杂度,以业务需求为导向,选择最适合的IO模型。

2025-11-04 22:46:29 1196

原创 基于 TCP 线程池服务器封装 HTTP 服务器:从协议解析到适配落地

本文基于TCP线程池服务器,新增HTTP应用层封装,实现了一个能处理静态资源的HTTP服务器。通过分层设计:TCP层负责底层连接管理,HTTP层实现协议解析与响应构造。核心模块包括HttpParser(请求解析)、HttpResponder(响应构造)和HttpHandler(业务入口),实现方法解析、静态文件读取、404处理等功能。修改TCP层回调接口适配HTTP处理,遵循复用优先原则,仅需调整回调签名即可完成协议转换。最终构建出支持GET请求、自动映射路径、返回HTML内容的轻量级HTTP服务器。

2025-11-04 20:55:15 1735

原创 深入理解 DNS 与 ICMP:网络世界的地址解析与连通性探测

本文深入解析了DNS和ICMP两大网络核心协议。DNS作为域名系统,采用分布式架构将域名转换为IP地址,通过分层域名结构(如.com、baidu.com)实现高效解析,并详细阐述了从本地缓存到根服务器的查询流程。ICMP作为网络诊断协议,通过ping命令检测连通性(基于ICMP Echo请求/响应),利用traceroute追踪路由路径,帮助定位网络故障。两个协议共同构成了网络通信的基础设施,DNS解决IP记忆难题,ICMP则为网络运维提供关键诊断工具。掌握dig、ping等命令的使用,可有效提升网络问题排

2025-11-03 22:08:20 878

原创 深入理解 NAT、代理服务与内网穿透:解决网络通信的关键技术

网络通信核心技术解析:NAT、代理与内网穿透 本文系统分析了解决网络通信困境的三大关键技术:1) NAT技术通过IP地址转换解决IPv4短缺问题,实现私有/公网IP映射,但存在外网无法主动连接内网的局限;2) 代理服务分为正向代理(客户端代理)和反向代理(服务器代理),分别实现访问控制、负载均衡等应用层功能;3) 内网穿透借助中继服务器建立通信隧道,实现外网访问内网资源。三者各司其职:NAT解决地址资源问题,代理优化访问控制与性能,内网穿透打破网络边界限制。理解这些技术原理有助于合理选择网络架构方案。

2025-11-02 16:11:36 1070

原创 ARP 欺骗深度解析:从原理到防御的全方位拆解

摘要:ARP协议因缺乏身份验证机制,存在欺骗攻击漏洞。攻击者通过伪造ARP应答包篡改目标设备的IP-MAC映射表,实施中间人攻击,可窃取数据、劫持服务或瘫痪网络。典型攻击包括收集信息、双向欺骗目标主机和网关、流量劫持以及维持欺骗状态。防范措施包括终端静态ARP绑定、交换机端口安全绑定、实时监控异常流量及升级协议防护机制。防御核心在于构建终端到网络的多层防护体系,通过技术手段打破ARP协议的信任链缺陷。

2025-11-01 21:35:35 1528

原创 深入理解数据链路层:从帧封装到介质访问的核心技术解析

摘要:数据链路层作为网络体系中的关键层级,承担相邻节点间的可靠数据传输任务。文章系统解析了该层的七大核心功能,包括帧封装拆解、MAC寻址、差错控制、流量管理等,并对比了以太网和PPP协议的差异。通过交换机工作原理和CRC校验算法实例,展示了数据链路层的实际应用与技术实现,为网络通信提供了底层保障。

2025-11-01 15:35:55 916

原创 Redis 从基础到实战

Redis是一款开源内存数据库,具有高速读写、支持多种数据结构和丰富应用场景等特点。文章介绍了Redis的安装方法(Ubuntu和Mac系统),详细讲解了5种核心数据类型(String、Hash、List、Set、ZSet)及其使用场景,包括常用命令示例。还涵盖了Redis配置修改、远程连接、持久化设置等操作,最后提供了C++通过hiredis库操作Redis的代码示例,展示如何实现用户缓存功能以减轻数据库压力。

2025-10-31 23:41:04 746

原创 深入理解网络层:互联网的 “交通指挥中心“ 与核心技术解析

网络层是 TCP/IP 协议栈的 “交通指挥中心”,负责跨网络逻辑通信,核心功能涵盖逻辑寻址、路由选择、分组转发、分片重组及拥塞控制。其以 IP 协议(IPv4/IPv6)为基石,辅以 ARP、ICMP、各类路由协议(RIP、OSPF、BGP)及 IPsec 等协议协同工作。通过 Wireshark 抓包分析、典型故障排查(如 TTL 过期、IP 地址冲突)可深入理解其运行机制,同时可借助 IPsec、QoS、SRv6 等技术实现安全与性能优化。未来,随着 IPv6 全面部署、SRv6 技术推广及网络切片应

2025-10-31 21:51:07 799

原创 深入解析 TCP 协议:从细节到实践的全方位解读

TCP协议作为互联网可靠传输的核心支柱,其设计原理与实现机制值得深入探讨。本文详细解析了TCP报文段格式、连接管理流程和可靠传输机制。首先介绍了TCP报文首部结构,包括序列号/确认号、控制标志位和窗口大小等核心字段的功能与应用场景。其次深入分析了三次握手和四次挥手的连接管理过程,阐明其状态转换逻辑与异常防护设计,并解释了为何需要三次握手而非两次、四次挥手而非三次的关键问题。最后探讨了TCP的可靠传输机制,包括确认应答、超时重传以及流量控制等关键技术。文章还针对常见的连接异常情况(如SYN Flood攻击、C

2025-10-30 22:56:11 1143

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除