AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 124517
In Process
apache
apache
Asked: 2010-03-21 01:13:23 +0800 CST2010-03-21 01:13:23 +0800 CST 2010-03-21 01:13:23 +0800 CST

Unix 套接字和 TCP/IP 套接字有什么区别?

  • 772

它来自这个答案:

https://stackoverflow.com/questions/2482411/is-this-pdo-bug-fixed-now/2482424#2482424

当主机是“localhost”时,MySQL Unix 客户端使用 Unix 套接字,AKA Unix 域套接字,而不是 TCP/IP 套接字进行连接,因此 TCP 端口无关紧要。

networking ip tcp socket
  • 3 3 个回答
  • 198429 Views

3 个回答

  • Voted
  1. pQd
    2010-03-21T01:39:07+08:002010-03-21T01:39:07+08:00

    UNIX 套接字,又名 Unix 域套接字,是一种进程间通信机制,允许在同一台机器上运行的进程之间进行双向数据交换。

    IP 套接字(尤其是 TCP/IP 套接字)是一种允许进程之间通过网络进行通信的机制。在某些情况下,您可以使用 TCP/IP 套接字与运行在同一台计算机上的进程通信(通过使用环回接口)。

    UNIX 域套接字知道它们在同一个系统上执行,因此它们可以避免一些检查和操作(如路由);这使得它们比 IP 插座更快更轻。因此,如果您计划与同一主机上的进程进行通信,这是比 IP 套接字更好的选择。

    编辑:根据Nils Toedtmann 的评论:UNIX 域套接字受文件系统权限的约束,而 TCP 套接字只能在数据包过滤器级别进行控制。

    • 318
  2. The Unix Janitor
    2010-03-21T05:49:54+08:002010-03-21T05:49:54+08:00

    您可以使用以下命令列出您自己的机器本地 unix 套接字:

    Linux:

    netstat -a -p --unix
    

    MacOS:[jbmeerkat 评论]

    netstat -a -f unix
    

    玩得开心!

    • 40
  3. Peter Green
    2018-09-14T09:32:16+08:002018-09-14T09:32:16+08:00

    Unix 套接字和 TCP/IP 套接字有什么区别?

    TCP/IP 套接字用于跨 TCP/IP 网络的通信。连接的 TCP 套接字由本地 IP、本地端口、远程 IP 和远程端口的组合标识。侦听 TCP 套接字由本地端口和可能的本地 IP 标识。据我了解,至少在 linux TCP/IP 套接字上总是会导致 TCP/IP 数据包的生成和解码,即使客户端和服务器在同一台机器上也是如此。

    另一方面,unix 域套接字(有时简称为 unix 套接字)在单台机器上运行。监听套接字位于文件系统层次结构中,对它们的访问可以由文件系统权限控制。

    此外,接受 Unix 套接字上的连接的进程可以确定连接的进程的用户 ID。这可以避免对身份验证步骤的需要。无需为您的数据库服务器生成密码并将其副本包含在您的 webapp 代码中,您只需告诉数据库服务器运行 webapp 的用户可以访问数据库中的相应用户帐户。


    TCP套接字也由Unix处理吗?

    当然

    TCP 套接字是 TCP 协议规范的一部分

    Internet 协议规范仅倾向于关注在线上发生的情况,TCP 规范包含对 Socket 的定义,但该定义与“套接字 API”如何使用该术语不同。

    我们所知道的“套接字 API”是由 BSD 引入的,但后来被复制到各处,并作为 posix 标准的一部分包含在内。TCP 和 UDP 套接字的基本内容在不同平台上往往相同,但更高级的内容和与操作系统其他部分交互的内容各不相同,例如在类 unix 系统上,套接字由文件句柄标识,并且可以由文件 API 读取/写入,Windows 上不是这种情况。

    对套接字 API 的一些扩展已记录在 rfcs 中,但这些 RFC 只是“信息性的”。

    或者任何协议都可以使用 IP 套接字?

    当应用程序使用“socket”函数显式创建套接字时(套接字也由accept 函数创建),它传递三个参数,“域”、“类型”和“协议”。在它们之间,这三个参数可以用来选择许多不同类型的套接字。

    • domain 选择正在使用的协议/地址系列,例如 AF_INET 用于 ipv4,AF_INET6 用于 ipv6,AF_Unix 用于 unix 文件系统路径等。
    • type 选择通信语义,主要是数据报和流,但也有其他更专业的类型。
    • protocol 选择要使用的协议,如果设置为 0,则将使用域和类型组合的默认协议。
    • 30

相关问题

  • 10 Gb 网络:在光纤和双绞线之间做出决定

  • 如何在 Windows Server PPTP VPN 中自动为客户端分配路由?

  • 为什么我的电脑休眠时 VPN 连接会中断?[关闭]

  • 有什么软件可以模拟局域网?

  • 带宽利用工具?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve