熟悉网络编程的朋友对于 Socket 一定不会陌生. 我们经常会看到书上这样说: "连接到某某服务器, 开启一个 socket.".

socket 这个词, 最早出现在 1970 年 2 月 12 日发表的 RFC33: New HOST-HOST Protocol 中.

A major issue is how to refer to processes in a foreign HOST.

...

The elements of the name space are called sockets. A socket forms
one end of a connection, and a connection is fully specified by a
pair of sockets.

其中对 socket 的定义是, 一个用来表述某个主机上的某个进程的结构体. 一个连接中就包含了两个 socket, 分别表示连接的两端.

由于当时可连接到阿帕网的主机设备各不相同, 所以需要 socket 这一中间结构体来进行沟通.

当时的网络仅仅存在于美国的几个大学之间, 某个学校的学生可以通过网络连接到另一个学校的主机上.

此后随着 IP 成为了互联网的标准协议, socket 的定义也逐渐产生了变化, 如今一般指 ip 和 port 共同组成的结构体.

在这篇 RFC 中, 还第一次出现了 "front end" 前端这个词. 表示一种在本地计算机上运行的程序, 其功能是处理网络和用户之间的交互.

其中提到用于编写"前端"的语言需要具有的几种特质: 1. 并发, (或者叫异步) 2. 代码可拼接 3. 设备兼容.

顺便说一下, 在 1970 年, 网络工作组的成员们就开始使用阿帕网开始远程工作了.

More significantly, one of the authors (S. Carr) living in Palo Alto
uses the Salt Lake PDP-10 on a daily basis by first connecting to
SRI.

Ljzn
399 声望102 粉丝

网络安全;函数式编程;数字货币;人工智能


引用和评论

0 条评论