Зачем использовать локальные каналы вместо сокетов для связи программ внутри одного компьютера? - PullRequest
4 голосов
/ 16 июня 2010

Зачем использовать локальные каналы вместо сокетов для связи программ внутри одного компьютера? Есть ли какая-нибудь свежая статистика о том, кто быстрее и как, что лучше или меньше?

Я нашла осторожного старого, странного и страшного ... http://home.iae.nl/users/mhx/pipes&socks.html

There is a noticeable difference in performance between sockets and named pipes.
Benchmark 1: 20 Mbytes copied between two iForths on machine 1; 
Benchmark 2: 20 Mbytes copied from an iForth on machine 2 to an iForth on machine 1.

Systems for sock test: Windows XP Pro, running on (1) an Intel PIV 3GHz/1GB and (2) an Intel Core 2 Duo 2.66 GHz/2GB. The PC's were networked using motherboard Realtek network adapters (100 Mbit/s). 
Systems for npipe test: Windows NT 4.0, running on (1) an Intel Pentium 166MHz/48MB and (2) an Intel Pentium 200MHz/48MB. The PC's were networked using cheap NE2000 clones (10 Mbit/s).

benchmark  | process A read | process B write
===========+================+================
sock  bm 1 |    72 MB/sec   |   732 MB/sec
sock  bm 2 |  11.5 MB/sec   | 2.857 GB/sec
npipe bm 1 |    15 MB/sec   |    15 MB/sec
npipe bm 2 |   715 KB/sec   |   715 KB/sec

И здесь - странная информация (по крайней мере, для меня - для пользователей Windows)

1 Ответ

6 голосов
/ 16 июня 2010

Каналы всегда должны быть быстрее, поскольку они полностью обходят сетевой стек в операционной системе хоста.Считается, что каналы более безопасны, поскольку они не прослушивают данные с ненадежных удаленных компьютеров (хотя сокеты также можно настроить так, чтобы они прослушивали только адаптер обратной связи и таким образом избегали прослушивания удаленных компьютеров).Именованные каналы менее гибки, чем сокеты, поскольку они не допускают сетевого взаимодействия.В любом случае безопасность по-прежнему связана с тем, насколько хорошо вы пишете код.Можно написать приложение на основе каналов, которое менее безопасно, чем приложение на основе сокетов.

Что касается того, насколько быстрее один из них будет зависеть от вашего оборудования и операционной системы.

...