自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 队头阻塞:一条 TCP,如何拖慢一整个页面?

本文系统解析了网络传输中的队头阻塞(HOL)问题及其演进解决方案,主要内容包括: 概念辨析:区分应用层HOL(HTTP消息排队)和传输层HOL(TCP按序交付),前者源于协议规则,后者由可靠传输机制引发。 协议演进: HTTP/1.1存在应用层串行请求问题,通过多连接缓解 HTTP/2实现多路复用解决应用层HOL,但仍受限于TCP的传输层HOL HTTP/3/QUIC采用流级可靠传输,显著减轻跨流阻塞 实践指导: 识别HOL特征:浏览器瀑布图中排队/停滞现象 优化策略:关键资源预加载、请求合并、CDN加速等

2026-07-30 16:00:00 296

原创 TCP 为什么有时故意跑不快?拥塞控制与滑动窗口一次讲清

摘要: 《计算机网络基础·传输层》第三篇聚焦TCP拥塞控制机制,解释为何网络传输会“忽快忽慢”。关键点包括: **流量控制(rwnd)与拥塞控制(cwnd)**的区别:前者保护接收方缓冲,后者避免网络路径拥塞; 发送窗口受限于min(rwnd, cwnd),通过滑动窗口实现高效流水线传输; 拥塞算法逻辑:慢启动(指数增长)→拥塞避免(线性试探)→丢包时降窗(快速重传/超时恢复); 现代算法差异:CUBIC依赖丢包信号,BBR主动建模带宽与RTT。

2026-07-29 16:00:00 400

原创 TCP 专章:三次握手之后,可靠管道里发生了什么?

《TCP协议详解:从握手到粘包问题》摘要 本文系统讲解TCP协议核心机制与应用实践。三次握手通过SYN/ACK交换建立可靠连接,四次挥手确保双向数据关闭。TCP通过序号确认、超时重传、滑动窗口实现可靠性,并采用流量控制与拥塞控制平衡传输效率。典型问题如粘包(字节流无消息边界)可通过长度前缀协议解决。文章提供Python/C的Echo服务示例,演示连接状态观察(ss命令)和抓包分析(tcpdump),并给出连接超时、CLOSE-WAIT堆积等问题的排查思路。

2026-07-28 05:45:00 398

原创 UDP 专章:不握手的快件——简单、粗暴、好用也易踩坑

本文介绍了UDP协议的基本概念、原理和应用。UDP是一种无连接、尽力而为的传输层协议,具有端口区分、数据报边界清晰、开销小等特点,但不保证可靠传输。文章通过生活类比和分层模型解释了UDP的工作原理,分析了其8字节报头结构和无连接特性带来的影响。常见应用场景包括DNS查询、音视频直播、游戏同步等对实时性要求高的场景。文中提供了Python和C语言的UDP收发程序示例,演示了基本通信和可靠传输模拟实现,并给出问题排查方法和安全注意事项。最后通过对照实验清单帮助读者巩固理解UDP的特性与使用方式。

2026-07-27 06:00:00 824

原创 快递选「挂号」还是「平邮」?传输层一次讲清

文章摘要: 《计算机网络基础》第三章探讨传输层的核心功能与协议选择。传输层负责将数据准确交付到目标程序(通过端口号),并权衡可靠性(TCP)与实时性(UDP)。TCP通过三次握手、序号确认、重传等机制确保可靠传输,但可能因拥塞控制或队头阻塞影响性能;UDP轻量快速,但需应用层处理丢包问题;QUIC基于UDP优化,支持多路复用与连接迁移,适合现代应用(如HTTP/3)。

2026-07-26 17:43:14 285

原创 你每天上网,其实都在「应用层」说话

文章摘要 《计算机网络基础》专栏第三章聚焦应用层协议,解析程序间通信的核心规则。应用层不涉及寻址与传输保障,而是定义消息格式与会话语义(如HTTP请求、DNS解析、TLS加密)。它依托传输层(TCP/UDP)的端口区分服务,常见协议包括: DNS(域名→IP,类似电话簿) HTTP/HTTPS(网页交互,TLS确保安全) WebSocket(长连接实时通信) SSH/DHCP(运维/IP分配)

2026-07-25 22:23:10 260

原创 敲完网址按回车,网页到底怎么冒出来的?

摘要: 本文以「在浏览器输入网址后发生了什么」为主线,拆解了网络请求的完整流程。通过六场「分镜」清晰呈现:1)URL解析(协议/域名/路径拆分);2)DNS查询(域名→IP);3)TCP三次握手建立连接;4)TLS加密认证(证书校验);5)HTTP请求/响应(状态码与资源加载);6)浏览器渲染(网络层终止)。全程由IP寻址和底层链路(以太网/Wi-Fi)支撑。文章提供实用排障指南,如通过dig、curl或浏览器开发者工具定位DNS/TCP/TLS/HTTP各阶段问题,并总结「耗时地图」帮助快速锁定瓶颈。

2026-07-24 16:12:49 393

原创 网络分层——像搭积木一样理解上网

网络太复杂?那就一层层拆开看

2026-07-24 15:41:29 392

原创 深入 Linux C/C++ 调试工具之 free(内存余量心里有数)

本文系统介绍了Linux系统中的free命令,包括其功能定位、使用场景、核心原理、常用参数和实战案例。free命令用于查看系统内存和交换分区使用情况,数据来源于/proc/meminfo。文章强调重点关注available列而非free列,因为Linux会利用空闲内存作为缓存。详细解析了内存计算原理、Swap机制和常见误区,并通过10个典型案例展示如何诊断内存泄漏、缓存问题和Swap使用等场景。最后总结了free命令的核心价值:提供整机内存状况概览,需结合其他工具进行深入分析,是内存问题排查的第一步而非终点

2026-07-23 21:48:09 351

原创 断点一设真相现!程序调试必备工具之 gdb,快速入门到精通

本文摘要: 《GDB调试从入门到精通》提供高效学习路线,分为L0入门至L3精通四个阶段,强调实践闭环:编写崩溃小程序,用GDB定位根因并记录命令。GDB是Linux核心调试工具,支持断点控制、内存查看、多线程调试等,需结合-g编译选项。文章详解启动方式、断点设置、数据查看、多线程/进程调试等核心命令,并通过12个案例(如空指针、死锁、条件断点)演示实战技巧。高级内容涵盖脚本化、STL美化打印和远程调试。常见问题解答覆盖优化代码调试、符号缺失等场景。最后总结分层学习要点,附自验收清单。

2026-07-22 23:18:55 1091

原创 从一根网线到整个互联网:计算机网络专栏开篇

高效服务间调用微服务超时、负载均衡、流控。

2026-07-21 22:24:39 217

原创 深入 Linux C/C++ 调试工具之 objdump(反汇编一眼看懂)

《objdump工具深度解析与使用指南》 摘要:本文系统介绍了Linux环境下二进制分析工具objdump的核心功能与应用场景。作为GNU Binutils的重要组件,objdump能够静态解析ELF格式文件,提供反汇编、段头分析、符号查看等关键功能。文章详细对比了objdump与nm、readelf等相关工具的差异,通过7大典型场景和8个实战案例,演示了如何查看函数汇编、优化对比、源码混排、PLT调用分析等实用技巧。特别针对地址转换、交叉架构、strip影响等常见问题给出解决方案。

2026-07-20 18:30:15 1230

原创 Linux 段错误(Segmentation fault)怎么定位?8 种实战方法从 dmesg 到 ASan/gdb

摘要: Segmentation fault(段错误)是进程访问非法内存地址时触发的SIGSEGV信号,常见于空指针、堆越界、栈溢出等场景。定位需关注四要素:故障地址、指令位置、调用栈及内存操作时间线。核心工具有: ASan(开发首选):实时检测内存越界、UAF等问题,直接定位根因代码; CoreDump+GDB:分析崩溃现场,结合bt full查看完整调用栈与变量; dmesg:解析内核日志中的地址与错误码,快速匹配崩溃点; Valgrind:无侵入检测内存错误,适合无法重编场景。

2026-07-19 13:45:58 1103 1

原创 深入 Linux C/C++ 调试工具之 tiptop(IPC 高低一目了然)

摘要: tiptop是一款基于Linux硬件性能计数器的实时监控工具,类似top但聚焦微架构指标(如IPC、缓存缺失率),帮助开发者分析CPU效率问题。核心功能包括:实时监控进程级性能指标、对比优化效果、排查缓存瓶颈等。其原理通过perf_event_open采集数据,支持交互与批量模式。典型使用场景包括高CPU低吞吐服务分析、多线程伪共享检测等。文章详细介绍了命令参数、实战案例(如计算密集与缓存密集任务对比)及常见问题解答。tiptop与top/perf互补,快速定位性能瓶颈后,可结合perf进行深度剖析

2026-07-19 00:31:21 309

原创 深入 Linux C/C++ 调试工具之 ps(进程快照一眼看清)

本文详细介绍了Linux进程管理工具ps的核心功能与实战应用。全文分为六个部分:首先概述ps作为进程快照工具的特点及与其他工具(top/pgrep等)的对比;其次解析7个典型使用场景,包括确认服务状态、排查僵尸进程、分析多线程程序等;然后深入探讨ps的工作原理,包括/proc数据源、STAT状态解析和线程/僵尸机制;第四部分详解常用参数和输出列定制;第五部分通过C语言demo程序演示7个实战案例;最后解答常见疑问。

2026-07-16 21:55:38 197

原创 深入 Linux C/C++ 调试工具之 ss(套接字状态一目了然)

ss(socket statistics)是iproute2套件提供的套接字统计与查看工具,用于查看本机等套接字的状态、本地/对端地址、进程、队列深度、定时器、内存等信息。ss 是网络连接的「实时透视镜」—— 比netstat更快、信息更全,排查端口占用、连接堆积、CLOSE-WAIT 泄漏时首选。ss 通过 Netlink 快速展示本机套接字状态,是netstat的现代替代。先看 LISTEN/ESTAB/CLOSE-WAIT/TIME-WAIT 分布,再决定查应用还是网络。

2026-07-15 22:33:52 533

原创 深入 Linux C/C++ 调试工具之 top(进程热点一眼掌握)

摘要: top是Linux/Unix系统自带的实时进程与资源监控工具,核心功能包括动态刷新CPU、内存、负载等指标,支持交互排序、筛选进程、调整优先级及终止进程。常用于快速定位高CPU/内存消耗的进程,结合htop、perf、iostat等工具形成完整排查链路。其数据源自/proc文件系统,通过两次采样计算进程CPU占比,界面分为系统摘要(负载、CPU状态、内存)和进程列表(PID、RES、%CPU等)。常用操作包括按P/M/T排序、-H查看线程、-p监控指定进程,以及批处理模式日志记录。

2026-07-14 07:45:00 583 1

原创 深入linux c/c++调试工具之ltrace(库函数无处遁形)

本文介绍了Linux下的动态库函数调用跟踪工具ltrace。ltrace用于监控程序运行时调用的共享库函数(如malloc、fopen等),可显示参数、返回值和耗时信息。与strace(跟踪系统调用)和gdb(调试)相比,ltrace更接近程序员日常使用的API层次。文章详细讲解了ltrace的工作原理(拦截PLT跳转)、常用参数(-e过滤、-c统计、-f跟踪子进程等)和典型应用场景(排查内存泄漏、分析闭源库行为等),并通过多个案例演示了如何使用ltrace进行实际问题排查。

2026-07-13 07:53:54 804

原创 深入linux c/c++调试工具之nm(一眼看穿符号)

摘要: nm工具是GNU Binutils中的符号表查看工具,用于分析目标文件、可执行文件、静态库及内核模块中的符号信息,包括函数、变量名称、类型和地址。核心功能包括排查链接错误(如undefined reference)、验证符号是否导出(动态库/内核模块)、对比strip前后差异、解析C++混淆符号(mangled name)以及静态库符号检索。

2026-07-10 17:48:53 310

原创 深入linux c/c++调试工具之AddressSanitizer(内存越界一跑就现形)

摘要:AddressSanitizer(ASan)是Google开发的内存错误检测工具,集成于GCC/Clang编译器,通过编译时插桩和影子内存机制实时检测多种内存问题。支持堆/栈/全局缓冲区越界、释放后使用、重复释放及内存泄漏等错误类型。使用时通过-fsanitize=address编译选项启用,结合调试信息可精准定位错误位置及调用栈。典型应用场景包括崩溃调试、CI门禁和用户态仿真测试。ASan通过红区隔离和内存毒化技术实现高效检测,性能损耗约2倍,适用于开发调试阶段。

2026-07-09 11:18:15 1184

原创 自研网卡如何接入 DPDK?一篇讲透 PMD 驱动适配开发的实战指南

本文介绍了在DPDK框架下适配PMD(Poll Mode Driver)网卡驱动的完整流程。主要内容包括:1. DPDK与PMD基础概念:DPDK是高速数据面开发工具包,PMD是其用户态网卡驱动实现;2. PMD适配步骤:从编译配置、PCI ID注册、初始化流程到收发包核心函数实现;3. 关键接口开发:详细说明eth_dev_ops中设备信息、队列管理、状态统计等20+个必需接口;4. 应用调用流程:典型DPDK应用对PMD的初始化、配置和使用方法;5. 调试经验:列举编译失败、probe异常、性能问题等

2026-07-08 09:08:55 580

原创 深入linux c/c++调试工具之perf

perf 是 Linux 内核自带的 性能分析工具,基于内核的 perf_events 子系统,可采集 CPU 周期、指令、缓存缺失、分支预测失败、系统调用、函数调用链等事件,用于 定位热点函数、分析 CPU 瓶颈、排查性能退化。perf 跟踪的是 CPU 性能事件和热点函数,回答「时间花在哪些函数/指令上」,而不是「发起了哪些 syscall」。原理是 perf_events 采样/计数,开销通常低于 ptrace 型 strace,适合 短时性能分析,但仍不建议 7×24 全开。

2026-07-07 18:12:23 210

原创 深入linux c/c++调试工具之strace

摘要: strace是Linux下强大的系统调用跟踪工具,用于监控进程与内核的交互(如文件/网络操作、权限检查等)。其核心原理基于ptrace机制,通过拦截syscall和信号实现跟踪。

2026-07-07 16:12:01 317

原创 梳理陌生代码函数调用链,finstrument-functions助你快速破局

文章摘要:GCC/Clang的-finstrument-functions编译选项通过自动在函数入口/出口插入钩子函数,实现运行时调用链追踪。相比传统调试方法(如逐行阅读、gdb单步),它能快速生成完整的函数调用路径图。使用时需实现__cyg_profile_func_enter/exit钩子函数并添加防递归属性,建议配合-g选项将地址转换为可读代码位置。该方法特别适合分析复杂调用关系,但会降低内联优化效率,仅推荐用于调试构建。示例代码演示了如何输出带缩进的调用层级,显著提升代码理解效率。

2026-07-06 18:32:55 559

自媒体人救星:小红书+知乎+头条+百家号+公众号差异化爆款写作 Skill

【资源简介】 这是一份面向 Cursor Agent 的实用 Skill:专门解决「同一主题在不同平台写出爆款图文/软文,但又不串味、不注水」的问题。 覆盖平台: · 小红书 · 知乎 · 今日头条 · 百家号 · 微信公众号 【你能得到什么】 1)五平台差异化策略速查表(字数、开头、结构、语气、结尾、标签、软文姿势) 2)可直接发布的成稿输出模板(标题池、封面字、正文、标签、CTA、发布清单) 3)分平台正文模板与细化规则(段落节奏、检索词、禁忌项) 4)标题/开头/封面公式库(避免标题同质化) 5)软文专项规则:价值≥70%、前40%不硬推、「不适合谁」、合规红线 6)质量打分表(<8分必须改)——保证输出稳定、可交付 【适合谁】 · 技术博主 / 自媒体运营(一稿多端改写) · 做产品种草、测评、选型指南的内容同学 · 想把公众号长文高效改成小红书/知乎/信息流版本的创作者 · 使用 Cursor 做内容生产、希望 Agent「按规范写」而不是自由发挥的人

2026-07-27

U盘DOS启动盘制作工具及步骤

DOS启动盘制作,包含工具以及操作步骤,主要针对U盘进行操作

2026-07-27

短视频AI制作五件套skills:从选题到成片文案一次齐

实用skill,覆盖选题排期、口播脚本、分镜拍摄、标题封面与字幕花字五步,按抖音/视频号等竖屏习惯输出可直接拍、剪、发的材料,帮你把「有想法」变成「能更新的内容流水线」。

2026-07-20

【计算机体系结构】基于DMA的高性能数据传输方案:面向FPGA与Linux驱动的描述符环设计及零拷贝优化

内容概要:本文提供了一套可直接落地的DMA高效数据传输实现方案,涵盖描述符环设计、寄存器规划、内存映射规范、Linux驱动骨架代码、FPGA/DMA硬件逻辑实现、端到端时序控制及性能优化清单。方案采用“物理连续描述符环+Tail门铃+DD写回+MSI-X+多队列”架构,通过明确所有权模型(OWN/DD标志位)、内存屏障机制和批量处理机制,实现高吞吐、低CPU占用的数据传输。配套提供了软件环仿真示例与完整验证流程,支持从仿真到真实硬件的平滑过渡。; 适合人群:具备嵌入式系统、Linux驱动或FPGA开发经验,熟悉DMA、PCIe/AXI总线及底层系统编程的研发工程师(工作年限1-5年);适用于网络设备、智能网卡、高速采集等高性能数据传输场景开发者。; 使用场景及目标:①构建高性能网卡、智能加速卡或嵌入式IO设备的DMA子系统;②优化现有系统中因CPU拷贝导致的瓶颈问题;③实现零拷贝、多队列并行、中断聚合等高级特性以提升吞吐与实时性;④快速验证DMA设计方案的功能正确性与性能边界。; 阅读建议:建议按照“软件仿真→Fake HW→真实硬件”的分阶段实现路径逐步推进,重点关注描述符所有权管理、内存映射同步(dma_wmb/dma_rmb)和中断处理机制,结合附录头文件与示例代码进行对照实现,并利用提供的验证用例和调试手段保障系统稳定性。

2026-07-15

【计算机等级考试】C语言二级备考全攻略:6周复习计划与操作题提分策略设计

内容概要:本文为准备全国计算机二级C语言考试的学习者提供了一份详细的6周复习计划表,涵盖考试结构、评分标准、备考策略及每日学习安排。重点强调操作题的重要性,要求每天上机练习,掌握填空、改错和编程题的解题思路与技巧。同时指出选择题需确保不低于24分,尤其是公共基础知识部分作为高性价比得分项应重点突破。复习内容包括C语言核心语法、指针、结构体、文件操作等高频考点,并推荐使用真题卷和模拟系统进行实战训练。; 适合人群:准备参加计算机二级C语言考试,具备一定C语言基础,每天可投入2-3小时学习的学生或在职人员。; 使用场景及目标:①系统化备考,确保选择题和操作题双达标,一次性通过考试;②提升编程实操能力,熟练掌握VC++2010环境下的程序调试与运行;③针对薄弱环节查缺补漏,提高应试稳定性。; 阅读建议:建议严格按照计划执行,配合真题练习与错题整理,重视上机操作,避免只看不练;考前一周以模考和回顾为主,调整状态,确保熟悉考试流程与时间分配。

2026-07-15

光通信SFF-8431 SFP+模块规范:高速电气与管理接口技术标准

内容概要:本文档为SFF-8431_for_SFP+_中文全文,主要定义了增强型小型可插拔模块(SFP+)与主机之间的低速电气接口及管理接口规范,同时涵盖了高速电气接口规范。SFP+模块是一种热插拔、小尺寸、串行到串行、与数据协议无关的光收发器,适用于多种光连接器,并能在850nm、1310nm或1550nm波长下实现单模或多模串行光接口。文档详细描述了SFP+模块与主机的高速电气接口(SFI),包括其信令速率、测试点定义、端接与直流隔直要求等。此外,文档还提供了关于低速电气控制触点、2线接口、电源要求、ESD防护等方面的具体规范,以及针对不同应用场景的测试方法和合规性要求。; 适合人群:从事光通信设备设计、制造、测试的专业技术人员,尤其是专注于SFP+模块及其相关接口开发的工程师。; 使用场景及目标:①为SFP+模块的设计与生产提供标准化的技术指导;②确保SFP+模块与主机之间的互操作性和兼容性;③为SFP+模块的测试与验证提供明确的测试方法和合规性标准。; 阅读建议:读者应当结合实际项目需求,深入理解文档中提到的各项技术指标和测试要求,特别关注SFI接口的电气特性、低速控制信号的功能定义、电源管理策略以及ESD保护措施。对于涉及具体测试流程的部分,建议参照文档提供的测试配置和步骤进行实践,以确保产品符合SFF-8431标准。

2026-07-14

【网络设备驱动】基于i40e的Intel网卡中断机制源码分析:MSI-X多向量中断处理与NAPI轮询协同设计

内容概要:本文详细梳理了 Intel i40e 网卡内核驱动在 Linux 系统下基于 PCIe MSI-X 中断机制的完整中断处理流程,涵盖从驱动加载(probe)、网络接口开启(open)、运行时数据包接收中断、NAPI 轮询机制、中断重启用、misc 中断处理,到关闭与卸载(close/remove)的全生命周期流程。文档通过多个流程图和关键代码调用链,深入解析了中断三层架构(硬件、驱动、内核)、MSI-X 向量分配策略、寄存器操作时序以及动态中断节流(ITR)机制,重点展示了 i40e 驱动如何高效处理高吞吐网络环境下的中断负载。; 适合人群:从事 Linux 内核网络驱动开发、DPDK 或高性能网络编程的中级以上研发工程师,或对网卡底层中断机制有研究需求的技术人员。; 使用场景及目标:①理解 i40e 网卡驱动中断全流程设计与实现;②掌握 MSI-X 多向量中断在实际驱动中的应用;③学习 NAPI 机制与动态中断调节(ITR)协同工作的原理;④为性能调优、故障排查或自定义驱动开发提供参考依据。; 阅读建议:建议结合 Linux 内核源码(特别是 i40e_main.c 文件)与本文流程图对照阅读,重点关注中断使能时序、向量分配逻辑及寄存器操作顺序,便于深入理解驱动行为与硬件交互细节。

2026-07-13

dpdk网卡多队列性能测试app-l2fwd源码

基于dpdp原始l2fwd修改,支持配置多核多队列,用于测试网卡性能,同时理解dpdk app最基础使用

2026-07-08

空空如也

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

TA关注的人

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