29. IP with TCP with SYN cookies
1.2.3.4
5.6.7.8
IP packet
src: 1.2.3.4
dst: 5.6.7.8
SYN
seq: x
SYN_SENT
LISTEN
30. IP with TCP with SYN cookies
1.2.3.4
5.6.7.8
SYN_SENT
LISTEN
IP packet
src: 1.2.3.4
dst: 5.6.7.8
SYN
seq: x
31. IP with TCP with SYN cookies
1.2.3.4
5.6.7.8
(stateless)
SYN_SENT
IP packet
src: 5.6.7.8
dst: 1.2.3.4
SYN ACK
seq: f(...)
ack: x+1
32. IP with TCP with SYN cookies
1.2.3.4
5.6.7.8
(stateless)
IP packet
src: 5.6.7.8
dst: 1.2.3.4
SYN ACK
seq: f(...)
ack: x+1
SYN_SENT
33. IP with TCP with SYN cookies
1.2.3.4
5.6.7.8
(stateless)
IP packet
src: 1.2.3.4
dst: 5.6.7.8
ACK
seq: x+1
ack: f(...)+1
ESTAB
34. IP with TCP with SYN cookies
1.2.3.4
5.6.7.8
(stateless)
IP packet
src: 1.2.3.4
dst: 5.6.7.8
ACK
seq: x+1
ack: f(...)+1
ESTAB
35. IP with TCP with SYN cookies
1.2.3.4
5.6.7.8
(stateless)
IP packet
src: 1.2.3.4
dst: 5.6.7.8
ACK
seq: x+1
ack: f(...)+1
ESTAB
Client IPなどから算出したf(...)の値
を使って、ack#の妥当性検査
36. IP with TCP with SYN cookies
1.2.3.4
5.6.7.8
ESTAB !!!
IP packet
src: 1.2.3.4
dst: 5.6.7.8
ACK
seq: x+1
ack: f(...)+1
ESTAB
サーバ側で初めてメモリを確保