๐ŸŒŸ ๋„คํŠธ์›Œํฌ ์ •๋ฆฌ ๐ŸŒŸ

eeeยท2025๋…„ 4์›” 29์ผ

๋„คํŠธ์›Œํฌ ๊ณ„์ธต

OSI 7๊ณ„์ธต

๋„คํŠธ์›Œํฌ ํ†ต์‹ ์ด ์ด๋ฃจ์–ด์ง€๋Š” ๊ณผ์ •์„ 7๋‹จ๊ณ„๋กœ ๋‚˜๋ˆˆ ๋„คํŠธ์›Œํฌ ํ‘œ์ค€ ๋ชจ๋ธ

[7] ์‘์šฉ๊ณ„์ธต: HTTP ๋“ฑ์˜ ํ”„๋กœํ† ์ฝœ์„ ํ”„๋กœ๊ทธ๋žจ์˜ UI ํ†ตํ•ด ์ œ๊ณต
[6] ํ‘œํ˜„๊ณ„์ธต: ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์ค€ํ™”๋œ ํ˜•์‹์œผ๋กœ ๋ณ€๊ฒฝ
[5] ์„ธ์…˜๊ณ„์ธต: ์„ธ์…˜ ์œ ์ง€ ๋ฐ ํ•ด์ œ ๋“ฑ ํ†ต์‹  ์ œ์–ด์™€ ๋™๊ธฐํ™” ์ง„ํ–‰
[4] ์ „์†ก๊ณ„์ธต: TCP/UDP์™€ ๊ฐ™์€ ์ „์†ก๋ฐฉ์‹๊ณผ ํฌํŠธ๋ฒˆํ˜ธ ๊ฒฐ์ •
[3] ๋„คํŠธ์›Œํฌ ๊ณ„์ธต: ์ตœ์  ๊ฒฝ๋กœ ์„ ํƒํ•˜๋Š” ๋ผ์šฐํŒ… ์ˆ˜ํ–‰
[2] ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต: ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๊ด€๋ฆฌ, ๋ฐ์ดํ„ฐ์˜ ์˜ค๋ฅ˜ ๊ฒ€์ถœ ๋ฐ ๋ณต๊ตฌ ์ˆ˜ํ–‰
[1] ๋ฌผ๋ฆฌ๊ณ„์ธต : ๋ฐ์ดํ„ฐ๋ฅผ ๋น„ํŠธ ๋‹จ์œ„์˜ 0๊ณผ 1๋กœ ๋ณ€ํ™˜ ํ›„ ์ „์†ก/์ „๊ธฐ ์‹ ํ˜ธ๋ฅผ ๋ฐ์ดํ„ฐ๋กœ ๋ณต์›

๊ฐ ๊ณ„์ธต์€ ๋…๋ฆฝ์ ์œผ๋กœ ๋™์ž‘

  • ๋ฐ์ดํ„ฐ ์บก์Аํ™”: ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์‹ ํ• ๋•Œ ๊ฐ ๊ณ„์ธต์—์„œ ํ•„์š” ์ •๋ณด ์ถ”๊ฐ€ํ•ด ๋ฐ์ดํ„ฐ ๊ฐ€๊ณต โ†’ ํ—ค๋”์™€ ํŠธ๋ ˆ์ผ๋Ÿฌ ๋ถ™์ž„ โ†’ ์ˆ˜์‹ ๋ถ€์˜ ๊ฐ™์€ ๊ณ„์ธต์—์„œ ๋ฐ์ดํ„ฐ ํ˜ธํ™˜์„ฑ ๋†’์ด๊ธฐ ์œ„ํ•จ
  • ๋ฐ์ดํ„ฐ ์—ญ์บก์Аํ™”: ๋ฐ›์€ ๋ฐ์ดํ„ฐ์—์„œ ํ—ค๋”์™€ ํŠธ๋ ˆ์ผ๋Ÿฌ ๋ถ„์„ํ•ด ์ œ๊ฑฐ

TCP/IP 4๊ณ„์ธต

TCP/IP: ์ธํ„ฐ๋„ท์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ

  • TCP: ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆˆ ๋‹จ์œ„์ธ ํŒจํ‚ท์˜ ์ „๋‹ฌ ์—ฌ๋ถ€์™€ ์ „์†ก ์ˆœ์„œ ๋ณด์žฅํ•˜๋Š” ํ†ต์‹  ๋ฐฉ์‹
  • IP: ํŒจํ‚ท์„ ๋น ๋ฅด๊ฒŒ ๋ณด๋‚ด๊ธฐ ์œ„ํ•œ ํ†ต์‹  ๋ฐฉ์‹

TCP/IP 4๊ณ„์ธต: OSI 7๊ณ„์ธต์„ ๋‹จ์ˆœํ™” ํ•œ ๊ฒƒ

[4] ์‘์šฉ ๊ณ„์ธต: ์‚ฌ์šฉ์ž์™€ ์†Œํ”„ํŠธ์›จ์–ด ์—ฐ๊ฒฐ, HTTP/HTTPS/DNS
[3] ์ „์†ก ๊ณ„์ธต: ๋ฐ์ดํ„ฐ ์‹ ๋ขฐ์„ฑ ๋ณด์žฅ, ํฌํŠธ๋ฒˆํ˜ธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ ์ ˆํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์ „๋‹ฌ, TCP/UDP, ์ „์†ก ๊ณ„์ธต์˜ ๋ฐ์ดํ„ฐ ๋‹จ์œ„๋Š” ์„ธ๊ทธ๋จผํŠธ
[2] ์ธํ„ฐ๋„ท ๊ณ„์ธต: ๋ฐ์ดํ„ฐ๋ฅผ ์ตœ์ข… ๋ชฉ์ ์ง€๊นŒ์ง€ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ, IP๋Š” ๋ฐ์ดํ„ฐ๊ทธ๋žจ ๋‹จ์œ„๋กœ ํŒจํ‚ท ์ „๋‹ฌ์„ ๋‹ด๋‹นํ•˜๋ฉฐ ๋ผ์šฐํŒ…๊ณผ ์ฃผ์†Œ ์ง€์ • ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰
[1] ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์ธต: ๋ฐ์ดํ„ฐ๋ฅผ ์ „๊ธฐ ์‹ ํ˜ธ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  MAC ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•ด ๊ธฐ๊ธฐ์— ๋ฐ์ดํ„ฐ ์ „๋‹ฌ

TCP์™€ UDP

TCP

  • ์†ก์‹ ๋ถ€์™€ ์ˆ˜์‹ ๋ถ€์˜ ์—ฐ๊ฒฐ์„ ํ™•์ธํ•˜๋Š” ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค
  • ๊ฐ€์ƒ ํšŒ์„  ๋ฐฉ์‹
    • ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์ „, ํŒจํ‚ท์„ ์ „์†กํ•  ๊ฒฝ๋กœ์ธ ๊ฐ€์ƒ ํšŒ์„ ์„ ์„ค์ •ํ•ด ๋ชจ๋“  ํŒจํ‚ท์„ ๊ฐ™์€ ๊ฒฝ๋กœ๋กœ ์ „์†ก
  • ํŒจํ‚ท์˜ ์ „์†ก ์ˆœ์„œ ๋ณด์žฅ
  • ํŒจํ‚ท์˜ ์ˆ˜์‹  ์—ฌ๋ถ€ ํ™•์ธ
  • ๋ฐ์ดํ„ฐ ์†์‹ค ์—†์Œ ๋ณด์žฅ โ†’ ์‹ ๋ขฐ์„ฑ ๋†’์Œ
  • ๋ฐ์ดํ„ฐ์˜ ์†ก์ˆ˜์‹  ์†๋„ ๋А๋ฆผ
  • ์†ก์‹ ๋ถ€์™€ ์ˆ˜์‹ ๋ถ€์˜ 1:1 ํ†ต์‹ 

TCP ํ•ธ๋“œ์…ฐ์ดํ‚น

์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค ์ง€์›์„ ์œ„ํ•ด ์†ก์‹ ๋ถ€์™€ ์ˆ˜์‹ ๋ถ€๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ณผ์ •
์—ฐ๊ฒฐ์„ ์‹œ์ž‘ํ•  ๋•Œ๋Š” 3-way ํ•ธ๋“œ์…ฐ์ดํ‚น, ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•  ๋•Œ๋Š” 4-way ํ•ธ๋“œ์…ฐ์ดํ‚น ์ˆ˜ํ–‰
์ด ๊ณผ์ •์—์„œ ์—ฐ๊ฒฐ ์ œ์–ด ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ํ”Œ๋ž˜๊ทธ ๊ฐ’์„ ์ฃผ๊ณ ๋ฐ›์Œ

  • SYN(synchronization): ์—ฐ๊ฒฐ ์ƒ์„ฑ ์‹œ ์‚ฌ์šฉ
  • FIN(finish): ์—ฐ๊ฒฐ ๋Š์„ ๋•Œ ์‚ฌ์šฉ
  • ACK(acknowledgement): ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋ฉด ์ˆ˜์‹ ์ž๊ฐ€ ๋ฐ›์•˜์Œ์„ ์•Œ๋ ค์ค„ ๋•Œ ์‚ฌ์šฉ
  • RST(reset): ์—ฐ๊ฒฐ ์žฌ์„ค์ • ์‹œ ์‚ฌ์šฉ
  • PSH(push): ๋น ๋ฅธ ์‘๋‹ต์ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ฆ‰์‹œ ์ „์†ก ์‹œ ์‚ฌ์šฉ
  • URG(urgent): ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ ์‚ฌ์šฉ

3-way ํ•ธ๋“œ์…ฐ์ดํ‚น

๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์ „, ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž์˜ ์„ธ์…˜์„ ์ˆ˜๋ฆฝํ•˜๋Š” ๊ณผ์ •

  1. ์†ก์‹ ๋ถ€ โ€” SYN(N) โ€”> ์ˆ˜์‹ ๋ถ€
    • ์†ก์‹ ๋ถ€๋Š” ์‘๋‹ต์ด ์˜ค๊ธฐ ์ „๊นŒ์ง€ SYN_SENT ์ƒํƒœ
  2. ์†ก์‹ ๋ถ€ <โ€” ACK(N+1) + SYN(M) โ€” ์ˆ˜์‹ ๋ถ€
    • ์ˆ˜์‹ ๋ถ€๋Š” SYN_RECEIVED ์ƒํƒœ
    • ์†ก์‹ ๋ถ€๊ฐ€ ACK+SYN ๋ฉ”์„ธ์ง€ ๋ฐ›์œผ๋ฉด ESTABLISHED ์ƒํƒœ ๋จ
  3. ์†ก์‹ ๋ถ€ โ€” ACK(M+1) โ€”> ์ˆ˜์‹ ๋ถ€
    • ์ˆ˜์‹ ๋ถ€๋Š” ๋ฉ”์„ธ์ง€ ๋ฐ›๊ณ  ESTABLISHED ์ƒํƒœ ๋จ

4-way ํ•ธ๋“œ์…ฐ์ดํ‚น

TDP ์—ฐ๊ฒฐ ํ•ด์ œํ•˜๊ธฐ ์œ„ํ•œ ๊ณผ์ •

  1. ์†ก์‹ ๋ถ€ โ€” FIN โ€”> ์ˆ˜์‹ ๋ถ€
    • ์†ก์‹ ๋ถ€๋Š” FIN_WAIT1 ์ƒํƒœ
  2. ์†ก์‹ ๋ถ€ <โ€” ACK โ€” ์ˆ˜์‹ ๋ถ€
    • ์ˆ˜์‹ ๋ถ€๋Š” CLOSE_WAIT ์ƒํƒœ + ์—ฐ๊ฒฐ ์ข…๋ฃŒ ์œ„ํ•œ ์ž‘์—… ์‹œ์ž‘
    • ์†ก์‹ ๋ถ€๋Š” ๋ฉ”์„ธ์ง€ ๋ฐ›๊ณ  FIN_WAIT2 ์ƒํƒœ
  3. ์†ก์‹ ๋ถ€ <โ€” FIN โ€” ์ˆ˜์‹ ๋ถ€
    • ์ˆ˜์‹ ๋ถ€๋Š” LAST_ACK ์ƒํƒœ
  4. ์†ก์‹ ๋ถ€ โ€” ACK โ€”> ์ˆ˜์‹ ๋ถ€
    • ์†ก์‹ ๋ถ€๋Š” TIME_WAIT ์ƒํƒœ โ†’ ์ผ์ • ์‹œ๊ฐ„ ์ง€๋‚˜๋ฉด CLOSED ์ƒํƒœ ๋จ
      • FIN ๋ฉ”์„ธ์ง€ ์ „์— ๋ณด๋‚ธ ํŒจํ‚ท์ด FIN ๋ฉ”์„ธ์ง€ ๋ณด๋‹ค ์ง€์—ฐ๋˜์–ด ๋ฐœ์ƒํ•˜๋Š” ํŒจํ‚ท ์œ ์‹ค ๋Œ€๋น„
      • ์ˆ˜์‹ ๋ถ€์— ACK ๋ฉ”์„ธ์ง€ ์ „๋‹ฌ๋˜์ง€ ์•Š์•„ ์—ฐ๊ฒฐ ํ•ด์ œ ์ด๋ค„์ง€์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋Œ€๋น„
    • ์ˆ˜์‹ ๋ถ€๋Š” ๋ฉ”์„ธ์ง€ ๋ฐ›๊ณ  CLOSED ์ƒํƒœ

TCP Keep Alive

์„ธ์…˜์ด ์—ฐ๊ฒฐ๋˜๋ฉด ์ด๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ผ์ • ์‹œ๊ฐ„ ๊ฒฝ๊ณผ ํ›„ TCP Keep Alive ํŒจํ‚ท ๋˜์ ธ ์œ ์ง€ ์ƒํƒœ ํ™•์ธ
์—ฐ๊ฒฐ ์œ ์ง€ ์›ํ•˜๋Š” ์ชฝ์—์„œ ๋ณด๋ƒ„ / ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ์‹œ๊ฐ„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์ธก์ •, ์‘๋‹ต ๋ฐ›์ง€ ๋ชปํ•˜๋ฉด ์—ฐ๊ฒฐ ์ข…๋ฃŒ
โ†’ ๋™์ผํ•œ ์†ก์‹ ๋ถ€๋กœ๋ถ€ํ„ฐ ์žฌ์š”์ฒญ ์˜ค๋Š” ๊ฒฝ์šฐ ๋ถˆํ•„์š”ํ•œ 3-way ํ•ธ๋“œ์…ฐ์ดํ‚น ์ค„์ž„
โ†’ FIN๋ฉ”์„ธ์ง€ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ถˆํ•„์š”ํ•œ ์—ฐ๊ฒฐ(์ข€๋น„์ปค๋„ฅ์…˜) ๋ฐฉ์ง€

TCP ์ œ์–ด ๋ฐฉ๋ฒ•

ํ๋ฆ„์ œ์–ด

๋ฐ์ดํ„ฐ ์†ก์‹ ๋ถ€์™€ ์ˆ˜์‹ ๋ถ€์—์„œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„ ์ฐจ์ด ๋•Œ๋ฌธ์— ์ƒ๊ธฐ๋Š” ๋ฐ์ดํ„ฐ ์†์‹ค ๋ฐฉ์ง€

  1. ์ •์ง€-๋Œ€๊ธฐ(stop-wait)
  • ๋ฐ์ดํ„ฐ ๋ณด๋‚ธ ํ›„ ACK ๋ฉ”์„ธ์ง€ ๋ฐ›์„ ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ๋ฐ์ดํ„ฐ ๋ณด๋‚ด์ง€ ์•Š๊ณ  ๊ธฐ๋‹ค๋ฆผ
  • ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ACK ๋ฉ”์„ธ์ง€ ๋ฐ›์ง€ ๋ชปํ•˜๋ฉด ํŒจํ‚ท ์žฌ์ „์†ก
  • ์‹œ๊ฐ„ ๋ฉด์—์„œ ๋น„ํšจ์œจ์ 
  1. ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ(sliding window)
  • ์ˆ˜์‹ ๋ถ€์—์„œ ์„ค์ •ํ•œ ์œˆ๋„์šฐ ํฌ๊ธฐ๋งŒํผ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๋™์  ์ œ์–ด
  • ์œˆ๋„์šฐ ํฌ๊ธฐ: ์‘๋‹ต ๋ฐ›์ง€ ์•Š๊ณ  ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜, 3-way ํ•ธ๋“œ์…ฐ์ดํ‚น ๊ณผ์ •์—์„œ ์ •ํ•ด์ง
  • ์œˆ๋„์šฐ ํฌ๊ธฐ N์ผ๋•Œ, n๋ฒˆ๋ถ€ํ„ฐ n+N-1๋ฒˆ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ์†ก์‹ ํ•œ ์ƒํƒœ์—์„œ n๋ฒˆ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ACK ๋ฉ”์„ธ์ง€ ๋ฐ›์œผ๋ฉด n+N๋ฒˆ ๋ฐ์ดํ„ฐ ๋ณด๋‚ผ์ˆ˜ ์žˆ์Œ

ํ˜ผ์žก์ œ์–ด

์†ก์‹ ๋ถ€์˜ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ์†๋„์™€ ๋„คํŠธ์›Œํฌ ์†๋„ ์ฐจ์ด๋กœ ๋ฐ์ดํ„ฐ ์†์‹ค ๋ฐœ์ƒ ๋ฐฉ์ง€
ํ˜ผ์žก์€ ๋„คํŠธ์›Œํฌ์— ํŒจํ‚ท ์ˆ˜๊ฐ€ ๊ณผ๋„ํ•˜๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š” ์ฆ์ƒ์„ ์˜๋ฏธํ•˜๋ฉฐ, TCP๋Š” ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ ์กฐ์ ˆํ•ด ํ˜ผ์žก์— ๋Œ€์‘

  1. AIMD(Additive Increase Multiplicative Decrease)
  • ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ์‹œ ํ•ฉ ์ฆ๊ฐ€ ๋ฐฉ์‹์œผ๋กœ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ ๋”ํ•ด๊ฐ€๋ฉฐ ํ‚ค์›€(์„ ํ˜• ์ฆ๊ฐ€)
  • ๋ฐ์ดํ„ฐ ์†์‹ค ๋ฐœ์ƒ ์‹œ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ๊ณฑ ๊ฐ์†Œ ๋ฐฉ์‹์„ ์ ์šฉํ•ด ๋ฐฐ์ˆ˜ ๋‹จ์œ„๋กœ ์ค„์ž„(์ง€์ˆ˜ ๊ฐ์†Œ)
  • ๋ฐ์ดํ„ฐ ์œ ์‹ค ๋ฐœ์ƒํ•˜๋ฉด ์ฆ๊ฐ€ํญ ๋Œ€๋น„ ๊ฐ์†Œํญ์ด ํฌ๊ธฐ ๋•Œ๋ฌธ์— ๋„คํŠธ์›Œํฌ ๋„“๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ๊นŒ์ง€ ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆผ
  1. ๋А๋ฆฐ ์‹œ์ž‘(slow start)
  • ์œˆ๋„์šฐ ํฌ๊ธฐ๊ฐ€ 1์ธ ์ƒํƒœ์—์„œ ์‹œ์ž‘ํ•ด ACK ์ˆ˜์‹ ํ•  ๋•Œ๋งˆ๋‹ค ์œˆ๋„์šฐ ํฌ๊ธฐ ์ง€์ˆ˜ ํ•จ์ˆ˜ ํ˜•ํƒœ๋กœ ์ฆ๊ฐ€
  • ํ˜ผ์žก ๋ฐœ์ƒ ์‹œ ์œˆ๋„์šฐ ํฌ๊ธฐ 1๋กœ ์ค„์ž„
  1. ํ˜ผ์žก ํšŒํ”ผ(congestion avoidance)
  • ์œˆ๋„์šฐ ํฌ๊ธฐ์— ๋Œ€ํ•œ ์ž„๊ณ„์  ์ •ํ•˜๋Š” ๋ฐฉ์‹
  • ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ง€์ˆ˜ ํ•จ์ˆ˜ ํ˜•ํƒœ๋กœ ์ฆ๊ฐ€ ์‹œํ‚ค๋‹ค๊ฐ€, ์œˆ๋„์šฐ ํฌ๊ธฐ๊ฐ€ ์ž„๊ณ„์ ์— ๋„๋‹ฌํ•˜๋ฉด ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๊ฒŒ ํ•จ
  • ACK ๋ฉ”์„ธ์ง€ ๋ฐ›์ง€ ๋ชปํ•ด ํƒ€์ž„์•„์›ƒ ๋ฐœ์ƒํ•˜๋ฉด ์œˆ๋„์šฐ ํฌ๊ธฐ์˜ ์ ˆ๋ฐ˜์„ ์ž„๊ณ„์ ์œผ๋กœ ์„ค์ •, ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ
  1. ๋น ๋ฅธ ํšŒ๋ณต(fast recovery)
  • ํ˜ผ์žก ๋ฐœ์ƒ ์‹œ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์ธ ํ›„ ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹
  • ํ˜ผ์žก์ด ์ฒ˜์Œ ๋ฐœ์ƒํ•˜๋ฉด AIMD ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘
  1. ๋น ๋ฅธ ์žฌ์ „์†ก(fast retransmit)
  • Duplicate ACK๊ฐ€ 3๋ฒˆ ๋ฐœ์ƒํ•˜๋ฉด ํ•ด๋‹น ์‹œ์ ์˜ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ 1/2๋กœ ์ค„์ž„
  • Duplicate ACK: ํŒจํ‚ท์ด ์ˆœ์„œ๋Œ€๋กœ ๋„์ฐฉํ•˜์ง€ ์•Š์•„ ๋ฐ›์•„์•ผ ํ•  ์ฐจ๋ก€์˜ ํŒจํ‚ท์„ ACK ๋ฉ”์„ธ์ง€์™€ ํ•จ๊ป˜ ์š”์ฒญ, 3๋ฒˆ ๋ฐœ์ƒ ์‹œ ํ˜ผ์žก์ด ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ํŒ๋‹จ

TCP ํ˜ผ์žก ์ œ์–ด ์ •์ฑ…

  1. TCP Tahoe(ํƒ€ํ˜ธ)
  • ๋А๋ฆฐ ์‹œ์ž‘ ์‚ฌ์šฉํ•ด ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ง€์ˆ˜์ ์œผ๋กœ ํ‚ค์›€, ์ž„๊ณ„์  ๋„˜์–ด๊ฐ€๋ฉด AIMD ๋ฐฉ์‹์œผ๋กœ ์ „ํ™˜(์„ ํ˜• ์ฆ๊ฐ€)
  • ํ˜ผ์žก ๋ฐœ์ƒ ์‹œ ํ˜ผ์žก์ด ๋ฐœ์ƒํ•œ ์œˆ๋„์šฐ ํฌ๊ธฐ์˜ ์ ˆ๋ฐ˜์„ ์ž„๊ณ„์ (ssthresh)์œผ๋กœ ์„ค์ •, ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ 1๋กœ ์ดˆ๊ธฐํ™”
  1. TCP Reno(๋ ˆ๋…ธ)
  • ์ดˆ๋ฐ˜์—๋Š” ๋А๋ฆฐ ์‹œ์ž‘ ์‚ฌ์šฉ, ์ž„๊ณ„์  ๋„˜์–ด๊ฐ€๋ฉด AIMD ๋ฐฉ์‹์œผ๋กœ ์ „ํ™˜(์„ ํ˜• ์ฆ๊ฐ€)
  • 3 Duplicate ACK ๋ฐœ์ƒ ์‹œ: ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์ด๊ณ , ์ค„์ธ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ž„๊ณ„์ (ssthresh)์œผ๋กœ ์„ค์ •
  • ํƒ€์ž„์•„์›ƒ ๋ฐœ์ƒ ์‹œ: ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ 1๋กœ ์ดˆ๊ธฐํ™”, ์ž„๊ณ„์ (ssthresh) ๊ฐ’ ๋ณ€๊ฒฝ X

์˜ค๋ฅ˜ ์ œ์–ด

๋ฐ์ดํ„ฐ์— ์˜ค๋ฅ˜ ๋˜๋Š” ์œ ์‹ค์ด ๋ฐœ์ƒํ•  ๋•Œ ๋ฐ์ดํ„ฐ์˜ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์˜ค๋ฅ˜๋ฅผ ์ œ์–ดํ•˜๋Š” ๋ฐฉ์‹

  • ๋ฐ์ดํ„ฐ์— ์˜ค๋ฅ˜ ๋˜๋Š” ์œ ์‹ค์ด ๋ฐœ์ƒํ•จ์„ ์ธ์ง€ํ•˜๋Š” ๊ฒฝ์šฐ
    • ์ˆ˜์‹ ๋ถ€์—์„œ ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ ๋ฐ›์•˜๋‹ค๋Š” NAK ๋ฉ”์„ธ์ง€ ๋ณด๋‚ธ ๊ฒฝ์šฐ
    • 3 Duplicate ACK
    • ์ˆ˜์‹ ๋ถ€๋กœ๋ถ€ํ„ฐ ACK ๋ฉ”์„ธ์ง€ ๋ฐ›์ง€ ๋ชปํ•ด ํƒ€์ž„์•„์›ƒ ๋ฐœ์ƒ
  1. ์ •์ง€-๋Œ€๊ธฐ
  • ํƒ€์ž„์•„์›ƒ ๋ฐœ์ƒ ์‹œ ํ•ด๋‹น ํŒจํ‚ท ๋‹ค์‹œ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹
  1. Go-Back-N ARQ
  • ๋ˆ„๋ฝ ๋ฐ์ดํ„ฐ ์žˆ์œผ๋ฉด ์†ก์‹ ๋ถ€์—์„œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ ์ดํ›„ ๋ชจ๋“  ํŒจํ‚ท ์žฌ์ „์†ก
  • 0~2 ํŒจํ‚ท์„ ๋ณด๋‚ด๊ณ  ACK 3 ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ›์œผ๋ฉด ํŒจํ‚ท 3๋ถ€ํ„ฐ ๋‹ค์‹œ ๋ณด๋ƒ„ / 3~5 ํŒจํ‚ท ๋ณด๋‚ด๊ณ  ACK 4 ๋ฉ”์„ธ์ง€ ๋ฐ›์œผ๋ฉด ํŒจํ‚ท4, 5 ์žฌ์ „์†ก
  1. Selective-Repeat ARQ
  • ๋ˆ„๋ฝ ๋ฐ์ดํ„ฐ ์žˆ์œผ๋ฉด ์ˆ˜์‹ ๋ถ€์—์„œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋งŒ ์žฌ์ „์†ก ์š”์ฒญ
  • 0~2 ํŒจํ‚ท ์ž˜ ์ˆ˜์‹ ํ•˜๋ฉด ACK 3 ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋ƒ„ / 3~5 ํŒจํ‚ท ๋ณด๋ƒˆ์„๋•Œ ํŒจํ‚ท 4 ๋ฐ›์ง€ ๋ชปํ–ˆ๋‹ค๋ฉด ํŒจํ‚ท 4 ๋ณด๋‚ด๋ผ๋Š” ์˜๋ฏธ๋กœ ACK 4 ๋ฉ”์„ธ์ง€ ๋ณด๋ƒ„ / ํŒจํ‚ท 4 ๋ฐ›์œผ๋ฉด, ํŒจํ‚ท 6 ์š”์ฒญ
  • ํŠน์ • ํŒจํ‚ท๋งŒ์„ ์ „์†กํ•œ๋‹ค๋Š” ํšจ์œจ์„ฑ์ด ์žˆ์ง€๋งŒ, ๋ฐ›์€ ํŒจํ‚ท์„ ์žฌ์ •๋ ฌํ•˜๋Š” ๋กœ์ง์ด ์ถ”๊ฐ€์ ์œผ๋กœ ํ•„์š”

UDP

  • ์†ก์‹ ๋ถ€์™€ ์ˆ˜์‹ ๋ถ€์˜ ์—ฐ๊ฒฐ ๋ณด์žฅ๋˜์ง€ ์•Š๋Š” ๋น„์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค
  • ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹
    • ํŒจํ‚ท๋งˆ๋‹ค ์ตœ์ ์˜ ๊ฒฝ๋กœ๋กœ ์ „์†ก๋˜๋Š” ๋ฐฉ์‹
    • ๋ณด๋‚ธ ํŒจํ‚ท์˜ ์ˆœ์„œ์™€ ๋„์ฐฉํ•˜๋Š” ํŒจํ‚ท์˜ ์ˆœ์„œ๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ
  • ํŒจํ‚ท์˜ ์ˆ˜์‹  ์—ฌ๋ถ€ ํ™•์ธํ•˜์ง€ ์•Š์Œ
  • 1:1, 1:N, N:N ํ†ต์‹ 
  • ๋ฐ์ดํ„ฐ์˜ ์‹ ๋ขฐ์„ฑ ๋‚ฎ์Œ
  • ๋ฐ์ดํ„ฐ์˜ ์ „์†ก ์†๋„ ๋น ๋ฆ„

UDP ์˜ค๋ฅ˜ ๊ฒ€์ถœ

  • ์ตœ์†Œํ•œ์˜ ์‹ ๋ขฐ์„ฑ ๋ณด์žฅ์„ ์œ„ํ•ด ์ฒดํฌ์„ฌ(checksum) ๋ฐฉ์‹์œผ๋กœ ์˜ค๋ฅ˜ ๊ฒ€์ถœ
  • ์ฒดํฌ์„ฌ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋”ํ•˜๊ณ , ์˜ค๋ฒ„ํ”Œ๋กœ๋˜๋Š” ์บ๋ฆฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ•ด๋‹น ์บ๋ฆฌ๋ฅผ ๋–ผ์„œ ๋ฐ์ดํ„ฐ์— ๋‹ค์‹œ ๋”ํ•œ ํ›„ 1์˜ ๋ณด์ˆ˜ ์ทจํ•ด ์ฒดํฌ์„ฌ ๋งŒ๋“ฆ
  • ์ฒดํฌ์„ฌ์„ ์ด์šฉํ•ด๋„ ์˜ค๋ฅ˜ 100% ๊ฒ€์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ์•„๋‹˜
  • ์„ ํƒ ์‚ฌํ•ญ์œผ๋กœ, ์†ก์‹ ๋ถ€์—์„œ ์ฒดํฌ์„ฌ ๊ฐ’์„ 0์œผ๋กœ ๋ณด๋‚ด๋ฉด ์ˆ˜์‹ ๋ถ€๋Š” ์ฒดํฌ์„ฌ ๊ณ„์‚ฐํ•˜์ง€ ์•Š์Œ

HTTP

HTTP

์ธํ„ฐ๋„ท์ƒ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ

๋น„์—ฐ๊ฒฐ์„ฑ

ํด๋ผ์ด์–ธํŠธ์—์„œ ์š”์ฒญ ๋ณด๋‚ธ ํ›„ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์‘๋‹ต ๋ฐ›์œผ๋ฉด ์—ฐ๊ฒฐ ๋Š์Œ
์—ฐ๊ฒฐ ์œ ์ง€ํ•˜์ง€ ์•Š์Œ์œผ๋กœ์จ ์ž์› ์•„๋‚Œ
์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ธฐ์–ตํ•  ์ˆ˜ ์—†์–ด ๋™์ผ ํด๋ผ์ด์–ธํŠธ์˜ ์—ฐ์†์ ์ธ ์š”์ฒญ์— ๋Œ€ํ•ด ์—ฐ๊ฒฐ, ์—ฐ๊ฒฐ ํ•ด์ œ ๋ฐ˜๋ณต โ†’ ์ž์› ๋‚ญ๋น„
โ†’ ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ์—ฐ๊ฒฐ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก HTTP Keep Alive ์‚ฌ์šฉ
โ†’ ๋งˆ์ง€๋ง‰ ์‘๋‹ต ์ดํ›„ ์ผ์ • ์‹œ๊ฐ„๋™์•ˆ ์—ฐ๊ฒฐ ์œ ์ง€ํ•ด ๋™์ผ ํด๋ผ์ด์–ธํŠธ์˜ ์žฌ์š”์ฒญ์— ๋Œ€ํ•ด ์—ฐ๊ฒฐ ๊ณผ์ • ์ƒ๋žต

๋ฌด์ƒํƒœ

์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ ์ €์žฅํ•˜์ง€ ์•Š์Œ
ํด๋ผ์ด์–ธํŠธ๋Š” ์š”์ฒญ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ  ์žˆ๊ฑฐ๋‚˜, ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์š”์ฒญ ์‚ฌํ•ญ ๋ชจ๋‘ ์ €์žฅํ•ด์•ผํ•จ

  • ์ฟ ํ‚ค: ํด๋ผ์ด์–ธํŠธ ๋กœ์ปฌ์— ์ €์žฅ๋˜๋Š” ํ‚ค์™€ ๊ฐ’์ด ๋“ค์–ด ์žˆ๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ ํŒŒ์ผ
  • ์„ธ์…˜: ์„œ๋ฒ„์— ์ €์žฅ๋˜๋Š” ์—ฐ๊ฒฐ ๊ด€๋ จ ์ •๋ณด

์„œ๋ฒ„ ํ™•์žฅ์„ฑ์ด ๋†’์Œ, ์š”์ฒญ์— ์‘๋‹ตํ•˜๋Š” ์„œ๋ฒ„๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๋ฅผ ๊ณ„์† ํ™•์žฅํ•ด๋„ ๋จ

HTTP ๋ฉ”์„ธ์ง€

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ๊ณ ๋ฐ›๋Š” ์ •ํ˜•ํ™”๋œ ๋ฐ์ดํ„ฐ

  • request line: ์š”์ฒญ URI, ์š”์ฒญ ๋ฐฉ๋ฒ•, HTTP ๋ฒ„์ „ ๋“ฑ ํฌํ•จ
  • status line: ์š”์ฒญ์— ๋Œ€ํ•œ HTTP ์ƒํƒœ ์ฝ”๋“œ, HTTP ๋ฒ„์ „ ํฌํ•จ
  • header: ํ‚ค-๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ—ค๋” ํ•ญ๋ชฉ์œผ๋กœ ๊ตฌ์„ฑ
  • blank: ํ—ค๋”์˜ ๋์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋นˆ ์ค„, ํ—ค๋”์™€ ๋ฐ”๋”” ๊ตฌ๋ถ„
  • body: POST์ธ ๊ฒฝ์šฐ์—๋งŒ ๋ฐ”๋””๊ฐ€ ์žˆ๊ณ , ๊ทธ ์™ธ๋Š” ๋น„์–ด ์žˆ๋Š” ์ƒํƒœ๋กœ ์ „๋‹ฌ

HTTP ์ƒํƒœ์ฝ”๋“œ

  • 1xx: ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ ๋ฐ›์•„ ์ฒ˜๋ฆฌ ์ค‘
  • 2xx: ์š”์ฒญ ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ
    • 200: ์š”์ฒญ ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•จ
  • 3xx: ์š”์ฒญ ์ฒ˜๋ฆฌ ์œ„ํ•ด ์ถ”๊ธฐ ์ฒ˜๋ฆฌ ํ•„์š”
  • 4xx: ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜
    • 401: ์ธ์ฆ๋˜์ง€ ์•Š์Œ
    • 403: ์ ‘๊ทผ ์‹คํŒจ
    • 404: ํด๋ผ์ด์–ธํŠธ์—์„œ ์š”์ฒญํ•œ ์ž์› ์ฐพ์ง€ ๋ชปํ•จ
  • 5xx: ์„œ๋ฒ„ ์˜ค๋ฅ˜
    • 500: ์„œ๋ฒ„ ๋‚ด๋ถ€ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

HTTPS

๋ณด์•ˆ ๊ณ„์ธต์ธ SSL/TLS ์ด์šฉํ•ด HTTP์˜ ๋ณด์•ˆ ๊ฐ•ํ™”ํ•œ ์›น ํ†ต์‹  ํ”„๋กœํ† ์ฝœ

๋ฐ์ดํ„ฐ๋ฅผ ์†ก์‹ ํ•  ๋•Œ ๋ณด์•ˆ ๊ณ„์ธต์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•ด ์ „์†ก ๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌ, ์ˆ˜์‹ ํ•  ๋•Œ ๋ณด์•ˆ๊ณ„์ธต์—์„œ ๋ฐ์ดํ„ฐ ๋ฐ›์•„ ๋ณตํ˜ธํ™” ํ›„ ์‘์šฉ ๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌ

์•”ํ˜ธํ™” ๋ฐฉ์‹

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

์›นํŽ˜์ด์ง€ ์ ‘์† ๊ณผ์ •

  1. ์‚ฌ์šฉ์ž๊ฐ€ URL์„ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ž…๋ ฅํ•œ๋‹ค.
  2. ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์ž…๋ ฅํ•œ URL์„ ๋ฐ”ํƒ•์œผ๋กœ DNS ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  IP๋ฅผ ์š”์ฒญํ•œ๋‹ค.
  3. DNS ์„œ๋ฒ„๋Š” IP ์ฃผ์†Œ๋ฅผ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์‘๋‹ต์œผ๋กœ ์ œ๊ณตํ•œ๋‹ค.
  4. ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” DNS ์„œ๋ฒ„์—์„œ ๋ฐ›์€ IP๋ฅผ ํ†ตํ•ด ์›น ์„œ๋ฒ„์™€ TCP/IP ์—ฐ๊ฒฐ์„ ํ•˜๊ณ  HTTP ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.
  5. ์›น ์„œ๋ฒ„๋Š” ๋ฐ›์€ HTTP ์š”์ฒญ์— ์‘๋‹ตํ•œ๋‹ค. ์‘๋‹ต์€ ์›น ํŽ˜์ด์ง€์™€ ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ํฌํ•จํ•œ๋‹ค.
  6. ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฐ›์€ ์‘๋‹ต์„ ๋ฐ”ํƒ•์œผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

REST

HTTP ํ†ต์‹  ํ™œ์šฉ์„ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ์•„ํ‚คํ…์ฒ˜
URI๋กœ ์ž์›์„ ๋ช…์‹œํ•˜๊ณ  HTTP ๋ฉ”์„œ๋“œ๋กœ CRUD ์—ฐ์‚ฐ์„ ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜
HTTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋ณ„๋„ ์ธํ”„๋ผ ๊ตฌ์ถ• ํ•„์š” ์—†์Œ, HTTP ํ”„๋กœํ† ์ฝœ ๋”ฐ๋ฅด๋Š” ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

REST API

REST๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ API

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ URI๋กœ ์‹๋ณ„ํ•œ ์ž์›์— ๋Œ€ํ•ด HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด REST API๋กœ ์š”์ฒญ
  2. REST API๊ฐ€ HTTP ์š”์ฒญ ๋ฉ”์„ธ์ง€์— ์‹ค๋ ค ์„œ๋ฒ„์— ์ „๋‹ฌ๋จ
  3. ์„œ๋ฒ„์—์„œ๋Š” ์ˆ˜์‹ ํ•œ HTTP ์š”์ฒญ ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์š”์ฒญ ์‚ฌํ•ญ์„ ํ™•์ธ ํ›„ ์ฒ˜๋ฆฌ, HTTP ์‘๋‹ต ๋ฐ˜ํ™˜
  4. ์‘๋‹ต ๋ฉ”์„ธ์ง€๋Š” ์ž์›์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ JSON/XML ๋“ฑ์˜ ํ˜•ํƒœ๋กœ ํฌํ•จ, ํด๋ผ์ด์–ธํŠธ๋Š” ํ•ด๋‹น ํ˜•ํƒœ์˜ ์ •๋ณด ์ˆ˜์‹ 

HTTP ๋ฉ”์„œ๋“œ

  • POST: ๋ฐ์ดํ„ฐ ์ƒ์„ฑ(Create)
  • GET: ๋ฐ์ดํ„ฐ ์กฐํšŒ(Read)
  • PUT: ๋ฐ์ดํ„ฐ ๊ฐฑ์‹ (Update)
  • DELETE: ๋ฐ์ดํ„ฐ ์ œ๊ฑฐ(Delete)

0๊ฐœ์˜ ๋Œ“๊ธ€