Users Guide

NetXtreme 用户指南 Broadcom Gigabit Ethernet 组合服务
文档 2CS57XX-CDUM513-R 组合机制 31
出站通信流
Broadcom 中间驱动程序管理所有组合模式的出站通信流。对于出站通信量,每个数据包首先分配到流,然后分发给选定的
物理适配器以进行传输。流分类涉及对已知的协议字段进行高效散列计算。产生的散列值用于建立出站流散列表的索引。选
定的出站流散列条目包含选定负责传输此流的物理适配器的索引。数据包的源 MAC 地址将被修改为选定的物理适配器的
MAC 地址。修改的数据包传递到选定的物理适配器以进行传输。
出站 TCP UDP 数据包使用第 3 层和第 4 层报头信息进行分类。对于使用著名端口 (如 HTTP FTP)的流行 Internet
协议服务,此方案可改进负载分配。因此, BASP TCP 会话基础上执行负载平衡,而不是逐个数据包进行。
在出站流散列条目中,完成分类后还会更新统计计数器。负载平衡引擎使用这些计数器在组合的端口之间定期分发流。出站
代码路径设计为能够实现最佳并发处理,从而允许对出站流散列表的多个并发访问。
对于 TCP/IP 以外的协议,始终为出站数据包选择第一个物理适配器。地址解析协议 (ARP) 是一个例外,它以不同方式处理
以实现入站负载平衡。
入站通信流 (仅限 SLB
Broadcom 中间驱动程序管理 SLB 组模式的入站通信量流。与出站负载平衡不同,入站负载平衡只适用于与负载平衡服务器
在相同子网中的 IP 地址。入站负载平衡使用地址解析协议 (RFC0826) 的特性,每个 IP 主机使用本身的 ARP 缓存将 IP
据报封装到 Ethernet 帧中。 BASP 仔细操作 ARP 响应,指导每个 IP 主机将入站 IP 数据包发送至所需的物理适配器中。
此,入站负载平衡是一个基于入站流统计历史的预计划方案。客户机到服务器的新连接始终在主物理适配器上发生(因为操
作系统协议栈生成的 ARP 应答始终将逻辑 IP 地址与主物理适配器的 MAC 地址关联)
与出站一样,有入站流头散列表。此表中的每个条目都有一个单独链接的列表,并且每个链路 (入站流条目)代表一个位于
相同子网上的 IP 主机。
当一个入站 IP 数据报到达时,通过求 IP 数据报的源 IP 地址的散列,定位相应的入站流头条目。同时更新存储在选定条目中
的两个统计计数器。与出站计数器一样,负载平衡引擎使用这些计数器定期将流分配到物理适配器。
在入站代码路径上,入站流头散列表还用于允许并发访问。仅在处理 ARP 数据包和定期负载平衡的情况下,才引用入站流
条目的链路列表。并非逐个数据包引用入站流条目。即使没有绑定链路列表,用于处理每个非 ARP 数据包的开销也始终为
常量。但是, ARP 数据包 (入站和出站)的处理取决于相应链路列表中的链路数。
在入站处理路径中,同样利用过滤,以防止广播数据包从其它物理适配器回送到系统。
协议支持
ARP IP/TCP/UDP 流实现负载平衡。如果数据包仅使用 IP 协议,如 ICMP IGMP,所有流向特定 IP 地址的数据将
通过相同的物理适配器传出。如果数据包使用 TCP UDP 作为 L4 协议,则端口号添加到散列算法,因此两个单独的 L4
可通过两个单独的物理适配器传递到相同的 IP 地址。
例如,假设客户机的 IP 地址为 10.0.0.1。由于用于散列的只有 IP 地址,所有 IGMP ICMP 通信量都将通过相同的物理适
配器传递。流可能像下面这样:
IGMP ------> PhysAdapter1 ------> 10.0.0.1ICMP ------> PhysAdapter1 ------> 10.0.0.1 如果服务器也将 TCP UDP 流发送
到相同的 10.0.0.1 地址,它们可以位于与 IGMP ICMP 相同的物理适配器上,也可以位于与 ICMP IGMP 完全不同的物
理适配器上。流可能像下面这样:
IGMP ------> PhysAdapter1 ------> 10.0.0.1ICMP ------> PhysAdapter1 ------> 10.0.0.1