SYNとは、TCPで接続を開始する際に、クライアントからサーバに送られるパケットのことです。TCPにおける接続開始は、以下の手順で行われます。
このように、パケットを3回やり取りすることで接続を確立する方法を「3-way ハンドシェーク」と呼びます。これによってサーバは、自分が返信したパケットが通信相手に届くことを確認できます。しかしクライアントが送信元IPアドレスを偽装した場合には問題が発生します。この場合にはSYN/ACKパケットへのクライアントからの返信が届かないため、サーバ側はタイムアウトするまでハーフオープンの状態になり、無駄なリソースを消費するからです。この特性を悪用したDoS/DDoS攻撃が「SYNフラッド」です。
F5が提供する「F5 BIG-IP」はフルプロキシとして動作し、SYNパケットをサーバに転送する前にチェックすることで、SYNフラッドを防止します。またBIG-IP自らが多量のSYNパケットを受信した場合の保護のために、SYN Cookieという機能も装備しています。これは、MD5で算出した番号(これをCookieと呼びます)をSYN/ACKパケットのTCPシーケンス番号に設定し、これに対するACKパケットの内容から再度Cookieを算出するという手法です。これによってSYN/ACKパケット送出時点で接続情報を記憶する必要がなくなるため、SYNフラッドを受けた場合でも、メモリ リソースの逼迫を回避できます。