diff options
Diffstat (limited to 'sys/netinet/tcp_seq.h')
-rw-r--r-- | sys/netinet/tcp_seq.h | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/sys/netinet/tcp_seq.h b/sys/netinet/tcp_seq.h index 8912299..08a6331 100644 --- a/sys/netinet/tcp_seq.h +++ b/sys/netinet/tcp_seq.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1982, 1986, 1993 + * Copyright (c) 1982, 1986, 1993, 1995 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * @(#)tcp_seq.h 8.1 (Berkeley) 6/10/93 + * @(#)tcp_seq.h 8.3 (Berkeley) 6/21/95 */ /* @@ -55,8 +55,22 @@ (tp)->snd_una = (tp)->snd_nxt = (tp)->snd_max = (tp)->snd_up = \ (tp)->iss -#define TCP_ISSINCR (125*1024) /* increment for tcp_iss each second */ - #ifdef KERNEL +/* + * Increment for tcp_iss each second. + * This is designed to increment at the standard 250 KB/s, + * but with a random component averaging 128 KB. + * We also increment tcp_iss by a quarter of this amount + * each time we use the value for a new connection. + * If defined, the tcp_random18() macro should produce a + * number in the range [0-0x3ffff] that is hard to predict. + */ +#ifndef tcp_random18 +#define tcp_random18() ((random() >> 14) & 0x3ffff) +#endif +#define TCP_ISSINCR (122*1024 + tcp_random18()) + tcp_seq tcp_iss; /* tcp initial send seq # */ +#else +#define TCP_ISSINCR (250*1024) /* increment for tcp_iss each second */ #endif |