๋ฉด์ ‘ ๋Œ€๋น„ ์˜ˆ์ƒ ์งˆ๋ฌธ (Network)

2024. 1. 11. 17:46ใ†๋ฉด์ ‘ ์ค€๋น„/๋ฉด์ ‘ ์Šคํ„ฐ๋””

23.01.10 ์ž๋กœ ์ง„ํ–‰๋œ ๋ฉด์ ‘ ์Šคํ„ฐ๋””์˜ ๋‚ด์šฉ์„ ์•„์นด์ด๋น™ํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑ๋œ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.

OSI 7๊ณ„์ธต


1. OSI 7๊ณ„์ธต์€ ์–ด๋–ค ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

๋”๋ณด๊ธฐ

OSI 7๊ณ„์ธต์€ ๋ฌผ๋ฆฌ ๊ณ„์ธต, ๋ฐ์ดํ„ฐ๋งํฌ ๊ณ„์ธต, ๋„คํŠธ์›Œํฌ ๊ณ„์ธต, ์ „์†ก ๊ณ„์ธต, ์„ธ์…˜ ๊ณ„์ธต, ํ‘œํ˜„ ๊ณ„์ธต, ์‘์šฉ ๊ณ„์ธต์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

์‘์šฉ ๊ณ„์ธต ์ชฝ์œผ๋กœ ๊ฐˆ์ˆ˜๋ก ์‚ฌ์šฉ์ž์— ๊ฐ€๊นŒ์›Œ์ง€๋Š” ๊ตฌ์กฐ๋กœ, ์œ„์™€ ๊ฐ™์ด ๊ณ„์ธต ๋ณ„๋กœ ๋ถ„๋ฆฌ๋ฅผ ํ•ด๋‘ ์œผ๋กœ์จ ๊ณ„์ธต ๊ฐ„ ์ฑ…์ž„์˜ ๋ถ„๋ฆฌ์™€ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ๊ฐ ๊ณ„์ธต์—์„œ ์‚ฌ์šฉํ•˜๋Š” PDU์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

๋”๋ณด๊ธฐ

์ „์†ก ๊ณ„์ธต์—์„œ ์‚ฌ์šฉํ•˜๋Š” PDU๋Š” ์„ธ๊ทธ๋จผํŠธ์ž…๋‹ˆ๋‹ค. ์ด์—๋Š” ์ƒ์œ„ ๊ณ„์ธต์—์„œ ์ „๋‹ฌ ๋ฐ›์€ ํŽ˜์ด๋กœ๋“œ์™€ ์ „์†ก์ง€ Port, ์ˆ˜์‹ ์ง€ Port, ์ฒดํฌ์„ฌ ๋“ฑ์„ ๋‹ด์€ ํ—ค๋”๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ ๊ณ„์ธต์—์„œ ์‚ฌ์šฉํ•˜๋Š” PDU๋Š” ํŒจํ‚ท์ž…๋‹ˆ๋‹ค. ์ด์—๋Š” ์ƒ์œ„ ๊ณ„์ธต์—์„œ ์ „๋‹ฌ ๋ฐ›์€ ํŽ˜์ด๋กœ๋“œ(์„ธ๊ทธ๋จผํŠธ)์™€ ์ „์†ก์ง€ IP, ์ˆ˜์‹ ์ง€ IP, TTL, ์ฒดํฌ์„ฌ ๋“ฑ์ด ํฌํ•จ๋˜๋Š” ํ—ค๋”๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋งํฌ ๊ณ„์ธต์—์„œ ์‚ฌ์šฉํ•˜๋Š” PDU๋Š” ํ”„๋ ˆ์ž„์ž…๋‹ˆ๋‹ค. ์ด์—๋Š” ์ƒ์œ„ ๊ณ„์ธต์—์„œ ์ „๋‹ฌ ๋ฐ›์€ ํŽ˜์ด๋กœ๋“œ(ํŒจํ‚ท)์™€ ์ „์†ก์ง€ MAC ์ฃผ์†Œ, ๋‹ค์Œ ํ™‰์˜ MAC ์ฃผ์†Œ ๋“ฑ์„ ๋‹ด์€ ํ—ค๋”, ๊ทธ๋ฆฌ๊ณ  CRC ๊ฒ€์ถœ์„ ์œ„ํ•œ ํŒŒํŠธ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

3. ๋ธŒ๋ผ์šฐ์ €์— ๋„๋ฉ”์ธ์„ ์ž…๋ ฅํ•˜์—ฌ ํŠน์ • ํŽ˜์ด์ง€์— ์ ‘์†ํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์–ด๋–ค ์ผ๋“ค์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ OSI 7๊ณ„์ธต๊ณผ ์—ฐ๊ด€์ง€์–ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

๋”๋ณด๊ธฐ

ํŠน์ • ๋„๋ฉ”์ธ์œผ๋กœ ํ•ด๋‹น ์„œ๋ฒ„๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ์ƒํ™ฉ์—์„œ, ํ•ด๋‹น ๋„๋ฉ”์ธ์— ๋Œ€์‘ํ•˜๋Š” IP์™€ Port ์ •๋ณด๋ฅผ ํš๋“ํ•ด์•ผ ๋„คํŠธ์›Œํฌ์—์„œ ์˜ฌ๋ฐ”๋ฅธ ๋ชฉ์ ์ง€๋ฅผ ์ฐพ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด, ๋ธŒ๋ผ์šฐ์ €์— ๋„๋ฉ”์ธ์„ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์ •๋ณด๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ DNS ์„œ์นญ์ด ์ด๋ฃจ์–ด์ง„๋‹ค. ์ด ๋•Œ DNS ์ž์ฒด๋Š” ์‘์šฉ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์ด๊ณ , ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” UDP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•œ๋‹ค.

๋ชฉ์ ์ง€์˜ IP์™€ Port๋ฅผ ํ™•์ธํ–ˆ๋‹ค๋ฉด ์ด๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ์‹œ๋„ํ•œ๋‹ค. ๊ฐ€์žฅ ๋จผ์ € TCP ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฆฝํ•˜๊ธฐ ์œ„ํ•œ 3way Handshake๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค. ์—ฐ๊ฒฐ์ด ์ •์ƒ์ ์œผ๋กœ ์ˆ˜๋ฆฝ๋˜์—ˆ๋‹ค๋ฉด, L4, L3, L2๋ฅผ ๊ฑฐ์ณ ๋ชฉ์ ์ง€๋ฅผ ํ–ฅํ•ด ์š”์ฒญ์ด ์ถœ๋ฐœํ•œ๋‹ค. ์ด ๋•Œ L2์—์„œ๋Š” IP๋ฅผ ํ†ตํ•ด ์š”์ฒญ์„ ์ „๋‹ฌํ•  ๊ฒฝ๋กœ์˜ MAC ์ฃผ์†Œ๋ฅผ ํš๋“ํ•˜๋Š” ๊ณผ์ •์ด ํฌํ•จ๋œ๋‹ค. 

์ „์†ก๋œ ์š”์ฒญ์€ ์ˆ˜๋งŽ์€ ๋ผ์šฐํ„ฐ, ์Šค์œ„์น˜๋ฅผ ๊ฑฐ์ณ ์ตœ์ข…์ ์œผ๋กœ๋Š” ๋ชฉ์ ์ง€ ํ˜ธ์ŠคํŠธ์— ๋„๋‹ฌํ•œ๋‹ค. ์ด๋Š” ์ „๊ธฐ ์‹ ํ˜ธ๋กœ๋ถ€ํ„ฐ ํ”„๋ ˆ์ž„, ํŒจํ‚ท, ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๊ฑฐ์นœ ์š”์ฒญ ๋ฐ์ดํ„ฐ๊ฐ€ ์‘์šฉ ๊ณ„์ธต์˜ ์„œ๋ฒ„๋กœ ์ „๋‹ฌ๋˜๊ณ , ์„œ๋ฒ„๋Š” ์ ์ ˆํ•œ ์‘๋‹ต์„ ์ƒ์„ฑํ•˜์—ฌ ์—ญ์ˆœ์œผ๋กœ ๋˜๋Œ๋ ค์ค€๋‹ค.

TCP / UDP


1. UDP์™€ TCP์—์„œ ๊ณตํ†ต์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‹ค์ค‘ํ™”์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

๋”๋ณด๊ธฐ

๋‹ค์ค‘ํ™”(๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ)์ด๋ž€, ์ƒ์œ„ ๊ณ„์ธต์˜ ์—ฌ๋Ÿฌ ์†Œ์ผ“์—์„œ ์ˆ˜์‹ ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜์„ ๊ฑฐ์ณ ํ•˜๋‚˜์˜ ํ๋ฆ„์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ด ๊ณผ์ •์—์„œ ํฌํŠธ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์„ธ๊ทธ๋จผํŠธ ํ—ค๋”๋ฅผ ๋ถ€์ฐฉํ•˜๊ฒŒ ๋œ๋‹ค.

๋ฐ˜๋Œ€๋กœ ํ•˜์œ„ ๊ณ„์ธต์—์„œ ์ˆ˜์‹ ํ•œ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ํ—ค๋”์˜ ํฌํŠธ ์ •๋ณด์— ๋งž๊ฒŒ ์—ฌ๋Ÿฌ ์†Œ์ผ“์œผ๋กœ ๋ถ„๋ฐฐํ•ด์ฃผ๋Š” ์ž‘์—…์„ ์—ญ๋‹ค์ค‘ํ™”(๋””๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ)์ด๋ผ๊ณ  ํ•œ๋‹ค.

2. TCP์™€ UDP์— ๋Œ€ํ•ด ๋น„๊ตํ•˜๊ณ  ์–ด๋–ค ๊ฒฝ์šฐ์— UDP๋ฅผ ์„ ํƒํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

๋”๋ณด๊ธฐ

UDP๋Š” ๋‹ค์ค‘ํ™”์™€ ์˜ค๋ฅ˜ ๊ฒ€์ถœ ๋งŒ์„ ์ง€์›ํ•˜๋Š” ์ „์†ก ๊ณ„์ธต์˜ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. UDP๋Š” ์ „์†ก ๊ณ„์ธต์˜ ์ตœ์†Œํ•œ์˜ ์ฑ…์ž„ ๋งŒ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜ผ์žก ์ œ์–ด ๊ธฐ๋Šฅ์ด๋‚˜, ๋„์ฐฉํ•˜๋Š” ํŒจํ‚ท์˜ ์ˆœ์„œ๋ฅผ ๋ณด์žฅ, ์ค‘๊ฐ„์— ๋ˆ„๋ฝ๋œ ํŒจํ‚ท์— ๋Œ€ํ•œ ํŽ˜์ผ ์˜ค๋ฒ„๋Š” ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค. 

TCP๋Š” ๋‹ค์ค‘ํ™”์™€ ์˜ค๋ฅ˜ ๊ฒ€์ถœ ๊ธฐ๋Šฅ ์™ธ์—, ํŒจํ‚ท ๊ฐ„์˜ ๋„์ฐฉ ์ˆœ์„œ ๋ณด์žฅ, ๋ˆ„๋ฝ ํŒจํ‚ท ์žฌํš๋“, ๋„คํŠธ์›Œํฌ ํ˜ผ์žก ์ œ์–ด ๋“ฑ์˜ ์—ญํ• ์„ ์ถ”๊ฐ€๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด TCP๋Š” ์—ฐ๊ฒฐ์˜ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค. 

UDP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š”, TCP๊ฐ€ ์ถ”๊ฐ€์ ์œผ๋กœ ์ง€์›ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ๋“ค์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์ด๋‹ค. ๊ฐ€๋ น ์†Œ์ˆ˜์˜ ํŒจํ‚ท์€ ๋ˆ„๋ฝ์ด ๋˜์–ด๋„ ์ƒ๊ด€์—†๋‹ค๊ฑฐ๋‚˜, ํŒจํ‚ท์˜ ๋„์ฐฉ ์ˆœ์„œ์— ๋Œ€ํ•œ ๋ณด์žฅ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๊ฐ€ ์ด์— ํ•ด๋‹นํ•œ๋‹ค. ์ด ๊ฒฝ์šฐ, UDP๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ TCP์— ๋น„ํ•ด ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

3. ์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜๋‚˜์˜ ์„œ๋ฒ„๋Š” ํ•˜๋‚˜์˜ ํฌํŠธ๋ฅผ ์—ด๊ฒŒ ๋˜๋Š”๋ฐ, TCP๊ฐ€ ์ปค๋„ฅ์…˜์„ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค๋ฉด ์ด๋Š” ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌ๋˜๋Š”์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

๋”๋ณด๊ธฐ

์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜๋‚˜์˜ ๋ฆฌ์Šค๋‹ ํฌํŠธ๋ฅผ ์ง€์ •ํ•˜๋Š” ์‹์œผ๋กœ ์‹คํ–‰์ด ์ด๋ฃจ์–ด์ง„๋‹ค.

์ด๋กœ ์ธํ•ด, ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„ ๊ฐ„ ํ†ต์‹ ์ด ๋ชจ๋‘ ํ•˜๋‚˜์˜ ๋ฆฌ์Šค๋‹ ํฌํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋œ๋‹ค๊ณ  ์˜คํ•ดํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋Š” ์‚ฌ์‹ค์ด ์•„๋‹ˆ๋‹ค. ๋ฆฌ์Šค๋‹ ํฌํŠธ๋Š” ๋‹จ์ˆœํžˆ ์„œ๋ฒ„ - ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ์˜ ๋ชฉ์ ์œผ๋กœ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ํฌํŠธ์ด๋ฉฐ ์—ฐ๊ฒฐ์ด ์ˆ˜๋ฆฝ๋˜๊ณ  ๋‚˜๋ฉด ์‹ค์ œ ํ†ต์‹ ์€ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•˜๋Š” ์ž„์‹œ ํฌํŠธ๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค. ํ•ด๋‹น ๋ฐฉ์‹์„ ํ†ตํ•ด ์„œ๋ฒ„๋Š” ๋™์‹œ์— ์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์ง„๋‹ค.

4. TCP์—์„œ 3way, 4way Handshake๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

๋”๋ณด๊ธฐ

TCP๋Š” ์—ฐ๊ฒฐ ์ง€ํ–ฅ์  ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์ด ๋ง์˜ ์˜๋ฏธ๋Š” TCP ํ”„๋กœํ† ์ฝœ์€ ๊ฒฐ๊ตญ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ๋˜๋Š”๋ฐ, ์ด ์—ฐ๊ฒฐ์˜ ์‹œ์ž‘๊ณผ ๋ ์ง€์ ์ด ๋ฐ”๋กœ 3way, 4way Handshake์ด๋‹ค. 

3way Handshake๋Š” ์ „์†ก ์ธก SYN(a) -> ์ˆ˜์‹  ์ธก SYN(b) + ACK(a+1) -> ์ „์†ก ์ธก ACK(b+1) ํ˜•ํƒœ๋กœ ์ด๋ฃจ์–ด์ง€๊ฒŒ ๋˜๋Š”๋ฐ, ์ด ๋ฐฉ์‹์„ ํ†ตํ•ด ์–‘์ชฝ ์—”๋“œํฌ์ธํŠธ๊ฐ€ ๋ชจ๋‘ ํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Œ์„ ํ™•์ธํ•˜๊ณ  ์•ˆ์ •์ ์ธ ํ†ต์‹ ์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์ธ์ง€ ํ™•์ธํ•˜๊ฒŒ ๋œ๋‹ค.

4way Handshake๋Š” ์ „์†ก ์ธก FIN -> ์ˆ˜์‹  ์ธก ACK -> ์ˆ˜์‹  ์ธก TIME_WAIT -> ์ˆ˜์‹  ์ธก FIN -> ์ „์†ก ์ธก ACK ํ˜•ํƒœ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ์ด๋ฅผ ํ†ตํ•ด TCP ์—ฐ๊ฒฐ์„ ์•ˆ์ •์ ์œผ๋กœ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ์ด ๋•Œ TIME_WAIT๊ฐ€ ์กด์žฌํ•˜๋Š” ์ด์œ ๋Š”, ํ†ต์‹  ์ข…๋ฃŒ๋ฅผ ์•Œ๋ ธ์ง€๋งŒ ์•„์ง ๋ฏธ์ฒ˜ ์ „๋‹ฌ๋˜์ง€ ๋ชปํ•œ ํŒจํ‚ท์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.

HTTP vs HTTPS (ํ–ฅํ›„ ์ถ”๊ฐ€ ์˜ˆ์ •)


1. ๋Œ€์นญํ‚ค์™€ ๋น„๋Œ€์นญํ‚ค์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

2. HTTPS์—์„œ๋Š” ์–ด๋–ค ์ข…๋ฅ˜์˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

3. TLS Handshake์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.