数据流是指一组具有某个或某些相同属性的数据包。这些属性有源MAC地址、目的MAC地址、源IP地址、目的IP地址、TCP/UDP的源端口号、TCP/UDP的目的端口号等。
在使用Eth-Trunk转发数据时,由于聚合组两端设备之间有多条物理链路,就会产生同一数据流的第一个数据帧在一条物理链路上传输,而第二个数据帧在另外一条物理链路上传输的情况。这样一来同一数据流的第二个数据帧就有可能比第一个数据帧先到达对端设备,从而产生接收数据包乱序的情况。
为了避免这种情况的发生,Eth-Trunk采用逐流负载分担的机制,这种机制把数据帧中的地址通过HASH算法生成HASH-KEY值,然后根据这个数值在Eth-Trunk转发表中寻找对应的出接口,不同的MAC或IP地址HASH得出的HASH-KEY值不同,从而出接口也就不同,这样既保证了同一数据流的帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担,即逐流的负载分担。逐流负载分担能保证包的顺序,但不能保证带宽利用率。
负载分担的类型主要包括以下几种,用户可以根据具体应用选择不同的负载分担类型。
根据报文的源MAC地址进行负载分担;
根据报文的目的MAC地址进行负载分担;
根据报文的源IP地址进行负载分担;
根据报文的目的IP地址进行负载分担;
根据报文的源MAC地址和目的MAC地址进行负载分担;
根据报文的源IP地址和目的IP地址进行负载分担;
根据报文的VLAN、源物理端口等对L2、IPv4、IPv6和MPLS报文进行增强型负载分担。
转载自华为9303技术文档,版权归华为所有!