cvs commit: src/sys/netinet ip_id.c
andre at freebsd.org
Thu Feb 7 01:10:42 PST 2008
Robert Watson wrote:
> On Thu, 7 Feb 2008, Bruce M. Simpson wrote:
>> Mike Silbersack wrote:
>>> Note that this commit does not yet enable random IP ID
>>> generation by default. There are still some concerns
>>> that doing so will adversely affect performance.
>> Random ip_id generation also breaks MANET multicast as it's currently
>> specified -- the ip_id field gets used for histogram based duplicate
>> packet detection. However, after my inveigling, Fred Templin at Boeing
>> brought encapsulation back into the proposal on the table.
>> So some way to turn this stuff off on a per-interface basis is
>> probably going to be needed later on for mobile stuff...
> We also have much more general problems with our ip_id code -- using a
> global IP ID counter or random generator breaks down as the packet rate
> goes up, causing problems for NFS over UDP and other UDP applications
> with large packet sizes. We need to adopt some sort of host-based
> approach, presumably with a fallback to global when we don't want to
> commit state storage for a host (i.e., for RST's/SYN cookies, or even
> TCP generally). There's a comment in the Linux IP ID code regarding
> PPTP also expecting IP IPs to behave in a more historical way as well.
A sufficiently good hash algorithm should be able to replace storage
allocation and tracking per host. This way we have an IPID sequence
space per hash bucket where we can guarantee a full cycle.
More information about the cvs-src