Coba jelasin Detail teknis dari SYN flood dong

Ketika klien mencoba untuk memulai koneksi TCP ke server, klien dan server bertukar serangkaian pesan yang biasanya berjalan seperti ini:

Klien meminta koneksi dengan mengirimkan pesan SYN (synchronize) ke server.

Server menerima permintaan ini dengan mengirim kembali SYN-ACK ke klien.

Klien menanggapi dengan ACK, dan sambungan dibuat.

Ini disebut jabat tangan tiga arah TCP, dan merupakan fondasi untuk setiap koneksi yang dibuat menggunakan protokol TCP.

Sebuah serangan SYN flood bekerja dengan tidak menanggapi server dengan kode ACK yang diharapkan. Klien jahat bisa saja tidak mengirim ACK yang diharapkan, atau dengan spoofing alamat IP sumber di SYN, menyebabkan server mengirim SYN-ACK ke alamat IP yang dipalsukan – yang tidak akan mengirim ACK karena itu "tahu" bahwa ia tidak pernah mengirim SYN.

Server akan menunggu pemberitahuan untuk beberapa waktu, karena kemacetan jaringan sederhana juga bisa menjadi penyebab ACK hilang. Namun, dalam sebuah serangan, koneksi setengah terbuka yang dibuat oleh klien jahat mengikat sumber daya di server dan pada akhirnya dapat melebihi sumber daya yang tersedia di server. Pada titik itu, server tidak dapat terhubung ke klien mana pun, baik yang sah atau tidak. Ini secara efektif menolak layanan kepada klien yang sah. Beberapa sistem juga dapat mengalami kegagalan fungsi atau crash ketika fungsi sistem operasi lain kekurangan sumber daya dengan cara ini.