๐ 3 way handshake & 4 way handshake
handshake: ์ฐ๊ฒฐ์ ์ฑ๋ฆฝํ๊ณ ํด์ ํ๋ ๊ณผ์
๐ฌ 3 way handshake - ์ฐ๊ฒฐ ์ฑ๋ฆฝ
- TCP๋ ์ ํํ ์ ์ก ๋ณด์ฅ
- ํต์ ํ๊ธฐ์ ์์, ๋
ผ๋ฆฌ์ ์ธ ์ ์์ ์ฑ๋ฆฝํ๊ธฐ ์ํด 3 way handshake ๊ณผ์ ์งํ
![https://media.geeksforgeeks.org/wp-content/uploads/TCP-connection-1.png](https://media.geeksforgeeks.org/wp-content/uploads/TCP-connection-1.png)
1. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ SYN ํจํท ๋ณด๋ (sequence : x)
2. ์๋ฒ๊ฐ SYN(x)์ ๋ฐ๊ณ , ํด๋ผ์ด์ธํธ๋ก ๋ฐ์๋ค๋ ์ ํธ์ธ ACK์ SYN ํจํท ๋ณด๋ (sequence : y, ACK : x + 1)
3. ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์๋ต์ ACK(x+1)์ SYN(y) ํจํท ๋ฐ๊ณ , ACK(y+1)๋ฅผ ์๋ฒ๋ก ๋ณด๋
์ด๋ ๊ฒ 3๋ฒ์ ํต์ ์ด ์๋ฃ๋๋ฉด ์ฐ๊ฒฐ์ด ์ฑ๋ฆฝ
๐ฌ 4 way handshake - ์ฐ๊ฒฐ ํด์
- ์ฐ๊ฒฐ ์ฑ๋ฆฝ ํ, ๋ชจ๋ ํต์ ์ด ๋๋ฌ๋ค๋ฉด ํด์ ํด์ผ ํจ
![https://media.geeksforgeeks.org/wp-content/uploads/CN.png](https://media.geeksforgeeks.org/wp-content/uploads/CN.png)
1. ํด๋ผ์ด์ธํธ๋ ์๋ฒ์๊ฒ ์ฐ๊ฒฐ์ ์ข
๋ฃํ๋ค๋ FIN ํ๋๊ทธ ๋ณด๋
2. ์๋ฒ๋ FIN์ ๋ฐ๊ณ , ํ์ธํ๋ค๋ ACK๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ธ๋ค. (์ด๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ ์ํด CLOSE_WAIT ์ํ๊ฐ ๋๋ค)
3. ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋ณด๋๋ค๋ฉด, ์ฐ๊ฒฐ์ด ์ข
๋ฃ๋์๋ค๋ FIN ํ๋๊ทธ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ธ๋ค.
4. ํด๋ผ์ด์ธํธ๋ FIN์ ๋ฐ๊ณ , ํ์ธํ๋ค๋ ACK๋ฅผ ์๋ฒ์๊ฒ ๋ณด๋ธ๋ค. (์์ง ์๋ฒ๋ก๋ถํฐ ๋ฐ์ง ๋ชปํ ๋ฐ์ดํฐ๊ฐ ์์ ์ ์์ผ๋ฏ๋ก TIME_WAIT์ ํตํด ๊ธฐ๋ค๋ฆฐ๋ค.)
- ์๋ฒ๋ ACK๋ฅผ ๋ฐ์ ์ดํ ์์ผ์ ๋ซ๋๋ค (Closed)
- TIME_WAIT ์๊ฐ์ด ๋๋๋ฉด ํด๋ผ์ด์ธํธ๋ ๋ซ๋๋ค (Closed)
์ด๋ ๊ฒ 4๋ฒ์ ํต์ ์ด ์๋ฃ๋๋ฉด ์ฐ๊ฒฐ ํด์