首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Unix套接字和TCP/IP套接字有什么区别?

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

Server Fault用户
提问于 2010-03-20 09:13:23
回答 3查看 219.2K关注 0票数 219

答案是:

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

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

EN

回答 3

Server Fault用户

发布于 2010-03-20 09:39:07

UNIX插座,,是一种进程间通信机制,允许在同一台机器上运行的进程之间进行双向数据交换。

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

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

编辑:根据的评论:UNIX域套接字受文件系统权限限制,而TCP套接字只能在数据包筛选级别上控制。

票数 332
EN

Server Fault用户

发布于 2010-03-20 13:49:54

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

Linux:

代码语言:javascript
运行
复制
netstat -a -p --unix

MacOS:jbmeerkat评论

代码语言:javascript
运行
复制
netstat -a -f unix

玩得开心!

票数 46
EN

Server Fault用户

发布于 2018-09-13 17:32:16

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

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

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

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

TCP套接字也是由Unix处理的吗?

当然了

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

Internet协议规范只关注线路上发生的事情,TCP规范包含套接字的定义,但该定义与“套接字API”使用该术语的方式不同。

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

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

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

当应用程序使用“套接字”函数显式创建套接字时(接受函数也创建套接字),它传递三个参数,即“域”、“类型”和“协议”。这三个参数可用于选择许多不同类型的套接字。

  • 域选择正在使用的协议/地址系列,例如AF_INET用于ipv4,AF_INET6用于ipv6,AF_Unix用于unix文件系统路径等。
  • 类型选择通信语义,主要是数据报和流,但也有其他更专业的类型。
  • 协议选择要使用的协议,如果该协议设置为0,则将使用域和类型组合的默认协议。
票数 32
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/124517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档