๐ ๋คํธ์ํฌ - TCP 3 way handshake๋ ๋ฌด์์ธ์ง ์ค๋ช ํ์์ค.
3) ๋คํธ์ํฌ - TCP 3 way handshake๋ ๋ฌด์์ธ์ง ์ค๋ช ํ์์ค.
- IP
IP๋ ๋ฐ์ดํฐ๋ฅผ ์ด๋๋ก ๋ณด๋ผ์ง ๊ฒฐ์ ํ๋ ํ๋กํ ์ฝ์ด๋ค. ๋ฐ์ดํฐ๋ฅผ ์์ ์กฐ๊ฐ(ํจํท)์ผ๋ก ๋๋๊ณ , ๊ฐ ํจํท์ด ๋ชฉ์ ์ง์ ๋์ฐฉํ ์ ์๋๋ก ๊ฒฝ๋ก๋ฅผ ์ค์ ํ๋ค. ํ์ง๋ง IP๋ ํจํท์ด ์ ๋๋ก ๋์ฐฉํ๋์ง ํ์ธํ์ง๋ ์๋๋ค. ๋์ฐฉ ์์๋ ์ ๊ฒฝ ์ฐ์ง ์๊ณ ํจํท์ด ์์ค ๋ ์ ์๋ค.
์ฆ, IP๋ ๊ทธ๋ฅ โํจํท์ ๋ณด๋ด๋โ ์ญํ ์ ํ๋ค.
- TCP
TCP๋ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ ๋ขฐ์ฑ ์๊ฒ ๋ณด๋ผ์ง ๊ด๋ฆฌํ๋ ํ๋กํ ์ฝ์ด๋ค. TCP๋ IP ์์์ ๋์ํ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ฐ์์ ์ธ ๋ฉ์์ง๋ก ๋ฐ์ ํจํท์ผ๋ก ๋๋์ด IP๋ก ๋ณด๋ธ๋ค. ๊ทธ๋ฆฌ๊ณ ํจํท์ด ๋ชฉ์ ์ง์ ์ ๋์ฐฉํ๋์ง ํ์ธํ๊ณ , ๋๋ฝ๋๊ฑฐ๋ ์์๋ ํจํท์ด ์์ผ๋ฉด ๋ค์ ์์ฒญํด ๋ฐ์ดํฐ์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ค.
3-way handshake๋ผ๋ ๊ณผ์ ์ ํตํด ์ฅ์น ๊ฐ ์ฐ๊ฒฐ์ ์ค์ ํ ํ, ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ํ๋ค.
IP๋ ์ฐํธ์ ๋ณด๋ผ ๋ ์ฃผ์๋ฅผ ๋ถ์ฌ์ ํธ์ง๋ฅผ ๋ณด๋ด๋ ์ญํ ์ ํ๋ค. ์ฃผ์๋ฅผ ์ฐพ์๊ฐ๋ ๋ฐฉ๋ฒ์ ์์ง๋ง, ํธ์ง๊ฐ ์ ๋๋ก ๋์ฐฉํ๋์ง ํ์ธํ์ง๋ ์๋๋ค. TCP๋ ํธ์ง๋ฅผ ํ์คํ๊ฒ ์ ๋ฌํ๊ณ ์ ๋ฐ์๋์ง ํ์ธํ๋ ์ฐ์ฒด๋ถ์ด๋ค. ๋์ฐฉํ๋์ง ํ์ธํ๊ณ , ์ ๋๋ก ๋์ฐฉํ์ง ์์ผ๋ฉด ๋ค์ ๋ณด๋ด๋๋ก ํ๋ค.
- 3-Way handshake๋
TCP/IP ํ๋กํ ์ฝ๋ก ํต์ ์ ํ๊ธฐ ์ํด ๋ฐ์ดํฐ ์ ์ก ์ ์ ์ํธ ์ฐ๊ฒฐ์ ์๋ฆฝํ๋ ๊ณผ์ ์ด๋ค. ์๋๋ฐฉ๊ณผ ๋ ผ๋ฆฌ์ ์ธ์ ์ ๋งบ๋ ์์์ ์ผ๋ก ํด๋น ๊ณผ์ ์ ๊ฑฐ์น ํ์ ๋ฐ์ดํฐ๋ค์ด ์ ์์ ์ผ๋ก ์ก์์ ํ๋ ์ ์ฐจ๋ฅผ ๊ฐ์ง๋ค.
์ฆ, ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ค๋น๊ฐ ๋์๋ค๋ ๊ฒ์ ๋ณด์ฅ ๋ฐ ๋ฐ์ดํฐ ์ ์ก ์ค๋น๋ฅผ ํ์ธํ๋ ๊ณผ์ ์ด๋ฉฐ 3-Way handshake ๊ณผ์ ์์ ์ ์์ ์ผ๋ก ์ธ์ ์ด ๋งบ์ด์ง์ง ์์ผ๋ฉด ํต์ ์ ์ค๋จํ๋ค.
- State ์ ๋ณด
CLOSED : ํฌํธ๊ฐ ๋ซํ ์ํ
LISTEN : ํฌํธ๊ฐ ์ด๋ฆฐ ์ํ๋ก ์ฐ๊ฒฐ ์์ฒญ ๋๊ธฐ์ค
SYN_RECEIVED : SYN+ACK ์์ฒญ์ ๋ฐ๊ณ ์๋๋ฐฉ์ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๋ ์ค
ESTABLISHED : ํฌํธ ์ฐ๊ฒฐ ์ํ
TIME-WAIT : ์๋ฒ๋ก๋ถํฐ FIN์ ์์ ํ๋๋ผ๋ ์ผ์ ์๊ฐ(default : 240์ด)๋์ ์ธ์ ์ ๋จ๊ฒจ๋๊ณ ์์ฌ ํจํท์ ๊ธฐ๋ค๋ฆฌ๋ ๊ณผ์ ์ ๋งํจ.
3-way handshake ๋์๋ฐฉ์
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์ ์์ ์์ฒญํ๋ SYN ํ๋๊ทธ๋ฅผ ๋ณด๋ธ๋ค.
์๋ฒ๋ Listen ์ํ์์ SYN์ด ๋ค์ด์จ ๊ฒ์ ํ์ธํ๊ณ SYN-RECEIVED ์ํ๋ก ๋ฐ๋์ด SYN+ACK ํ๋๊ทธ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ์กํ๋ค. ๊ทธ ํ ์๋ฒ๋ ๋ค์ ACK ํ๋๊ทธ๋ฅผ ๋ฐ๊ธฐ ์ํด ๋๊ธฐ์ํ๋ก ๋ณ๊ฒฝ๋๋ค.
SYN+ACK ์ํ๋ฅผ ํ์ธํ ํด๋ผ์ด์ธํธ๋ ์๋ฒ์๊ฒ ACK๋ฅผ ๋ณด๋ด๊ณ ์ฐ๊ฒฐ ์ฑ๋ฆฝ(Established)์ด ๋๋ค.
์์ ๊ฐ์ด ์ ๋ขฐ์ฑ์ ์ํด 3๋ฒ์ ํธ๋์์ดํน์ ๊ฑฐ์ณ ์ฐ๊ฒฐ์ ๋งบ๋ ๊ฒ์ 3-Way Handshake๋ผ๊ณ ํ๋ค.