CS/Network
[๋คํธ์ํฌ] TCP ์ฐ๊ฒฐ/ํด์ ๊ณผ์ (3 way handshake & 4 way handshake)
๊ฐ๋ฐ๊ฐ๊ตด๐ธ
2023. 10. 29. 15:56
TCP๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋, ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ์ฐ๊ฒฐ ์ฑ๋ฆฝ๊ณผ ์ฐ๊ฒฐ ํด์ ๊ณผ์ ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
3 way handshake
TCP๋ ์ฐ๊ฒฐ์ ์ํด์ 3๋ฒ์ ๊ณผ์ ์ ์งํํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ SYN ํจํท์ ๋ณด๋ (sequence: X)
- ์๋ฒ๊ฐ SYN(X)์ ๋ฐ๊ณ , ํด๋ผ์ด์ธํธ๋ก ๋ฐ์๋ค๋ ์ ํธ์ธ ACK์ SYNํจํท์ ๋ณด๋ (sequence: Y / ACK: X+1)
- ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์๋ต์ธ ACK(X+1)์ SYN(Y) ํจํท์ ๋ฐ๊ณ , ACK(Y+1)๋ฅผ ์๋ฒ๋ก ๋ณด๋
*ACK: Acknowledgment(์น์ธ), ์์ฒญ์ ํ์ธํ๋ค๋ ์๋ต
*SYN: Synchronize(๋์์ฑ) Sequence Number, ์ฐ๊ฒฐ์ด ์ด๋ฃจ์ด์ง๋๋ก ์์ฒญํ๋ ์๋ฏธ
4 way handshake
TCP๋ ๋ชจ๋ ํต์ ์ด ๋๋ํ ์ฐ๊ฒฐ ํด์ ๋ฅผ ์ํด 4๋ฒ์ ๊ณผ์ ์ ์งํํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ๋ ์๋ฒ์๊ฒ ์ฐ๊ฒฐ์ ์ข ๋ฃํ๋ค๋ FIN ํ๋๊ทธ๋ฅผ ๋ณด๋
- ์๋ฒ๋ FIN์ ๋ฐ๊ณ , ํ์ธํ๋ค๋ ACK๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ (์ด๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ ์ํด CLOSE_WAIT ์ํ๊ฐ ๋จ)
- ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋ณด๋ด๊ณ , ์๋ฒ๋ ์ฐ๊ฒฐ์ด ์ข ๋ฃ๋์๋ค๋ FIN ํ๋๊ทธ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋
- ํด๋ผ์ด์ธํธ๋ FIN์ ๋ฐ๊ณ , ํ์ธํ๋ค๋ ACK๋ฅผ ์๋ฒ์๊ฒ ๋ณด๋(์์ง ์๋ฒ๋ก๋ถํฐ ๋ฐ์ง ๋ชปํ ๋ฐ์ดํฐ๊ฐ ์์ ์ ์์ด TIME_WAIT์ํ)
- ์๋ฒ๋ ACK๋ฅผ ๋ฐ์ ์ดํ ์์ผ์ ๋ซ์ (CLOESED)
- TIME_WAIT ์๊ฐ์ด ๋๋๋ฉด ํด๋ผ์ด์ธํธ๋ ๋ซ์ (CLOSED)
[์ฐธ๊ณ ]
https://velog.io/@leeesangheee/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC.-TCP-3-way-Handshake