{"id":4199,"date":"2026-08-10T22:03:57","date_gmt":"2026-08-10T15:03:57","guid":{"rendered":"https:\/\/focusnic.com\/blog\/?p=4199"},"modified":"2026-08-10T22:03:59","modified_gmt":"2026-08-10T15:03:59","slug":"perbedaan-tcp-vs-unix-socket-di-linux","status":"publish","type":"post","link":"https:\/\/focusnic.com\/blog\/perbedaan-tcp-vs-unix-socket-di-linux\/","title":{"rendered":"Perbedaan TCP vs UNIX Socket di Linux"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Dalam lingkungan <strong>Linux<\/strong>, komunikasi antar-proses dan jaringan memanfaatkan berbagai mekanisme. Dua yang paling umum adalah koneksi <strong>TCP<\/strong> (Transmission Control Protocol) dan <strong>UNIX socket<\/strong>. Memahami perbedaan dasar keduanya membantu memilih solusi tepat sesuai kebutuhan aplikasi, baik untuk komunikasi jarak jauh maupun lokal.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_86 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/focusnic.com\/blog\/perbedaan-tcp-vs-unix-socket-di-linux\/#Konsep_Dasar_TCP\" >Konsep Dasar TCP<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/focusnic.com\/blog\/perbedaan-tcp-vs-unix-socket-di-linux\/#Konsep_Dasar_UNIX_Socket\" >Konsep Dasar UNIX Socket<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/focusnic.com\/blog\/perbedaan-tcp-vs-unix-socket-di-linux\/#Perbandingan_Kinerja_Latensi_dan_Throughput\" >Perbandingan Kinerja, Latensi, dan Throughput<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/focusnic.com\/blog\/perbedaan-tcp-vs-unix-socket-di-linux\/#Latensi\" >Latensi<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/focusnic.com\/blog\/perbedaan-tcp-vs-unix-socket-di-linux\/#Throughput\" >Throughput<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/focusnic.com\/blog\/perbedaan-tcp-vs-unix-socket-di-linux\/#Overhead_Sistem\" >Overhead Sistem<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/focusnic.com\/blog\/perbedaan-tcp-vs-unix-socket-di-linux\/#Keamanan_dan_Pengaturan_Hak_Akses\" >Keamanan dan Pengaturan Hak Akses<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/focusnic.com\/blog\/perbedaan-tcp-vs-unix-socket-di-linux\/#Keamanan_pada_TCP\" >Keamanan pada TCP<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/focusnic.com\/blog\/perbedaan-tcp-vs-unix-socket-di-linux\/#Keamanan_pada_UNIX_Socket\" >Keamanan pada UNIX Socket<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/focusnic.com\/blog\/perbedaan-tcp-vs-unix-socket-di-linux\/#Integrasi_dengan_SELinux_dan_AppArmor\" >Integrasi dengan SELinux dan AppArmor<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/focusnic.com\/blog\/perbedaan-tcp-vs-unix-socket-di-linux\/#Kasus_Penggunaan_dan_Best_Practices\" >Kasus Penggunaan dan Best Practices<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/focusnic.com\/blog\/perbedaan-tcp-vs-unix-socket-di-linux\/#Aplikasi_Jaringan_dan_Layanan_Remote\" >Aplikasi Jaringan dan Layanan Remote<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/focusnic.com\/blog\/perbedaan-tcp-vs-unix-socket-di-linux\/#Komunikasi_Antar-Proses_Lokal\" >Komunikasi Antar-Proses Lokal<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/focusnic.com\/blog\/perbedaan-tcp-vs-unix-socket-di-linux\/#Best_Practices_Implementasi\" >Best Practices Implementasi<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/focusnic.com\/blog\/perbedaan-tcp-vs-unix-socket-di-linux\/#Optimasi_dan_Tuning\" >Optimasi dan Tuning<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Konsep_Dasar_TCP\"><\/span>Konsep Dasar TCP<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>TCP<\/strong> adalah protokol transport berorientasi koneksi yang menjamin pengiriman data secara andal melalui jaringan. TCP membangun koneksi dengan <a href=\"https:\/\/focusnic.com\/blog\/proses-three-way-handshake\/\">proses three-way handshake<\/a> sebelum transfer data, memastikan urutan paket dan menangani retransmisi saat terjadi kehilangan. Skema ini membuat TCP cocok untuk aplikasi membutuhkan integritas data seperti web server, basis data distribusi, dan transfer file.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Konsep_Dasar_UNIX_Socket\"><\/span>Konsep Dasar UNIX Socket<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>UNIX socket<\/strong> adalah antarmuka IPC (Inter-Process Communication) yang bekerja di filesystem Linux. Socket ini memungkinkan proses pada host yang sama bertukar data melalui file socket, objek khusus di direktori filesystem. Karena tidak melibatkan protokol jaringan, UNIX socket menawarkan jalur komunikasi yang lebih cepat dan overhead lebih rendah untuk aplikasi lokal. UNIX socket tersedia dalam mode <strong>stream<\/strong> (SOCK_STREAM) dan <strong>datagram<\/strong> (SOCK_DGRAM), mirip dengan TCP\/UDP, namun terbatas pada komunikasi lokal.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Perbandingan_Kinerja_Latensi_dan_Throughput\"><\/span>Perbandingan Kinerja, Latensi, dan Throughput<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Performa menjadi faktor penting dalam memilih metode koneksi. <strong>TCP<\/strong> dan <strong>UNIX socket<\/strong> memiliki profil kinerja berbeda, khususnya dalam hal latensi, throughput, dan konsumsi sumber daya sistem.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Latensi\"><\/span>Latensi<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>UNIX socket<\/strong> umumnya memiliki latensi lebih rendah. Tanpa lapisan IP dan mekanisme penanganan jaringan, waktu yang dibutuhkan untuk pengiriman pesan antar-proses dapat berkurang drastis. Latensi pada UNIX socket bisa mencapai beberapa mikrodetik, dibandingkan <strong>TCP<\/strong> yang sering memerlukan overhead pemrosesan di kernel dan stack jaringan.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Throughput\"><\/span>Throughput<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Untuk aplikasi yang membutuhkan transfer data besar, <strong>TCP<\/strong> mendukung paket ukuran variabel dan windowing untuk mengoptimalkan aliran data. Namun, overhead checksum, retransmisi, dan kontrol aliran dapat menurunkan throughput maksimal. Sebaliknya, UNIX socket memberikan throughput tinggi dalam konteks lokal karena minimnya cek protokol dan routing. Beberapa benchmark menunjukkan throughput UNIX socket bisa mencapai beberapa GB\/s pada loopback interface, sedangkan TCP pada loopback biasanya terbatas di ratusan MB\/s.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Overhead_Sistem\"><\/span>Overhead Sistem<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>TCP<\/strong> memerlukan alokasi buffer jaringan, pengaturan port, serta tabel koneksi, menambah beban pada CPU dan memori, terutama saat menangani ribuan koneksi bersamaan. Sementara itu, <strong>UNIX socket<\/strong> hanya memanfaatkan file descriptor dan buffer memori, sehingga skalabilitas lokal lebih efisien dan konsumsi sumber daya lebih rendah.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Keamanan_dan_Pengaturan_Hak_Akses\"><\/span>Keamanan dan Pengaturan Hak Akses<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aspek keamanan dan kontrol akses menentukan ketahanan aplikasi terhadap berbagai serangan. Meskipun <strong>TCP<\/strong> menawarkan mekanisme bawaan, <strong>UNIX socket<\/strong> memiliki kelebihan tersendiri di lingkungan lokal.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Keamanan_pada_TCP\"><\/span>Keamanan pada TCP<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Secara default, koneksi <strong>TCP<\/strong> rentan terhadap serangan seperti sniffing, spoofing, dan man-in-the-middle. Untuk melindungi data, biasanya diperlukan lapisan enkripsi tambahan seperti TLS\/SSL. Konfigurasi firewall dan pengaturan IP filtering juga penting untuk membatasi akses dari jaringan luar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Keamanan_pada_UNIX_Socket\"><\/span>Keamanan pada UNIX Socket<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>UNIX socket<\/strong> hanya dapat diakses oleh proses pada host yang sama. File socket mewarisi permission filesystem, memungkinkan administrator menentukan user atau group yang boleh membaca dan menulis. Dengan demikian, UNIX socket menawarkan isolasi yang lebih baik tanpa memerlukan enkripsi jaringan.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Integrasi_dengan_SELinux_dan_AppArmor\"><\/span>Integrasi dengan SELinux dan AppArmor<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pada distribusi Linux modern, kebijakan <strong>SELinux<\/strong> atau <strong>AppArmor<\/strong> dapat digunakan untuk membatasi akses ke socket maupun port. Administrator dapat menetapkan label keamanan dan profil aplikasi, membatasi domain proses, serta mempermudah audit dan isolasi aplikasi kritikal.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Kasus_Penggunaan_dan_Best_Practices\"><\/span>Kasus Penggunaan dan Best Practices<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Memilih antara <strong>TCP<\/strong> dan <strong>UNIX socket<\/strong> bergantung pada konteks aplikasi, kebutuhan keamanan, dan performa. Berikut beberapa rekomendasi kasus penggunaan dan praktik implementasi.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Aplikasi_Jaringan_dan_Layanan_Remote\"><\/span>Aplikasi Jaringan dan Layanan Remote<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Jika komunikasi melintasi host atau jaringan terpisah, <strong>TCP<\/strong> menjadi pilihan wajib. Protokol ini menjamin konektivitas end-to-end, routing, dan interoperabilitas antar platform. Contoh: HTTP\/HTTPS, SSH, layanan REST API.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Komunikasi_Antar-Proses_Lokal\"><\/span>Komunikasi Antar-Proses Lokal<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Untuk aplikasi yang berjalan di mesin sama seperti microservices dalam satu server atau arsitektur client-server lokal <strong>UNIX socket<\/strong> menawarkan performa dan keamanan lebih baik. Contoh: database MySQL, Redis, server proxy lokal.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Best_Practices_Implementasi\"><\/span>Best Practices Implementasi<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gunakan <strong>TCP<\/strong> dengan TLS untuk menjamin keamanan data di jaringan terbuka.<\/li>\n\n\n\n<li>Prioritaskan <strong>UNIX socket<\/strong> untuk komunikasi lokal berkecepatan tinggi dan kontrol akses berbasis file.<\/li>\n\n\n\n<li>Monitoring kinerja: pantau latensi dan throughput dengan tools seperti <strong>netstat<\/strong>, <strong>ss<\/strong>, atau <strong>perf<\/strong>.<\/li>\n\n\n\n<li>Perhatikan batasan file descriptor dan tuning sysctl untuk menangani banyak koneksi.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Optimasi_dan_Tuning\"><\/span>Optimasi dan Tuning<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>net.core.somaxconn<\/strong>: mengatur backlog maksimum pada socket TCP.<\/li>\n\n\n\n<li><strong>net.ipv4.tcp_window_scaling<\/strong>: mengaktifkan scaling window untuk throughput tinggi.<\/li>\n\n\n\n<li><strong>fs.file-max<\/strong>: menambah batas file descriptor untuk mendukung banyak klien.<\/li>\n\n\n\n<li>Memanfaatkan opsi <strong>SO_REUSEADDR<\/strong> dan <strong>SO_LINGER<\/strong> sesuai kebutuhan aplikasi.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Dengan memahami karakteristik, praktik implementasi, dan teknik tuning, Anda dapat mengoptimalkan aplikasi Linux untuk berbagai skenario komunikasi dengan efisiensi maksimal.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dalam lingkungan Linux, komunikasi antar-proses dan jaringan memanfaatkan berbagai mekanisme. Dua yang paling umum adalah koneksi TCP (Transmission Control Protocol) dan UNIX socket. Memahami perbedaan dasar keduanya membantu memilih solusi tepat sesuai kebutuhan aplikasi, baik untuk komunikasi jarak jauh maupun lokal. Konsep Dasar TCP TCP adalah protokol transport berorientasi koneksi yang menjamin pengiriman data secara [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":4347,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[72,23],"class_list":["post-4199","post","type-post","status-publish","format-standard","has-post-thumbnail","category-informasi","tag-network","tag-server"],"_links":{"self":[{"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/posts\/4199","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/comments?post=4199"}],"version-history":[{"count":2,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/posts\/4199\/revisions"}],"predecessor-version":[{"id":4346,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/posts\/4199\/revisions\/4346"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/media\/4347"}],"wp:attachment":[{"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/media?parent=4199"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/categories?post=4199"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/tags?post=4199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}