Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1099113
  • 博文数量: 286
  • 博客积分: 3124
  • 博客等级: 中校
  • 技术积分: 5186
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-24 23:42
个人简介

Bomi

文章存档

2015年(1)

2013年(1)

2012年(281)

2008年(3)

分类: 系统运维

2012-02-04 00:30:02

摘要:本文讨论了 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 实现附加功能所需的灵活性。
阅读(479) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~