linear search of TCP control blocks on demultiplexing of an incom ing IP datagram

"Vishnepolsky, Oleg" <ovishnepolsky@doubleclick.net> Wed, 17 April 2002 18:06 UTC

Message-ID: <03E81ABDC8C2D31192C9009027D5B86E08ADB6CD@NYC-EX03>
From: "Vishnepolsky, Oleg" <ovishnepolsky@doubleclick.net>
To: "'tcp-impl@grc.nasa.gov'" <tcp-impl@grc.nasa.gov>
Subject: linear search of TCP control blocks on demultiplexing of an incom ing IP datagram
Date: Wed, 17 Apr 2002 14:06:10 -0400
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)
Content-Type: text/plain; charset="iso-8859-1"
Sender: owner-tcp-impl@grc.nasa.gov
Precedence: bulk
Status: RO
Content-Length: 604
Lines: 10

Which TCP implementations do a hash lookup ? I know that most BSD
derivatives do a linear search, except for the freebsd stack which does a
hash. What about MS stacks ? My stacks (OS/2, FlexOS) being BSD derivatives
used linear search except I used a one control block cache lookup since most
of the TCP packets come in "trains". I had a 70% hit ration in my
experiments.
Is there a study/comparison of various TCP stacks re this and many other
characteristics ? I am aware of external TCP fingerprinting  but that does
not reveal the internals that much. Any help will be appreciated.
Oleg Vishnepolsky