知识卡片

精确匹配的哈希冲突处理

专业/工作 · 1108.a

内容

报文按字段做精确匹配的核心是先哈希再解决冲突:负载因子(数据条目数/哈希桶条目数)越大冲突概率越高,处理冲突有两种思路——分离链表把冲突项串成链表,不浪费桶空间但查找要多跳一次;开放地址把冲突项挤到下一个空桶,不用链表指针但容易连锁加剧冲突。DPDK的哈希表没有单纯选边站,而是让每个桶自带多个entry位——相当于把”链表”直接内嵌进桶结构本身,融合两种思路的优点,用固定大小的桶内数组换掉了链表的指针跳转开销。

参考来源

《深入浅出DPDK》第5章《报文转发》