hash Funktion für src dest ip + port

So, ich schaue mir verschiedene Hash-Funktionen an, die zum Hashing einer 4-Tupel-IP und eines 4-Tupel-Ports verwendet werden, um Flows zu identifizieren.

One ich begegnet war

((size_t)(key.src.s_addr) * 59) ^
((size_t)(key.dst.s_addr)) ^
((size_t)(key.sport) << 16) ^
((size_t)(key.dport)) ^
((size_t)(key.proto));

Jetzt für mein Leben kann ich die verwendete Primzahl nicht erklären (59). warum nicht 31, und warum versauen Sie es dann, indem Sie den Sport mit einer Potenz von 2 multiplizieren. Gibt es eine bessere Hash-Funktion, die für IP-Adressen verwendet werden kann?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage