zero copy HTTP server
Vasily Kirin
vasily.kirin at gmail.com
Wed Mar 17 16:46:38 UTC 2010
Hi.
As I can read here:
http://www.freebsd.org/cgi/man.cgi?query=zero_copy&apropos=0&sektion=0&manpath=FreeBSD+8.0-RELEASE&format=html(man
9 zero_copy)
FreeBSD can deliver received TCP data from the kernel to userspace without
any copy ("DMAed from the NIC to a buffer that will then be given to the
user" - from `man 9 zero_copy`)
Further, TCP content cannot be copied to continuous buffer without NIC with
"header splitting" feature. (Achieving page aligned payloads requires a NIC
that can split an incoming packet into multiple buffers. It also generally
requires some sort of intelligence on the NIC to make sure that the payload
starts in its own buffer. This is called ``header splitting``''. - from `man
9 zero_copy`)
I've found several Intel cards with this feature, but still can't find any
example or using this technique.
Is there any example or comprehensive manual of receiving TCP stream
in continuous buffer and passing this buffer to userspace without copy?
Best Regards,
Vasily
More information about the freebsd-net
mailing list