06
16

์ œ๊ฐ€ ๋ณด๋ ค๊ณ  ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณ„์† ๋‚ด์šฉ์ด ์ถ”๊ฐ€๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค

 

# TCP, UDP

TCP๋Š” ์‹ ๋ขฐ์„ฑ์žˆ๋Š” ์—ฐ๊ฒฐ์ง€ํ–ฅ ํ”„๋กœํ† ์ฝœ๋กœ ๋ฐ์ดํ„ฐ ํŒจํ‚ท์˜ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜๋ฉฐ ์—๋Ÿฌ ์ œ์–ด, ํ˜ผ์žก ์ œ์–ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๋ฐ˜๋ฉด UDP๋Š” ๋น„์—ฐ๊ฒฐ์„ฑ ํ”„๋กœํ† ์ฝœ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜ ๋„์ฐฉํ–ˆ๋Š”์ง€(ํŒจํ‚ท๋ˆ„๋ฝ์€ ๊ณ ๋ คํ•˜์ง€์•Š๋Š”๋‹ค)์— ๋Œ€ํ•œ ์ฒดํฌ์„ฌ๋งŒ ์žˆ์„ ๋ฟ ํŒจํ‚ท์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€์•Š๊ณ , ์—๋Ÿฌ์ œ์–ด, ํ˜ผ์žก ์ œ์–ด๊ฐ™์€ ์ถ”๊ฐ€๊ธฐ๋Šฅ์ด ์—†๋‹ค.

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

nordvpn ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ

์ฟ ํ‚ค์™€ ์„ธ์…˜์— ์ฐจ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

# ์ฟ ํ‚ค, ์„ธ์…˜

์ƒํƒœ๋ฅผ ์ €์žฅ ์šฉ๋„๋กœ ์ฟ ํ‚ค, ์„ธ์…˜์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ณตํ†ต์ ์ด ์žˆ๋‹ค. 

 

์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ ๋กœ์ปฌ(๋ธŒ๋ผ์šฐ์ €)์— ์ €์žฅ๋˜๋Š” ํŒŒ์ผ๋กœ ํด๋ผ์ด์–ธํŠธ ์ •๋ณด๋ฅผ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๊ฑฐ๋กœ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ request header์— ๋„ฃ์–ด์„œ ์„œ๋ฒ„์— ์ „์†กํ•œ๋‹ค. ์ด๋•Œ ์ฟ ํ‚ค ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ์ด์šฉํ•ด์„œ ์„œ๋ฒ„์™€ ์ฟ ํ‚ค ์œ ํšจ์„ฑ์„ ์ ๊ฐํ•˜๊ณ , ์ƒํƒœ์ •๋ณด๋ฅผ ๊ฐฑ์‹ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๋ฉด ์„œ๋ฒ„์—์„œ ๊ฐฑ์‹ ํ•ด์ค€๋‹ค. 

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

 

๋ณด์•ˆ ์ƒ ์žฅ์ ์ด ์„ธ์…˜์— ์žˆ๋‹ค. ๊ทธ๋Ÿผ ์™œ ์ฟ ํ‚ค๋ฅผ ์“ธ๊นŒ? 

1. ์ฟ ํ‚ค์— ์ •๋ณด๊ฐ€ ์žˆ์–ด์„œ ์„œ๋ฒ„ ์š”์ฒญ์‹œ์— ๋ฐ”๋กœ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ณ„๋‹ค๋ฅธ ์ธ์ฆ์ ˆ์ฐจ ์—†์ด ๊ฐ€๋Šฅํ•˜๋‹ค. -> ๋น ๋ฅด๋‹ค.

2. ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์ด ์ฟ ํ‚ค์— ์กด์žฌํ•ด์„œ, ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์ฟ ํ‚ค๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๊ธฐ๋„ ํ•˜๋‹ค.

๋ฒ ์Šคํ•€ ๊ธ€๋กœ๋ฒŒ ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ

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

๋„คํŠธ์›Œํฌ ์žฅ์น˜ ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•ด ์„ค๊ณ„๋œ ์‘์šฉ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์ด๋‹ค. HTTP๋ฒ„์ „, hostname, method, ์š”์ฒญํ—ค๋”, content ๋ณธ๋ฌธ์œผ๋กœ ๋ฉ”์‹œ์ง€๊ฐ€ ๊ตฌ์„ฑ๋˜์–ด์žˆ๊ณ  ์ด๊ฑธ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค. ๋˜ ์ƒํƒœ ๋น„์ €์žฅ ํ”„๋กœํ† ์ฝœ์ด๋ผ ๊ฐ ๋ช…๋ น์€ ๋‹ค๋ฅธ ๋ช…๋ น๊ณผ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค. TCP ์ปค๋„ฅ์…˜์„ ์—ด์–ด์„œ ๊ทธ ์ปค๋„ฅ์…˜์— ์—ฌ๋Ÿฌ HTTP ์š”์ฒญ/์‘๋‹ต์„ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค.

 

cloudflare ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ

OSI 7๊ณ„์ธต์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์ด์•ผ๊ธฐ ํ•ด์ฃผ์„ธ์š” & ๊ฐ ๊ณ„์ธต์ด ํ•˜๋Š” ์ผ์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

์ƒ์ดํ•œ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด ์„œ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ ๋ชจ๋ธ์ด๊ณ  ๊ณ„์ธต๊ฐ„ encapsulation, decapsulation์ด ์ด๋ค„์ง„๋‹ค.

  • 7๊ณ„์ธต์€ ์‚ฌ์šฉ์ž์™€ ์ง์ ‘ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์œ ์ผํ•œ ๊ณ„์ธต์ด๋‹ค. ์„œ๋น„์Šค ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋ชจ๋‘ 7๊ณ„์ธต์— ์˜์กดํ•œ๋‹ค.
  • 6๊ณ„์ธต์€ 7๊ณ„์ธต์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ์ค€๋น„ํ•ด์ฃผ๋Š” ๊ณ„์ธต์œผ๋กœ, ์•”ํ˜ธํ™”, ์••์ถ•, ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜์ด ์ผ์–ด๋‚˜๋Š” ๊ณ„์ธต์ด๋‹ค. ์ˆ˜์‹ ์ž์—๊ฒŒ ์ค„ ๋•Œ decodingํ•ด์„œ ์ฃผ๊ฑฐ๋‚˜, ์†ก์‹ ์ž์—๊ฒŒ ๋ฐ›์•„ encodingํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค.
  • 5๊ณ„์ธต์€ ํ†ต์‹ ์˜ ์‹œ์ž‘, ์ข…๋ฃŒ๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค. ๋ณดํ†ต ํ†ต์‹ ์ด ์‹œ์ž‘๋˜๊ณ  ์ข…๋ฃŒ๋˜๊ธฐ๊นŒ์ง€์˜ ์‹œ๊ฐ„์„ ์„ธ์…˜์ด๋ผ๊ณ  ํ•œ๋‹ค.
  • 4๊ณ„์ธต์€ ๋‘ ๊ธฐ๊ธฐ ๊ฐ„ End to End ํ†ต์‹ ์„ ๋‹ด๋‹นํ•œ๋‹ค. ์„ธ์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ์„ธ๊ทธ๋จผํŠธ๋กœ ๋‚˜๋ˆˆ๋‹ค. TCP, UDP๊ฐ€ ์—ฌ๊ธฐ ์†ํ•œ๋‹ค.
  • 3๊ณ„์ธต์€ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์œผ๋กœ ๋™์ผ ๋„คํŠธ์›Œํฌ์ผ ๋•Œ๋Š” ํ•„์š”์—†๊ณ , ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ฐ›์•„ ํŒจํ‚ท์œผ๋กœ ๋‚˜๋ˆ ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฌ๋‹ค. ๋ผ์šฐํŒ…์ด ์—ฌ๊ธฐ์„œ ์ด๋ค„์ง„๋‹ค.
  • 2๊ณ„์ธต์€ ๋ฐ์ดํ„ฐ ์—ฐ๊ฒฐ ๊ณ„์ธต์œผ๋กœ ๋™์ผ ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ๋‘ ์žฅ์น˜๊ฐ„ ํ†ต์‹ ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•œ๋‹ค. ๋‹จ์œ„๋Š” ํ”„๋ ˆ์ž„์ด๊ณ  ์ธํŠธ๋ผ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์—์„œ ํ๋ฆ„์ œ์–ด, ์˜ค๋ฅ˜์ œ์–ด๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค. 4๊ณ„์ธต์—์„œ๋„ ํ๋ฆ„์ œ์–ด, ์˜ค๋ฅ˜์ œ์–ด๊ฐ€ ์žˆ๋Š”๋ฐ, ์ด๊ฑด ๋„คํŠธ์›Œํฌ ๊ฐ„ ํ†ต์‹ ์—์„œ ๋ณด์žฅ๋œ๋‹ค.
  • 1๊ณ„์ธต์€ ๋ฌผ๋ฆฌ ์žฅ๋น„๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋‹จ์œ„๋Š” ๋น„ํŠธ ์ŠคํŠธ๋ฆผ์ด๋‹ค.

cloud flare ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ

DNS๊ฐ€ ๋ฌด์—‡์ด๋ฉฐ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

HTTP ํ†ต์‹ ์—์„œ๋Š” IP์ฃผ์†Œ๋ฅผ ์ฐพ์•„์„œ ํ†ต์‹ ํ•ด์•ผ๋˜๋Š”๋ฐ, IP์ฃผ์†Œ๋ฅผ ๋ชจ๋‘ ๊ธฐ์–ตํ•  ํ•„์š”์—†์ด ์›น ์ฃผ์†Œ(domain name)๋งŒ ๊ฐ€์ง€๊ณ  ์ด๊ฑธ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด ์ฃผ๋Š”๊ฒŒ DNS ์‹œ์Šคํ…œ์ด๋‹ค. ๋„๋ฉ”์ธ ๋„ค์ž„์„ IP์ฃผ์†Œ์™€ ๋งคํ•‘์‹œ์ผœ ๋„๋ฉ”์ธ ๋„ค์ž„์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์š”์ฒญ๋ฐ›์œผ๋ฉด ์‘๋‹ตํ•  ๋•Œ ๋ณ€ํ™˜๋œ IP์ฃผ์†Œ์— ์š”์ฒญํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์•„๋งˆ์กด ๋ฌธ์„œ

3-Way Handshake ์™€ 4-Way Handshake์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

# 3-Way Handshake ์™€ 4-Way Handshake

TCP connection์„ ์—ด๊ณ  ๋‹ซ์„๋•Œ์˜ ํ†ต์‹  ๋™์ž‘ ๋ฐฉ์‹์ด๋‹ค.

์™ผ์ชฝ์ด 3-way,  ์˜ค๋ฅธ์ชฝ์ด 4-way๋‹ค. 3-way๋Š” ์„ธ์…˜ ์ปค๋„ฅ์…˜์„ ์œ„ํ•œ ๊ฒƒ์ด๊ณ , 4-way๋Š” ์„ธ์…˜ ์ข…๋ฃŒ๋ฅผ ์œ„ํ•œ handshake๋‹ค.

ํ”Œ๋ž˜๊ทธ ์ •๋ณด๋ฅผ ๋จผ์ € ๋ณด์ž

  • SYN(Synchronize ์ˆœ์„œ๋ฒˆํ˜ธ)
    • ์ˆœ์„œ๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•ด์„œ ์„ธ์…˜์„ ์—ฐ๊ฒฐํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค. ์ปค๋„ฅ์…˜์„ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” flag
  • ACK
    • ์‘๋‹ตํ™•์ธ์œผ๋กœ, ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ๋ฐ›๊ณ , ์ž˜ ๋ฐ›์•˜๋‹ค๊ณ  ๋ถ™์—ฌ ๋ณด๋‚ด๋Š” flag๋‹ค. 3-way ๊ธฐ์ค€ ์†ก์‹ ์ž๋Š” ์„œ๋ฒ„์˜ SYN+ACK๋ฅผ ๋ฐ›์•„์•ผ ์ปค๋„ฅ์…˜์ด ์œ ํšจํ•œ ๊ฒƒ์ด๋‹ค. ์„œ๋ฒ„๋Š” SYN+ACK๋ฅผ ๋ณด๋‚ด๊ณ , ACK๋ฅผ ๊ธฐ๋‹ค๋ฆฐ๋‹ค.
    • SYN+ACK๋ฅผ ๋ฐ›์€ ์†ก์‹ ์ž๋Š” ์„œ๋ฒ„ํ•œํ…Œ ACK๋ฅผ ๋ณด๋‚ด๊ณ , ์ด๋Ÿฌ๋ฉด ์ปค๋„ฅ์…˜์ด ์—ฐ๊ฒฐ๋œ๋‹ค.
  • FIN
    • ์—ฐ๊ฒฐํ•ด์ œํ•˜๋Š” flag๋กœ ์„ธ์…˜ ์—ฐ๊ฒฐ์„ ๋Š์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. 3-way์—์„œ๋Š” ์‚ฌ์šฉํ•˜์ง€์•Š๋Š”๋‹ค.

์„ธ์…˜์„ ์ข…๋ฃŒํ•  ๋•Œ๋Š” FIN์„ ๋จผ์ € ๋ณด๋‚ธ๋‹ค.

  1. ์†ก์‹ ์ž๋Š” ์—ฐ๊ฒฐ์„ ๋Š๊ฒ ๋‹ค๋Š” ์˜๋ฏธ๋กœ FIN์„ ๋ณด๋‚ด๊ณ , FIN-WAIT-1์ƒํƒœ๋กœ ๋จธ๋ฌด๋ฅธ๋‹ค.
  2. ์„œ๋ฒ„๋Š” FIN์„ ๋ฐ›์œผ๋ฉด ACK๋ฅผ ๋ณด๋‚ธ๋‹ค์Œ CLOSE-WAIT์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ€๊ณ ,
  3. CLOSE ์ค€๋น„๊ฐ€ ๋œ ๋’ค ์„œ๋ฒ„๊ฐ€ ๋ณด๋‚ธ ACK๋ฅผ ์†ก์‹ ์ž๊ฐ€ ๋ฐ›์œผ๋ฉด ์„œ๋ฒ„๊ฐ€ ๋๋‚œ๊ฑธ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด FIN-WAIT-2์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.  ์„œ๋ฒ„๋Š” FIN์„ ๋ณด๋‚ด๊ณ  LAST-ACK์ƒํƒœ๋กœ ๋„˜์–ด๊ฐ„๋‹ค.
  4. ์†ก์‹ ์ž๊ฐ€ FIN์„ ๋ฐ›๊ณ  ์„œ๋ฒ„๊ฐ€ ๋๋‚˜๋Š” ๊ฑธ ํ™•์ธํ–ˆ๋‹ค๊ณ  ACK๋ฅผ ๋ณด๋‚ธ๋‹ค. ACK๋ฅผ ๋ณด๋‚ธ ๋‹ค์Œ ์†ก์‹ ์ž๋Š” Time-wait๋กœ ๋“ค์–ด๊ฐ”๋‹ค๊ฐ€ ์—ฐ๊ฒฐ์„ ๋Š๋Š”๋‹ค.(๋ฐ๋“œ๋ฝ ๋ง‰๊ธฐ์œ„ํ•œ ์ง€์—ฐ) ACK๋ฅผ ๋ฐ›์€ ์„œ๋ฒ„๋Š” ์ด์ œ ์„œ๋ฒ„๋ฅผ ์™„์ „ํžˆ ๋‹ซ๋Š”๋‹ค.

์—ฐ๊ฒฐ ์„ค์ • ๊ณผ์ •๊ณผ ์ข…๋ฃŒ๊ณผ์ €์ด ์ฐจ์ด๋‚˜๋Š” ์ด์œ ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ผ์„ ๋‹ค ๋งˆ์ณ๋„ ์„œ๋ฒ„์—์„œ ๋‚จ์€ ์ผ์ด ์žˆ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์˜ ์ผ์ด ๋๋‚œ ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด FIN์ด ํฌํ•จ๋œ 4๋‹จ๊ณ„๋กœ ์ด๋ค„์ ธ์žˆ๋‹ค.

XSS์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

Cross Site Scription์œผ๋กœ ์Šคํฌ๋ฆฝํŠธ ์‚ฝ์ž… ๊ณต๊ฒฉ์ด๋‹ค.

์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž…ํ•˜๋ฉด ์ด๊ฑธ ์—ด๊ฒŒ๋  ์‚ฌ์šฉ์ž์˜ ์ฟ ํ‚ค๋ฅผ ํƒˆ์ทจ(์ฟ ํ‚ค-ํ•˜์ด์žฌํ‚น) ํ•  ์ˆ˜ ์žˆ๊ณ  ์„ธ์…˜์œผ๋กœ ํ•˜๋”๋ผ๋„ ์„ธ์…˜ ID๋ฅผ ํƒˆ์ทจ ํ•  ์ˆ˜ ์žˆ๊ธฐ๋•Œ๋ฌธ์— ์ด๊ฑธ ํ†ตํ•ด ์‚ฌ์šฉ์ž์ธ์ฒ™ ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค.  

Injection ๊ณต๊ฒฉ์ค‘์— ํ•˜๋‚˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์›น ๋ฐฉํ™”๋ฒฝ์„ ์ด์šฉํ•˜๋ฉด ๋ฐฉ์–ด๊ฐ€๋Šฅํ•˜๋‹ค. 

Get๊ณผ Post์˜ ์ฐจ์ด๊ฐ€ ๋ญ”๊ฐ€์š”?

# GET, POST

GET์€ ์‘๋‹ต์œผ๋กœ ์ •๋ณด๋ฅผ ๊ธฐ๋Œ€ํ•˜๊ณ , POST๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ •๋ณด๋ฅผ ๋ณธ๋ฌธ์— ๋‹ด์•„ ์ œ์ถœํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ •๋ณด๋ฅผ ๋‹ด์•„์„œ ๋ณด๋‚ด์•ผ๋  ๊ฒฝ์šฐ, GET์˜ ๊ฒฝ์šฐ์—๋Š” querystring์œผ๋กœ ๋ถ™์–ด์„œ url์— ์ •๋ณด๊ฐ€ ๋…ธ์ถœ๋˜๋Š”๋ฐ, post๋Š” ๋ณธ๋ฌธ์— ๋‹ด๊ธฐ๊ธฐ ๋•Œ๋ฌธ์— url์— ์š”์ฒญ์ •๋ณด๊ฐ€ ๋…ธ์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋ณด์•ˆ ์ƒ ์ด์ ์ด ์žˆ๋‹ค.

์ฃผ์†Œ์ฐฝ์— [naver.com]์„ ์น˜๋ฉด ์ผ์–ด๋‚˜๋Š” ๊ณผ์ •์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

  1. ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์ด ISP์— ์—ฐ๊ฒฐ๋œ DNSํ•ด์„๊ธฐ๋กœ ๋ผ์šฐํŒ…๋˜๊ณ , DNS ํ•ด์„๊ธฐ์—์„œ DNS ๋ฃจํŠธ ๋„ค์ž„์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•œ๋‹ค.
  2. ๋ฃจํŠธ ๋„ค์ž„์„œ๋ฒ„๋Š” TLD ๋„ค์ž„์„œ๋ฒ„๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , DNS ํ•ด์„๊ธฐ๊ฐ€ ๋‹ค์‹œ TLD ๋„ค์ž„์„œ๋ฒ„์— ์š”์ฒญ์„ ์ „๋‹ฌํ•œ๋‹ค.
  3. TLD๋„ค์ž„์„œ๋ฒ„๊ฐ€ ์ด์ œ IP์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ๋„ค์ž„์„œ๋ฒ„์— ์ ‘๊ทผํ•ด์„œ DNS ํ•ด์„๊ธฐํ•œํ…Œ ๋„˜๊ฒจ์ฃผ๊ณ 
  4. IP์ฃผ์†Œ๋ฅผ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฐ›์•„์„œ ์‹ค์ œ ์›น์„œ๋ฒ„์— ์š”์ฒญํ•ด ์‘๋‹ต์„ ๋ฐ›๋Š”๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ๋Š” ์ด๋ ‡๊ฒŒ ์š”์•ฝํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. ์ข€ ๋” ์ž์„ธํ•˜๊ฒŒ ์ ‘๊ทผํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  1. ์‚ฌ์šฉ์ž๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋Š” ์šด์˜์ฒด์ œ์˜ ๋„คํŠธ์›Œํฌ ์Šคํƒ์„ ํ†ตํ•ด ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋˜๊ณ  ์‚ฌ์šฉ์ž๋Š” ๋กœ์ปฌ IP ์ฃผ์†Œ์™€ ํฌํŠธ๋ฅผ ํ• ๋‹น๋ฐ›๋Š”๋‹ค.
  2. ์ฃผ์†Œ์ฐฝ์— "naver.com"์„ ์ž…๋ ฅํ•˜๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋Š” ๋„ค์ด๋ฒ„ ์„œ๋ฒ„๋กœ ํŠน์ • ๋ฆฌ์†Œ์Šค HTTP GET ์š”์ฒญ์„ ์ƒ์„ฑํ•œ๋‹ค.
  3. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋จผ์ € ์ž์‹ ์˜ DNS ์บ์‹œ๋ฅผ ํ™•์ธํ•˜์—ฌ ๋„ค์ด๋ฒ„ IP ์ฃผ์†Œ๋ฅผ ์ฐพ๋Š”๋‹ค. ์บ์‹œ์— ํ•ด๋‹น ์ •๋ณด๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, ์šด์˜์ฒด์ œ์˜ DNS resolver์—๊ฒŒ DNS ์กฐํšŒ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.(Socket ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ Resolver)
  4. DNS resolver๋Š” ๋ฃจํŠธ DNS ์„œ๋ฒ„, TLD ๋„ค์ž„์„œ๋ฒ„, ๊ทธ๋ฆฌ๊ณ  ๋„ค์ด๋ฒ„์˜ ๋„๋ฉ”์ธ ์„œ๋ฒ„ ์ˆœ์œผ๋กœ DNS ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋„ค์ด๋ฒ„ ๋„๋ฉ”์ธ ์„œ๋ฒ„๊ฐ€ ๋„ค์ด๋ฒ„ ์„œ๋ฒ„์˜ IP์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  5. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฐ›์€ ๋„ค์ด๋ฒ„ ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ TCP ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ , HTTP GET ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ํ•ด๋‹น ์„œ๋ฒ„๋กœ ๋ณด๋‚ธ๋‹ค.
  6. ๋„ค์ด๋ฒ„ ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ๋ฐ›๊ณ , ์š”์ฒญ๋ฐ›์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์•„์„œ HTTP ์‘๋‹ต ๋ฉ”์‹œ์ง€๋กœ ์‘๋‹ตํ•œ๋‹ค.
  7. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฐ›์€ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด HTML ๋ฌธ์„œ๋ฅผ ํŒŒ์‹ฑํ•˜๊ณ  ๋ Œ๋”๋งํ•œ๋‹ค. ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, ์ถ”๊ฐ€์ ์ธ HTTP ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.

# ๋ฃจํŠธ ๋„ค์ž„์„œ๋ฒ„?

๋ฃจํŠธ ์„œ๋ฒ„๋Š” ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ํฌํ•จํ•œ ์žฌ๊ท€ ํ™•์ธ์ž์˜ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜์šฉํ•˜๋ฉฐ ๋ฃจํŠธ ๋„ค์ž„์„œ๋ฒ„๋Š” ํ•ด๋‹น ๋„๋ฉ”์ธ์˜ ํ™•์žฅ์ž(.com,. net, .org, etc.)์— ๋”ฐ๋ผ ์žฌ๊ท€ ํ™•์ธ์ž๋ฅผ TLD ๋„ค์ž„์„œ๋ฒ„์— ๋ณด๋‚ด ์‘๋‹ตํ•œ๋‹ค.

 

Stateful Service๊ณผ Stateless Service๊ฐ€ ๋ฌด์—‡์ธ์ง€?

Stateful

  • ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— ์†ก์ˆ˜์‹ ์„ ํ•˜๋ฉฐ ๋‹จ๊ณ„๋ณ„ ๊ณผ์ •์„ ์ง„ํ–‰ํ•˜๋Š”๋ฐ ์žˆ์–ด, ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด์ „ ๋‹จ๊ณ„์—์„œ ์ œ๊ณตํ•œ ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋„ ์ €์žฅํ•œ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • ๋Œ€ํ‘œ์ ์ธ ํ”„๋กœํ† ์ฝœ
    • TCP์˜ 3-way handshaking
  • ๋ฌธ์ œ์ 
    • ์ƒˆ๋กœ์šด ์„œ๋ฒ„์— ์ ‘์†ํ•˜๋ฉด ์ด์ „ ์„œ๋ฒ„๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ์ƒํƒœ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์€ ๋ฌธ์ œ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

Stateless

  • ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
  • ํ•ด๋‹น ๊ตฌ์กฐ์—์„œ ์„œ๋ฒ„๋Š” ์š”์ฒญ์ด ์˜ค๋ฉด ์‘๋‹ต์„ ๋ณด๋‚ด๋Š” ์—ญํ• ๋งŒ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ƒํƒœ ๊ด€๋ฆฌ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•œ๋‹ค.
  • ๋Œ€ํ‘œ์ ์ธ ํ”„๋กœํ† ์ฝœ
    • UDP
    • HTTP
  • ๋ฌธ์ œ์ 
    • ์„œ๋ฒ„์— ์š”์ฒญ์‹œ ์ƒํƒœ์ •๋ณด๋ฅผ ๊ฐ™์ด ์ค˜์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— Stateful ๋ณด๋‹ค ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์†Œ๋ชจ๋œ๋‹ค

 

Web Server์™€ Web Application Server์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

# Web Server

์›น ์„œ๋ฒ„๋Š” ๋‹จ์ˆœํžˆ HTTP ์š”์ฒญ์„ ๋ฐ›์•„ ์ •์  ์ฝ˜ํ…์ธ ๋กœ ์‘๋‹ตํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ๋™์  ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ์›น ์„œ๋ฒ„ ์ž์ฒด์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ์— ๋ฌด๋ฆฌ๊ฐ€ ์žˆ๋‹ค. ex) Apache, Nginx

# WAS(Web Application Server)

HTTP ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์€ ๋™์ผํ•˜๋‹ค. ์›น์„œ๋ฒ„๊ฐ€ ํ•˜๋Š” ์ผ์„ ํฌํ•จํ•ด์„œ ๋” ๋งŽ์€ ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. Server-Side code๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋™์ ์ธ ์ฝ˜ํ…์ธ ๋„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. ex) Tomcat

 

๊ทธ๋Ÿผ ๋” ๋งŽ์€ ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋Š” WAS๋งŒ ์“ฐ๋ฉด ๋˜์ง€์•Š๋‚˜ ์‹ถ์ง€๋งŒ ํšจ์œจ์„ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ •์  ์ฝ˜ํ…์ธ ๋งŒ ํ•„์š”ํ•  ๋•Œ Web Server๋งŒ ์“ฐ๋Š”๊ฒŒ ๋” ์•ˆ์ •์ ์ด๊ณ  ๋น ๋ฅด๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๋Š” WAS๊ฐ€ ์ •์ ์ฝ˜ํ…์ธ ๋„ ์ œ๊ณตํ•˜๋„๋ก ์ผ์„ ๋– ๋„˜๊ฒจ์ฃผ๋ฉด ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋™์  ์ฝ˜ํ…์ธ  ์˜์—ญ๋งŒ WAS๊ฐ€ ์ˆ˜ํ–‰ํ•˜๊ณ , ์ •์  ์ฝ˜ํ…์ธ ๋Š” WebServer์—์„œ ์ œ๊ณตํ•˜๋„๋ก ๊ธฐ๋Šฅ์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒŒ ์ข‹๋‹ค๊ณ  ํ•œ๋‹ค.

graph LR
    A[Client] --> B[Web Server]
    B --> C{WAS}
    C --> D(DB)

 

WAS, Webserver ์ฐจ์ด

๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

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

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

์ •์  ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ, ๋™์  ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๊ณ  ๊ฐ๊ฐ ์‚ฌ์šฉ๋˜๋Š” ๋Œ€ํ‘œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ผ์šด๋“œ๋กœ๋นˆ, ์ตœ์†Œ์—ฐ๊ฒฐ๋ฐฉ๋ฒ•(ํ™œ์„ฑ ์—ฐ๊ฒฐ์ด ๊ฐ€์žฅ ์ ์€ ์„œ๋ฒ„๋กœ ํŠธ๋ž˜ํ”ฝ์„ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹)์ด ์žˆ๋‹ค.

์˜ˆ์‹œ ๊ทธ๋ฆผ์— ์žˆ๋Š” ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋กœ, ์ œ์–ด๊ฐ€ ์•„์ฃผ ์œ ์—ฐํ•˜๋‹ค.

์•„๋งˆ์กด ๋ฌธ์„œ - ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ

 

CDN(Content Distribution Network)์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ณ , CDN์„œ๋น„์Šค ์˜ˆ์‹œ๋ฅผ ๋งํ•ด๋ณด์„ธ์š”.

CDN์€ ์ฝ˜ํ…์ธ  ์ „์†ก ๋„คํŠธ์›Œํฌ(์ฝ˜ํ…์ธ  ๋ฐฐํฌ ๋„คํŠธ์›Œํฌ)๋กœ, ์›น ํŽ˜์ด์ง€ ๋กœ๋“œ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ƒํ˜ธ์—ฐ๊ฒฐ๋œ ์„œ๋ฒ„ ๋„คํŠธ์›Œํฌ๋‹ค.

# CDN์€ ์™œ ํ•„์š”ํ• ๊นŒ?

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

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

์ž‘๋™๋ฐฉ์‹์— ๋Œ€ํ•ด ์ข€ ๋” ์ž์„ธํ•˜๊ฒŒ ์•Œ์•„๋ณด์ž.

์—ฌ๋Ÿฌ ์ง€๋ฆฌ์  ์œ„์น˜์— ์ ‘์†์ง€์ (POP(์บ์‹œ์„œ๋ฒ„ - push - pull), CDN ์—ฃ์ง€ ์„œ๋ฒ„ ๊ทธ๋ฃน)์„ ์„ค์ •ํ•ด์„œ ๋ถ„์‚ฐ์‹œํ‚จ ๋„คํŠธ์›Œํฌ๋ฅผ ํ™•๋ณดํ•˜๊ณ , ์บ์‹ฑ, ๋™์  ๊ฐ€์† ๋ฐ ์—ฃ์ง€ ๋กœ์ง ๊ณ„์‚ฐ์„ ํ†ตํ•ด ์ž‘๋™ํ•œ๋‹ค. CDN์—์„œ ์บ์‹ฑ์€ ๋ถ„์‚ฐ์‹œํ‚จ ๋„คํŠธ์›Œํฌ์— ์ •์  ์ฝ˜ํ…์ธ ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•˜๋ฉฐ ์˜๋„ ์ž์ฒด๋Š” ๊ธฐ์กด์— ์žˆ๋˜ ์บ์‹ฑ๊ณผ ๋™์ผํ•˜๋‹ค.

 

CDN์„ ์‚ฌ์šฉํ•˜๋ฉด ํฌ๊ฒŒ 4๊ฐ€์ง€ ์ด์ ์ด ์žˆ๋‹ค.

  1. ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ๊ฐ„ ๋‹จ์ถ•
    ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ๋Š๋ฆฌ๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ดํƒˆํ•  ์ˆ˜ ์žˆ๋‹ค(ํŠธ๋ž˜ํ”ฝ ๊ฐ์†Œ๋กœ ์ด์–ด์ง„๋‹ค.). CDN์€ ๋ฐ˜์†ก๋ฅ ์„ ์ค„์—ฌ ์ดํƒˆ์œจ์„ ๋‚ฎ์ถฐ์ค€๋‹ค.
  2. ๋Œ€์—ญํญ ๋น„์šฉ ์ ˆ๊ฐ
    ์บ์‹ฑ ๋ฐ ๊ธฐํƒ€ ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด CDN์€ ๋ณธ ์„œ๋ฒ„๊ฐ€ ์ œ๊ณตํ•ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘์„ ์ค„์—ฌ ์›น ์‚ฌ์ดํŠธ ์†Œ์œ ์ž์˜ ํ˜ธ์ŠคํŒ… ๋น„์šฉ์„ ์ ˆ๊ฐํ•ด์ค€๋‹ค.
  3. ์ฝ˜ํ…์ธ  ๊ฐ€์šฉ์„ฑ ์ œ๊ณ 
    ํ•œ ๋ฒˆ์— ๋„ˆ๋ฌด ๋งŽ์€ ๋ฐฉ๋ฌธ์ž๊ฐ€ ๋ฐฉ๋ฌธํ•˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ ํ•˜๋“œ์›จ์–ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ฆฌ์†Œ์Šค ๊ณ ๊ฐˆ๋กœ์ธํ•ด ์›น ์‚ฌ์ดํŠธ๊ฐ€ ์ค‘๋‹จ๋  ์ˆ˜ ์žˆ๋‹ค. CDN ์„œ๋น„์Šค๋Š” ์ด๋Ÿฐ ํŠธ๋ž˜ํ”ฝ๋„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์–ด์„œ ์›น ์„œ๋ฒ„์˜ ๋กœ๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ํ•˜๋‚˜ ์ด์ƒ์˜ CDN ์„œ๋ฒ„๊ฐ€ ์–ด๋–ค ์‚ฌ๊ณ ๋กœ ์ธํ•ด ์˜คํ”„๋ผ์ธ์œผ๋กœ ์ „ํ™˜๋˜๋ฉด ๋‹ค๋ฅธ ์šด์˜ ์„œ๋ฒ„๊ฐ€ ํ•ด๋‹น ์„œ๋ฒ„๋ฅผ ๋Œ€์ฒดํ•˜์—ฌ ์„œ๋น„์Šค๊ฐ€ ์ค‘๋‹จ๋˜์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค.(์ด์ค‘ํ™”) ๋น„์ƒ์šฉ ๋ฐœ์ „๊ธฐ ๊ฐ™์€ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. 
  4. ์›น ์‚ฌ์ดํŠธ ๋ณด์•ˆ ๊ฐ•ํ™”
    3๋ฒˆ์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด CDN์€ ์—ฌ๋Ÿฌ ์ค‘๊ฐ„ ์„œ๋ฒ„ ๊ฐ„์— ๋กœ๋“œ๋ฅผ ๋ถ„์‚ฐํ•˜์—ฌ ๋ณธ ์„œ๋ฒ„์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ค„์ด๋Š”๋ฐ DDoS์™€ ๊ฐ™์€ ํŠธ๋ž˜ํ”ฝ ๊ณต๊ฒฉ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

# CDN ์„œ๋น„์Šค ์˜ˆ์‹œ?

์šฐ๋ฆฌ๊ฐ€ ์›น์‚ฌ์ดํŠธ์— ์š”์ฒญํ•˜๋Š” ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋“ค์€ ๋ชจ๋‘ CDN ๊ธฐ๋ฐ˜์ด๋ผ๊ณ  ๋ด์•ผ๋œ๋‹ค. 

๊ทธ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ๊ฐ€ Netflix๋‹ค. 2011๋…„์— ์ž์ฒด CDN์„ ๊ตฌ์ถ•ํ•ด์„œ ๊ฐ–๊ณ ์žˆ๋Š” ๋น„๋””์˜ค ์ฝ˜ํ…์ธ ๋ฅผ ๋ ˆ์ดํ„ด์‹œ๋ฅผ ์ตœ์†Œํ™”ํ•ด์„œ ์ œ๊ณตํ•œ๋‹ค. 

cloudflare ๋ฌธ์„œ

์•„๋งˆ์กด ๋ฌธ์„œ

 

HTTP 1.1์€ ์–ด๋–ค ๋ฌธ์ œ์ ์ด ์žˆ์—ˆ๋Š”๊ฐ€? 2.0์€ ์–ด๋–ป๊ฒŒ ๋ณด์™„ํ–ˆ๋Š”์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

# HTTP 1.1์ด ๊ฐ–๋Š” ๋ฌธ์ œ์ 

  • HOL(Head of Line) Blocking
    • ์ปค๋„ฅ์…˜์—์„œ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—  ํ•œ ์š”์ฒญ์ด ์ง€์—ฐ๋˜๋ฉด ๋’ค์—์žˆ๋Š” ์š”์ฒญ๋“ค๋„ ๋Œ€๊ธฐํ•ด์•ผํ•œ๋‹ค.
  • Header Overhead
    • ๊ฐ ์š”์ฒญ-์‘๋‹ต ์‹œ ์ด๋ฏธ ์•Œ๊ณ ์žˆ๋Š” ๋ถˆํ•„์š”ํ•œ ํ—ค๋”๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ์ „์†กํ•ด์•ผ๋œ๋‹ค. ๋ฉ”์‹œ์ง€ ํฌ๊ธฐ๊ฐ€ ์ž‘์€๊ฒฝ์šฐ ์žฆ์€ ํ†ต์‹ ์œผ๋กœ์ธํ•ด ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋”์šฑ ์ปค์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ์กด์žฌํ•œ๋‹ค. 
  • ๋‹จ์ผ ์—ฐ๊ฒฐ์˜ ํ•œ๊ณ„ 
    • ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์š”์ฒญ๋งŒ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์„œ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 
    • ๊ธฐ์กด ์ปค๋„ฅ์…˜์„ ์žฌ์‚ฌ์šฉํ•ด์„œ ํšจ์œจ์„ฑ์€ ๋†’์˜€๋Š”๋ฐ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ํ•œ๋ฒˆ์— ์š”์ฒญํ•˜๋ฉด ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋ผ์„œ ์„ฑ๋Šฅ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค

์ˆœ์ฐจ์ ์œผ๋กœ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ํ•œ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒŒ HTTP/1.1์˜ ๋ฌธ์ œ์ ์ด์—ˆ๋‹ค.

# HTTP 2.0์—์„œ ๊ฐœ์„ ๋œ ์ 

  • Multiplexing
    • ๋‹จ์ผ TCP connection์œผ๋กœ๋„ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋กํ•ด์„œ HOL Blocking๋ฌธ์ œ๋Š” ๋ฌผ๋ก ์ด๊ณ  ์ „์ฒด์ ์ธ ์„ฑ๋Šฅํ–ฅ์ƒ์„ ์ด๋ค„๋ƒˆ๋‹ค.
    • Frame์ด๋ผ๋Š” ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„ํ• ํ•˜๋Š”๋ฐ ๊ฐ ํ”„๋ ˆ์ž„์— ์‹๋ณ„์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ตฌ๋ถ„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ์ด ํ”„๋ ˆ์ž„์„ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ด€๋ฆฌํ•˜๊ณ  ์ŠคํŠธ๋ฆผ ์—ญ์‹œ ์‹๋ณ„์ž๋ฅผ ๊ฐ–๋Š”๋‹ค.
  • Header Compression
    • ์ •์  ํ—ค๋” ํ…Œ์ด๋ธ”๊ณผ ๋™์  ํ—ค๋” ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•ด์„œ ํ—ค๋”๋ฅผ ์ธ์ฝ”๋”ฉํ•ด์„œ ์ „์†กํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ค„์–ด๋“ ๋‹ค. 
  • Server Push
    • ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ์„œ ์•„์ง ์š”์ฒญํ•˜์ง€์•Š์€ ๋ฆฌ์†Œ์Šค๋„ ๋ฏธ๋ฆฌ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์ถ”๊ฐ€์š”์ฒญ์—†์ด ์‘๋‹ต์„ ํ•ด์ฃผ๊ธฐ๋•Œ๋ฌธ์— ๋กœ๋”ฉ ์†๋„๋ฅผ ๋Š˜๋ฆด ์ˆ˜ ์žˆ๋‹ค.
์†Œ์ผ“ ํ†ต์‹ ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜์„ธ์š”.

์†Œ์ผ“์€ IP์ฃผ์†Œ์™€  ํฌํŠธ๋ฒˆํ˜ธ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ๋‘ ์žฅ์น˜๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ด์ž ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์˜ End point์ด๋‹ค.

# ์ŠคํŠธ๋ฆผ ์†Œ์ผ“

TCP(Transmission Control Protocol)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐ ์ง€ํ–ฅ์  ํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ฆ‰ ๋ฐ์ดํ„ฐ ์ „์†ก์˜ ์ˆœ์„œ์™€ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค.

# ๋ฐ์ดํ„ฐ๊ทธ๋žจ ์†Œ์ผ“

UDP(User Datagram Protocol)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„์—ฐ๊ฒฐ ์ง€ํ–ฅ์  ํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•œ. ๋ฐ์ดํ„ฐ ์ „์†ก์˜ ์ˆœ์„œ๋‚˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋น ๋ฅธ ์ „์†ก์ด ์š”๊ตฌ๋˜์ง€๋งŒ ์‹ ๋ขฐ์„ฑ์ด ๋œ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋œ๋‹ค.

# ์†Œ์ผ“ ํ†ต์‹ ์˜ ๋‹จ๊ณ„

  1. ์„œ๋ฒ„ ์†Œ์ผ“:
    • ์†Œ์ผ“ ์ƒ์„ฑ: ์„œ๋ฒ„๋Š” ํ†ต์‹ ์„ ์œ„ํ•ด ์†Œ์ผ“ ์ƒ์„ฑ
    • ๋ฐ”์ธ๋”ฉ: ์ƒ์„ฑ๋œ ์†Œ์ผ“์— IP ์ฃผ์†Œ์™€ ํฌํŠธ ๋ฒˆํ˜ธ ํ• ๋‹น
    • ์ฒญ์ทจ: ์„œ๋ฒ„๋Š” ์—ฐ๊ฒฐ ์š”์ฒญ ๋Œ€๊ธฐ (listen())
    • ์—ฐ๊ฒฐ ์ˆ˜๋ฝ: ํด๋ผ์ด์–ธํŠธ์˜ ์—ฐ๊ฒฐ ์š”์ฒญ์„ ์ˆ˜๋ฝ (accept())
  2. ํด๋ผ์ด์–ธํŠธ ์†Œ์ผ“:
    • ์†Œ์ผ“ ์ƒ์„ฑ: ํด๋ผ์ด์–ธํŠธ๋Š” ํ†ต์‹ ์„ ์œ„ํ•ด ์†Œ์ผ“ ์ƒ์„ฑ
    • ์„œ๋ฒ„์— ์—ฐ๊ฒฐ ์š”์ฒญ: ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์— ์—ฐ๊ฒฐ ์š”์ฒญ (connect())
  3. ๋ฐ์ดํ„ฐ ์ „์†ก:
    • ์—ฐ๊ฒฐ์ด ์„ค์ •๋˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  4. ์—ฐ๊ฒฐ ์ข…๋ฃŒ:
    • ํ†ต์‹ ์ด ๋๋‚˜๋ฉด ์–‘์ชฝ ์†Œ์ผ“์„ ๋‹ซ์•„ ์—ฐ๊ฒฐ ์ข…๋ฃŒ

# ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ฃผ์š” ๊ณ ๋ ค ์‚ฌํ•ญ

  1. ๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ:
    • ๋‹ค์ˆ˜์˜ ํด๋ผ์ด์–ธํŠธ์™€ ๋™์‹œ์— ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ๋˜๋Š” ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‚ฌ์šฉ
  2. ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ:
    • ๋„คํŠธ์›Œํฌ ์žฅ์• , ํƒ€์ž„์•„์›ƒ ๋“ฑ ๋‹ค์–‘ํ•œ ์˜ค๋ฅ˜ ์ƒํ™ฉ์„ ๊ณ ๋ คํ•˜์—ฌ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ๊ตฌํ˜„
  3. ๋ณด์•ˆ:
    • ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ „์†กํ•˜๊ฑฐ๋‚˜, SSL/TLS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ์˜ ๊ธฐ๋ฐ€์„ฑ์„ ๋ณด์žฅ
  4. ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ:
    • ์‚ฌ์šฉ ํ›„ ์†Œ์ผ“์„ ๋‹ซ์•„ ๋ฆฌ์†Œ์Šค๋ฅผ ํ•ด์ œํ•˜๊ณ , ์†Œ์ผ“์˜ ์ˆ˜๋ช… ์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌ
 TCP์˜ ํ˜ผ์žก ์ œ์–ด ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

TCP ํ˜ผ์žก ์ œ์–ด๋Š” ๋„คํŠธ์›Œํฌ์˜ ํ˜ผ์žก์„ ๊ฐ์ง€ํ•˜๊ณ  ์ด์— ๋Œ€์‘ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค. 

1. Slow Start (๋Š๋ฆฐ ์‹œ์ž‘)

  • ๋ชฉ์ : ๋„คํŠธ์›Œํฌ์˜ ์šฉ๋Ÿ‰์„ ํ™•์ธํ•˜๋ฉด์„œ ์ „์†ก ์†๋„๋ฅผ ์ ์ง„์ ์œผ๋กœ ์ฆ๊ฐ€์‹œ์ผœ ํ˜ผ์žก์„ ๋ฐฉ์ง€.
  • ๋ฐฉ๋ฒ•:
    • ์—ฐ๊ฒฐ์ด ์ฒ˜์Œ ์‹œ์ž‘๋  ๋•Œ, ํ˜น์€ ํƒ€์ž„์•„์›ƒ์ด ๋ฐœ์ƒํ•œ ํ›„์— ์‹œ์ž‘.
    • ์ฒ˜์Œ์— ํ˜ผ์žก ์œˆ๋„์šฐ(congestion window, cwnd)๋Š” 1 MSS(Maximum Segment Size)๋กœ ์„ค์ •.
    • ๊ฐ ์ˆ˜์‹  ํ™•์ธ(ACK)์„ ๋ฐ›์„ ๋•Œ๋งˆ๋‹ค ํ˜ผ์žก ์œˆ๋„์šฐ๋ฅผ 1 MSS์”ฉ ์ฆ๊ฐ€.
    • ์ง€์ˆ˜์ (n์Šน)์œผ๋กœ ์ฆ๊ฐ€ํ•˜์—ฌ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๊ฐ€ ๋น ๋ฅด๊ฒŒ ์ปค์ง.

2. Congestion Avoidance (ํ˜ผ์žก ํšŒํ”ผ)

  • ๋ชฉ์ : ๋„คํŠธ์›Œํฌ๊ฐ€ ํ˜ผ์žก ์ƒํƒœ์— ๋„๋‹ฌํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒƒ.
  • ๋ฐฉ๋ฒ•:
    • ํ˜ผ์žก ์œˆ๋„์šฐ๊ฐ€ ์ž„๊ณ„๊ฐ’(ssthresh)์— ๋„๋‹ฌํ•˜๋ฉด, ํ˜ผ์žก ํšŒํ”ผ ๋‹จ๊ณ„๋กœ ์ „ํ™˜.
    • ์ด ๋‹จ๊ณ„์—์„œ๋Š” ํ˜ผ์žก ์œˆ๋„์šฐ๊ฐ€ ์ง€์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€.
    • ๊ฐ RTT(Round Trip Time)๋งˆ๋‹ค ํ˜ผ์žก ์œˆ๋„์šฐ๊ฐ€ 1 MSS์”ฉ ์ฆ๊ฐ€.

3. Fast Retransmit (๋น ๋ฅธ ์žฌ์ „์†ก)

  • ๋ชฉ์ : ์†์‹ค๋œ ํŒจํ‚ท์„ ์‹ ์†ํžˆ ์žฌ์ „์†กํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ.
  • ๋ฐฉ๋ฒ•:
    • ๋™์ผํ•œ ํŒจํ‚ท์— ๋Œ€ํ•ด 3๊ฐœ์˜ ์ค‘๋ณต๋œ ACK์„ ๋ฐ›์œผ๋ฉด ํŒจํ‚ท ์†์‹ค๋กœ ๊ฐ„์ฃผํ•˜๊ณ , ํƒ€์ž„์•„์›ƒ์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์ฆ‰์‹œ ์†์‹ค๋œ ํŒจํ‚ท์„ ์žฌ์ „์†ก.

4. Fast Recovery (๋น ๋ฅธ ํšŒ๋ณต)

  • ๋ชฉ์ : ๋„คํŠธ์›Œํฌ ํ˜ผ์žก์„ ๊ฐ์ง€ํ•œ ํ›„ ๋น ๋ฅด๊ฒŒ ํšŒ๋ณตํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ํšจ์œจ์„ ์œ ์ง€.
  • ๋ฐฉ๋ฒ•:
    • Fast Retransmit ํ›„์—, ssthresh๋ฅผ ํ˜„์žฌ ํ˜ผ์žก ์œˆ๋„์šฐ์˜ ์ ˆ๋ฐ˜์œผ๋กœ ์„ค์ •.
    • ํ˜ผ์žก ์œˆ๋„์šฐ๋ฅผ ssthresh + 3 MSS๋กœ ์„ค์ •ํ•˜์—ฌ ๋น ๋ฅธ ํšŒ๋ณต์„ ์‹œ๋„.
    • ์ค‘๋ณต๋œ ACK์„ ๋ฐ›๋Š” ๋™์•ˆ ํ˜ผ์žก ์œˆ๋„์šฐ๋ฅผ 1 MSS์”ฉ ์ฆ๊ฐ€์‹œํ‚ด.
    • ์ƒˆ๋กœ์šด ACK์„ ๋ฐ›์œผ๋ฉด ํ˜ผ์žก ํšŒํ”ผ ๋‹จ๊ณ„๋กœ ์ „ํ™˜.

# ํ˜ผ์žก ์ œ์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ†ตํ•ฉ ๋™์ž‘

  • ์ดˆ๊ธฐ ์ƒํƒœ: Slow Start๋กœ ์‹œ์ž‘ํ•˜์—ฌ ํ˜ผ์žก ์œˆ๋„์šฐ๋ฅผ ์ง€์ˆ˜์ (^N)์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.
  • ์ž„๊ณ„๊ฐ’ ๋„๋‹ฌ: ํ˜ผ์žก ์œˆ๋„์šฐ๊ฐ€ ssthresh์— ๋„๋‹ฌํ•˜๋ฉด Congestion Avoidance๋กœ ์ „ํ™˜ํ•˜์—ฌ ํ˜ผ์žก ์œˆ๋„์šฐ๋ฅผ ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.
  • ํŒจํ‚ท ์†์‹ค ๊ฐ์ง€: ํƒ€์ž„์•„์›ƒ์ด ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ์ค‘๋ณต ACK์„ ํ†ตํ•ด ํŒจํ‚ท ์†์‹ค์ด ๊ฐ์ง€๋˜๋ฉด, ssthresh๋ฅผ ํ˜„์žฌ ํ˜ผ์žก ์œˆ๋„์šฐ์˜ ์ ˆ๋ฐ˜์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ํ˜ผ์žก ์œˆ๋„์šฐ๋ฅผ 1 MSS๋กœ ์ค„์ธ๋‹ค.
  • ๋น ๋ฅธ ์žฌ์ „์†ก ๋ฐ ํšŒ๋ณต: Fast Retransmit(๋น ๋ฅธ ์žฌ์ „์†ก)์™€ Fast Recovery(๋น ๋ฅธ ํšŒ๋ณต)๋ฅผ ํ†ตํ•ด ์†์‹ค๋œ ํŒจํ‚ท์„ ์‹ ์†ํžˆ ์žฌ์ „์†กํ•˜๊ณ  ํ˜ผ์žก ์œˆ๋„์šฐ๋ฅผ ์กฐ์ •ํ•œ๋‹ค.
HTTP์™€ HTTPS์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

๋„คํŠธ์›Œํฌ ์ƒ์˜ ์žฅ์น˜์˜ ๊ณ ์œ ํ•œ ์ฃผ์†Œ๋กœ, IPv4๋Š” 32๋น„ํŠธ ์ˆซ์ž (์˜ˆ: 192.168.1.1), IPv6๋Š” 128๋น„ํŠธ ์ˆซ์ž๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

๋ณด์•ˆ์ˆ˜์ค€๊ณผ ๋ฐ์ดํ„ฐ ์ „์†ก๋ฐฉ์‹์—์„œ ์ฐจ์ด๋ฅผ ๊ฐ–๋Š”๋‹ค. 

 

  • ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”: HTTP๋Š” ํ‰๋ฌธ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜์ง€๋งŒ, HTTPS๋Š” SSL/TLS๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•ด์„œ ์ „์†ก
  • ํฌํŠธ ๋ฒˆํ˜ธ: HTTP๋Š” 80๋ฒˆ, HTTPS๋Š” 443๋ฒˆ
  • ๋ณด์•ˆ ์ธ์ฆ์„œ: HTTPS๋Š” SSL/TLS ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์˜ ์‹ ์›์„ ํ™•์ธํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•จ
  • ๋ณด์•ˆ ์ˆ˜์ค€: HTTPS๋Š” ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ, ๋„์ฒญ, ๋ฐ์ดํ„ฐ ๋ณ€์กฐ ๋“ฑ์„ ๋ฐฉ์ง€ํ•˜์—ฌ ๋†’์€ ๋ณด์•ˆ์„ ์ œ๊ณตํ•œ๋‹ค.

 

IPv4์™€ IPv6์˜ ์ฃผ์š” ์ฐจ์ด์ ๊ณผ IPv6๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๋Š”?

 

  • IPv4์™€ IPv6์˜ ์ฐจ์ด์ :
    • ์ฃผ์†Œ ๊ธธ์ด์™€ ํ˜•์‹, ์ฃผ์†Œ ํ‘œํ˜„ ๋ฐฉ์‹, ํ—ค๋” ๊ตฌ์กฐ, ์ฃผ์†Œ ํ• ๋‹น ๋ฐฉ์‹, NAT ์‚ฌ์šฉ, ๋ณด์•ˆ ์ˆ˜์ค€ ๋“ฑ์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.
  • IPv6๊ฐ€ ํ•„์š”ํ•œ ์ด์œ :
    • ์ฃผ์†Œ ๊ณ ๊ฐˆ ๋ฌธ์ œ ํ•ด๊ฒฐ, ๋„คํŠธ์›Œํฌ ํšจ์œจ์„ฑ ํ–ฅ์ƒ(ํ—ค๋”๋‹จ์ˆœํ™”๋กœ ๋ผ์šฐํ„ฐ ๋ถ€๋‹ด ์ค„์ด๊ณ  ์ฒ˜๋ฆฌ์†๋„ ํ–ฅ์ƒ), ๋ณด์•ˆ ๊ฐ•ํ™”(IPsec ๊ธฐ๋ณธ์ง€์›), ์ด๋™์„ฑ ๋ฐ ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ์ง€์›, ๋ฏธ๋ž˜ ๊ธฐ์ˆ  ์ง€์›(IoT์žฅ์น˜๋“ค์ด IP์ฃผ์†Œ ์š”๊ตฌํ•˜๋Š”๋ฐ ์ด๊ฑฐ IPv4๋กœ ๊ฐ๋‹น ๋ชปํ•จ) ๋“ฑ์˜ ์ด์œ ๋กœ IPv6๋กœ์˜ ์ „ํ™˜์ด ํ•„์š”ํ•˜๋‹ค.

::์ถœ์ฒ˜::

https://github.com/VSFe/Tech-Interview?tab=readme-ov-file

https://github.com/WooVictory/Ready-For-Tech-Interview

https://github.com/gyoogle/tech-interview-for-developer

https://github.com/JaeYeopHan/Interview_Question_for_Beginner

๋„์›€์ด ๋๋‹ค๋ฉด ๋Œ“๊ธ€์ด๋‚˜ ๊ณต๊ฐ ๋ฒ„ํŠผ ํ•œ ๋ฒˆ์”ฉ ๋ˆ„๋ฅด๊ณ  ๊ฐ€์ฃผ์„ธ์š”! ๋กœ๊ทธ์ธ ์•ˆํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค ^_^

 

๋ฐ˜์‘ํ˜•
COMMENT