「SYN flood」の版間の差分

削除された内容 追加された内容
XZeroBot (会話 | 投稿記録)
m ロボットによる 追加: hu:SYN flood
Ponta2 (会話 | 投稿記録)
12行目:
# SYN ACK パケットを受けとったクライアントは、接続開始をあらわす [[ACK]]パケットを送信し、サーバとの通信を開始する。
 
SYN flood 攻撃は、クライアント側がこの 3. の操作を意図的に行わないようにして、サーバを「中途半端な」状態にすることである。SYN flood攻撃をおこなう (悪意ある) クライアントは、サーバに大量の SYN パケットを送ったあと、サーバから返された SYN ACK パケットを無視して、そのまま放置する。サーバ側からすれば、クライアントから ACK パケットが届かないということは、ネットワークに障害が発生しているか、あるいは通信速度が非常に遅いかのどちらかである。このような場合、[[TCP/IP]] ではサーバはクライアントからの ACK パケットを一定時間 (数十秒) のあいだ待たなければならないと決められている。しかし、サーバは待っている間もクライアントの情報を保持しつづけなければならないので、SYN パケットをひとつ受けとるたびに使用するメモリ領域は増大する。この現象がきわめて短時間のうちに大量に発生すると、サーバは TCP接続のために使えるメモリをすべて使いはたしてしまい、新たな TCP接続がひとつも準備できなくなってしまう。このときサーバはいわゆる[[ライブロック (システム)|ライブロック]]状態に陥っており、継続して動作はしているものの、他のクライアントから TCP接続要求を送っても反応しないため、完全にダウンしてしまったように見える。[[オペレーティングシステム]]によっては、最悪の場合システムが[[クラッシュ (コンピュータ)|クラッシュ]]してしまうこともある。
 
=== サーバへの負荷 ===