当前位置: 首页 > news >正文

进程通信与网络协议

一、进程间通信

1、管道:管道是基于文件描述符的半双工的通信方式,数据单向流动,数据读取后会从管道中删除。

A. 无名管道 ​ i. 仅存在于内核空间中,无文件系统入口 ​ i. 仅支持亲缘间进程通信 ​ i. 进程退出后管道会自动释放 ​ i. 通过pipe函数创建,返回读端(fd[0])和写端(fd[1])两个文件描述符 ​ B. 有名管道 ​ i. 有文件系统入口,一旦创建成功会在磁盘创建一个管道文件 ​ i. 支持任意进程间通信 ​ i. 进程退出后,管道文件仍存在,需手动删除 ​ i. 通过mkfifo创建,使用open打开

2、信号:信号属于软件中断机制,用于通知进程发生特定事件,是异步通信机制。

i. 常见使用kill发送信号 ​ i. 使用signal注册信号响应函数 ​ i. 信号响应函数是由内核触发调用 ​ 3、共享内存 ​ i. 通信效率最高的IPC方式,进程直接访问一块内核内存,无需数据拷贝 ​ i. 通常需要信号量来配合使用(也就是需要同步机制) ​ i. 通常应用在高并发、大数据量的进程间通信(比如:数据库、缓存系统) ​ 4、消息队列 ​ i. 属于增强型管道,其每个消息都带有标识符,支持按标识符进行接收 ​ i. 通信效率低于共享内存 ​ i. 通常应用在进程间需按类型传递数据(比如: 日志) ​ 5、信号量:System-V信号量、POSIX信号量 ​ i. 不传递数据,仅用于数据的同步与互斥,本质是内核计算器 ​ i. P操作用于申请资源,V操作用于释放资源 ​ i. 同步:协调进程的执行顺序 ​ i. 互斥:保证临界资源同一时刻仅被一个进程访问 ​ 6、网络通信 ​ i. 可以跨主机、跨网络的通信方式,支持本地和网络进程间通信 ​ i. 通常又称之为套接字,是一个特殊的文件类型 ​ i. 一般分为 IPV4和IPV6 ​

二、Linux系统文件类型

1、普通文件 ​ 2、目录文件 ​ 3、管道文件 ​ 4、链接文件 ​ 5、块设备文件 ​ 6、字符设备文件 ​ 7、套接字文件 ​

三、网络通信核心知识

1、网络通信特性

i. 同一网段内通信需保证IP地址在同一网段(通过子网掩码判断)。 ​ i. 支持跨设备、跨平台通信(比如windows、Linux、手机)。 ​ i. 通信双方需要通过 IP + 端口,唯一标识通信地址。 ​ i. 依赖协议栈完成数据的封装与解封装。

2、网络通信协议:不同设备通信需要遵循统一协议。

协议 协议层 连接性 可靠性 传输速率 IP 网络层 无连接 不可靠 快 TCP 传输层 面向连接 可靠 慢 UDP 传输层 无连接 不可靠 快 ​ IP: 网际协议,其作用是分配目标地址(IP地址),并通过路由器将数据包从源设备转发到目标设备。 应用场景:所有网络数据传输的基础。 TCP:传输控制协议,其作用是在IP的基础上,提供可靠有序的数据传输。 应用场景:文件传输、HTTP/HTTPS、SSH、FTP UDP:用户数据报协议,其作用是在IP的基础上,提供快速、简单的数据传输。 应用场景:视频通话、游戏、直播

3、网络通信模型

1、七层协议模型(OSI模型) ​ 应用层 领导口述一段话 ​ 表示层 秘书将领导所述内容形成信件 ​ 会话层 将信件放在前台,由前台通知快递员 ​ 传输层 快递员从前台取走信件 ​ 网络层 分拣快递确保后续按地址进行投递 ​ 数据链路层 将快递运送至对应站点 ​ 物理层 将信件送至收件人手中 ​

i. 应用层:提供用户交互接口,定义用户级数据格式。 常见协议:HTTP、HTTPS、FTP、DNS、SMTP(邮件) i. 表示层:数据加密、压缩、格式转换。 常见协议:SSL、JPEG。 i. 会话层:建立、维护、终止进程间会话, 常见协议:RCP。 i. 传输层:端到端通信,通过端口标识进程,提供可靠的或快速的传输 常见协议:TCP、UDP。 i. 网络层:路由转发,通过IP地址定位目标主机。 常见协议:IP、ICMP。 i. 数据链路层:将比特流封装为帧,处理MAC地址、差错检测。 常见协议:以太网协议、ARP、PPP、RARP。 i. 物理层:传输比特流,负责硬件适配。 常见协议:串口协议、网线、光纤。 2、四层协议模型(TCP/IP模型) 应用层 将数据形成信件并放在前台 传输层 快递员从前台取走信件 网络层 分拣快递确保后续按地址进行投递 网络接口层 将快递投诉至收件人手中 ​ i. 应用层:整合了OSI模型中的应用层+表示层+会话层。 i. 网络接口层:整合了OSI模型中的数据链路层+物理层。

4、网络通信理论

(1)、套接字:是特殊的文件描述,是网络通信的端点,不能使用open打开。 ​ (2)、流式套接字:对应TCP,可靠、面向连接、字节流。 ​ (3)、数据报套接字:对应UDP,不可靠、无连接、数据报。 ​ (4)、IP地址:IPV4为32为点分式(192.168.31.248),IPV6为128位冒号分割式。 ​ (5)、端口号:2字节的短整型(1 ~ 65535), 与IP地址组合唯一标识网络进程。 ​ 通常我们的程序端口号设置为 > 10000, 避免与其余软件冲突。 ​ (6)、字节序: ​ i. 大端序:网络字节序 ​ i. 小端序:主机字节序

5、网络IO模型

(1) 阻塞IO:进程调用相关的IO函数后就会阻塞,直到数据就绪或超时,CPU开销小。 ​ (2) 非阻塞IO:进程调用相关IO函数后立即返回,数据未就绪则返回错误,会轮询检查,CPU开销大。 ​ (3) 信号驱动:注册信号响应函数,数据就绪时内核发送SIGIO信号执行响应函数,CPU开销中等。 ​ (4) 异步IO:进程发起IO请求后继续执行,内核完成数据读写后通知进程,CPU开销小。 ​ (5) 多路复用:单个进程监控多个文件描述符,数据就绪时通知进程处理,CPU开销小。

6、网络超时处理

三种超时处理:(1) 通过socket选项设置; (2) 通过IO多路复用的超时参数设置; (3) 通过特定函数设置。

7、广播与组播

(1) 广播 ​ i. 向同一网段内所有设备发送数据,路由器默认拦截跨网段广播。 ​ i. 无需通知接收方IP,但是占用网段较宽,安全性较低。 ​ i. 仅支持UDP协议。 ​ (2) 组播 ​ i. 向特定组播的组发送数据,仅加入到改组的设备能够接收。 ​ i. 节省宽带,支持跨网段。

http://www.jsqmd.com/news/615706/

相关文章:

  • Vue 3动画角色登录页:从创意到优化
  • 创建abb机器人机械装置————简易活塞
  • 双系统Linux死机解决方法
  • 四门课程,帮您转型AI产品经理
  • OpenClaw多模型切换技巧:Qwen3-14b_int4_awq与本地小模型协同作战
  • 2026年AI搜索问答优化天花板横评:5大源头厂家综合对比+采购避坑指南
  • OpenClaw错误处理机制:Phi-3-vision识别失败自动重试方案
  • 2026年,这家质保长且免拆治理烧机油的修理厂,究竟有何过人之处?
  • Java 25虚拟线程到底多快?实测10万QPS下内存占用下降73%、吞吐提升4.8倍,附压测脚本与GraalVM调优清单
  • 《数论探微:进阶版》(Arithmetic Tales: Advanced Edition)暗
  • HagiCode Desktop 混合分发架构解析:如何用 PP 加速大文件下载皇
  • ki1.me/cat/2 ai模型充值网站
  • 一文学习 工作流开发 BPMN、 Flowable钾
  • IOFILE结构体的介绍与House of orange瘫
  • 重构教育评价体系:OCRAutoScore智能阅卷系统的技术革新与实践路径
  • nvm-windows兼容性深度解析:系统适配与版本管理实践指南
  • CSS如何利用Grid重写老旧的表格布局
  • OpenClaw飞书机器人配置:Qwen3-4B模型接入与对话触发
  • windows卸载mysql教程
  • linux个人心得24 (mysql③,AI排版尝试)
  • Claude 技术深度解析:使用技巧与优势
  • 2026年正规考试系统TOP5推荐覆盖多行业场景:考试系统生产厂家、智能化考试系统、水平式考试系统厂家、移动考试系统厂家选择指南 - 优质品牌商家
  • 免费AIGC降重工具实测:智能改写+AI消痕全场景覆盖
  • 2026年绵阳起重机设备改造厂家盘点:绵阳起重设备操作人员办证、绵阳起重设备租赁、绵阳路桥起重机、绵阳钢结构安装公司选择指南 - 优质品牌商家
  • OpenClaw配置文件详解:千问3.5-35B-A3B-FP8模型参数优化
  • AI模型基础
  • AI开发-python-langchain框架(--AI 直接生成并执行 Python 代码 )窖
  • 500行代码还原儿时经典 Python Pygame 制作带 AI 决策的飞行棋
  • OCAD应用:多重转换式断续变焦系统设计
  • Golang如何做DNS查询_Golang DNS解析教程【精选】