[Daily morning study] TCP์ 3-way handshake์ 4-way handshake (ํ์)
#daily morning study
TCP์ 3-way Handshake์ 4-way Handshake
TCP(Transmission Control Protocol)๋ ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ์ ์ก์ ์ ๊ณตํ๋ ํ๋กํ ์ฝ๋ก, ์ฐ๊ฒฐ ์งํฅ์ ์ ๋๋ค. ์ด๋ฅผ ์ํ ์ค์ํ ๊ณผ์ ์ด 3-way handshake์ 4-way handshake์ ๋๋ค. ์ด๋ฒ ํ์ต์์๋ ์ด ๋ ๊ฐ์ง ๊ณผ์ ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
1. 3-way Handshake
3-way handshake๋ TCP ์ฐ๊ฒฐ์ ์ค์ ํ๋ ๊ณผ์ ์ ๋๋ค. ์ด ๊ณผ์ ์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ฐ๊ฒฐ์ ์๋ฆฝํ๊ธฐ ์ํด ์ธ ๋จ๊ณ๋ก ์งํ๋ฉ๋๋ค.
๋จ๊ณ๋ณ ์ค๋ช
SYN: ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์ฐ๊ฒฐ ์์ฒญ์ ์ํด SYN ํจํท์ ์ ์กํฉ๋๋ค. ์ด๋ ํด๋ผ์ด์ธํธ๋ ์ด๊ธฐ ์์ ๋ฒํธ๋ฅผ ํฌํจํด ๋ณด๋ ๋๋ค.
Client โ Server : SYN (seq = x)SYN-ACK: ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ SYN์ ์์ ํ ํ, ํด๋ผ์ด์ธํธ์๊ฒ ์ฐ๊ฒฐ ์๋ฆฝ์ ๋ํ ์น์ธ ๋ฉ์์ง๋ฅผ ํฌํจํ SYN-ACK ํจํท์ ์๋ตํฉ๋๋ค. ์ด๋ ์๋ฒ๋ ์์ ์ ์ด๊ธฐ ์์ ๋ฒํธ๋ฅผ ํฌํจํฉ๋๋ค.
Server โ Client : SYN-ACK (seq = y, ack = x + 1)ACK: ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ SYN-ACK์ ์์ ํ ํ, ์ฐ๊ฒฐ์ด ์ค์ ๋์๋ค๋ ํ์ธ์ผ๋ก ACK ํจํท์ ์๋ฒ์๊ฒ ์ ์กํฉ๋๋ค.
Client โ Server : ACK (seq = x + 1, ack = y + 1)
์ด ๊ณผ์ ์ด ๋๋๋ฉด ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ TCP ์ฐ๊ฒฐ์ด ์ค์ ๋ฉ๋๋ค.
์ํ์ค ๋ค์ด์ด๊ทธ๋จ
์๋๋ 3-way handshake์ ํ๋ฆ์ ๋ํ๋ธ ๊ฐ๋จํ ๋ค์ด์ด๊ทธ๋จ์ ๋๋ค.
Client Server
| |
| -------- SYN ------>|
| |
| <----- SYN-ACK ---- |
| |
| -------- ACK ------>|
| |
2. 4-way Handshake
4-way handshake๋ TCP ์ฐ๊ฒฐ์ ์ข ๋ฃํ๋ ๊ณผ์ ์ ๋๋ค. ์ด ๊ณผ์ ์ ๋ค ๋จ๊ณ๋ก ์งํ๋ฉ๋๋ค.
๋จ๊ณ๋ณ ์ค๋ช
FIN: ํด๋ผ์ด์ธํธ(๋๋ ์๋ฒ)๋ ์ฐ๊ฒฐ ์ข ๋ฃ๋ฅผ ์์ฒญํ๊ธฐ ์ํด FIN ํจํท์ ๋ณด๋ ๋๋ค.
Client โ Server : FIN (seq = x)ACK: ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ FIN ํจํท์ ์์ ํ ํ, ์ฐ๊ฒฐ ์ข ๋ฃ ์์ฒญ์ ๋ํ ํ์ธ์ผ๋ก ACK ํจํท์ ์ ์กํฉ๋๋ค.
Server โ Client : ACK (seq = y, ack = x + 1)FIN: ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ๋ ์ฐ๊ฒฐ ์ข ๋ฃ๋ฅผ ์์ฒญํ๊ธฐ ์ํด FIN ํจํท์ ์ ์กํฉ๋๋ค.
Server โ Client : FIN (seq = y)ACK: ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ FIN ํจํท์ ์์ ํ ํ, ๋ง์ง๋ง์ผ๋ก ACK ํจํท์ ์๋ฒ์๊ฒ ์ ์กํฉ๋๋ค.
Client โ Server : ACK (seq = x + 1, ack = y + 1)
์ด ๊ณผ์ ์ ๋ชจ๋ ๋ง์น๋ฉด TCP ์ฐ๊ฒฐ์ด ์ ์์ ์ผ๋ก ์ข ๋ฃ๋ฉ๋๋ค.
์ํ์ค ๋ค์ด์ด๊ทธ๋จ
์๋๋ 4-way handshake์ ํ๋ฆ์ ๋ํ๋ธ ๋ค์ด์ด๊ทธ๋จ์ ๋๋ค.
Client Server
| |
| -------- FIN ----->|
| |
| <----- ACK --------|
| |
| <----- FIN --------|
| |
| -------- ACK ----->|
| |
3. ์ค๊ฐ ์์ฝ
- 3-way handshake: TCP ์ฐ๊ฒฐ์ ์๋ฆฝํ๊ธฐ ์ํด ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์ธ ๋ฒ์ ํจํท ๊ตํ์ ์งํํฉ๋๋ค.
- 4-way handshake: TCP ์ฐ๊ฒฐ ์ข ๋ฃ๋ฅผ ์ํด ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ๋ค ๋ฒ์ ํจํท ๊ตํ์ ์งํํฉ๋๋ค.
4. ์์ฝ
TCP ํ๋กํ ์ฝ์ ์์ ์ ์ธ ์ฐ๊ฒฐ์ ์ํ 3-way์ 4-way handshake ๊ณผ์ ์ ํ์์ ์ผ๋ก ์ํํฉ๋๋ค. 3-way handshake๋ ๋ฐ์ดํฐ ํต์ ์ ์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ , 4-way handshake๋ ํต์ ์ข ๋ฃ ํ ์์ ํ๊ฒ ์ฐ๊ฒฐ์ ์ข ๋ฃํ๋ ์ญํ ์ ํฉ๋๋ค. ์ด ๊ณผ์ ์ ์ดํดํจ์ผ๋ก์จ TCP์ ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ์ ์ก ๋ฐฉ์์ ๋์ฑ ์ ์ดํดํ ์ ์์ต๋๋ค.