-
[Network] TCP๋?Network 2020. 12. 27. 03:10๋ฐ์ํ
- ์ด ๊ธ์ "๋ชจ๋์ ๋คํธ์ํฌ" ์ฑ ์ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์์ต๋๋ค.
TCP๋?
์ ์ก๊ณ์ธต์์ ์ ๋ขฐ์ฑ/์ ํ์ฑ์ ์ฐ์ ์ ํ๋ ์ฐ๊ฒฐํ ํต์ ํ๋กํ ์ฝ์ TCP ๋ผ๊ณ ํฉ๋๋ค.
๋ฐ์ดํฐ ์ก์ ์์๋ ์บก์ํ ๊ณผ์ ์ ๊ฑฐ์น๊ฒ ๋๋๋ฐ ์ ์ก ๊ณ์ธต์์ TCP ํ๋กํ ์ฝ๋ก ์ ์กํ๋ค๋ฉด TCP ํค๋๋ฅผ ๋ถ์ด๊ฒ ๋ฉ๋๋ค. ์ด TCP ํค๋๊ฐ ๋ถ์ ๋ฐ์ดํฐ๋ฅผ ์ธ๊ทธ๋จผํธ๋ผ๊ณ ํ๋ค.
TCP๋ ์ฐ๊ฒฐํ ํต์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ ์ ์ฐ๊ฒฐ์ด๋ผ๋ ๊ฐ์์ ๋ ์ ํต์ ๋ก๋ฅผ ํ๋ณดํด์ผ ํฉ๋๋ค. ์ด ์ฐ๊ฒฐ์ ํ๋ฆฝํ ํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์์ต๋๋ค.
TCPํค๋์ ์ฝ๋ ๋นํธ (URG, ACK, PSH, RST, SYN, FIN) ๋ถ๋ถ์ด ์ฐ๊ฒฐ ์ ์ด ์ ๋ณด๊ฐ ๊ธฐ๋ก๋๋ ๊ณณ์ ๋๋ค. ๊ฐ ๋นํธ๋ณ๋ก ์ญํ ์ด ์์ง๋ง ์ฐ๊ฒฐ์ ํ๋ฆฝํ๊ธฐ ์ํด์๋ SYN(์ฐ๊ฒฐ ์์ฒญ), ACK(ํ์ธ ์๋ต)๊ฐ ํ์ํฉ๋๋ค.
3-way ํธ๋์ ฐ์ดํฌ๋?
๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ ์ ์ฐ๊ฒฐ์ ํ๋ฆฝํ์ฌ์ผ ํ๋๋ฐ SYN์ ACK๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ฆฝํ ์ ์์ต๋๋ค.
์ ๋ขฐํ ์ ์๋ ์ฐ๊ฒฐ์ ํ๋ ค๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ ์ ํจํท์ ๊ตํํ๋๋ฐ ์ ๊ทธ๋ฆผ์ฒ๋ผ 3๋ฒ์ ํ์ธํฉ๋๋ค.
๋จผ์ ์ปดํจํฐ1์์ ์ปดํจํฐ2์๊ฒ ์ฐ๊ฒฐ ํ๋ฆฝ ์์ฒญ(SYN)๋ฅผ ๋ณด๋ ๋๋ค.
์ปดํจํฐ2๋ ์ปดํจํฐ1์๊ฒ ํ๊ฐํ๋ค๋ ํ์ธ ์๋ต(ACK)๋ฅผ ๋ณด๋ด๊ณ ์ปดํจํฐ 2๋ ์ปดํจํฐ 1์๊ฒ ๋ฐ์ดํฐ ์ ์ก ํ๊ฐ๋ฅผ ๋ฐ๊ธฐ ์ํด ์ฐ๊ฒฐ ํ๋ฆฝ ์์ฒญ(SYN)๋ฅผ ๋ณด๋ ๋๋ค.
์ปดํจํฐ1์ ๋ค์ ์ปดํจํฐ2์๊ฒ ์ฐ๊ฒฐํ๋ฆฝ ์๋ต(ACK)๋ฅผ ๋ณด๋ด๊ฒ ๋ฉ๋๋ค.
์ด์ฒ๋ผ ๋ฐ์ดํฐ๋ฅผ ์ก์ ํ๊ธฐ ์ ์ ์ฐ๊ฒฐ ํ๋ฆฝ์ ์ํด ํจํท์ 3๋ฒ ๊ตํํ๋ ๊ฒ์ 3-WAY ํธ๋์ ฐ์ดํฌ๋ผ๊ณ ํฉ๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ์ฐ๊ฒฐ์ ๋์ ๋๋ FIN๊ณผ ACK๋ฅผ ์ฌ์ฉํ๋๋ฐ, FIN์ ์ฐ๊ฒฐ ์ข ๋ฃ๋ฅผ ๋ปํฉ๋๋ค.
์ผ๋ จ๋ฒํธ์ ํ์ธ ์๋ต ๋ฒํธ์ ๊ตฌ์กฐ
TCP๋ ๋ฐ์ดํฐ๋ฅผ ๋ถํ ํด์ ๋ณด๋ด๋๋ฐ ์ผ๋ จ๋ฒํธ๋ ์ก์ ์ธก์์ ์์ ์ธก์๊ฒ ์์ ํ ๋ฐ์ดํฐ๊ฐ ์๋์ ๋ฐ์ดํฐ ์ค ๋ถํ ํ์ ๋์ ๋ช ๋ฒ์งธ ๋ฐ์ดํฐ์ธ์ง ์๋ ค์ฃผ๋ ์ญํ ์ ํฉ๋๋ค. ์์ ์๋ ์ผ๋ จ๋ฒํธ๋ฅผ ํตํด ์๋์ ๋ฐ์ดํฐ ์ค ๋ช ๋ฒ์งธ ๋ฐ์ดํฐ์ธ์ง ์ ์ ์์ต๋๋ค.
ํ์ธ์๋ต๋ฒํธ๋ ์์ ์ธก์ด ๋ช ๋ฒ์งธ์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋์ง ์ก์ ์ธก์ ์๋ ค์ฃผ๋ ์ญํ ์ ํฉ๋๋ค. ๋ถํ ๋ ์กฐ๊ฐ ๋ฐ์ดํฐ๊ฐ ์๋ ์๋์ ๋ฐ์ดํฐ๋ฅผ ๋ช ๋ฒ ์์ ํ๋์ง ์๋ ค์ฃผ๋ ์ญํ ๋ ํ๊ณ ์ด ๋ฒํธ๋ ๋ค์ ๋ฒํธ์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ ๋ฐ๋ ์ฌ์ฉ๋ฉ๋๋ค.
- ์ผ๋ จ๋ฒํธ์ ํ์ธ ์๋ต ๋ฒํธ๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๊ฐ ์์๋๊ฑฐ๋ ์ ์ค๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ ์กํ๊ฒ ๋ฉ๋๋ค.
์๋์ฐ ํฌ๊ธฐ๋?
๊ธฐ์กด ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ผ ๋๋ง๋ค ํ์ธ ์๋ต์ ๋ฐ๋ ํต์ ์ ๋ฐฉ๋ฒ์ด ๋งค์ฐ ๋นํจ์จ์ ์ ๋๋ค.
๋ฐ๋ผ์ ๋งค๋ฒ ํ์ธ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๋ ๋์ ์ธ๊ทธ๋จผํธ๋ฅผ ์ฐ์์ผ๋ก ๋ณด๋ด๊ณ ๋ ๋ค์์ ํ์ธ ์๋ต์ ๋ฐํํ๋ฉด ํจ์จ์ด ๋์์ง๋๋ค.
๋ณด๋ด๋ ์๋์ ํ์ธ ์๋ต์ ๋ฐํํ๋ ์๋๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ฐ์ ์ธ๊ทธ๋จผํธ๋ฅผ ๋ฒํผ๋ผ๋ ์์ ์ ์ฅ์์ ์ ์ฅํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ธ๊ทธ๋จผํธ๋ฅผ ์ฐ์ํด์ ๋ณด๋ด๋ ์์ ์ธก์ ๋์ํ ์ ์๊ณ ํ์ ์๋ต์ ํจ์จ๋ ๋์์ง๋๋ค.
์์ ์ธก์ ์ค๋ฒํ๋ก(overflow)๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฒํผ์ ํ๊ณ ํฌ๊ธฐ ์ฆ, ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์์์ผ ํฉ๋๋ค.
์๋์ฐ ํฌ๊ธฐ๋ ์ผ๋ง๋ ๋ง์ ์ฉ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด ๋ ์ ์๋์ง๋ฅผ ๋ํ๋ด๋ ๊ฒ์ ๋๋ค. ์๋์ฐ ํฌ๊ธฐ์ ์ด๊น๊ฐ์ 3-way ํธ๋์ ฐ์ดํฌ๋ฅผ ํ ๋ ํ๋จํฉ๋๋ค.
ํฌํธ ๋ฒํธ์ ๊ตฌ์กฐ
์ฐ๊ฒฐ ํ๋ฆฝ, ์ฌ์ ์ก ์ ์ด, ์๋์ฐ ์ ์ด ์ด ๊ธฐ๋ฅ์ ์ํด TCP ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ฒ ์ ๋ฌํ ์ ์์ต๋๋ค.
์ ์ก ๊ณ์ธต์์๋ ์ด์ธ์๋ ์ ์ก๋ ๋ฐ์ดํฐ์ ๋ชฉ์ ์ง๊ฐ ์ด๋ค ์ ํ๋ฆฌ์ผ์ด์ ์ธ์ง ๊ตฌ๋ถํ๋ ์ญํ ์ด ์์ต๋๋ค.
๋ฐ๋ผ์ TCP ํค๋์ ์ถ๋ฐ์ง ํฌํธ ๋ฒํธ์ ๋ชฉ์ ์ง ํฌํธ ๋ฒํธ๊ฐ ํ์ํฉ๋๋ค. ์ด๋ฌํ ํฌํธ๋ฒํธ๋ฅผ ์ฌ์ฉํด์ ์น ๋ธ๋ผ์ฐ์ ์ธ์ง ๋ฉ์ผ ํ๋ก๊ทธ๋จ์ธ์ง ๋ฑ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ๋ถํ ์ ์์ต๋๋ค.
ํฌํธ ๋ฒํธ๋ 0๋ถํฐ 65535๋ฒ์ ์ฌ์ฉํ ์ ์๊ณ , 0์์ 1023ํฌํธ๊น์ง๋ ์ฃผ์ ํ๋กํ ์ฝ์ด ์ฌ์ฉํ๋๋ก ์์ฝ๋์ด ์๋ ์ ์๋ ค์ง ํฌํธ๋ผ๊ณ ํฉ๋๋ค. 1024๋ฒ์ ์์ฝ๋์ด ์์ง๋ง ์ฌ์ฉํ์ง ์๋ ํฌํธ๊ณ , 1025๋ฒ ์ด์์ ๋๋ค ํฌํธ๋ผ๊ณ ํด์ ํด๋ผ์ด์ธํธ ์ธก์ ์ก์ ํฌํธ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
ํฌํธ๋ฒํธ๋ฅผ ๋ถ์ด์ง ์๊ณ ํต์ ํ๋ฉด ์ปดํจํฐ์ ๋ฐ์ดํฐ๊ฐ ๋์ฐฉํ๋๋ผ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊น์ง๋ ๋์ฐฉํ ์ ์์ต๋๋ค.
๋ฐ์ํ'Network' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Network] OSI ์์ฉ ๊ณ์ธต(Application Layer) (0) 2020.12.27 [Network] UDP์ ๊ตฌ์กฐ (0) 2020.12.27 [Network] OSI ์ ์ก ๊ณ์ธต(transport layer) (0) 2020.12.23 [Network] IP ์ฃผ์์ ๊ตฌ์กฐ (0) 2020.12.17 [Network] OSI ๋คํธ์ํฌ ๊ณ์ธต (Network Layer) (0) 2020.12.17