探索Linux下的SCIP与PVM-SCI技术
1. 引言
在集群高速通信领域,将SCI设备集成到Linux的TCP/IP协议栈中是一种创新的尝试。通过开发使用SCI作为物理层的数据包驱动程序,能够实现高吞吐量和低延迟的数据传输。这种方案不仅能达到较高的性能指标,如31 MByte/s的吞吐量和77 µs的延迟,还能使所有现有应用无需修改即可运行,具有很大的应用潜力。
2. SCIP结构
2.1 数据包驱动程序接口
Linux虽采用单内核架构,但支持动态链接操作系统组件(即模块),无需重新构建内核。SCI设备驱动程序和SCIP数据包驱动程序均以模块形式实现,可按需加载和卸载。TCP协议与数据包驱动程序之间有明确的分离,这使得物理传输对协议隐藏,协议细节也对数据包驱动程序隐藏。
数据包接口在OSI第二层,至少提供以下设备方法:
- 接口的打开和关闭方法
- 数据包传输方法
- 数据包头部操作方法
- 获取接口统计信息的方法
此外,还需要两个可选方法:执行特定于接口的ioctl命令的方法和更改最大传输单元(MTU)的方法。数据包接收采用中断驱动,接口中断处理器以通知新数据包到达,并将数据包传递给上层。
2.2 硬件地址解析
加载SCIP模块后,可使用以下网络配置命令将IP数据包的路由重定向到SCIP,以访问SCI集群内的IP主机:
- ifconfig scip sourcehost
- route add -host desthost scip