TCP 发展历史

ARPANET, 阿帕网

  1. 网络控制协议 (Network Control Protocol, NCP)
  2. 下一代协议: 以分组、序列化、流量控制、超时和容错等为核心的一种新型的网络互联协议, 奠定 TCP/IP 协议基础

OSI & TCP/IP

这个标准发布的时候已经是 1984 年了,有点尴尬的是,OSI 搞得是很好,大家也都很满意,不过,等它发布的时候,ISO 组织却惊讶地发现满世界都在用一个叫做 TCP/IP 协议栈的东西,而且,跟 OSI 标准半毛钱关系都没有。

  • TCP/IP 搭上了 UNIX 这辆时代快车,很快推出了基于套接字(socket)的实际编程接口

image.png

UNIX 操作系统发展历史

image.png

  • 图上标示的 Research 橘黄色部分,是由 AT&T 贝尔实验室不断开发的 UNIX 研究版本,从此引出 UNIX 分时系统第 8 版、第 9 版,终止于 1990 年的第 10 版(10.5)。这个版本可以说是操作系统界的少林派。天下武功皆出少林,世上 UNIX 皆出自贝尔实验室。
  • 图中最上面所标识的操作系统版本,是加州大学伯克利分校(BSD)研究出的分支,从此引出 4.xBSD 实现,以及后面的各种 BSD 版本。这个可以看做是学院派。在历史上,学院派有力地推动了 UNIX 的发展,包括我们后面会谈到的 socket 套接字都是出自此派
  • 图中最下面的那一个部分,是从 AT&T 分支的商业派,致力于从 UNIX 系统中谋取商业利润。从此引出了 System III 和 System V(被称为 UNIX 的商用版本),还有各大公司的 UNIX 商业版。

image.png

一个基本事实是,网络编程套接字接口,最早是在 BSD 4.2 引入的,这个时间大概是 1983 年,几经演变后,成为了事实标准,包括 System III/V 分支也吸收了这部分能力,在上面这张大图上也可以看出来。

耳熟能详的重要 UNIX 玩家:

  • SVR 4
  • Solaris
  • BSD
  • macOS X
  • Linux

UNIX 的出现和发展

POSIX 标准

POSIX(Portable Operating System Interface for Computing Systems)这个标准基于现有的 UNIX 实践和经验,描述了操作系统的调用服务接口。

Minix 操作系统

GNU

GNU 在自由软件基金会统一组织下,相继推出了编译器 GCC、调试器 GDB、Bash Shell 等运行于用户空间的程序。正是这些软件为 Linux 操作系统的开发创造了一个合适的环境,比如编译器 GCC、Bash Shell 就是 Linux 能够诞生的基础之一。

操作系统对 TCP/IP 的支持

image.png