• W
    tcp: add small random increments to the source port · ca7af040
    Willy Tarreau 提交于
    Here we're randomly adding between 0 and 7 random increments to the
    selected source port in order to add some noise in the source port
    selection that will make the next port less predictable.
    
    With the default port range of 32768-60999 this means a worst case
    reuse scenario of 14116/8=1764 connections between two consecutive
    uses of the same port, with an average of 14116/4.5=3137. This code
    was stressed at more than 800000 connections per second to a fixed
    target with all connections closed by the client using RSTs (worst
    condition) and only 2 connections failed among 13 billion, despite
    the hash being reseeded every 10 seconds, indicating a perfectly
    safe situation.
    
    Cc: Moshe Kol <moshe.kol@mail.huji.ac.il>
    Cc: Yossi Gilad <yossi.gilad@mail.huji.ac.il>
    Cc: Amit Klein <aksecurity@gmail.com>
    Reviewed-by: NEric Dumazet <edumazet@google.com>
    Signed-off-by: NWilly Tarreau <w@1wt.eu>
    Signed-off-by: NJakub Kicinski <kuba@kernel.org>
    ca7af040
inet_hashtables.c 25.0 KB