RE: Is it possible to run TCP/IP stack in user space?

From: Giovambattista Pulcini
Date: Wed Nov 08 2006 - 10:42:20 EST


Hi,
the short answer is nearer to 'no' than 'yes', unless the third party
explicitly provides means of doing it, maybe in order to use it as an
"evaluation".

Having the source code at hand, it can be done with some effort, which
generally involves changing some system calls to correspondent libc
functions and writing a pseudo device driver that, instead of accessing the
real HW, uses an existing network interface in the host system at the raw
(or data link) layer. Typically, in such context, you can not use the
standard socket interface from applications that use the new TCP/IP stack.

For an example of how this could be done, you can refer to the LWIP project
(http://www.sics.se/~adam/lwip/) which supports running the LWIP stack in
user space as an application. Applications that use it have to deal with a
special API, they can not use the standard BSD sockets interface.

Two years ago I had it running in user space on Linux and on Windows. It
needed some tweaking but worked just fine. Newer versions may require no
tweaking at all.


gp



-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html