GNU/Linux >> Belajar Linux >  >> Linux

Soket Unix vs host TCP/IP:port

Solusi 1:

Soket Unix sedikit lebih cepat karena Anda tidak memiliki tcp-overhead. Jika Anda menyadari hilangnya kinerja ini adalah masalah beban server. Jika Anda tidak memiliki beban server yang sangat tinggi, Anda tidak akan mengenalinya.

Jika Anda menggunakan Penjara (FreeBSD) atau beberapa teknologi virtualisasi lainnya untuk memisahkan mis. MySQL-Server dari Webserver, Anda sering menggunakan pengaturan tcp/ip daripada soket. Aturan firewall perlu membatasi akses.

Anda perlu mencari tahu apakah sistem Anda berada di bawah beban berat sehingga soket adalah suatu keharusan atau Anda dapat fokus pada desain sistem yang bagus (layanan terpisah), maka solusi tcp/ip akan lebih baik.

Jadi, buat jawaban panjang pendek:

Ya, ada perbedaan kinerja, soket lebih cepat. Jika Anda tidak mengalami beban server yang tinggi, pilih saja yang lebih cocok dengan desain sistem Anda.

Solusi 2:

Ini pada dasarnya merupakan pertukaran antara kinerja dan fleksibilitas. Soket domain Unix akan memberi Anda kinerja yang sedikit lebih baik, sementara soket yang terhubung ke localhost memberi Anda portabilitas yang sedikit lebih baik. Anda dapat dengan mudah memindahkan aplikasi server ke OS lain hanya dengan mengubah alamat IP dari localhost ke nama host yang berbeda.

Soket domain Unix menggunakan sistem file lokal untuk membuat mekanisme IPC antara proses server dan klien. Anda akan melihat file di /var di suatu tempat ketika soket domain Unix terhubung.

Jika Anda murni mencari solusi kinerja terbaik, Anda mungkin ingin menjelajahi IPC memori bersama. Tapi, itu sedikit lebih rumit.

Solusi 3:

Kelebihan soket domain Unix.

  1. Akses dapat dikelola melalui sistem izin pengguna Unix baik dengan menyetel izin pada soket itu sendiri atau dengan server membaca nama pengguna klien yang terhubung.
  2. Kemungkinan lebih kecil untuk secara tidak sengaja mengekspos soket ke dunia luar. Misalnya jika server juga menjalankan proxy web, maka itu mungkin secara tidak sengaja mengizinkan koneksi ke soket di localhost.

Kontra soket domain Unix

  1. Tidak portabel untuk sistem non-unix.
  2. Bisa jadi canggung dengan chroot, jail, atau sejenisnya

Linux
  1. erlang:Dukungan soket domain UNIX?

  2. Bagaimana saya bisa mematikan TCP port 16969 di Bash?

  3. periksa semua soket dibuka di OS linux

  1. Buat koneksi port serial virtual melalui TCP

  2. Pemrograman Soket TCP berkinerja tinggi di .NET C#

  3. Linux bernama soket howto

  1. Sniff soket domain UNIX

  2. Bunuh proses yang berjalan di port 80

  3. Kapan mematikan TCP SACK?