CS/Network
3-way handshake(SYN, ACK)
chaerlo127
2024. 2. 3. 22:20
728x90
3-way handshake
- TCP/IP ํ๋กํ ์ฝ๋ก ํต์ ํ๊ธฐ ์ , ์ ํํ ์ ๋ณด ์ ์ก์ ์ํด ์๋๋ฐฉ ์ปดํจํฐ์ ์ธ์ ์ ์๋ฆฝํ๋ ๊ณผ์
- TCP ์ฐ๊ฒฐ ์ด๊ธฐํ
- ์๋ก ํต์ ์ ์ํด ๊ด๋ฌธ(port)๋ฅผ ํ์ธํ๊ณ ์ฐ๊ฒฐํ๊ธฐ ์ํด 3๋ฒ์ ์์ฒญ(SYN), ์๋ต(ACK) ๋๋ ๊ฒ
- ์ด ๊ณผ์ ์์ ์๊ฐ์ด ๋ง์ด ์์๋จ
- TCP ๊ณผ์ ์ค(connection setup - data transfer - connection termination) connection setup์ ํด๋น
์ฐ๊ฒฐ ๊ณผ์
ํจํท = ์ธ๊ทธ๋จผํธ (TCP ์์)
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ฐ๊ฒฐ ์์ฒญ์ ์ํด SYN ํจํท ์ ์ก
- ์๋ฒ์์ ํด๋น ํฌํธ๋ LISTEN ์ํ๋ก SYN ํจํท์ ๋ฐ๊ณ SYN_RCV ์ํ๋ก ๋ณ๊ฒฝ
- ์๋ฒ๋ ์ ์์ ์ผ๋ก ๋ฐ์๋ค๋ ACK ํจํท + ์๋๋ฐฉ์ ํฌํธ๋ฅผ ์ด์ด๋ฌ๋ผ๋ SYN ํจํท์ ๊ฐ์ด ์ ์ก
- ํด๋ผ์ด์ธํธ๋ ACK + SYN ํจํท์ ๋ฐ๊ณ ESTABLISHED ์ํ ๋ณ๊ฒฝ ํ ์๋ฒ์ ACK๋ฅผ ์ ์ก
- ACK๋ฅผ ๋ฐ์ ์๋ฒ๋ ์ํ๊ฐ ESTABLISHED๋ก ๋ณ๊ฒฝ
- connection setup ์๋ฃ
LISTEN : ์๋ฒ์ ๋ฐ๋ชฌ์ด ๋ ์ ์ ์ ์์ฒญ์ ๊ธฐ๋ค๋ฆฌ๋ ์ํ
ESTABLISHED : 3 way-handshaking ์ด ์๋ฃ๋ ํ ์๋ก ์ฐ๊ฒฐ๋ ์ํ
๊ทธ ์ด์ธ์ ์ํ
SYN-SENT : ๋ก์ปฌ์ ํด๋ผ์ด์ธํธ ์ดํ๋ฆฌ์ผ์ด์ ์ด ์๊ฒฉ ํธ์คํธ์ ์ฐ๊ฒฐ์ ์์ฒญํ ์ํ
SYN_RECEIVED : ์๋ฒ๊ฐ ์๊ฒฉ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์ ์ ์๊ตฌ๋ฅผ ๋ฐ์ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ต์ ํ์์ง๋ง ์์ง ํด๋ผ์ด์ธํธ์๊ฒ ํ์ธ ๋ฉ์์ง๋ ๋ฐ์ง ์์ ์ํ
FIN-WAIT1, CLOSE-WAIT, FIN-WAIT2 : ์๋ฒ์์ ์ฐ๊ฒฐ์ ์ข ๋ฃํ๊ธฐ ์ํด ํด๋ผ์ด์ธํธ์๊ฒ ์ข ๊ฒฐ์ ์์ฒญํ๊ณ ํ์ ์ ๋ฐ์ ์ข ๋ฃํ๋ ๊ณผ์ ์ ์ํ
TIME-WAIT : ์ฐ๊ฒฐ์ ์ข ๋ฃ๋์์ง๋ง ๋ถ์ค๋์์์ง ๋ชจ๋ฅผ ๋๋ฆฐ ์ธ๊ทธ๋จผํธ๋ฅผ ์ํด ๋น๋ถ๊ฐ ์์ผ์ ์ด์ด๋๊ณ ์๋ ์ํ
CLOSING : ํํ์ง ์์ง๋ง ์ฃผ๋ก ํ์ธ ๋ฉ์์ง๊ฐ ์ ์ก๋์ค ๋ถ์ค๋ ์ํ
CLOSED : ์์ ํ ์ข ๋ฃ
4-way handshake
- TCP ๊ณผ์ ์ค(connection setup - data transfer - connection termination) connection termination์ ํด๋น
- TCP ์ฐ๊ฒฐ์ ์ข ๋ฃ
์ฐ๊ฒฐ ์ข ๋ฃ ๊ณผ์
ํจํท = ์ธ๊ทธ๋จผํธ (TCP ์์)
- ํด๋ผ์ด์ธํธ๊ฐ Activate Close ๋ฅผ ํ๋ฉด ํด๋ผ์ด์ธํธ์์ ์๋ฒ์ FIN ์ธ๊ทธ๋จผํธ ์ ์ก (ํด : FIN-WAIT ์ํ)
- ์๋ฒ๋ FIN ์ธ๊ทธ๋จผํธ๋ฅผ ๋ฐ์๋ค๋ ์๋ต์ ๋ํ ACK ํจํท์ ์ ์ก (์ : CLOSE_WAIT ์ํ)
- ์๋ฒ๋ Passive Close ๋ฅผ ๋ฐ์ผ๋ฉด ์๋ฒ์์ ํด๋ผ์ด์ธํธ์ FIN ์ธ๊ทธ๋จผํธ ์ ์ก(ํด : LAST-ACK ์ํ)
- ํด๋ผ์ด์ธํธ๋ FIN ์ธ๊ทธ๋จผํธ๋ฅผ ๋ฐ์๋ค๋ ์๋ต์ ๋ํ ACK ํจํท์ ์ ์ก (ํด : TIME-WAIT ์ํ)
- ์๋ฒ๊ฐ ACK ๋ฅผ ๋ฐ์ผ๋ฉด ์ฐ๊ฒฐ ์ข ๋ฃ
์ถ์ฒ
https://velog.io/@devharrypmw/TCPUDP-TCP์-UDP์-ํน์ง๊ณผ-์ฐจ์ด
https://bangu4.tistory.com/74
728x90