Socket 的两个不同含义:硬件 CPU Socket 和 网络 Socket 的区别

第1、2章 Linux内核概述和网络包传输的关键数据结构——Socket Buffer 内核组件: 阅读详情

Socket 的两个不同含义:硬件 CPU Socket vs 网络 Socket

Socket 在计算机领域有两个完全不同的含义,容易混淆但本质不同:


1. 硬件 CPU Socket(CPU 插槽)

定义

  • 指物理 CPU 插槽,主板上安装 CPU 的接口(如 Intel LGA1700、AMD AM5)。
  • 每个 Socket 可以包含一个或多个 CPU 核心(如 16 核的 Intel Xeon)。
  • NUMA 架构下,每个 Socket 有自己专属的本地内存(Local Memory)。

关键特性

  • 跨 Socket 访问内存:访问其他 Socket 的内存(Remote Memory)比本地慢。
  • 优化方法:CPU 绑定、NUMA 感知内存分配(如 numactl)。
  • 影响场景:高性能计算、数据库、虚拟化等延迟敏感型应用。

示例

# 查看系统 NUMA 拓扑(Socket 数量)
numactl --hardware

输出:

available: 2 nodes (0-1)  # 2 个 Socket(NUMA 节点)
node 0 cpus: 0-15        # Socket 0 的 CPU 核心
node 1 cpus: 16-31       # Socket 1 的 CPU 核心

2. 网络 Socket(套接字)

定义

  • 网络通信的编程接口,由操作系统提供(如 socket()、bind()、listen())。
  • 基于 TCP/IP 协议栈,用于进程间通信(如客户端-服务器模型)。
  • 经典的 BSD Socket API 是跨平台标准(Linux/Windows/macOS 通用)。

关键特性

  • 通信端点:通过 IP + 端口标识(如 192.168.1.1:80)。
  • 工作模式:
    • 流式 Socket(SOCK_STREAM):TCP,可靠传输。
    • 数据报 Socket(SOCK_DGRAM):UDP,无连接。
  • 优化方法:非阻塞 I/O、多路复用(epoll)、零拷贝等。

示例

// 创建一个 TCP Socket
int sockfd = socket(AF_INET, SOCK_STREAM, 0);

两者的核心区别

特性CPU Socket(硬件)Network Socket(软件)
本质物理 CPU 插槽操作系统提供的通信接口
作用域计算机硬件架构网络通信(进程间/跨主机)
优化目标减少跨 Socket 内存访问延迟提高网络吞吐量、降低延迟
相关技术NUMA、CPU 亲和性TCP/IP、epoll、Zero-Copy
工具/APInumactl、sched_setaffinitysocket()、send()、recv()

为什么容易混淆?

  1. 术语重叠:英文均为 “Socket”,但中文无明确区分。
  2. 上下文依赖:
    • 讨论 性能优化 时(如 NUMA),通常指 CPU Socket。
    • 讨论 网络编程 时(如 RPC/HTTP),通常指 Network Socket。

如何避免混淆?

  • 看上下文:
    • 若提到 NUMA、多核、内存访问 → CPU Socket。
    • 若提到 TCP/UDP、端口、网络通信 → Network Socket。
  • 看代码/命令:
    • numactl --hardware → CPU Socket。
    • socket(AF_INET, SOCK_STREAM, 0) → Network Socket。

总结

  • CPU Socket 是硬件概念,影响内存访问性能,需 NUMA 优化。
  • Network Socket 是软件接口,用于网络通信,需关注 I/O 模型。
  • 两者无关,但高性能程序中可能需要同时优化(如绑定网络线程到特定 CPU Socket)。
底层软件测试规范,QA评审底层测试 本文首发于【林子的空间】“林子,咱们上次讨论的高效Desk check清单,用起来还挺好的,最近我们组每次Desk check变得顺利多了,Dev也是越来越熟练。”玥玥跟我说。“真好!我们组感觉也是这样!”“不过,我听小慧说他们组有人对QA review UT提出了一些concern(质疑),觉得QA review的价值不大,基本都是Dev给讲一遍,QA也提不出来什么反馈...”玥玥补充说道。“哦... 阅读详情

相关推荐

基于激光雷达的目标跟随功能移植到自己的ROS机器人小车上

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、下载目标跟随的源码二、修改话题名称1.修改/cmd_vel话题名称2.修改/scan话题名称3.修改双电机正反转4.目标跟随功能测试 前言 本人尝试把github上的一个目标跟随项目移植到自己的机器人小车上,并且成功了,最终小车可以跟着人移动,在这里分享一下心得。基于激光雷达的目标跟随,通过获取激光雷达的信息,跟随最近的物体。 提示:以下是本篇文章正文内容,下面案例可供参考 一、下载目标跟随的源码 源码地址:https:

weixin_44574633的博客 4462

cpu core thread socket

CPU 插槽(socket),也称为 CPU 插槽(slot),是计算机硬件中的一个组件,在微处理器和印刷电路板 (PCB) 之间提供机械和电气连接。它允许您放置和更换中央处理器,而无需焊接。此功能可以方便地升级或更换计算机系统中的 CPU。

o_alpha的博客 1243

全志D1s RISC-V开发板硬件设计与Linux启动全流程解析

RISC-V架构是当前国产嵌入式处理器演进的核心方向,其启动流程涵盖从BootROM、SPL到U-Boot及Linux内核的多级引导机制。理解该流程需掌握DDR初始化、设备树适配、电源时序控制等底层原理,技术价值在于构建可追溯、可调试、可量产的最小可行系统(MVS)。典型应用场景包括边缘AI推理终端、工业HMI和轻量级网关等对成本与开源性敏感的领域。本文以全志D1s平台为载体,深入剖析基于玄铁C906内核的RISC-V SoC在真实硬件上的启动验证、电源完整性设计与Linux全链路开源实践。

weixin_32306683的博客 358

cpu,socket,core,thread

相关概念介绍:cpu/socket/core/thread

IForFree 584

JAVA进阶面试题:如何设计一个高并发系统?

如何设计一个高并发系统? 面试官心理分析 说实话,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了。为啥?因为你没看到现在很多公司招聘的 JD 里都是说啥,有高并发就经验者优先。 如果你确实有真才实学,在互联网公司里干过高并发系统,那你确实拿 offer 基本如探囊取物,没啥问题。面试官也绝对不会这样来问你,否则他就是蠢。 假设你在某知名电商公司干过高并发系统,用户上亿,一天流量几十亿,高峰期并发量上万,甚至是十万。那么人家一定会仔细盘问你的系统架构,你们系统啥架构?怎么部署的?部署了多少台机器

uuop155的博客 1020

寒假实训笔记day01——认识M4单片机之STM32F405RGT6

认识M4单片机之STM32F405RGT6(含义、规格、参数)

weixin_47200070的博客 8551

CPU Socket的三种类型

CPU Socket作为连接处理器和主板的桥梁,看似简单,实际上承载着复杂的电气和机械设计考量。今天我们来聊聊目前市面上主流的三种CPU Socket类型。

ilearn的博客 1266

GPU运维面试题

【代码】GPU运维面试题。

u011220233的博客 699

cpu、socket、core、thread 等术语之间的关系

当我们在看技术文档时,经常会发现很多有关 cpu 的术语,比如 cpu、cpu socket、cpu core、hyper-threading 等,乱乱的分不清楚,这篇文章我带大家用三分钟时间,快速的过一遍各种术语代表什么,以及它们之间的关系。上图中 thread 总数是用 cpu 来表示的,这也是为什么上文说,cpu 是个比较宽泛的概念,在不同的语境下有不同的定义,这里表示的就是逻辑核,也就是 thread。core 的中文意思是核心,它就是我们平时说的,一个 cpu 中有几核的核的概念。

布袋和尚 5472

用Arduino和FS-i6X遥控器,从零开始打造你的第一只仿生扑翼蝴蝶(附完整代码解析)

本文详细介绍了如何利用Arduino和FS-i6X遥控器从零开始制作仿生扑翼蝴蝶,包括硬件准备、电路连接、代码解析和调试技巧。通过完整的代码示例和参数说明,帮助读者快速掌握仿生机器人的制作要点,实现蝴蝶的自然飞行效果。

weixin_28727975的博客 309

YOLOv8模型改进、剪枝、蒸馏和Web端界面的直观展示

模型蒸馏与性能提升 为了进一步优化YOLOv8模型,可以使用蒸馏技术将大型模型的知识转移到小型模型中。在模型蒸馏过程中,通过定义适当的损失函数和训练策略,学生网络可以学习教师网络的知识,并达到接近教师网络性能的效果。这样做不仅可以减少模型的存储和计算开销,还可以提高模型的推理速度和实时应用的响应能力。这样,用户可以直观地观察到模型的性能和应用的效果。为了优化YOLOv8模型并实现直观地观看检测效果或训练结果的全家通应用,本文将探讨如何通过改进、剪枝和蒸馏技术,并结合Web端界面来提升模型性能。

weixin_51988935的博客 2397

Physical CPU、Logical CPU、Core、Thread、Socket

概念区分

Jia ming 的日常学习笔记 2168

C3 模块与普通 Bottleneck 堆叠区别

维度普通 Bottleneck 堆叠C3 模块设计理念残差学习CSP + 特征分治信息路径单一路径双路径(主干 + bypass)融合方式相加(Add)拼接(Concat)+ 卷积计算效率较低高(通道减半)特征保留弱(多次非线性)强(直连保留原始信息)梯度传播单一主路径多样化、更稳定任务适配通用(分类为主)专为目标检测优化可扩展性有限极强(即插即用各种模块)实际性能基准线显著优于(尤其在小目标和效率方面)

浩瀚之水的专栏 107

说说TCP,UDP和socket,Http之间联系和区别

整理的这些区别和联系都是非常重要的。TCP协议 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。在因特网协议族(Internet protocol suite)

从头再来 3万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

网络编程Socket、Netty

网络编程基础 OSI七层模型 应用层:http协议、文件服务器、邮件服务器 表示层:数据转换,解决不同系统的兼容问题 会话层:建立与应用程序的会话连接 传输层:提供端口号和传输协议(TCP、UDP) 以下三层多体现在硬件层面上 网络层:为我们的数据实现路由(路由器、交换机) 数据链路层:传输的地址的帧及错误的检测 物理层:以二进制形式,在物理机上实现数据传输(光纤、专线、各种物理介质实现) 网络编程 Socket Socket技术 任何编程语言都支持socket(网络编程的技术)技术开发,目的就是解决两个应

puhome1986的博客 2587

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

物理 CPU vs 逻辑 CPU vs 核心 vs 线程 vs Socket

阅读本文大概需要 5 分钟。来源:http://uee.me/aXGxP☞ 开学季买书大优惠,错过等一年 ☜当我们试着通过 Linux 命令nproc和lscpu...

492

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Socket编程概念

一:什么是SOCKET socket的英文原义是“孔”或“插座”。作为进程通信机制,取后一种意思。通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄(其实就是两个程序通信用的)。 socket非常类似于电话插座。以一个电话网为例:电话的通话双方相当于相互通信的2个程序,电话号码就是ip地址。任何用户在通话之前,首先要占有一部电话机,相当于申请一个socket;同时要知道对方的号码,相当于对方有一个固定的socket。然后向对方拨号呼叫,相当于发出连接请求。对方假如在场并空闲,拿起电话话筒,双

gqk01的博客 1万+

Socket网络编程C++

整理自这些网页: https://blog.youkuaiyun.com/JHC23/article/details/98055883 https://blog.youkuaiyun.com/qq_38291480/article/details/107458246 https://www.cxyzjd.com/article/freee12/114411950 https://cizixs.com/2015/03/29/basic-socket-programming/ https://www.codenong.com/cs10

landscape 南北——的博客 1031

Network——Socket网络通信机制以及实现举例(TCP、UDP等)

1. 网络通信与Socket前言 TCP/IP协议族中网络层的IP地址可以唯一标识网络中的主机,而传输层的端口可以唯一标识主机中的应用程序。Socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的......

关于Android开发的一些技术点总结 ╮( ̄▽ ̄”)╭ 1万+

网络基础(协议,地址,OSI模型、Socket编程......)

所谓“局域网”(LAN)和“广域网”(WAN)只是一个相对的概念. 比如, 我们有 "天朝特色" 的广域网, 也可以看做一个比较大的局域网。

2302_80105876的博客 1580

Socket_网络编程

Socket_套接字:   在计算机领域,socket有多个意思。在硬件上,理解为插座上没错的,比如CPU的插座Socket 370, Socket 462, Socket AM3,这个大家都很容易理解,木有异议。让人很费解的是这货出现在软件领域(广义)时,就硬生生改名套接字了。   然后真正将socket概念发扬光大的,是1983年4.2BSD的发布,这是伯克利推出内含TCP/...

124

Linux网络编程 | Socket编程

TCP 缺点:慢,效率低,占用系统资源高,易被攻击,TCP 在传输数据之前, 要先建立连接,这会消耗时间,而且在数据传递时,确认机制,重传机制,拥塞 机制等都会消耗大量时间,而且要在每台设备上维护所有的传输连接,事实上, 每个连接都会占用系统的 CPU、内存等硬件资源。②UDP 的优点:快速,比 TCP 稍安全,UDP 没有 TCP 的握手,确认,窗口,重传,拥塞控制等机制,UDP 是一个无状态的传输协议,所以它在传递数据时非常 快。服务器监听客户端的请求,并不需要知晓客户端的ip信息。

学编程的小K的博客 125

初识网络——协议,OSI模型,MAC,IP,Socket编程

本文概述了计算机网络的发展历程和关键协议原理。首先介绍了从局域网(LAN)到广域网(WAN)的技术演进,反映了人类协作突破空间限制的过程。然后重点讲解了协议的本质和分层结构,包括OSI七层模型和实际应用的TCP/IP五层模型,强调协议本质是标准化的结构体。在网络传输流程部分,详细解释了MAC地址、IP地址的区别与联系,通过唐僧取经的类比生动说明了IP负责全局路由、MAC负责局部传输的协作机制。文章最后指出,网络通信本质上是协议栈之间的交互,这种分层设计实现了模块化与解耦,使得不同系统能够互联互通。

二哈的博客 1219

TCP,UDP和socket,Http之间联系和区别面

1、TCP协议 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。   在因特网协议族(Internet protocol suite)中,TCP层是位于I...

春风化雨 1061

网络数据到底怎样的传输过程?什么是网络编程?一文教你简单入门 linux下socket网络编程 —— 客户端篇(TCP协议传输)!

socket网络编程入门篇之客户端socket网络编程入门篇之客户端1、网络编程入门篇——前章1.1、网络数据传输过程1.2、什么是socket套接字1.3、网络结构体1.4、网络字节序 (Network Byte Order)和本机转换2、网络编程入门篇——客户端篇2.1、创建socket()2.2、发起连接(connect())2.3、数据读写(send()+recv())2.3.1、数据读(recv())2.3.2、数据写(recv())2.4、关闭连接(close())2、网络编程入门篇 —— 服

JMW1407的博客 4431

TCP,UDP和socket,Http之间联系和区别

TCP,UDP和socket,Http之间联系和区别

weixin_39527642的博客 291
上一篇: BSD 操作系统的历史、影响及贡献
下一篇: 什么是缓冲区?缓冲区概念/示例/作用/风险/实现讲解
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天河书阁 VicRestart

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值