IT技术博客大学习 共学习 共进步

关于socket这个术语的来源

darkmi's blog 2013-09-09 23:09:05 浏览 3,801 次

   我们一般称socket为套接字,有些著作中也称其为插口,以下引用两本书中的相关描述。

   在《Java TCP/IP Socket 编程》 一书中有如下描述:

   Java语言从一开始就是为了让人们使用互联网而设计的,他为实现程序的相互连通提供了许多有用的抽象应用编程接口(Application Programming Interface API),这类应用编程接口被称为套接字(socket)。

   这是从应用或编程的角度来解释socket。

   在《TCP/IP详解》一书中有该术语的来源:

   一个IP地址和一个端口号也称为一个插口,即socket。这个术语出现在最早的TCP规范(RFC793)中,后来它也作为表示伯克利版的编程接口。插口对(socket pair)(包含客户端IP地址、客户端口号、服务器IP地址和服务器端口号的四元组)可唯一确定互联网中每个TCP连接的双方。

   这段描述解释了socket的真正含义。

   以下为RFC793中对socket的定义,这也是socket最原始的定义:

   To allow for many processes within a single Host to use TCP communication facilities simultaneously, the TCP provides a set of addresses or ports within each host.  Concatenated with the network and host addresses from the internet communication layer, this forms a socket.  A pair of sockets uniquely identifies each connection. That is, a socket may be simultaneously used in multiple connections.

建议继续学习

  1. 推荐一些socket工具,TCP、UDP调试、抓包工具 (阅读 10,723)
  2. 推荐一些socket工具,TCP、UDP调试、抓包工具 (阅读 8,644)
  3. 用unix socket加速php-fpm、mysql、redis的连接 (阅读 7,443)
  4. 浅析linux kernel network之socket创建 (阅读 6,624)
  5. python中的socket代理 (阅读 6,163)
  6. nginx、php-fpm默认配置与性能–TCP socket还是unix domain socket (阅读 6,044)
  7. web socket 心跳包的实现方案 (阅读 5,903)
  8. netstat和web主机socket文件分析 (阅读 5,442)
  9. 使用socket.io和node.js搭建websocket应用 (阅读 5,141)
  10. php socket为什么这么慢,直到超时 (阅读 4,925)