网络传输的一些原理(ECMP,RPS,WLET)
讲解了ECMP、RPS、FLOWLET 三种对在网络层使路由负载均衡的方案。
ECMP
Ecmp:该方案是基于以数据流作为单位传输的。
其大致原理是在每一数据流的首个数据包从主机到达第一个交换机后,交换机将根据数据包的五元组进行判断是否为数据流的第一个数据包,如果是则根据哈希算法选择一个发送端口进行发送(如果不是则沿着同流的上一个数据包发送端口进行发送)。
Ecmp方案的优缺点:
优点:是确保不会发生tcp传输中的数据包出现排序错误而导致丢包,触发tcp重传机制。
缺点:当哈希算法设计不好的时候会导致哈希冲突不能做到发送端口的负载均衡,因而增加排队延时。就算哈希算法足够优秀仍有可能导致数据传输时短流分配到长流的发送端口,增加排队延时。
RPS
RPS:该方案是基于以数据包为单位传输的。
其大致原理是在每一个数据包从主机到达第一个交换机后,不去管它是属于哪一个数据流直接随机的选择一个端口去发送数据包。
RPS方案的优缺点:
优点:在数据包较多时可以做到对发送端口的近乎绝对的负载均衡。避免排队延时。
缺点:哪怕在数据包较多时达到近乎绝对的负载均衡时仍然会出现tcp数据包接收后排序错误,导致丢包而触发重传,虽然此种情况可能影响不大。但是如果随机也很大概率的会出现负载不均衡,一旦出现这种情况则数据包排序错误将会是很大的问题。
FLOWLET
Flowlet:该方案是以流片为单位传输的。
其大致原理是利用了tcp协议传输时一次性大量发包(bast)的特性(一次发的所有数据包称为流片),而当tcp协议两次大量发包的时间间隔大于或等于上次发送端口与其它任一发送端口的传输时间差时,采取该次流片随机选择一个发送端口发送(否则仍沿上一流片发送端口发送)。
Flowlet方案的优缺点:
优点:是Ecmp和RPS方案的折中处理,既兼顾了发送端口负载均衡使排队延时低,也不会造成数据包的排序错误。
缺点:其传输时间差基本无法得出,只能人为设定阈值,导致阈值过大就成了Ecmp方案,过小就成了Rps方案。