I’m writing a driver in Linux kernel that sends data over the network . Now suppose that my data to be sent (buffer) is in kernel space . how do i send the data without creating a socket (First of all is that a good idea at all ? ) .I’m looking for performance in the code rather than easy coding . And how do i design the receiver end ? without a socket connection , can i get and view the data on the receiver end (How) ? And will all this change ( including the performance) if the buffer is in user space (i’ll do a copy from user if it does 🙂 ) ?
Share
If you are looking to send data on the network without sockets you’d need to hook into the network drivers and send raw packets through them and filter their incoming packets for those you want to hijack. I don’t think the performance benefit will be large enough to warrant this.
I don’t even think there are normal hooks for this in the network drivers, I did something relevant in the past to implement a firewall. You could conceivably use the netfilter hooks to do something similar in order to attach to the receive side from the network drivers.