Kenapa situs seperti Google / Facebook / dll. tidak mendapatkan DDOS meskipun mereka menerima begitu banyak permintaan?

14

Sesuatu yang saya tidak mengerti:

(Puluhan / ratusan?) Ribuan orang secara bersamaan mencoba terhubung ke situs seperti facebook.com atau google.com.

Dari apa yang saya mengerti, mereka semua harus terhubung ke server awal yang sama (karena DNS akan mengembalikan IP yang sama ke banyak dari mereka, sehingga semua permintaan pergi ke tujuan yang sama).

Jadi satu mesin / router harus menangani semua permintaan awal, bahkan jika ia berencana untuk meneruskannya ke mesin lain.

Kenapa satu perangkat tidak kelebihan beban saat ini terjadi?

pengguna541686
sumber
8
Asumsi Anda tentang DNS salah: en.wikipedia.org/wiki/Round-robin_DNS
Der Hochstapler
@OliverSalzburg: Terima kasih atas tautannya, itu sangat membantu.
user541686

Jawaban:

20

Pemahaman Anda bahwa mereka semua terhubung ke server yang sama salah, meskipun rincian tentang bagaimana Anda mencapai hasil itu rumit. http://highscalability.com/ memiliki kerja referensi tentang bagaimana beberapa solusi skalabilitas dimainkan.

Mereka memiliki lebih dari sekadar "satu" server yang terhubung dengan klien, meskipun alamat IP publik terlihat sama. Google, misalnya, menggunakan banyak alamat penyiaran untuk mengarahkan orang, dan biasanya mereka tidak hanya memiliki satu alamat IP untuk setiap klien - bahkan jika mereka mengembalikan hanya satu alamat ketika Anda bertanya.

Daniel Pittman
sumber
+1 terima kasih telah menunjukkan kesalahannya. Saya tidak bisa tidak bertanya-tanya, jika permintaan berikutnya pergi ke server yang berbeda setiap saat, lalu bagaimana server melanjutkan sesi server yang berbeda? Atau apakah keacakan berdasarkan per mesin / per sesi? (Saya akan membayangkan bahwa mereka semua menyinkronkan di backend, tetapi tampaknya sangat lambat untuk menyinkronkan ribuan server yang menyimpan informasi tentang jutaan pengguna secara bersamaan.)
user541686
1
Jawabannya rumit, dan tergantung pada implementasinya, tetapi satu pendekatan adalah memiliki kumpulan mesin yang tidak melakukan apa-apa selain mengirim paket ke tujuan yang benar tanpa pernah benar-benar membuat koneksi TCP. Lihatlah ke F5, dan vendor penyeimbang beban lainnya, untuk ujung kecil caranya. Google, saya pikir, menggunakan sesuatu yang mereka buat sendiri.
Daniel Pittman
Anda juga dapat menggunakan metodologi sesi terpisah. Ada sesi antara pengguna dan server yang terhubung langsung dengan mereka, dan "sesi master logis" antara pengguna dan layanan logis. Jika pengguna pindah ke server yang berbeda, server itu hanya melanjutkan sesi master logis yang sama ke layanan logis.
David Schwartz