Google / Facebook /などのサイトはどうして来たのでしょう。彼らは非常に多くの要求を受信して​​も、DDOSを取得しないでください?


14

私が理解できないこと:

(数十/数百?)数千人が同時にfacebook.comやgoogle.comなどのサイトに接続しようとします。

私が理解したことから、それらはすべて同じ初期サーバーに必ず接続する必要があります(DNSがそれらの多くに同じIPを返すため、すべての要求が同じターゲット宛先に送信されるため)。

そのため、単一のマシン/ルーターは、他のマシンに転送する予定であっても、すべての初期リクエストを処理する必要があります。

これが発生したときに、単一のデバイスが過負荷にならないのはなぜですか?


8
DNSに関するあなたの仮定が間違っています:en.wikipedia.org/wiki/Round-robin_DNS
Der Hochstapler

@OliverSalzburg:リンクをありがとう、それは役に立ちます。
user541686

回答:


20

それらがすべて同じサーバーに接続するという理解は間違っていますが、これらの結果を達成する方法の詳細は複雑です。 http://highscalability.com/には、スケーラビリティソリューションのいくつかをどのように活用するかについての参考資料があります。

パブリックIPアドレスが同じに見えても、クライアントが接続する「1つの」サーバー以上のものがあります。たとえば、Googleはエニキャストアドレス指定を多用して人々を誘導します。通常は、クライアントが1つのIPアドレスを持っているわけではありません。


+1エラーを指摘してくれてありがとう。しかし、次のリクエストが毎回異なるサーバーに送信される場合、サーバーはどのようにして別のサーバーのセッションを継続するのでしょうか?または、マシンごと/セッションごとのランダム性ですか?(すべてがバックエンドで同期すると想像しますが、数百万のユーザーに関する情報を同時に保持する数千のサーバーを同期するのは非常に遅いように思われます。)
user541686

1
答えは複雑で、実装に依存しますが、1つのアプローチは、実際にTCP接続を確立せずにパケットを適切な宛先に送信するだけのマシンプールを持つことです。方法の小さな終わりについては、F5および他のロードバランサーベンダーをご覧ください。グーグルは、自分で作ったものを使うと思う。
ダニエルピットマン

分割セッション手法を使用することもできます。ユーザーとユーザーが直接接続しているサーバーの間にはセッションがあり、ユーザーと論理サービスの間には「マスター論理セッション」があります。ユーザーが別のサーバーに移動すると、そのサーバーは論理サービスへの同じマスター論理セッションを再開します。
デビッドシュワルツ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.