Hi -
This simplest way is:
1. Create your own kernel module (it sounds like you're doing this anyway).
2. Implement your own "open(), "close()", "read()" and "write()", etc methods.
3. "Mknod" a special device in "/dev".
4. "Insmod" your kernel driver and executeyour user-space program that uses it
The user-space program could be a background daemon (if you wish); the kernel module could support asynchronous I/O (if you wish).
Two other approaches would be:
/proc # actually, a bit more complicated
... or ...
netlink sockets #
http://www.linuxjournal.com/article/7356
Strong suggestions:
1. Get a copy of "Linux Device Drivers, 3rd Ed", Corbett, Rubini, Hartmann
http://www.bookpool.com/sm/0596005903
2. Get a copy of "Linux Kernel Development, 2nd Ed", Robert Love
http://www.bookpool.com/sm/0672327201
<= The two books absolutely complement each other
'Hope that helps .. PSM
PS:
Even though your question is about "networking", you'd probably have better luck posting to the LQ "Non-*nix, Programming" forum instead...