如何理解套接字

Socket为什么翻译为“套接字”

 BZbyr     2019-07-30   901 words    & views

如何理解套接字

一遍讲我们认为套接字=主机+端口号,但是我们还是无法理解其中的中文含义,查询了很多资料后,试图解释一下。

从socket是一种进程间通信机制,提供一种供应用程序访问通信协议的操作系统调用,并且通过将socket与Unix系统文件描述符相整合,使得网络读写数据(或者服务调用)和读写本地文件一样容易。很显然,这货已经离插座越来越远了,已经完全不再是硬件上的物件,而是一序列的“指令” ,已经具备了“字”(可交互的有序指令串)的概念1

那“套接”呢?搜索一下“套接”这个词,可以找到“套接管”,以及他是什么东西,我们大概可以明白一二了。 sockets sockets

套接管的功能作用和socket在计算机领域的作用类似了,我们看下图。

socket

这样,“套接”和“字”组成一个词,用于表达socket的中文含义,也就可以理解了。

另外翻译成“套接字”还是“套接口”也是有争议的2

“UNIX 网络编程 卷一:套接字联网API 第三版” 的说法socket一词一般认为译为套接口更为准确,其理由如下:

  • 首先,作为网络编程API之一的套接口(sockets,注意这种用法总是采用复数形式,如sockets API, sockets library等),是应用层到传输层或其他协议层的访问接口。
  • 其次,具体使用的套接口是与Unix管道的牟一端类似的东西,我们既可以往这个“口”卸数据,也可以从这个“口”读数据。
  • 最后,套接口函数使用套接口描述字(discriptor)访问具体的套接口,如果把套接口描述字的检查sockfd翻译成“套接字”是合适的。从这个意义上看,一个套接口可以对应多个套接字,因为Unix的描述字可以复制,也可以继承;反过来,一个套接字对应且只对应一个套接口。但是,现在socket广泛被接受的译法是“套接字”

还有一个有趣的,route 路由协议 按照功能翻译成选路协议就能理解了。

由:听从的意思 由不得 信马由缰