Flow BifurcationRSS(Receive Side Scaling)都会控制网络流量到指定RX Queue,那么两者的区别又是什么呢?

RSS is trying to spread incoming packets across cores while directing packets from common flows to the same core. Unlike RSS, Intel Ethernet Flow Director is trying to establish a unique association between flows and the core with the consuming application. Indexing solely by a hash won’t do that. Distinct flows must be uniquely characterized with a high probability which cannot be accomplished by a hash alone.

RSS只是为了load balance,无法做到queue隔离;比如dpdk的某些流量会导向RX Q1,但是如果只基于RSS的话,根据hash值的计算,内核协议栈的某些流量也会导向RX Q1;此时dpdk的网络流量就会与内核协议栈的流量导向到相同RX Queue,就无法做到queue隔离了。


参考资料:

  1. Introduction to Intel® Ethernet Flow Director and Memcached Performance
  2. 浅谈RSS 和 Flow Director
  3. How to Set Up Intel® Ethernet Flow Director
  4. 网卡多队列:RPS、RFS、RSS、Flow Director(DPDK支持)