什么是 Unix Socket?

Unix Socket(通常称为Unix Domain Socket,UDS)是一种仅在同一台主机内部使用的进程间通信(IPC, Inter-Process Communication)机制。它利用文件系统路径作为通信端点,通过内核在本机进程之间高效地传递数据。


一、Unix Socket 的核心概念

定义
Unix Socket 是一种基于 socket 接口、但不经过网络协议栈(如 TCP/IP)的本地通信方式,通信双方必须运行在同一台操作系统上。

本质

  • 属于 socket 家族之一(AF_UNIXAF_LOCAL

  • 通信端点不是 IP + 端口,而是文件系统中的一个路径

  • 数据在内核态直接拷贝,性能优于 TCP


二、Unix Socket 与 TCP Socket 的对比

对比项Unix SocketTCP Socket
通信范围本机进程跨主机
地址形式文件路径(如/var/run/app.sockIP + 端口
协议栈不经过 TCP/IP完整 TCP/IP
性能更高(低延迟、低开销)相对较低
安全性依赖文件权限控制依赖防火墙、认证等
是否可路由

三、Unix Socket 的工作原理

  1. 服务端

    • 创建 socket:socket(AF_UNIX, SOCK_STREAM, 0)

    • 绑定文件路径:bind("/tmp/app.sock")

    • 监听并接受连接:listen()/accept()

  2. 客户端

    • 创建 socket

    • 连接到该文件路径:connect("/tmp/app.sock")

  3. 数据传输

    • 使用read/writesend/recv

    • 数据在内核中直接在进程之间传递


四、Unix Socket 的两种主要类型

1. SOCK_STREAM(流式,类似 TCP)

  • 面向连接

  • 保证顺序、可靠传输

  • 常用于客户端/服务端模型

示例:

  • MySQL

  • Docker daemon

  • PHP-FPM

2. SOCK_DGRAM(数据报,类似 UDP)

  • 无连接

  • 消息边界保留

  • 适合简单通知、日志类通信


五、典型使用场景(工程实践)

结合你日常接触的服务器/工控场景,Unix Socket 常用于:

1. 高性能本地服务通信

  • Nginx ↔ PHP-FPM

  • Docker CLI ↔ dockerd

  • systemd ↔ 各服务进程

示例:

# php-fpm listen = /run/php/php-fpm.sock
fastcgi_pass unix:/run/php/php-fpm.sock;

2. 本地安全通信

  • 通过文件权限控制访问

srw-rw---- 1 www-data www-data app.sock
  • 非授权用户无法连接


3. 替代 TCP 的本机 RPC

  • 避免端口冲突

  • 降低系统资源消耗

  • 提升吞吐量和响应速度


六、Unix Socket 的优势与限制

优势

  • 性能高

  • 延迟低

  • 安全可控(文件权限)

  • 配置简单,无需端口管理

限制

  • 只能在本机使用

  • 依赖文件系统

  • 跨主机或容器隔离场景下受限(需 volume 挂载)


七、一个最简 C 语言示意(服务端)

int fd = socket(AF_UNIX, SOCK_STREAM, 0); struct sockaddr_un addr = {0}; addr.sun_family = AF_UNIX; strcpy(addr.sun_path, "/tmp/demo.sock"); bind(fd, (struct sockaddr*)&addr, sizeof(addr)); listen(fd, 5);

八、一句话总结

Unix Socket 是一种高效、安全、仅限本机的进程间通信机制,用文件路径代替网络地址,常用于本地服务之间的高性能通信。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1184217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【无人机路径规划】基于RRT和LQR线性控制器和非线性 PD 控制器实现无人机在非线性动力学模型下精准跟踪规划路径附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 &#x1f34…

大模型体验神器:云端GPU开箱即用,1块钱起随时停

大模型体验神器:云端GPU开箱即用,1块钱起随时停 你是不是也经常遇到这种情况:刚看到一个新发布的AI大模型,名字听着很牛,参数看着很香,GitHub上代码已经开源,社区讨论热火朝天——可你连试都试…

出来年比较轻松吧,25年几乎都是5点准时下班[特殊字符] 这一年我有很多

出来年终总结了!今天不聊技术咯,只唠唠 25 年的「副业收入」和「AI 对我的影响」25年 我的额外收入关注我的都知道,我目前的工作算是比较轻松吧,25年几乎都是5点准时下班😎 这一年我有很多时间去思考去尝试。 这一年花…

完整教程:大数据环境下如何维护模型文档:策略与实践

完整教程:大数据环境下如何维护模型文档:策略与实践2026-01-19 17:25 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; di…

企袖会KeyAction2026引爆AGI 中国AI再扬帆 - 博客万

备受瞩目的“中国企业家人工智能+行动峰会暨企袖会种子用户代表第一次全体会议”,将于2026年1月25日在北京中关村AI北纬社区盛大启幕。此次“企袖会中国企业家人工智能+行动峰会”,将汇聚国家有关部委、行业专家、投…

DCT-Net教学实验室:计算机视觉课程的云端实践方案

DCT-Net教学实验室:计算机视觉课程的云端实践方案 你是否也遇到过这样的困扰?想在课堂上带学生做AI图像生成项目,比如把真人照片变成动漫风格头像,结果发现大家的电脑配置五花八门——有的连显卡都没有,有的GPU内存不…

Llama3与PyTorch集成实测:云端双镜像快速切换,1小时1块低成本验证

Llama3与PyTorch集成实测:云端双镜像快速切换,1小时1块低成本验证 你是不是也遇到过这样的困境?作为初创公司的CTO,团队正在考虑引入Llama3大模型来增强产品能力,但现有的技术栈是基于PyTorch构建的。你想评估Llama3能…

PHP vs Python:如何选择?

选择学习PHP还是Python取决于具体需求、职业目标和技术场景。以下是两者的对比分析,供参考:适用领域PHP 主要专注于Web开发,尤其是服务器端脚本。历史悠久的语言,WordPress、Facebook早期版本等均基于PHP构建。适合快速开发动态网…

工业检测难题待解,靠谱的一键闪测仪机构有哪些 - 工业仪器权威说

工业检测难题待解,靠谱的一键闪测仪机构有哪些? “工欲善其事,必先利其器。”在工业检测领域,面对日益复杂的检测需求,一款靠谱的一键闪测仪至关重要。那么,市场上有哪些靠谱的一键闪测仪机构呢? 以某机械制造企…

2026必备!自考论文神器TOP9:AI论文工具深度测评与推荐

2026必备!自考论文神器TOP9:AI论文工具深度测评与推荐 2026年自考论文写作新趋势与工具测评逻辑 随着人工智能技术的不断进步,AI论文工具已成为自考学生提升写作效率、优化论文质量的重要助手。然而,面对市场上琳琅满目的产品&…

GPEN vs GFPGAN vs CodeFormer实测对比:云端2小时搞定选型

GPEN vs GFPGAN vs CodeFormer实测对比:云端2小时搞定选型 你是不是也遇到过这样的情况?公司要开发一个家谱App,老板让你快速评估三种主流AI人脸修复模型——GPEN、GFPGAN和CodeFormer的效果,好决定最终用哪个技术方案。可问题是…

JS vs jQuery:核心差异解析

JavaScript 与 jQuery 的区别JavaScript 是一种脚本编程语言,主要用于网页开发,可以直接在浏览器中运行,实现动态交互效果。jQuery 是一个基于 JavaScript 的库,封装了许多常用的功能,简化了 DOM 操作、事件处理、动画…

深度测评!8款AI论文软件助你搞定毕业论文

深度测评!8款AI论文软件助你搞定毕业论文 2026年AI论文写作工具测评:如何选择最适合你的学术助手 在当前学术研究日益数字化的背景下,AI论文写作工具已成为研究生群体不可或缺的辅助利器。然而,面对市场上琳琅满目的产品&#xff…

GESP认证C++编程真题解析 | 202312 六级

​欢迎大家订阅我的专栏:算法题解:C++与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的…

手把手教你五分钟打造属于自己的AI编程智能体!

一、当前编程模式的痛点 作为一名长期使用 AI 辅助编程的开发者,我发现了一个普遍存在的问题: 1.1 传统 AI 对话的局限性 除了使用 cursor、Trae、codebuddy 等工具外,在编程环节每次向 ChatGPT、Claude 等 AI 寻求编程帮助时,…

ISTA 6-AMAZON.COM-SIOC标准解析:包装测试的核心价值

一、标准核心信息 ISTA 6-AMAZON.COM-SIOC是ISTA与亚马逊合作开发的综合模拟测试协议,专为通过亚马逊配送系统、采用商品原包装发货(SIOC)的包装件设计。 该标准适用于8种包装类型(A-H型),按亚马逊出货配…

2026西安专业新生儿起名机构推荐|高端家庭专属取名服务 - 品牌2025

对高端家庭而言,新生儿起名不仅是一次命名,更是一场承载家族期许、文化传承与人生祝福的重要仪式。一个寓意深远、音律优美、命理契合的名字,是父母赠予孩子伴随一生的珍贵礼物。在西安,越来越多注重品质与文化底蕴…

航空行业信息网络安全现状和需求

行业概述 随着航空系统网络化程度的提高,旅客订票系统、货物处理和运输、旅客登机和下机程序、空中交通管制系统、空中航行导航系统、飞行控制系统等系统之间的依赖性和关联性增强。其中任一系统的网络风险即可能导致连锁反应,造成难以弥补的经济损失和…

【人工智能】Cowork 是 Anthropic 推出的一个测试版桌面工具,专门为非开发人员设计,用于自动化文件和任务管理。

Cowork 是 Anthropic 推出的一个测试版桌面工具,专门为非开发人员设计,用于自动化文件和任务管理。 什么是 Cowork? Cowork 是一个桌面 AI 助手工具,你可以给它访问你电脑上的特定文件夹,它能够读取、编辑或创建文件。这不是普通的聊天对话,而是真正能帮你自主完成任务的…