摘要:本文讨论了 Solaris 10 操作系统联网改进以及以前发行版中联网的演变过程。主题包括 TCP、UDP、IP、设备驱动程序框架以及性能调节。
目录
* 1.0 背景知识
* 2.0 Solaris 10 操作系统的堆栈
o 2.1 概述
o 2.2 垂直边界
o 2.3 IP 分类器
o 2.4 同步机制
* 3.0 TCP
o 3.1 TCP 和 IP 之间的接口
o 3.2 套接字
o 3.3 绑定
o 3.4 连接
o 3.5 侦听
o 3.6 接受
o 3.7 关闭
o 3.8 数据路径
o 3.9 TCP 回送
* 4.0 UDP
o 4.1 堆栈中的 UDP 数据包丢失
o 4.2 UDP 模块
o 4.3 UDP 和套接字交互
o 4.4 同步 STREAMS
o 4.5 STREAMS 回退
* 5.0 IP
o 5.1 检测 NIC
o 5.2 IP 网络多路径 (IP Network Multipathing, IPMP)
o 5.3 多址传播
* 6.0 Solaris 10 设备驱动程序框架
o 6.1 GLDv2 和单一 DLPI 驱动程序(在 Solaris 9 和早期发行版中)
o 6.2 GLDv3 -- 新体系结构
o 6.3 GLDv3 链路聚合体系结构
o 6.4 校验和卸载
* 7.0 性能调节
1.0 背景知识
Solaris 1.x 操作系统联网堆栈是 BSD 衍生版本,它与 BSD Reno 实现非常相似。BSD 堆栈非常适于低端计算机,但 Sun 希望满足低端客户以及企业客户的需要,因而将 Solaris 操作系统迁移到 AT&T SVR4 体系结构,它最终变为 Solaris 2.x 平台。
对于 Solaris 2.x 操作系统,联网堆栈发生了很大改变,由 BSD 风格的堆栈转变为基于 STREAMS 的堆栈。STREAMS 框架提供了一种简便的消息传送接口,使 STREAMS 模块之间可以灵活地进行交互。通过使用 STREAMS 的内部和外部边界,模块编写者可以提供互斥功能,而不会使实现变得复杂。建立 STREAM 的成本很高,但每秒建立的连接数并不是一个重要的判别标准,连接通常会长时间有效。如果连接的有效期更长(NFS、FTP 等),则建立新流的成本就可以在连接周期内进行平摊。
在 90 年代末,服务器非常依赖 SMP,并需要运行大量的 CPU。随着中到高端计算机变得越来越以 NUMA 为中心,在 CPU 之间切换处理的成本变得很高。由于 STREAMS 在设计上并不具备任何 CPU 相似性,因而特定连接的数据包将发送到不同的 CPU。很明显,Solaris 产品需要弃用 STREAMS 体系结构。
在 90 年代末,万维网也实现了飞速发展。处理能力的增强意味着可以建立大量有效期较短的连接,从而使连接建立时间变得同样重要。通过 Solaris 10 平台,联网堆栈经历了又一次转变,其中核心组件(如套接字层、TCP、UPD、IP 和设备驱动程序)使用 IP 分类器和串行化队列来缩短连接建立时间、提高可伸缩性以及降低数据包处理成本。仍然使用 STREAMS 体系结构来提供 ISV 实现附加功能所需的灵活性。
阅读(519) | 评论(0) | 转发(0) |