๊ฐ์
์ด์ ์๊ฐ์๋ TCP/IP 3๊ณ์ธต์ธ ๋คํธ์ํฌ ๊ณ์ธต์ ๋ฐฐ์ ๋๋ฐ์. ๋คํธ์ํฌ ๊ณ์ธต์์๋ ๋ผ์ฐํฐ์ IP๋ฅผ ํตํด ์ธ๋ถ ๋คํธ์ํฌ์ ์๋ ๋ชฉ์ ์ง๋ก ์ ์กํ ์ ์๋ ๊ฒ์ ์์๋ดค์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ทธ๋ ๊ฒ ์ ์ก๋ฐ์ ๋ฐ์ดํฐ๋ฅผ PC ๋ด๋ถ์์ ์ด๋ค ์์ฉํ๋ก๊ทธ๋จ์ผ๋ก ์ ๋ฌํด์ค์ผ ํ ๊น์? ๊ทธ ํด๋ต์ ๋ฐ๋ก, ์ด๋ฒ ์๊ฐ์ ๋ฐฐ์ธ ์ ์ก ๊ณ์ธต์ ๋๋ค.
์ ์ก๊ณ์ธต์ ํน์ง
๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ธด ๋ฐ์๋๋ฐ..
๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ธด ๋ฐ์๋๋ฐ.. ์ด๊ฑฐ ๋๊ตฌ๊บผ์ผ?
์๋ฅผ ๋ค์ด, ๋ด๊ฐ ๊ฒ์์ ํ๊ณ ์๋๋ฐ ๋ธ๋ผ์ฐ์ ์์ ์์ฒญํ ๋ฐ์ดํฐ๊ฐ ๊ฒ์ํํ ๊ฐ๋ฉด ์๋๊ฒ ์ฃ ? ์ด ๋ฐ์ดํฐ๊ฐ ๋๊ตฌ๋ก๋ถํฐ ์จ๊ฒ์ธ์ง, ๋๊ตฌํํ ๋ณด๋ด๋๊ฑด์ง์ ๋ํ ์ ๋ณด๋ฅผ ๋ฐ๋ก ๋คํธ์ํฌ ๊ณ์ธต์์ ์๊ณ ์์ต๋๋ค.
์ฐ๊ฒฐํ ํต์ (TCP), ๋น ์ฐ๊ฒฐํ ํต์ (UDP)
์ ์ก ๊ณ์ธต์ ๋ ๋ค๋ฅธ ํน์ง์ผ๋ก๋ ์ ๋ขฐ์ฑ/์ ํ์ฑ
๊ทธ๋ฆฌ๊ณ ํจ์จ์ฑ
์ผ๋ก ๊ตฌ๋ถํ ์ ์์ต๋๋ค.
์ ๋ขฐ์ฑ/์ ํ์ฑ์ ๋ณดํต ์ฐ๊ฒฐํ ํต์ ์ด๋ผ ํ๊ณ , ํจ์จ์ฑ์ ๋น ์ฐ๊ฒฐํ ํต์ ์ด๋ผ๊ณ ํฉ๋๋ค.
์ฐ๊ฒฐํ ํต์ ์ ๋งค๋ฒ ํ์ธ์ ํฉ๋๋ค.
a: ๋ ๋ฐ์ดํฐ ๋ณด๋ด๋ ๋จ?
b: ใ
ใ
๋ณด๋ด์
a: ๋ฐ์ดํฐ ๋ณด๋ใ
b: ใ
ใ
์ ๋ฐ์
a: ใ
ใ
๋น ์ฐ๊ฒฐํ ํต์ ์ ํ์ธ์ ํ์ง ์์ต๋๋ค.
a: ๋ฐ์ดํฐ ๋ณด๋
a: ๋ฐ์ดํฐ ๋ณด๋
a: ๋ฐ์ดํฐ ๋ณด๋
a: ๋ฐ์ดํฐ ๋ณด๋
...
์ด ๋์ ๋ชฉ์ ์์ฒด๊ฐ ๋ค๋ฆ ๋๋ค. ์ฐ๊ฒฐํ์ ์ ๋ขฐ์ฑ๊ณผ ์ ํ์ฑ์ ์ถ๊ตฌํ๋ ํต์ ์ด๊ณ , ๋น์ฐ๊ฒฐํ์ ํจ์จ์ฑ์ด ๋ ์ฐ์ ์ธ ํต์ ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ณดํต ์ฐ๊ฒฐํ ํต์ ์ ๊ผญ ์ ๋ฌ์ด ์ ์ด๋ค์ ธ์ผ ํ๋ ์ฑํ ๋ฑ์ ์ฌ์ฉ๋๊ณ , ๋น ์ฐ๊ฒฐํ์ ๋์์๊ณผ ๊ฐ์ด ๋ฐ์ดํฐ๊ฐ ์ ์ค๋๋ ๊ด์ฐฎ์ ๊ณณ์ ์ฌ์ฉ๋ฉ๋๋ค.
TCP, UDP์ ๋ํด์๋ ์๋์์ ๋ ์์ธํ๊ฒ ๋ค๋ฃจ๊ฒ ์ต๋๋ค.
TCP: ์ฐ๊ฒฐํ ํต์
์์์ TCP ํต์ ์ ์ ๋ขฐ์ฑ๊ณผ ์ ํ์ฑ์ ์ถ๊ตฌํ๋ ์ฐ๊ฒฐํ ํต์ ์ด๋ผ๊ณ ํ์ต๋๋ค.
์ ๊ทธ๋ฆผ์์ ์ ์ก๊ณ์ธต์ ๋ณด๋ฉด, ์์ฉ๊ณ์ธต์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ํค๋๋ฅผ ๋ถ์ด๋ ๊ณผ์ (์บก์ํ)์ ์ํํฉ๋๋ค. ์ด๋ ํค๋ + ๋ฐ์ดํฐ
๋ฅผ ์ธ๊ทธ๋จผํธ๋ผ๊ณ ๋ถ๋ฆ
๋๋ค. TCP ํค๋๋ฅผ ์ดํด๋ณด๋ฉด ์์์ ์ดํด๋ณธ ์ ์ก๊ณ์ธต์ ํน์ง์ ์ด๋ป๊ฒ ์ํํ๋์ง๋ ์ ์ ์์ต๋๋ค.
TCP ํค๋๋ฅผ ์ดํด๋ด ์๋ค!
์ ์ผ ๋จผ์ ๋ณด์ด๋ ๋ถ๋ถ์ด ์ถ๋ฐ์ง, ๋ชฉ์ ์ง ํฌํธ ๋ฒํธ์ ๋๋ค. TCP ํค๋์ ์ด ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ผ๋ ์ด๋์ ๋ณด๋๊ณ ์ด๋๋ก ๋ณด๋ด์ ธ์ผํ ์ง๊ฐ ์ ํด์ก๋ค์! ๋ค๋ฅธ ๋ถ๋ถ๋ค์ ๋ค ์ดํด๋ณด๊ธฐ ๋ณด๋ค๋ ์ค์ํ ๋ถ๋ถ๋ค๋ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ฐ๊ฒฐ ํ๋ฆฝ์ ์ํ 3-way handshake
3-way handshake๋ ์ก์ ์ธก๊ณผ ์์ ์ธก์ด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด ์ฐ๊ฒฐ์ ์๋ฆฝํ๋ ๊ณผ์ ์ ๋งํฉ๋๋ค. ์ด๋ ํจํท์ ์ธ๋ฒ ์ฃผ๊ณ ๋ฐ์ผ๋ฉด์ ์ฐ๊ฒฐ์ ์๋ฆฝํ๋๋ฐ์, ์ด๋ TCP ํค๋์ ์ฝ๋ ๋นํธ๋ฅผ ์ด์ฉํฉ๋๋ค.
์ฝ๋ ๋นํธ ๋ถ๋ถ์ ์ดํด๋ณผ๊น์?
์ฌ๊ธฐ์ ์ ์ผ ์ค์ํ ๋ถ๋ถ์ ACK
, SYN
, FIN
์ด ์ธ ๊ฐ์ง์์.
- ACK: ํ์ธํ๋ค๋ ์๋ฏธ
- SYN: ์ฐ๊ฒฐ ํ๊ฒ ๋ค๋ ์๋ฏธ
- FIN: ์๋ฃํ๋ค๋ ์๋ฏธ
๊ทธ๋ผ 3-way handshake๋ ๋ค์๊ณผ ๊ฐ์ด ์งํ๋ ๊ฒ์ ๋๋ค.
- ์ก์ ์ธก: ์ฐ๊ฒฐ ํ๋ฆฝ ์์ฒญ
- SYN: 1
- ์์ ์ธก: ์ฐ๊ฒฐ ํ๋ฆฝ ์๋ต + ์ฐ๊ฒฐ ํ๋ฆฝ ์์ฒญ
- SYN: 1, ACK: 1
- ์ก์ ์ธก: ์ฐ๊ฒฐ ํ๋ฆฝ ์๋ต
- ACK: 1
์ฐ๊ฒฐ ์ข ๋ฃ๋ฅผ ์ํ 4-way handshake
๊ทธ๋ผ 4-way handshake๋ ๋ค์๊ณผ ๊ฐ์ด ์งํ๋ ๊ฒ์ ๋๋ค.
- ์ก์ ์ธก: ์ฐ๊ฒฐ ์ข
๋ฃ ์์ฒญ
- FIN: 1
- ์์ ์ธก: ์ฐ๊ฒฐ ์ข
๋ฃ ์๋ต
- ACK: 1
- ์์ ์ธก: ์ฐ๊ฒฐ ์ข
๋ฃ ์์ฒญ
- FIN: 1
- ์ก์ ์ธก: ์ฐ๊ฒฐ ์ข
๋ฃ ์๋ต
- ACK: 1
์ด ์ ๋๋ฉด ์ ๋ง์ด์ง.. TCP๋ ํ์ธ ์ค๋ ์ธ ๊ฒ ๊ฐ๋ค..
์ง๊ธ ๋ช ๋ฒ์งธ ์ด๊ฒ ๋ฐ์ดํฐ์ง..? (์ผ๋ จ๋ฒํธ์ ํ์ธ ์๋ต ๋ฒํธ)
์ด์ ๊ทธ ํจํท์ ๋นํธ์ด๋ก ๋ณํ๋์ด ์ ์ก๋๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ผ ์ฌ๊ธฐ์ ์๋ฌธ์ด ์๊ธฐ์ฃ ? ์ ํจํท๋ค์ ๋ณด๋ด๋ ๊ฒ์ ์๊ฒ ๋๋ฐ ๋ฐ๋ ์ชฝ์์๋ ์ ํจํท์ด A๋ผ๋ ์ด๋ฏธ์ง์ ํจํท์ธ์ง ๋ ๋ช ๋ฒ์งธ ํจํท์ธ์ง.. ๊ฐ ๊ถ๊ธํ ๊ฑฐ์์. ์ด ๋ถ๋ถ์ ๋ํด์๋ ๋ค์์ ๋ฐฐ์ฐ๋ TCP๋ผ๋ ๋ ์์ ๋ฐฐ์ฐ๋ฉด ์ดํด๊ฐ ๋ ๊ฒ ์ ๋๋ค.
ํน์ ์ ์ผ ์ฒซ๋ฒ์งธ ์๊ฐ์์ ์ด๋ฏธ์ง๋ฅผ ์ ์กํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ๊ธฐ์ต๋์๋์? ์์ฒญ ํฐ ์ด๋ฏธ์ง๋ฅผ ์ ์กํ ๋, ํ๋ฐฉ์ ๋ณด๋ด๋ฉด ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ ๋๋ฌด ํฌ๊ณ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋๊น ์๊ฒ ์ชผ๊ฐ์ ๋ณด๋ธ๋ค๊ณ ํ์ต๋๋ค.
๊ทธ๋ผ ๊ทธ ์๊ฒ ์ชผ๊ฐ ํจํท์ ์์๊ฐ ์ค์ํ๊ฒ ์ฃ ? ์๋ฅผ๋ค์ด ์ ๊ฐ ์ฑํ ์ 123456789… ๋ผ๊ณ ๋ณด๋๋๋ฐ ํฌ๊ธฐ๊ฐ ๋๋ฌด ์ปค์ ์ชผ๊ฐ์ ๋ณด๋๋๋ฐ ์์๊ฐ ๋ค์ฃฝ๋ฐ์ฃฝ์ด๋ฉด ๋ฐ๋์ชฝ์์ 987654… ์ด๋ฐ์์ผ๋ก ๋ฐ์ผ๋ฉด ์๋์์์? ๊ทธ๊ฑธ ์ด๋ป๊ฒ ์ ๋ณด๋ด๋ ๊ฒ์ผ๊น์? ๋ฐ๋ก TCP ํค๋์ ์๋ ์ผ๋ จ๋ฒํธ์ ํ์ธ ์๋ต ๋ฒํธ๊ฐ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ค ๊ฒ์ ๋๋ค!
์ผ๋ จ๋ฒํธ
๋ ์ก์ ์ธก์์ ์์ ์ธก์ ์ด ๋ฐ์ดํฐ๊ฐ ๋ช ๋ฒ์งธ ๋ฐ์ดํฐ์ธ์ง ์๋ ค์ค๋๋ค.ํ์ธ ์๋ต ๋ฒํธ
๋ ์์ ์ธก์์ ์ก์ ์ธก์ ๋ช ๋ฒ์งธ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์๋์ง ์๋ ค์ฃผ๋ ๊ฒ์ ๋๋ค.
๋ฐ์ดํฐ๋ฅผ ๋ถํ ํ์ฌ ๋ณด๋ผ ๋ ๋ค์๊ณผ ๊ฐ์ ํ๋ก์ธ์ค๋ก ์งํ๋ฉ๋๋ค.
- 3 ํธ๋ ์ ฐ์ดํฌ ์๋ฆฝ ์ ์ผ๋ จ๋ฒํธ์ ํ์ธ ์๋ต ๋ฒํธ๊ฐ ๊ฒฐ์ ๋ฉ๋๋ค.
- ์ก์ ์ธก์ ์์ ์ธก์๊ฒ
์ผ๋ จ๋ฒํธ: 1, ํ์ธ ์๋ต ๋ฒํธ: 1001
์ ๋ณด๋ ๋๋ค. - ์์ ์ธก์ ์ ๋ฐ์๋ค๋ ์๋ฏธ๋ก
์ผ๋ จ๋ฒํธ: 1001, ํ์ธ ์๋ต ๋ฒํธ: 101
์ ๋ณด๋ ๋๋ค. - 2,3์ ๋ฐ๋ณตํฉ๋๋ค.
๋ง์ฝ ๋ฐ์ดํฐ๋ฅผ ์ ๋๋ก ๋ชป๋ฐ์๋ค๋ฉด, ์ก์ ์ธก์์๋ ๋ค์ ์ฌ์ ์กํฉ๋๋ค.
์๋์ฐ ํฌ๊ธฐ
TCP ํค๋์๋ ์๋์ฐ ํฌ๊ธฐ๋ผ๋๊ฒ ์์ต๋๋ค. ์ด๋ฅผ ์ด์ฉํด์ ์ธ๊ทธ๋จผํธ๋ค์ ์ ์ฅํ ์ ์๋ ๋ฒํผ๋ก ํ์ฉ๋๋๋ฐ์. 3 ํธ๋ ์ ฐ์ดํฌ ๋จ๊ณ์์ ์๋ก์ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์ค ์ ์ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ๋ฒํผ ๊ณต๊ฐ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
์ด ๋ฒํผ ๊ณต๊ฐ์ ์ธ๊ทธ๋จผํธ๋ค์ ์ฌ๋ฌ ๊ฐ๋ฅผ ๋ฐ์์ ํ๋ฒ์ ํ์ธ ์๋ต์ ๋ณด๋ผ ์ ์๋๋ก ํ๋ ๊ณต๊ฐ์ ๋๋ค. ๋งค๋ฒ ์ธ๊ทธ๋จผํธ๋ฅผ ๋ฐ์์ ๋๋ง๋ค ์๋ต์ ํ๋ฉด ๊ทธ๋งํผ ์ง์ฐ๋ ์๊ณ ๋นํจ์จ์ ์ด๋๊น์.
์ด ๋ฒํผ๋ฅผ ์ด์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํต์ ํ ์ ์์ต๋๋ค.
์ก์ ์ธก <-> ์์ ์ธก
----------------
๋ฐ์ดํฐ ->
๋ฐ์ดํฐ ->
๋ฐ์ดํฐ ->
<- ํ์ธ ์๋ต
<- ํ์ธ ์๋ต
<- ํ์ธ ์๋ต
...
์๋์ฐ ํฌ๊ธฐ ๋งํผ๋ง ์ธ๊ทธ๋จผํธ๋ค์ ์ ์ฅํ ์ ์๋ค๋ ์ ์ ๊ผญ ๊ธฐ์ตํด์ผ ํฉ๋๋ค.
๋ชฉ์ ์ง๊ฐ ์ด๋๊น? (ํฌํธ ๋ฒํธ)
๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ธด ๋ฐ์๋๋ฐ ์ด ๋ฐ์ดํฐ๊ฐ ์ด๋๋ก ๊ฐ์ผ ํ๋์ง ์ด๋ป๊ฒ ์๊น์?
๋ฐ๋ก ๋ชฉ์ ์ง ํฌํธ ๋ฒํธ๋ฅผ ํตํด ์ ์ ์์ต๋๋ค. ์๋ฅผ๋ค์ด ์ ๊ฐ 8080ํฌํธ๋ก ์ดํ๋ฆฌ์ผ์ด์ ์ ๋์๋๊ณ ๋ค๋ฅธ PC์ ์๋ MySQL(3306)๋ก ์์ฒญ์ ๋ณด๋ธ๋ค๋ฉด ์ถ๋ฐ์ง ํฌํธ ๋ฒํธ๋ 8080์ด ๋๊ณ , ๋ชฉ์ ์ง ํฌํธ ๋ฒํธ๋ 3306์ด ๋๊ฒ #์ฃ ?
UDP: ๋น์ฐ๊ฒฐํ ํต์
UDP๋ TCP์ ๋ฌ๋ฆฌ ํจ์จ์ฑ์ ์ค์์ํ๋ ํ๋กํ ์ฝ์ ๋๋ค. ๊ทธ๋์ ๋งค ํต์ ๋ง๋ค ํ์ธ์ ๋ฐ์ง ์์ต๋๋ค. ์ด ๊ทธ๋ฌ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ ์ค๋๋๊ฑฐ ์๋๊ฐ์? ๋ผ๊ณ ์๊ฐํ์ค ์ ์์ต๋๋ค.
๊ทธ๋์ UDP๋ ๋์์๊ฐ์ ์๋น์ค์ ๋ง์ด ํ์ฉ๋ฉ๋๋ค. ๋์์์ TCP๋ก ํต์ ํ๋ฉด ๋๋ฌด ์ค๋๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ UDP ํ๋กํ ์ฝ์ ์ฌ์ฉํฉ๋๋ค.
UDP ํค๋
UDP ํค๋๋ UDP ๋ฐ์ดํฐ๊ทธ๋จ์ด๋ผ๊ณ ํฉ๋๋ค. TCP์ ๋นํ๋ฉด ํค๋์ ๋ค์ด๊ฐ ๋ฐ์ดํฐ๋ค์ด ์ ๋ง ์ ์ต๋๋ค.
์ธ๊ทธ๋จผํธ ํต์ ๋ฐฉ์
์ก์ ์ธก <-> ์์ ์ธก
----------------
๋ฐ์ดํฐ ->
๋ฐ์ดํฐ ->
๋ฐ์ดํฐ ->
๋ฐ์ดํฐ ->
๋ฐ์ดํฐ ->
๋ฐ์ดํฐ ->
...
TCP์ ๋ค๋ฅด๊ฒ 3ํธ๋์ ฐ์ดํฌ๋ ์๊ณ , ACK๋ ์๋ฐ์ต๋๋ค. ๊ทธ๋ฅ ๋ฌด์์ ๋ฐ์ดํฐ๋ง ๊ณ์ ๋ณด๋ด๊ณ ์์ต๋๋ค.
์ด์ฒ๋ผ UDP๋ ํจ์จ์ฑ์ ์ค์์ ํ๊ธฐ ๋๋ฌธ์ ์ฐ๊ฒฐ ์๋ฆฝ์ด๋ ACK๋ฅผ ๋ฐ์ง์๊ณ , ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ๋ณด๋ด์ ํจ์จ์ ์ธ ํต์ ์ ํ ์ ์๊ฒ ํด์ค๋๋ค. ๋ค๋ง ๋ฐ์ดํฐ๊ฐ ์ ์ค๋ ์ ์๋ค๋ ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ ๋ขฐ์ฑ์ด ์๊ตฌ๋๋ ์๋น์ค์์๋ ํผํ์๋๊ฒ ์ข์ต๋๋ค.
๊ธ ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
[๋ชฉ์ฐจ] ๋คํธ์ํฌ ๊ธฐ์ด ์๋ฆฌ์ฆ (์์ผ๋ก ์ญ ํฌ์คํ ํ ์์ !)
- ๋คํธ์ํฌ๋ฅผ ๋ค์ด๊ฐ๊ธฐ ์์ (OSI 7 Layer, TCP/IP 5 Layer, ์บก์ํ๋?)
- ๋ฌผ๋ฆฌ ๊ณ์ธต์์๋ ์ด๋ค ์ผ์ ํ ๊น? (TCP/IP 1 Layer)
- ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต์์๋ ์ด๋ค ์ผ์ ํ ๊น? (TCP/IP 2 Layer)
- ๋คํธ์ํฌ ๊ณ์ธต์์๋ ์ด๋ค ์ผ์ ํ ๊น? (TCP/IP 3 Layer)
- ์ ์ก ๊ณ์ธต์์๋ ์ด๋ค ์ผ์ ํ ๊น? (TCP/IP 4 Layer)
- ์์ฉ ๊ณ์ธต์์๋ ์ด๋ค ์ผ์ ํ ๊น? (TCP/IP 5 Layer