- 博客(18)
- 资源 (11)
- 收藏
- 关注
原创 Linux C/C++ 程序的内存泄漏定位方法
工具场景推荐性能开销使用难度Valgrind开发和测试环境,精确定位高简单开发和测试环境,快速定位中简单gperftools生产环境,性能影响小较低中等推荐流程:先用在测试环境快速定位泄漏位置。如果需要在生产环境定位,使用gperftools。结合代码人工审查,确保彻底修复。通过以上方法,可以快速、准确地定位到内存泄漏的代码行,并有效修复问题。
2025-03-21 14:34:33
727
原创 记一次系统重启导致的程序段错误调试
程序device-service业务正常,只有在系统重启时会出现端错误信息,因为是服务程序,系统启动之后会正常运行,不会再出现段错误,详细见(dmesg信息);。ip: 指令指针寄存器,字段后面的数字是程序出错时程序执行的位置sp: 堆栈指针寄存器error: 错误码,由三个字位组成,从高到低分别为bit2 bit1 和bit0bit2: 值为1表示是用户态程序内存访问越界,值为0表示是内核态程序内存访问越界bit1: 值为1表示是写操作导致内存访问越界,值为0表示是读操作导致内存访问越界。
2025-03-19 16:20:59
191
原创 Nginx基于SSL的TCP代理
Nginx可以通过代理模块实现上游服务器SSL/TLS协议的连接,同时Nginx 还通过模块 ngx_stream_ssl_module 提供了基于 SSL/TLS 协议的 TCP 连接监听。Nginx 还可以把 SSL 证书部署在 Nginx 服务器上,这就减轻了后端上游服务器的 CPU 运算量并实现 SSL 证书的统一管理和维护。ngx_stream_ssl_module 模块默认不会被构建,这就需要在编译的时候通过--with-stream_ssl_module参数进行启用。
2025-03-19 10:51:50
864
原创 IO多路复用(select/poll/epoll)技术对比
性能表现连接数 < 1000:三者差异不大连接数 > 10000:epoll性能呈指数级优势触发模式差异LT模式:数据未处理时会持续通知ET模式:仅在状态变化时通知一次,需一次性读取所有数据内存管理select/poll 每次调用需全量数据传递epoll 通过内核红黑树长期维护fd集合适用场景select:跨平台简单场景poll:需要较高连接数的简单服务epoll:高性能服务器(Nginx、Redis等)
2025-03-07 16:51:21
722
原创 linux c++实现监控网卡状态变化
是描述网络接口状态的一个重要字段。通过位标志的形式,可以准确地判断接口的当前特性和状态,例如是否已启动、是否运行、多播、广播能力等。这在网络开发和调试中非常有用。
2025-03-05 09:07:32
1783
原创 高性能日志模块设计
接收层:采用Nginx-style多worker进程+协程池(Go)/Epoll(C++)处理高并发接入。缓冲层:基于LMAX Disruptor环形队列实现内存缓冲区(单节点百万级TPS)零拷贝技术:采用io_uring(Linux 5.1+)或mmap实现网络包直接解析。存储层:分级存储策略(热数据→OpenSearch,冷数据→ClickHouse)处理层:并行流水线设计(解码→过滤→富化→聚合)原始日志 → Snappy压缩 → 内存(2h)内存占用:<8GB(百万级日志处理时)
2025-03-04 17:20:25
344
原创 网闸高可用(双机热备)实现思路【状态震荡解决方案】(二)
在上文中的网闸(包含内外板隔离板卡)设备的高可用实现方案,详见但是在多板卡状态同步过程中可能会出现状态震荡的问题,本文讲述如何解决网闸高可用状态震荡问题,从整体来看,在网闸设备A和B组成的高可用环境中,同时包含四个独立的系统(即设备A内板、设备A外板、设备B内板、设备B外板),当每一个系统出现状态改变时,其他三个都得跟着改变,但同时必须保证设备A的内板和外板状态一致,设备B的内板和外板状态一致。
2025-02-27 09:09:56
755
原创 网闸高可用(双机热备)实现思路(一)
网闸设备要实现高可用较其它网络设备存在极大的困难,因为网闸有两个隔离板卡,每隔隔离板卡都是一个独立的系统;如果部署两台网闸设备A和B作为主备,那么网闸A的内板和网闸B的内板,以及网闸A的外板和网闸B的外板都互为主备,并且,我们需要通过 Keepalived 来实现复杂的双机热备,同时要确保内外板状态同步。
2025-02-26 11:24:13
975
原创 身份认证机制(整理)
MAC认证是一种基于接口和MAC地址对用户的网络访问权限进行控制的认证方法,它不需要用户安装任何客户端软件。设备在启动了MAC认证的接口上首次检测到用户的MAC地址以后,即启动对该用户的认证操作。认证过程中,不需要用户手动输入用户名或者密码。拆分成三部分进行理解。数据:指任何以电子或者非电子形式对信息的记录。数据分类:根据组织数据的属性或特征,将其按照一定的原则和方法进行区分和归类,并建立起一定的分类体系和排列顺序,以便更好地管理和使用组织数据的过程。
2025-02-26 09:31:42
707
原创 网关类设备技术演进思路
遵循标准: 符合相关的技术标准,确保产品的互操作性和稳定性。目前没有厂商实现对网关类设备的语音和智能助手的集成,用户使用网关设备的门槛和技术要求依然很高。IoT安全: 提供特定于物联网设备的安全策略和防护机制,确保IoT设备的安全性。语音和智能助手集成: 支持语音控制和智能助手集成,提供更自然的用户交互方式(遵循法规: 遵循各地区的法规,特别是关于数据隐私和网络安全的法规。固件和软件安全更新: 支持远程固件和软件的安全升级,及时修复漏洞。故障诊断和远程支持: 提供远程故障诊断和支持,减少用户的使用障碍。
2025-02-25 11:29:37
428
原创 网闸:视频交换及边界组网(平台级联)
视频交换系统是一款专为视频应用设计的功能模块,旨在确保视频业务的高效运行,同时提供隔离传输通道,实现内外网的安全隔离。它可广泛应用于政府机构、企业组织、警务系统等场景,特别适用于需要视频网络安全隔离和数据交换的关键领域。通过内置的应用识别模块,系统能够精准识别视频信令协议和媒体流,仅允许授权的信令和视频流在内外网之间进行安全“摆渡”,其他类型的数据则会被严格阻断,防止非法请求或未经授权的流量通过网闸。这一机制有效保障了内外网数据交换的安全性和可靠性。
2025-02-25 11:24:35
721
原创 SIP从注册到拉流(实测序列)
在现代通信网络中,SIP(会话发起协议)作为一个关键的信令协议,在VoIP通信、视频会议、流媒体传输等众多应用场景中发挥着不可或缺的作用。从设备的注册,到音视频流的拉取和传输,每一个步骤都蕴藏着复杂的交互逻辑。本文将以实际测试为基础,从实践的角度深入剖析SIP协议在从“注册”到“拉流”过程中的完整序列,了解其中的关键步骤、信令交互和潜在问题。无论您是刚接触SIP的初学者,还是深入研究该领域的技术专家,相信这篇文章都能为您提供有价值的参考和启发。本文基于GB28181标准进行测试。
2025-02-20 13:30:21
317
原创 SIP协议ALG实现逻辑【概览】(一)
ALG(Application Layer Gateway,应用层网关)是通过理解应用层协议来调整网络流量的网络设备功能,尤其在NAT(Network Address Translation,网络地址转换)环境下的通信场景中,ALG的存在可以显著提高协议的流畅性和适应性。SIP ALG是一种网络设备(如路由器、防火墙、网闸等)上的功能模块,它能够检查SIP信令和媒体流,并协助解决由NAT设备引起的通信问题(如 IP 地址和端口的转换)。
2025-02-20 09:29:11
2154
原创 OSPF协议跨网闸传输
其次对报文进行深度解析,判断是否是OSPF协议(OSPF的协议号为89),对OSPF协议的包进行放行(不进行常规网络协议控制检测,攻击检测除外,否则会有失安全性)。如表所示,OSPF网络类型和报文形式多样,想通过配置策略放行存在极大难度(对用户的网络储备有极高的要求),所以需要在网闸安全策略的实现上进行深度协议解析,并对OSPF协议进行放行。某些网闸可能具备深度流量分析功能,如果该功能对OSPF报文进行深入解析,可能会增加处理延迟,或者出现与OSPF流量不兼容的情况,影响OSPF邻居状态的保持。
2025-02-19 15:39:32
1874
原创 Docker K8s KubeEdge安装部署
[一]移植Dockerd (ARM64)1. 二进制下载#wget https://download.docker.com/linux/static/stable/aarch64/2. 解压#tar zxvf docker-18.06.3-ce.tgz3. 复制二进制文件到/usr/bin目录#cp docker/* /usr/bin/4. 检查是否安装#docker versison [此命令打印以下信息]Client: Version: ...
2024-12-18 17:24:45
968
Java程序设计实例制作拼图游戏
2012-06-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人