Socket – Do other operating systems implements Linux system call splicing?

In the application I am developing, I use splice for socket-to-socket data transfer on Linux.

>Do other operating systems (especially at least Windows, OS X and FreeBSD) implement splicing or equivalent solutions?
>Is it possible to use sendfile¹memmap¹ to simulate socket-to-socket data splicing on Windows?

¹Both exist on Windows with different names, I don’t remember.

Update

You can see splice and user space on Linux Buffer performance improvement.

go

> DF , DR, F, MF, MR are my applications in different tunnel modes, NX is NGINX web server
> -pt uses Linux system call splicing
> pt uses portable implementation with user space buffer< br>> pt uses a portable implementation with user space buffers and multiple OS threads
>bars indicate throughput in gigabits per second
>a 1 gigabyte (1048576000 Byte) file is repeated 4 times by 4 concurrent clients

OpenBSD has sosplice and somove: http://www.openbsd.org/cgi-bin/man.cgi?query=sosplice

In the application I am developing, I use splice on Linux for socket-to-socket data transfer.

>Do other operating systems (especially at least Windows, OS X and FreeBSD) implement splicing or equivalent solutions?
>Is it possible to use sendfile¹memmap¹ to simulate socket-to-socket data splicing on Windows?

¹Both exist on Windows with different names, I don’t remember.

Update

You can see splice and user space on Linux Buffer performance improvement.

go

> DF , DR, F, MF, MR are my applications in different tunnel modes, NX is NGINX web server
> -pt uses Linux system call splicing
> pt uses portable implementation with user space buffer< br>> pt uses a portable implementation with user space buffers and multiple OS threads
>bars indicate throughput in gigabits per second
>a 1 gigabyte (1048576000 Byte) file is repeated 4 times by 4 concurrent clients

OpenBSD has sosplice and somove: http://www.openbsd.org/cgi- bin/man.cgi?query=sosplice

Leave a Comment

Your email address will not be published.