Optimization of TCP/IP

I am developing an intermediate server application, which will serve around 10000 clients. The server is supposed to receive real time data feed from another source and provide it to each client. Each client will receive same data.

Now, every time send() is called, the data will be copied from application buffer to kernel buffer. But since its the same data thats being sent, I would like to know whether, it is possible to tell kernel to copy it just once and then directly transfer it from kernel buffer to NIC buffer without switching to user space mode.
I have heard abt Zero-copy techniques.
But the sendfile() function which implements this technique is not suitable in my case, as the data is not being read from a disk file. Rather, the intermediate sever application will be receiving this data from another source.
Other functions implementing zero-copy such as splice() only work with pipes.

Is there any way to achieve this???
Thanx in advance !!

Regards,
Vihang

Hi,

I don’t know your complete application scenario but maybe multicast is suitable for you.

Hope this helps