์ด ๊ธ์ ใํผ์ ๊ณต๋ถํ๋ ๋คํธ์ํฌใ ์ฑ ๋ด์ฉ์ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
์ ์๊ถ ๋ฌธ์ ์ ์ญ์ ํ๊ฒ ์ต๋๋ค.
OSI ๋ชจ๋ธ
์์ฉ ๊ณ์ธต |
ํํ ๊ณ์ธต |
์ธ์ ๊ณ์ธต |
์ ์ก ๊ณ์ธต |
๋คํธ์ํฌ ๊ณ์ธต |
๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต |
๋ฌผ๋ฆฌ ๊ณ์ธต |
1. ์ ์ก ๊ณ์ธต์ ๊ฐ์
: ๋คํธ์ํฌ ๊ณ์ธต์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ์ถ๊ฐ๋ ๊ณ์ธต.
- ์ ๋ขฐํ ์ ์๋ ํต์ ๊ณผ ์ฐ๊ฒฐํ ํต์ ์ด ๊ฐ๋ฅ.
(๋คํธ์ํฌ ๊ณ์ธต์ IP๋ ์ ๋ขฐํ ์ ์๋ ํต์ ๊ณผ ๋น์ฐ๊ฒฐํ ํต์ ์ ์ํํ๋ค.)
- ํฌํธ๋ฒํธ๋ก ์์ฉ ๊ณ์ธต์ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ธ์ค๋ฅผ ์๋ณํ๋ค.
<๋คํธ์ํฌ ๊ณ์ธต์ ํต์ >
1) ์ ๋ขฐํ ์ ์๋ ํต์
IP ํ๋กํ ์ฝ์ด ํจํท์ด ์์ ์ง๊น์ง ์ ๋๋ก ์ ์ก๋์๋ค๋ ๊ฒ์ ๋ณด์ฅํ์ง ํน์ง.
์ต์ ํ ์ ๋ฌ(์ต์ ์ ๋คํด ๋ณด๊ฒ ์ง๋ง ์ ์ก ๊ฒฐ๊ณผ์ ๋ํด์๋ ์ด๋ ํ ๋ณด์ฅ๋ ํ์ง ์๊ฒ ๋ค.)
2) ๋น์ฐ๊ฒฐํ ํต์
: ์ก์์ ํธ์คํธ ๊ฐ์ ์ฌ์ ์ฐ๊ฒฐ ์๋ฆฝ ์์ ์ ๊ฑฐ์น์ง ์๋ ํน์ง
* ์ ๋ขฐํ ์ ์๋ ํต์ ๊ณผ ๋น์ฐ๊ฒฐํ ํต์ ์ ์ธ์ ์ฌ์ฉํ ๊น?
๋์์ ์คํธ๋ฆฌ๋ฐ ์๋น์ค๋ ์ค์๊ฐ ์์ํตํ ๋ฑ ํ ๋๊ฐ์ ํจํท ์์ค์ ๊ฐ์ํ๋๋ผ๋ ๋น ๋ฅด์ ์ก์ด ์ฐ์ ์ ๋๋ ์์ ์์ ์ฑ๋ฅ์ ํ๋ณดํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
2. ์ ์ก ๊ณ์ธต์ ํต์
๋คํธ์ํฌ ๊ณ์ธต์ ๋ํ ํ๋กํ ์ฝ : TCP/UDP

1) ์ฐ๊ฒฐํ ํต์
TCP๋ ๋ ํธ์คํธ๊ฐ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ ์ ๊ฐ์์ ํ์ ์ ์ค์ ํ๋ฏ ์ฐ๊ฒฐ์ ์๋ฆฝํ๋ค.
์ก์์ ๋์์๋ ์ฐ๊ฒฐ์ ์ ์งํ๊ณ ์ก์์ ์ด ๋๋๋ฉด ํด์ ํ๋ค.
2) ์ ๋ขฐ์ฑ ์๋ ํต์
TCP๋ ํจํท์ด ์์ ์ง๊น์ง ์ฌ๋ฐ๋ฅด์์๋๋ก ํ์คํ ์ ๋ฌ๋๋ ๊ฒ์ ๋ณด์ฅํ๊ธฐ ์ํด ์ฌ์ ์ก์ ํตํ ์ค๋ฅ ์ ์ด, ํ๋ฆ ์ ์ด, ํผ์ก ์ ์ด ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๋ค.
cf) ์ ์ก ๊ณ์ธต์์๋ ์ ๋ขฐํ ์ ์๋ ํต์ , ๋น์ฐ๊ฒฐํ ํต์ ์ด ํ์ํ ๋๊ฐ ์์ด์ UDP ํ๋กํ ์ฝ์ด ์กด์ฌํ๋ค.
3. ํฌํธ

: 'ํฌํธ๋ฒํธ'๋ก ์์ฉ ๊ณ์ธต์ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ธ์ค๋ฅผ ์๋ณํ๋ค.
(ํจํท์ ์ ์กํ์ ๋ ์์ ์ง ํธ์คํธ ์ฃผ์๊น์ง ์ ๋ฌํ๋ค๊ณ ์ ์ก์ด ๋๋ ๊ฒ์ด ์๋๋ค. ์คํ ์ค์ธ ํน์ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ธ์ค๊น์ง ์ ๋ฌ๋์ด์ผ ํ๋ค. ํฌํธ๋ฒํธ๋ก ์ต์ข ์์ ๋์์ธ ํน์ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ธ์ค๋ฅผ ์ฐพ์ ์ ์๋ค.)
- 16๋นํธ๋ก ํํ ๊ฐ๋ฅ. 2^16(65536)๊ฐ.
- ํ ๋น๊ฐ๋ฅํ ํฌํธ ๋ฒํธ๋ 0~65535๋ฒ
*ํฌํธ๋ฒํธ ์ข ๋ฅ
: ์์๋ ค์ง ํฌํธ, ๋ฑ๋ก๋ ํฌํธ, ๋์ ํฌํธ๊ฐ ์๋ค.

1) ์ ์๋ ค์ง ํฌํธ ๋ฒํธ, ๋ฑ๋ก๋ ํฌํธ ๋ฒํธ


: ๊ถ๊ณ ์ฌํญ์ผ ๋ฟ ๊ฐ์ ๋ ์๋๋ค. ์ด ๋ฒํธ๋ฅผ ์ผ๋ง๋ ์ง ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ๋นํ ์ ์๋ค.
2) ๋์ ํฌํธ/์ฌ์ค ํฌํธ/์์ ํฌํธ
: ํน๋ณํ ๊ด๋ฆฌ๋์ง ์๋ ํฌํธ ๋ฒํธ์ธ ๋งํผ ์์ ๋กญ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
- ์๋ฒ๋ก์ ๋์ํ๋ ํ๋ก๊ทธ๋จ์ ์ผ๋ฐ์ ์ผ๋ก ์ ์๋ ค์ง ํฌํธ์ ๋ฑ๋ก๋ ํฌํธ๋ก ๋์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
- ํด๋ผ์ด์ธํธ๋ก์ ๋์ํ๋ ํ๋ก๊ทธ๋จ์ ๋์ ํฌํธ ๋ฒํธ ์ค์ ์์์ ๋ฒํธ๊ฐ ํ ๋น๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ex) ์น๋ธ๋ผ์ฐ์ .
* IP + ํฌํธ ๋ฒํธ์ ํํ
IP ์ฃผ์:ํฌํธ ๋ฒํธ
192.168.0.15:8000

4. ํฌํธ๊ธฐ๋ฐ NAT
1) NAT(Network Address Translation) : IP ์ฃผ์๋ฅผ ๋ณํํ๋ ๊ธฐ์ .
* NAT ๋ณํ ํ ์ด๋ธ
: ๋คํธ์ํฌ ๋ด๋ถ์์ ์ฌ์ฉ๋๋ ์ฌ์ค IP ์ฃผ์์ ๋คํธ์ํฌ ์ธ๋ถ์์ ์ฌ์ฉ๋๋ ๊ณต์ธ IP ์ฃผ์๋ฅผ ๋ณํํ๊ธฐ ์ํด IP ์ฃผ์ ์์ ๊ธฐ๋กํด๋ ํ ์ด๋ธ

2) NAPT(Network Address Port Translation)
: ํฌํธ๋ฒํธ๋ก ํ๋์ ๊ณต์ธ IP ์ฃผ์๋ฅผ ์ฌ๋ฌ ์ฌ์ค IP ์ฃผ์๊ฐ ๊ณต์ ํ ์ ์๋๋ก ํ๋ NAT ์ ์ผ์ข .
- NAT ๋ณํ ํ ์ด๋ธ ์ฒ๋ผ 1:1๋ก ๋์ํ๋ฉด ๋ฒํธ ๋ฐ ๊ณต๊ฐ์ ๋ฌด๋ฆฌ๊ฐ ์์ด์ ํฌํธ ๋ฒํธ๋ก ๋ค์์ ์ฌ์ค IP ์ฃผ์๋ฅผ ๊ทธ๋ณด๋ค ์ ์ ๊ณต์ธ IP ์ฃผ์๋ก ๋ณํํ๋ค.

3) ํฌํธ ํฌ์๋ฉ(Port Forwarding)
: ๋คํธ์ํฌ ๋ด ํน์ ํธ์คํธ์ IP ์ฃผ์์ ํฌํธ ๋ฒํธ๋ฅผ ๋ฏธ๋ฆฌ ํ ๋นํ๊ณ ํด๋น IP ์ฃผ์:ํฌํธ ๋ฒํธ๋ก์จ ํด๋น ํธ์คํธ์๊ฒ ํจํท์ ์ ๋ฌํ๋ ๊ธฐ๋ฅ
- ๋คํธ์ํฌ ์ธ๋ถ์์ ๋คํธ์ํฌ ๋ด๋ถ๋ก ํต์ ์ ์์ํ ๋, ๋คํธ์ํฌ ๋ด๋ถ์ ์๋ฒ๋ฅผ ์ธ๋ถ์์ ์ ์ํ ์ ์๋๋ก ์ ์ ์ ๋ณด๋ฅผ ๊ณต๊ฐํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ฒ. ์ฆ, ํน์ IP ์ฃผ์์ ํฌํธ ๋ฒํธ ์์ ํน์ ํธ์คํธ์๊ฒ ํ ๋นํ๊ณ ์ธ๋ถ์์ ํต์ ์ ์์ํ ํธ์คํธ์๊ฒ ์๋ ค์ฃผ๋ฉด ๋๋ค.
4) ICMP(Internet Control Message Protocol)
: ๋คํธ์ํฌ ๊ณ์ธต์์ IP์ ์ ๋ขฐํ ์ ์๋ ์ ์ก ํน์ฑ๊ณผ ๋น์ฐ๊ฒฐํ ์ ์ก ํน์ฑ์ ๋ณด์ํ๊ธฐ ์ํด IP ํจํท์ ์ ์ก ๊ณผ์ ์ ๋ํ ํผ๋๋ฐฑ ๋ฉ์์ง๋ฅผ ์ป๊ธฐ ์ํด ์ฌ์ฉํ๋ ํ๋กํ ์ฝ
- ์ ์ก ๊ณผ์ ์์ ๋ฐ์ํ ๋ฌธ์ ์ํฉ์ ๋ํ ์ค๋ฅ ๋ณด๊ณ , ๋คํธ์ํฌ์ ๋ํ ์ง๋จ ์ ๋ณด๋ฅผ ์ ๋ฌํจ
5. TCP์ UDP
1) TCP ํต์ ๋จ๊ณ
: ์ฐ๊ฒฐ ์๋ฆฝ -> ๋ฐ์ดํฐ ์ก์์ -> ์ฐ๊ฒฐ ์ข ๋ฃ
- ๋ฐ์ดํฐ ์ก์์ ๊ณผ์ ์์ ์ฌ์ ์ก์ ํตํด ์ค๋ฅ ์ ์ด, ํ๋ฆ ์ ์ด, ํผ์ก ์ ์ด ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
* MSS(Maximum Segment Size): TCP ๋ก ์ ์กํ ์ ์๋ ์ต๋ ํ์ด๋ก๋ ํฌ๊ธฐ

2) TCP ์ธ๊ทธ๋จผํธ ๊ตฌ์กฐ

- ์ก์ ์ง ํฌํธ / ์์ ์ง ํฌํธ
- ์์ ๋ฒํธ: ์ก์์ ๋๋ ์ธ๊ทธ๋จผํธ์ ์ฌ๋ฐ๋ฅธ ์์๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํด ์ธ๊ทธ๋จผํธ ๋ฐ์ดํฐ์ ์ฒซ ๋ฐ์ดํธ์ ๋ถ์ฌ๋๋ ๋ฒํธ.
- ํ์ธ ์๋ต ๋ฒํธ: ์๋ ํธ์คํธ๊ฐ ๋ณด๋ธ ์ธ๊ทธ๋จผํธ์ ๋ํ ์๋ต. ๋ค์์ผ๋ก ์์ ํ๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ ์์ ๋ฒํธ๊ฐ ๋ช ์๋จ.
- ์ ์ด ๋นํธ: ํ๋๊ทธ ๋นํธ. ํ์ฌ ์ธ๊ทธ๋จผํธ์ ๋ํ ๋ถ๊ฐ ์ ๋ณด
- ์๋์ฐ: ํ ๋ฒ์ ์์ ํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์
* ์ ์ด๋นํธ
- ACK: ์ธ๊ทธ๋จผํธ์ ์น์ธ์ ๋ํ๋ด๊ธฐ ์ํ ๋นํธ
- SYN: ์ฐ๊ฒฐ์ ์๋ฆฝํ๊ธฐ ์ํ ๋นํธ
- FIN: ์ฐ๊ฒฐ์ ์ข ๋ฃํ๊ธฐ ์ํ ๋นํธ
* ์์ ๋ฒํธ
: ์์๋ฒํธ๋ ์ก์ ํ ๋ฐ์ดํธ์ ๋ํด ๊ฐ๋ ํํ๋ก ๋์ ๊ฐ์ ๊ฐ์ง๋ค.
: ์ด๊ธฐ ์์ ๋ฒํธ + ์ก์ ํ ๋ฐ์ดํธ ์

* ํ์ธ ์๋ต ๋ฒํธ
: ์์ ๋ฒํธ์ ๋ํ ์๋ต. ์์ ํ ์์ ๋ฒํธ + 1

3) TCP ์ฐ๊ฒฐ ์๋ฆฝ๊ณผ ์ข ๋ฃ
* ์ฐ๊ฒฐ ์๋ฆฝ: ์ฐ๋ฆฌ ์จ์ด ํธ๋์ ฐ์ดํฌ(three-way handshake)
- 3๊ฐ์ ๋จ๊ณ๋ก ์ฐ๊ฒฐ๋๋ค. SYN ์ธ๊ทธ๋จผํธ > SYN+ACK ์ธ๊ทธ๋จผํธ > ACK ์ธ๊ทธ๋จผํธ
- ์กํฐ๋ธ ์คํ(Active Open): ์ฒ์ ์ฐ๊ฒฐ์ ์์ํ๋ ํธ์คํธ์ ์ฐ๊ฒฐ ์๋ฆฝ ๊ณผ์ . ์ฃผ๋ก ํด๋ผ์ด์ธํธ์ ์ํด ์คํ
- ํจ์๋ธ ์คํ(Passive Open): ์ฐ๊ฒฐ ์์ฒญ์ ๋ฐ๊ณ ๋์ ์์ฒญ์ ๋ฐ๋ผ ์ฐ๊ฒฐ์ ์๋ฆฝํด์ฃผ๋ ํธ์คํธ์ ์ฐ๊ฒฐ ์๋ฆฝ ๊ณผ์ . ์ฃผ๋ก ์๋ฒ์ ์ํด ์คํ๋จ.

* ์ฐ๊ฒฐ ์ข ๋ฃ
: FIN๊ณผ ACK๋ฅผ ํ๋ฒ์ฉ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ ์ข ๋ฃ ๋จ.

4) TCP ์ํ
: ํ์ฌ ์ด๋ค ํต์ ๊ณผ์ ์ ์๋์ง๋ฅผ ๋ํ๋ด๋ ์ ๋ณด. ์คํ ์ดํธํ ํ๋กํ ์ฝ.

* ์ฐ๊ฒฐ์ด ์๋ฆฝ๋์ง ์์ ์ํ
- CLOSED: ์๋ฌด ์ฐ๊ฒฐ์ด ์๋ ์ํ
- LISTEN: ์ฐ๊ฒฐ ๋๊ธฐ ์ํ. ์๋ฒ๋ก์ ๋์ํ๋ ํจ์๋ธ ์คํ ํธ์คํธ๋ LISTEN ์ํ๋ฅผ ์ ์งํ๋ค. SYN ์ธ๊ทธ๋จผํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ.
* ์ฐ๊ฒฐ ์๋ฆฝ ์ํ
- SYN-SENT: ์กํฐ๋ธ ์คํ ํธ์คํธ๊ฐ SYN ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ธ ํ SYN + ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ
- SYN-RECEIVED: ํจ์๋ธ ์คํ ํธ์คํธ๊ฐ SYN + ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ธ ํ ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ
- ESTABLISHED: ์ฐ๊ฒฐ์ด ํ๋ฆฝ๋์์์ ๋ํ๋ด๋ ์ํ. ๋ ํธ์คํธ๊ฐ ๋ง์ง๋ง ACK ์ธ๊ทธ๋จผํธ๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉด ESTABLISHED ์ํ๊ฐ ๋จ.
* ์ฐ๊ฒฐ ์ข ๋ฃ ์ํ
- FIN-WAIT-1:
- CLOSE-WAIT:
- FIN-WAIT-2:
- LAST- ACK:
- TIME-WAIT:
- CLOSING: