Google / Facebook / vb. çok fazla istek alsalar bile DDOS'u alamıyor musunuz?


14

Anlamadığım bir şey:

(Onlarca / yüzlerce?) Binlerce kişi aynı anda facebook.com veya google.com gibi bir siteye bağlanmaya çalışıyor.

Anladığım kadarıyla, hepsinin aynı başlangıç ​​sunucusuna bağlanması gerekir (çünkü DNS aynı IP'yi çoğuna döndürür ve böylece tüm istekler aynı hedef hedefe gider).

Bu nedenle, tek bir makine / yönlendirici, diğer makinelere yönlendirmeyi planlasa bile tüm ilk istekleri işlemelidir.

Bu gerçekleştiğinde neden tek bir cihaz aşırı yüklenmiyor?


8
DNS hakkındaki varsayımınız yanlış: en.wikipedia.org/wiki/Round-robin_DNS
Der Hochstapler

@OliverSalzburg: Bağlantı için teşekkürler, bu yardımcı oldu.
user541686

Yanıtlar:


20

Hepsinin aynı sunucuya bağlandığına ilişkin anlayışınız yanlıştır, ancak bu sonuçları nasıl elde ettiğinizle ilgili ayrıntılar karmaşıktır. http://highscalability.com/ , ölçeklenebilirlik çözümlerinden bazılarının nasıl yürüdüğü konusunda referans çalışmalara sahiptir.

Genel IP adresi aynı görünse bile, istemcilerin bağlandığı "tek" sunucudan çok daha fazlası vardır. Örneğin, Google, insanları yönlendirmek için herhangi bir yayın adresinden yoğun şekilde yararlanır ve genellikle her müşteri için yalnızca bir IP adresi yoktur - isteyince yalnızca bir adres döndürseler bile.


Hatayı işaret ettiğiniz için +1 teşekkürler. Yine de yardımcı olamıyorum, ancak sonraki istekler her seferinde farklı bir sunucuya giderse, sunucu nasıl farklı bir sunucunun oturumuna devam eder? Yoksa rastgele bir makine başına / oturum başına mı? (Hepsinin arka uçta senkronize edildiğini düşünürdüm, ancak aynı anda milyonlarca kullanıcı hakkında bilgi tutan binlerce sunucuyu senkronize etmek çok yavaş görünecektir.)
user541686

1
Cevap karmaşıktır ve uygulamaya bağlıdır, ancak bir yaklaşım, aslında bir TCP bağlantısı kurmadan paketleri doğru hedefe göndermek dışında hiçbir şey yapmayan bir makine havuzuna sahip olmaktır. Nasıl yapılacağını öğrenmek için F5'e ve diğer yük dengeleyici satıcılarına bakın. Google, sanırım, kendi geliştirdikleri bir şeyi kullanıyorlar.
Daniel Pittman

Ayrık oturum yöntemi de kullanabilirsiniz. Kullanıcı ile doğrudan bağlı oldukları sunucu arasında bir oturum ve kullanıcı ile mantıksal servis arasında bir "ana mantıksal oturum" vardır. Kullanıcı farklı bir sunucuya taşınırsa, o sunucu aynı ana mantıksal oturumu mantıksal hizmete devam ettirir.
David Schwartz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.