Peer-to-Peer
Eşler Arası
- Okunuşu
- piir tu piir
Kısaca
Peer-to-peer (P2P, eşler arası), eşlerin merkezî sunucu olmadan doğrudan bağlanıp kaynak paylaştığı, her birinin hem istemci hem sunucu olduğu ağ tasarımıdır.
Peer-to-peer (P2P) nedir?
Bir P2P ağında her eş veri isteyebilir ve sağlayabilir. 2001'de yayımlanan BitTorrent ile bir dosya indirdiğinizde parçaları aynı anda birçok başka eşten alır, zaten sizde olan parçaları da başkalarına yüklersiniz. Bir dosyayı ne kadar çok kişi paylaşırsa ağın kapasitesi o kadar artar; bu da talep arttıkça yavaşlayan merkezî bir sunucunun tam tersidir.
Eşlerin yine de birbirini bulması gerekir. Bazı sistemler yalnızca keşif için merkezî bir tracker ya da dizin kullanır; 1999'da Napster'ın yaptığı gibi, aktarımın kendisi kullanıcılar arasında doğrudan gerçekleşirdi. Tamamen merkeziyetsiz olanlar ise eşlerin kimde ne olduğunu bulma sorumluluğunu paylaştığı dağıtık hash tablolarını (DHT) kullanır. Cihazların çoğu NAT yönlendiricilerinin arkasında olduğu için P2P yazılımları birbirine ulaşmak için delik açma (hole punching) tekniklerine, yedek olarak da aktarma (relay) sunucularına ihtiyaç duyar.
Dosya paylaşımının ötesinde P2P fikirleri, her düğümün defteri tutup doğruladığı Bitcoin gibi blockchain'leri, tarayıcıları doğrudan bağlayan WebRTC görüntülü aramalarını, yerel çok oyunculu oyunları, yazılım güncellemesi dağıtımını ve IPFS gibi içerik adresli depolamayı çalıştırır.
Sık yapılan bir yanlış, eşler arasının yasa dışı dosya paylaşımı demek olduğunu düşünmektir. Gerçek güçlü yanları olan tarafsız bir mimaridir: tek hata noktası yoktur, sunucu maliyetleri düşüktür ve sansüre dayanıklıdır; gerçek bedelleri de vardır: eşler kötü niyetli olabileceği için güvenlik daha zordur, keşif daha yavaş ve daha az öngörülebilirdir, paylaşılan veriyi tutarlı tutmak da zordur.
Önemli noktalar
- P2P'de eşler kaynakları doğrudan paylaşır, hem istemci hem sunucu gibi davranır.
- Tek bir merkezî sunucunun aksine, daha fazla eş katıldıkça kapasite artar.
- Keşif tracker'lar ya da dağıtık hash tabloları kullanır; NAT özel ele alınmalıdır.
- BitTorrent, blockchain'ler ve WebRTC aramalarının hepsi P2P fikirlerini kullanır.
- Tek hata noktasından kaçınır, ama güvenliği ve tutarlılığı zorlaştırır.
Sık sorulan sorular
P2P ile istemci-sunucu arasındaki fark nedir?
İstemci-sunucu, birçok istemciye hizmet veren ayrılmış sunuculara dayanır. P2P'de ise asıl iş için merkezî bir sunucu yoktur: her eş hem kaynak tüketir hem sağlar ve başkalarına doğrudan bağlanır.
Blockchain eşler arası mı?
Evet. Bitcoin ve Ethereum gibi herkese açık blockchain'ler, düğümlerin işlemleri ve blokları doğrudan alıp verdiği ve her birinin defterin bir kopyasını tuttuğu P2P ağlarıdır.
WebRTC eşler arası mı?
WebRTC, tarayıcıların sesi, görüntüyü ve veriyi doğrudan birbirine göndermesini sağlar. Eşleri tanıştırmak için yine bir sunucu gerekir; doğrudan bağlantı mümkün olmadığında da aktarma sunucuları kullanılır.
İlgili sayfalar
- İstemci-Sunucu MimarisiYazılım Mimarisi, s. 20İstemci-sunucu mimarisi bir sistemi veri ya da işlem isteyen istemcilere ve bunları sağlayan sunuculara ayırır; tarayıcının sunucudan sayfa istemesi gibi.
- Dağıtık SistemYazılım Mimarisi, s. 8Dağıtık sistem, bir ağ üzerinden birlikte çalışan ve kullanıcılarına tek bir sistem gibi görünen bilgisayarlar kümesidir.
- NATAğlar, s. 18NAT, yönlendiricinin geçen paketlerdeki IP adreslerini yeniden yazarak özel ağdaki birçok cihazın tek bir genel IP adresini paylaşmasını sağlayan tekniktir.
- Consistent HashingYazılım Mimarisi, s. 6Consistent hashing (tutarlı hashleme), anahtarları sunuculara, sunucu eklenip çıkarıldığında yalnızca küçük bir kısmı yer değiştirecek şekilde dağıtır.
- Konsensüs AlgoritmasıYazılım Mimarisi, s. 23Konsensüs algoritması, bir grup makinenin, bazıları çökse ya da mesajlar kaybolsa bile tek bir değerde ya da sıralı bir karar kaydında anlaşmasını sağlar.
- WebSocketWeb Geliştirme, s. 61WebSocket, tarayıcı ile sunucu arasında tek bir bağlantıyı açık tutarak her iki tarafın istediği an birbirine anında mesaj göndermesini sağlayan protokoldür.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin