SYNパケット処理について
サーバはクライアントのSYNパケットをSYNキューに格納する.ACKパケット応答も受信キューに格納される.SYN Queue,ACKパケットをBaklog Queueと呼ぶ.
[root@localhost /]# sysctl
net.ipv4.tcp_syynack_retriesnet.ipv4.tcp_synack_retries = 5
(デフォルトでは、1+5回の再送信後に応答がない場合はタイムアウトします.値を小さくすると、同時処理可能なセッションの数が増加します)キューがいっぱいの場合、既存のサーバは新しいセッションを受け入れることができません.
SYN Cookie:SYNパケットをフルキューに格納するのではなく、クライアントに直接送信します.その後、クライアントとして受信したACKシーケンス番号が決定された場合、+1の場合、受信キューに送信します.
アプリケーションの受信キューがデータを迅速に処理できない場合、クライアントからACKパケットを受信しても受信キューに保存できません.
この場合、新しいSYN、ACKパケットは破棄され、クライアントはTCPプロトコルに従ってセッションを再要求します(この期間にアプリケーションが復元された場合、受信は再開されます).
ソース:https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=noorol&logNo=221188027204
Reference
この問題について(SYNパケット処理について), 我々は、より多くの情報をここで見つけました https://velog.io/@ohbin/SYN-패킷-처리에-대한-이해テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol