- 博客(96)
- 收藏
- 关注
原创 多路转接select&&poll&&epoll
本文系统介绍了Linux下的三种I/O多路复用技术:select、poll和epoll。select使用位图管理文件描述符,存在数量限制和性能问题;poll采用数组结构解决了数量限制,但仍需遍历所有描述符;epoll通过红黑树和就绪链表实现了高效事件通知,支持边缘触发和水平触发模式。文章详细分析了各技术的工作原理、接口使用和性能特点,重点阐述了epoll的ET/LT模式差异及非阻塞I/O的必要性。最后介绍了Reactor模式和OneThreadOneLoop架构,探讨了如何通过事件驱动模型实现高并发服务器。
2026-03-04 20:18:01
391
原创 IO模型与非阻塞IO
五种IO模型与高级IO概念 本文通过钓鱼的生动比喻,系统阐述了五种IO模型的特点:阻塞IO(持续等待)、非阻塞IO(轮询检查)、信号驱动IO(信号通知)、IO多路转接(同时监控多个描述符)和异步IO(内核完成全部工作)。其中IO多路转接效率最高,因其能重叠等待时间。 文章区分了同步/异步通信(调用者是否主动等待结果)和阻塞/非阻塞(线程状态)两个重要概念。同步IO包括前四种模型,异步IO则由内核完全负责。最后介绍了通过fcntl设置非阻塞IO的方法,并验证了终端缓冲区的存在。 核心观点:高效IO的关键在于减
2026-02-25 09:49:24
651
原创 数据链路层
本文介绍了以太网技术标准和相关网络协议。以太网是一种包含数据链路层和物理层内容的技术标准,规定了网络拓扑、传输速率等参数。文章详细阐述了MAC地址的作用(48位硬件地址)、MTU(最大传输单元)概念及其对IP、UDP、TCP协议的影响(数据分片与重组)。同时讲解了ARP协议的工作原理,包括IP与MAC地址的映射机制、请求/应答流程以及ARP缓存表管理。此外还简要提及了ARP欺骗这种中间人攻击方式。全文系统性地介绍了以太网通信过程中各层协议的协同工作机制。
2026-02-21 21:26:28
664
原创 网络层ip
摘要:本文系统介绍了IP协议的核心概念与技术要点。首先阐述了IP协议的基本功能——实现跨网络数据传输,但本身不保证可靠性。随后详细解析了IP协议头格式的各个字段含义,包括版本号、服务类型、生存时间等关键参数。重点讨论了CIDR网段划分方案及其优势,对比了传统的IP地址分类方法。此外,还介绍了特殊IP地址、IP地址数量限制及解决方案(动态分配、NAT、IPv6)、私有与公网IP的区别,以及NAT技术的实现原理。文章还涉及路由机制、分片组装过程,并简要概述了公网架构中各参与方的角色。最后通过示例说明了路由表的实
2026-02-19 22:01:45
634
原创 传输层UDP&&TCP
本文详细介绍了TCP和UDP两种传输层协议的核心机制。UDP是无连接、不可靠的协议,通过端口号标识应用进程,采用固定长度的报头结构,具有发送缓冲区但无接收缓冲区限制。TCP则是面向连接的可靠协议,通过三次握手建立连接、四次挥手断开连接,采用序列号、确认应答、超时重传等机制保证可靠性,并通过滑动窗口、流量控制、拥塞控制等策略提高性能。文章还分析了粘包问题、全连接队列、TCPdump抓包工具等内容,比较了TCP和UDP的适用场景,指出TCP适用于可靠传输,UDP更适合实时性要求高的应用。
2026-02-11 10:59:44
570
原创 HTTPS
HTTPS安全通信机制解析 HTTPS通过引入加密层(TLS/SSL)在HTTP基础上实现安全传输,解决了明文传输易被篡改的问题。其核心机制包含: 加密方式:结合对称加密(高效)和非对称加密(安全),先通过非对称加密协商对称密钥,后续通信使用对称加密。 证书体系:CA机构颁发包含服务器公钥的数字证书,通过数字签名(CA私钥加密的证书摘要)验证证书真实性,防止中间人攻击。 工作流程:客户端验证证书有效性→用证书公钥加密随机生成的对称密钥→服务器用私钥解密获取对称密钥→建立安全通信通道。 该机制通过三组密钥协作
2026-01-30 20:30:42
615
原创 应用层协议HTTP
HTTPCookie(也称为WebCookie、浏览器Cookie或简称Cookie)是服务器发送到用户浏览器并保存在浏览器上的一小块数据,它会在浏览器之后向同一服务器再次发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态、记录用户偏好等。HTTP Session是服务器用来跟踪用户与服务器交互期间用户状态的机制。由于HTTP协议是无状态的(每个请求都是独立的),因此服务器需要通过Session来记住用户的信息。
2026-01-29 16:49:46
701
原创 c++线程库
摘要:本文详细介绍了C++11中的多线程编程特性。首先讲解了thread类的基本用法,包括线程创建、管理以及三种线程函数提供方式(函数指针、lambda表达式、函数对象)。其次分析了线程参数传递机制,指出默认值拷贝的问题及解决方案(std::ref)。然后重点介绍了原子操作库(atomic)及其在解决线程安全问题上的优势。接着详细阐述了四种互斥量类型及其RAII封装(lock_guard和unique_lock),并通过示例展示了条件变量(condition_variable)实现线程间同步的方法。全文系统
2026-01-26 10:27:05
802
原创 c++的IO流
本文系统介绍了C/C++中的输入输出机制。首先讲解了C语言的scanf和printf函数,以及缓冲区的概念与作用。然后重点阐述了C++的流(stream)机制,包括标准IO流(cin/cout)、文件IO流和字符串流(stringstream)。详细说明了流的特点、类继承关系、使用方法及注意事项,如类型转换、缓冲区处理、自定义类型重载等。特别分析了二进制与文本文件的读写差异,以及stringstream在数据类型转换和字符串处理中的优势。最后通过多个代码示例演示了各种流的实际应用场景,包括标准输入输出、文件
2026-01-25 16:09:44
727
原创 应用层自定义协议与序列化
本文主要介绍了网络应用层协议设计、TCP通信机制以及进程管理与守护进程的实现。在应用层协议方面,重点阐述了结构化数据的序列化与反序列化方法,以网络版计算器为例说明了JSON序列化方案的实际应用。详细分析了TCP全双工通信机制,解释了缓冲区工作原理及粘包问题。在系统编程方面,深入讲解了进程组、会话、控制终端等概念,并介绍了作业控制的方法。最后提供了守护进程的实现方案,包括信号处理、会话创建、文件描述符管理等关键技术,使进程能够脱离终端独立运行。文章结合具体代码示例,系统性地介绍了从网络通信到系统进程管理的完整
2026-01-22 20:28:37
664
原创 Socket编程TCP
本文介绍了网络编程中TCP协议的核心接口及其应用。主要内容包括:1)socket()创建通信端口,bind()绑定地址端口,listen()设置监听状态,accept()接受连接请求;2)客户端connect()建立连接的过程及TCP/UDP协议差异;3)Echo服务器从单进程到多线程、线程池的演进实现;4)TCP字节流特性带来的数据完整性问题及解决方案;5)Windows环境下TCP编程注意事项。文章还探讨了UDP与TCP在数据传输方式上的本质区别,并提供了远程执行、断线重连等实用功能的实现思路。
2026-01-19 20:21:25
946
原创 Socket UDP编程
本文介绍了UDP网络编程的基础知识和实践应用。主要内容包括:1)网络通信基础,如IP地址、端口和UDP全双工特性;2)常用网络命令如ping、netstat、watch和pidof的使用方法;3)UDP编程接口详解,包括socket创建、bind绑定、recvfrom/sendto收发数据等;4)实践案例:Echo服务器实现数据回显、DictServer实现英汉翻译功能;5)Windows客户端适配要点,包括Winsock库初始化、编码转换等注意事项。文章通过具体代码示例,展示了如何实现跨平台的UDP网络通
2026-01-16 16:35:23
1011
原创 网络基础概念
本文系统介绍了计算机网络的基本概念和协议体系。主要内容包括:1.网络发展历程,从独立计算机到局域网、广域网的演进;2.网络协议的分层结构,重点解析了OSI七层模型和TCP/IP五层模型;3.网络传输流程,详细说明了数据封装解包、局域网通信原理和跨网络传输;4.Socket编程基础,包括IP地址、端口号、TCP/UDP协议等核心概念;5.网络字节序和Socket API接口规范。文章通过类比生活中的通信方式,深入浅出地解释了复杂的网络协议原理,强调协议分层设计的必要性和优势,为理解现代计算机网络通信机制提供了
2026-01-03 23:02:39
928
原创 线程同步与互斥
本文摘要: 本文深入探讨了Linux线程同步机制,重点分析了互斥锁、条件变量和读写锁的实现原理与应用场景。首先介绍了临界资源、临界区等基本概念,详细讲解了互斥锁(mutex)的接口使用和底层实现机制,包括原子交换指令的应用。随后阐述了条件变量的工作原理,并结合生产者消费者模型展示了线程同步的实际应用。文章还对比了POSIX信号量与互斥锁的差异,并介绍了环形队列的实现。在高级应用部分,重点讨论了线程池的设计与实现,包括任务队列管理、线程安全处理和日志系统的集成。最后分析了线程安全与可重入性的区别,以及死锁的预
2025-12-31 21:35:46
906
原创 线程概念&&控制
Linux线程与进程管理机制解析 摘要: 本文深入探讨了Linux系统中线程与进程的实现机制。Linux采用轻量级进程(LWP)模拟线程,通过复用进程管理结构(task_struct)实现线程功能,与Windows采用独立线程数据结构的设计形成对比。文章详细分析了线程概念、分页式存储管理、物理内存管理机制,包括页表、页目录结构和TLB快表等核心组件。同时阐述了线程控制方法,包括创建(pthread_create)、终止(pthread_exit)、等待(pthread_join)和分离(pthread_de
2025-12-07 21:43:58
846
原创 linux进程信号
本文系统介绍了Linux系统中的信号机制。主要内容包括:1. 信号概念:信号是进程间异步通信的软中断方式,与信号量无关。系统定义了32种信号,每种信号有编号和默认处理动作。2. 信号产生方式:包括终端按键、系统命令、函数调用、软件条件和硬件异常等。3. 信号处理:进程可以忽略信号、执行默认动作或自定义处理函数。通过signal()和sigaction()函数设置处理方式。4. 信号存储:内核使用pending位图记录未决信号,block位图记录被阻塞信号。5. 信号捕捉流程:涉及4次用户态与内核态切换.
2025-11-28 20:47:34
924
原创 进程间通信
本文系统介绍了进程间通信(IPC)的多种机制。首先阐述了IPC的目的包括数据传输、资源共享、事件通知和进程控制,并指出需要操作系统提供共享空间作为通信基础。文章重点分析了管道通信,包括匿名管道(pipe)和命名管道(FIFO),详细说明了其创建方式、工作原理和使用规则,特别强调了匿名管道只能在有血缘关系的进程间通信的特性。随后介绍了System V IPC机制,包括共享内存、消息队列和信号量,着重讲解了共享内存的高效性和使用方法。文章还探讨了信号量在资源保护和进程同步中的重要作用。最后分析了内核如何统一管理
2025-11-16 19:31:23
1121
原创 T-SQL(up up)学习版
T-SQL是SQL语言的扩展版本,专用于微软SQL Server数据库系统。它在标准SQL基础上增加了变量、流程控制、函数等功能,使其具备完整的编程能力。文章系统介绍了T-SQL的语法结构、数据类型、变量定义与赋值、运算符、内置函数、流程控制语句等内容。特别强调了T-SQL在企业级应用中的重要功能,包括存储过程、触发器、游标、事务管理等高级特性,以及数据库安全管理机制。通过大量实例演示了如何利用T-SQL进行数据库编程,实现复杂业务逻辑和数据操作。最后还介绍了数据库备份恢复、导入导出等运维管理操作,为数据库
2025-05-28 09:20:54
808
原创 Springboot-基础
本文摘要:本文系统介绍了Java开发中的核心设计模式MVC及其实现框架SpringBoot,涵盖MVC组件(Model-View-Controller)、SpringBoot自动配置、数据访问(JPA/MyBatis)、缓存(Redis)、安全框架(SpringSecurity)等技术要点。重点讲解了: MVC设计模式原理与SpringBoot实现 实体类映射与Repository接口规范 Thymeleaf模板引擎应用 Redis缓存集成与序列化配置 SpringSecurity认证授权流程 单元测试与项
2025-05-27 16:54:27
1357
原创 Linux入门(部分基础相关知识+常用命令+权限)
本文简要介绍了计算机和操作系统的发展历史,重点讨论了Linux操作系统的特点、目录结构、文件权限、用户管理、常用命令等内容。文章首先回顾了计算机的起源,从ENIAC到硅谷模式,再到Unix操作系统的诞生及其后续发展,特别是Linux的开源特性及其广泛应用。接着,详细解释了Linux的目录结构、文件权限管理、用户分类及权限控制,包括root用户和普通用户的区别。文章还列举了Linux中常用的命令,如ls、cd、等,并介绍了文件操作、压缩解压、日志管理、硬件信息查看等实用功能。
2025-05-23 17:12:16
918
原创 python(自用查看版)
注意,本系列不会讲太过于详细的内容,是基于已经学过c语言或java或c++的基础上扩展学习的。因为是课堂笔记,所以内容比较简陋
2024-11-07 19:29:40
1228
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1