Subject: TCP forwarding performance
To: None <firstname.lastname@example.org>
From: Chun-Ying Huang <email@example.com>
Date: 04/29/2002 13:43:18
I am implementing a TCP splicing like mechanism on NetBSD to
speedup TCP forwarding performance. But I encountered a problem
that hangs the whole system for a period of time while the
spliced TCP traffic is being forwarding.
When the proxy receives incoming TCP data packets belongs to
socket-1/tcpcb-1, according to splicing information on
socket-1/tcpcb-1, the data packet should be sent out from output
interface corresponding to socket-2/tcpcb-2.
I "guess" the system hangs because socket-1/tcpcb-1 has to
frequently access information on socket-2/tcpcb-2 on every newly
incoming TCP data packets. So heavily cross-references between
two (or four) kernel structure variables hangs the system.
Is this guess reasonable? Or is there are any other reasons?
How do I avoid this problem?
Any comments is welcome.:)
huangant <Chun-Ying Huang>