Skip to content

Latest commit

ย 

History

History
376 lines (239 loc) ยท 23.1 KB

TCP_UDP_QUIC.md

File metadata and controls

376 lines (239 loc) ยท 23.1 KB

TCP & UDP + QUIC

TCP

ํ๋ฆ„์ œ์–ด

์˜ค๋ฅ˜์ œ์–ด

ํ˜ผ์žก์ œ์–ด

UDP

TCP vs UDP

QUIC

์ „์†ก ๊ณ„์ธต(Transport layer)

์ „์†ก ๊ณ„์ธต์€ ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ํ†ต์‹  ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ณ„์ธต์œผ๋กœ, ์‰ฝ๊ฒŒ ๋งํ•ด ๋ฐ์ดํ„ฐ์˜ ์ „๋‹ฌ์„ ๋‹ด๋‹นํ•œ๋‹ค.

์ด ๊ณ„์ธต์—์„œ๋Š” IP์— ์˜ํ•ด ์ „๋‹ฌ๋˜๋Š” ํŒจํ‚ท์˜ ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ  ์žฌ์ „์†ก ์š”๊ตฌ ๋“ฑ์˜ ์ œ์–ด๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค.

์ „์†ก ๊ณ„์ธต์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์—๋Š” TCP์™€ UDP๊ฐ€ ์žˆ๋‹ค.

TCP์™€ UDP๋Š” ์™œ ๋‚˜์˜ค๊ฒŒ ๋˜์—ˆ๋‚˜?

  1. IP์˜ ์—ญํ• ์€ Host to Host๋งŒ์„ ์ง€์›ํ•œ๋‹ค. ์žฅ์น˜์—์„œ ์žฅ์น˜๋กœ ์ด๋™์€ IP๋กœ ํ•ด๊ฒฐ๋˜์ง€๋งŒ, ํ•˜๋‚˜์˜ ์žฅ๋น„์•ˆ์—์„œ ์ˆ˜๋งŽ์€ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ํ†ต์‹ ์„ ํ•  ๊ฒฝ์šฐ์—๋Š” IP๋งŒ์œผ๋กœ๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.

  2. ๋˜ํ•œ IP์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ICMP์—์„œ ์•Œ๋ ค์ค€๋‹ค. ํ•˜์ง€๋งŒ ICMP๋Š” ์•Œ๋ ค์ฃผ๊ธฐ๋งŒ ํ•  ๋ฟ ๋Œ€์ฒ˜๋ฅผ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— IP๋ณด๋‹ค ์œ„์—์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

  • 1๋ฒˆ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Port๋ฒˆํ˜ธ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋˜์—ˆ๊ณ , 2๋ฒˆ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์œ„ ํ”„๋กœํ† ์ฝœ์ธ TCP์™€ UDP๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋˜์—ˆ๋‹ค.

ICMP: ์ธํ„ฐ๋„ท ์ œ์–ด ๋ฉ”์„ธ์ง€ ํ”„๋กœํ† ์ฝœ๋กœ ๋„คํŠธ์›Œํฌ ์ปดํ“จํ„ฐ ์œ„์—์„œ ๋Œ์•„๊ฐ€๋Š” ์šด์˜์ฒด์ œ์—์„œ ์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€๋ฅผ ์ „์†ก๋ฐ›๋Š”๋ฐ ์ฃผ๋กœ ์“ฐ์ธ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด TCP์™€ UDP๊ฐ€ ์–ด๋–ป๊ฒŒ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๊ฐ€?

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

TCP์™€ UDP์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž!๐Ÿ˜€

๐Ÿ“Œ TCP(Transmission Control Protocol)

์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ TCP๋Š” ์ „์†ก ๊ณ„์ธต์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ๋กœ์„œ, ์žฅ์น˜๋“ค ์‚ฌ์ด์— ๋…ผ๋ฆฌ์ ์ธ ์ ‘์†์„ ์„ฑ๋ฆฝํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜์—ฌ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค์ด๋‹ค.

TCP๋Š” ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ ๊ฐ„์— ํŒจํ‚ท์„ ์•ˆ์ •์ ์œผ๋กœ, ์ˆœ์„œ๋Œ€๋กœ, ์—๋Ÿฌ ์—†์ด ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

relialble network๋ฅผ ๋ณด์žฅํ•œ๋‹ค๋Š” ๊ฒƒ์€ 4๊ฐ€์ง€ ๋ฌธ์ œ์  ์กด์žฌ

  1. ์†์‹ค: ํŒจํ‚ท์ด ์†์‹ค๋  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ
  2. ์ˆœ์„œ ๋ฐ”๋€œ: ํŒจํ‚ท์˜ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ๋Š” ๋ฌธ์ œ
  3. congestion: ๋„คํŠธ์›Œํฌ๊ฐ€ ํ˜ผ์žกํ•œ ๋ฌธ์ œ
  4. overload: ์ˆ˜์‹ ์ž๊ฐ€ overload๋˜๋Š” ๋ฌธ์ œ

TCP์˜ ํŠน์ง•

  1. ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค๋กœ ๊ฐ€์ƒ ํšŒ์„  ๋ฐฉ์‹์„ ์ œ๊ณตํ•œ๋‹ค.

    • 3-way handshaking ๊ณผ์ •์„ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•œ๋‹ค.
    • 4-way handshaking ๊ณผ์ •์„ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•œ๋‹ค.
  2. ํ๋ฆ„ ์ œ์–ด

    • ์†ก์‹ ์ธก๊ณผ ์ˆ˜์‹ ์ธก์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„ ์ฐจ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•
    • Flow Control์€ ์ˆ˜์‹ ์ž๊ฐ€ ํŒจํ‚ท์„ ์ง€๋‚˜์น˜๊ฒŒ ๋งŽ์ด ๋ฐ›์ง€ ์•Š๋„๋ก ์กฐ์ ˆํ•˜๋Š” ๊ฒƒ
    • ๊ธฐ๋ณธ ๊ฐœ๋…์€ ์ˆ˜์‹ ์ž๊ฐ€ ์†ก์‹ ์ž์—๊ฒŒ ํ˜„์žฌ ์ž์‹ ์˜ ์ƒํƒœ๋ฅผ feedback ํ•œ๋‹ค๋Š” ๊ฒƒ
  3. ํ˜ผ์žก ์ œ์–ด

    • ์†ก์‹ ์ธก์˜ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๊ณผ ๋„คํŠธ์›Œํฌ์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„ ์ฐจ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•
  4. ์‹ ๋ขฐ์„ฑ์ด ๋†’์€ ์ „์†ก

  • ์†ก์‹  ์ธก์—์„œ ๋ณด๋‚ธ ํŒจํ‚ท์„ ์ˆ˜์‹  ์ธก์—์„œ ๋ฐ›์ง€ ๋ชปํ•˜๋ฉด ์žฌ์ „์†กํ•œ๋‹ค.
  • Dup ACK-based retransmission: ์†ก์‹  ์ธก์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†กํ–ˆ๋Š”๋ฐ, ์ˆ˜์‹ ๋œ ์„ธ๊ทธ๋จผํŠธ์˜ ์ˆœ์„œ๊ฐ€ ํ‹€๋ ธ์„ ๊ฒฝ์šฐ ์ˆ˜์‹  ๋‹จ๋ง์ด ๋‹ค์‹œ ๋ณด๋‚ด๋‹ฌ๋ผ๋Š” ์˜๋ฏธ๋กœ ACK๋ฅผ ๋ณด๋‚ธ๋‹ค. ์†ก์‹  ์ธก์—์„œ ๋™์ผํ•œ ACK๋ฅผ 3๊ฐœ ์ด์ƒ ๋ฐ›์•˜์„ ๊ฒฝ์šฐ ํ•ด๋‹น ํŒจํ‚ท์€ ์†์‹ค๋๋”ฐ๊ณ  ํŒ๋‹จํ•ด ์žฌ์ „์†ก์„ ์š”์ฒญํ•œ๋‹ค.
  • Timeout-based retransmission: ์†ก์‹ ์ž๋Š” ์ผ์ • ์‹œ๊ฐ„๋™์•ˆ ์ˆ˜์‹ ์ž๋กœ๋ถ€ํ„ฐ ACK๋ฅผ ๋ฐ›์ง€ ๋ชปํ•˜๋ฉด ์†์‹ค๋๋‹ค๊ณ  ํŒ๋‹จํ•ด ์žฌ์ „์†ก์„ ์š”์ฒญํ•œ๋‹ค.
  1. ์ ์ด์ค‘, ์ ๋Œ€์  ๋ฐฉ์‹
    • ์ ์ด์ค‘(Full-Duplex): ๋ฐ์ดํ„ฐ ์ „์†ก ํ๋ฆ„ ๋ฐฉํ–ฅ์ด ํ•ญ์ƒ ์–‘ ๋ฐฉํ–ฅ์œผ๋กœ ๋™์‹œ์— ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ ๋Œ€์ (Point to Point): ๊ฐ ์—ฐ๊ฒฐ์ด ์ •ํ™•ํžˆ 2๊ฐœ์˜ ์ข…๋‹จ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

์ „์†ก์˜ ์ „์ฒด ๊ณผ์ •

  • Application layer: sender application layer๊ฐ€ socket์— data๋ฅผ ์“ด๋‹ค.
  • Transport layer: data๋ฅผ segment๋กœ ๊ฐ์‹ผ๋‹ค. ๊ทธ๋ฆฌ๊ณ  network layer์— ๋„˜๊ฒจ์ค€๋‹ค.
  • ๊ทธ๋Ÿฌ๋ฉด ์•„๋žซ๋‹จ์—์„œreceiving node๋กœ ์ „์†ก์ด ๋œ๋‹ค. ์ด๋•Œ sender์˜ send buffer์— data๋ฅผ ์ €์žฅํ•˜๊ณ , receiver๋Š” receive buffer์— data๋ฅผ ์ €์žฅํ•œ๋‹ค.
  • application์—์„œ ์ค€๋น„๊ฐ€ ๋˜๋ฉด ์ด buffer์— ์žˆ๋Š” ๊ฒƒ์„ ์ฝ๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค.
  • flow control์˜ ํ•ต์‹ฌ์€ receiver buffer๊ฐ€ ๋„˜์น˜์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • receiver๋Š” RWND(Receive WiNDow):receive buffer์˜ ๋‚จ์€ ๊ณต๊ฐ„์„ ํ™๋ณดํ•œ๋‹ค.

๐Ÿ’ก ํ๋ฆ„์ œ์–ด(Flow Control)

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

ํ๋ฆ„์ œ์–ด๋Š” ์œ„์™€ ๊ฐ™์ด ์†ก์‹ ์ธก๊ณผ ์ˆ˜์‹ ์ธก์˜ TCP ๋ฒ„ํผ ํฌ๊ธฐ ์ฐจ์ด๋กœ ์ธํ•ด ์ƒ๊ธฐ๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„ ์ฐจ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•์ด๋‹ค.

TCP ๋ฒ„ํผ ์†ก์‹ ์ธก์€ ๋ฒ„ํผ์— TCP ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ณด๊ด€ํ•œ ํ›„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ „์†กํ•˜๊ณ , ์ˆ˜์‹ ์ธก์€ ๋„์ฐฉํ•œ TCP ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ฝ์„ ๋•Œ๊นŒ์ง€ ๋ฒ„ํผ์— ๋ณด๊ด€ํ•œ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

1. Stop and Wait

๋งค๋ฒˆ ์ „์†กํ•œ ํŒจํ‚ท์— ๋Œ€ํ•ด ํ™•์ธ ์‘๋‹ต์„ ๋ฐ›์•„์•ผ๋งŒ ๊ทธ ๋‹ค์Œ ํŒจํ‚ท์„ ์ „์†กํ•˜๋Š” ๋ฐฉ๋ฒ•

ํŒจํ‚ท์„ ํ•˜๋‚˜์”ฉ ๋ณด๋‚ด๊ธฐ ๋•Œ๋ฌธ์— ๋น„ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด๋‹ค.

stopandwait

2. Sliding Window (= Go-Back N)

  • ์ˆ˜์‹ ์ธก์—์„œ ์„ค์ •ํ•œ ์œˆ๋„์šฐ ํฌ๊ธฐ๋งŒํผ ์†ก์‹ ์ธก์—์„œ ํ™•์ธ์‘๋‹ต์—†์ด ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๋™์ ์œผ๋กœ ์กฐ์ ˆํ•˜๋Š” ์ œ์–ด ๊ธฐ๋ฒ•

์œˆ๋„์šฐ: ์†ก์‹ , ์ˆ˜์‹  ์Šคํ…Œ์ด์…˜ ์–‘์ชฝ์—์„œ ๋งŒ๋“ค์–ด์ง„ ๋ฒ„ํผ์˜ ํฌ๊ธฐ

ํ˜ธ์ŠคํŠธ๋“ค์€ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ธฐ ์ „์— 3-way handshakeing์„ ํ†ตํ•ด ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ์˜ receive window size์— ์ž์‹ ์˜ send window size๋ฅผ ๋งž์ถ”๊ฒŒ ๋œ๋‹ค.

๋™์ž‘ ๋ฐฉ์‹

์œˆ๋„์šฐ์— ํฌํ•จ๋œ ํŒจํ‚ท์„ ๊ณ„์† ์ „์†กํ•˜๊ณ  ์ˆ˜์‹  ์ธก์œผ๋กœ๋ถ€ํ„ฐ ํ™•์ธ ์‘๋‹ต(ACK)์ด ์˜ค๋ฉด ์œˆ๋„์šฐ๋ฅผ ์˜†์œผ๋กœ ์˜ฎ๊ฒจ ๋‹ค์Œ ํŒจํ‚ท๋“ค์„ ์ „์†กํ•œ๋‹ค.

slidingwindow

  • ์ตœ์ดˆ๋กœ ์ˆ˜์‹ ์ž๋Š” ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ๋ฅผ 7๋กœ ์ •ํ•œ๋‹ค.
  • ์†ก์‹ ์ž๋Š” ์ˆ˜์‹ ์ž์˜ ํ™•์ธ ์‘๋‹ต(ACK)๋ฅผ ๋ฐ›๊ธฐ ์ „๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ๋‹ค.
  • ์ˆ˜์‹ ์ž๋Š” ํ™•์ธ ์‘๋‹ต์„(ACK)์„ ์†ก์‹ ์ž์—๊ฒŒ ๋ณด๋‚ด๋ฉด, ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ๋ฅผ ์ถฉ์กฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ์œˆ๋„์šฐ๋ฅผ ์˜†์œผ๋กœ ์˜ฎ๊ธด๋‹ค.
  • ์ดํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค ๋ฐ›์„ ๋•Œ๊นŒ์ง€ ์œ„ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

์žฌ์ „์†ก

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

๐Ÿ’ก ์˜ค๋ฅ˜์ œ์–ด

ARQ(Automatic Repeat Request): ์‹ ๋ขฐ์„ฑ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์„ ์œ„ํ•ด ์žฌ์ „์†ก์„ ๊ธฐ๋ฐ˜์œผ๋กœํ•œ ์—๋Ÿฌ ์ œ์–ด ๋ฐฉ์‹

ARQ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด ํ”„๋ ˆ์ž„์ด ์†์ƒ๋˜์—ˆ๊ฑฐ๋‚˜ ์†์‹ค๋˜์—ˆ์„ ๊ฒฝ์šฐ ์žฌ์ „์†ก์„ ํ†ตํ•ด ์˜ค๋ฅ˜๋ฅผ ๋ณต๊ตฌํ•œ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

1. Stop and Wait ARQ

๋ฐ์ดํ„ฐ๋‚˜ ACK๊ฐ€ ๋ถ„์‹ค๋˜์—ˆ์„ ๊ฒฝ์šฐ ์ผ์ • ๊ฐ„๊ฒฉ์˜ ์‹œ๊ฐ„์„ ๋‘๊ณ  ํƒ€์ž„์•„์›ƒ์ด ๋˜๋ฉด ์†ก์‹ ์ธก์€ ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ์ „์†กํ•œ๋‹ค.

2. Go Back n ARQ

์ „์†ก๋œ ํ”„๋ ˆ์ž„์ด ์†์ƒ๋˜๊ฑฐ๋‚˜ ๋ถ„์‹ค๋œ ๊ฒฝ์šฐ, ํ™•์ธ๋œ ๋งˆ์ง€๋ง‰ ํ”„๋ ˆ์ž„ ์ดํ›„๋กœ ๋ชจ๋‘ ์žฌ์ „์†กํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.


๐Ÿ’ก ํ˜ผ์žก์ œ์–ด

๋ฐ์ดํ„ฐ์˜ ์–‘์ด ๋ผ์šฐํ„ฐ๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์–‘์„ ์ดˆ๊ณผํ•˜๋ฉด ์ดˆ๊ณผ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ผ์šฐํ„ฐ๊ฐ€ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•œ๋‹ค. ์ด๋•Œ ์†ก์‹  ์ธก์—์„œ๋Š” ๋ผ์šฐํ„ฐ๊ฐ€ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์†์‹ค ๋ฐ์ดํ„ฐ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ๊ณ„์† ์žฌ์ „์†กํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๋ฅผ ํ˜ผ์žกํ•˜๊ฒŒ ํ•œ๋‹ค.

์ด๋Ÿฐ ์ƒํ™ฉ์€ ์†ก์‹  ์ธก์˜ ์ „์†ก์†๋„๋ฅผ ์ ์ ˆํžˆ ์กฐ์ ˆํ•˜์—ฌ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๊ฒƒ์„ ํ˜ผ์žก์ œ์–ด๋ผ๊ณ  ํ•œ๋‹ค.

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

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

1. AIMD(Additive Increase/Multicative Decrease)

aimd

์ง์—ญํ•˜๋ฉด ํ•ฉ ์ฆ๊ฐ€/ ๊ณฑ ๊ฐ์†Œ ๋ฐฉ์‹์ด๋‹ค.

AIMD ๋ฐฉ์‹์€ ์ฒ˜์Œ์— ํŒจํ‚ท์„ ํ•˜๋‚˜์”ฉ ๋ณด๋‚ด๊ณ  ๋ฌธ์ œ ์—†์ด ๋„์ฐฉํ•˜๋ฉด ์œˆ๋„์šฐ์˜ ํฌ๊ธฐ๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œ์ผœ๊ฐ€๋ฉฐ ์ „์†กํ•œ๋‹ค. ๋งŒ์•ฝ ์ „์†ก์— ์‹คํŒจํ•˜๋ฉด ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ๋ฐ˜์œผ๋กœ ์ค„์ธ๋‹ค.

์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ๋„ˆ๋ฌด ์กฐ๊ธˆ์”ฉ ๋Š˜๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋„คํŠธ์›Œํฌ์˜ ๋ชจ๋“  ๋Œ€์—ญ์„ ํ™œ์šฉํ•˜์—ฌ ์ œ๋Œ€๋กœ ๋œ ์†๋„๋กœ ํ†ต์‹ ํ•˜๊ธฐ๊นŒ์ง€ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

2. Slow Start (๋А๋ฆฐ ์‹œ์ž‘)

slowstart

AIMD ๋ฐฉ์‹์€ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์—, ์ œ๋Œ€๋กœ๋œ ์†๋„๊ฐ€ ๋‚˜์˜ค๊ธฐ๊นŒ์ง€ ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค.

๋ฐ˜๋ฉด Slow Start๋Š” ์œˆ๋„์šฐ์˜ ํฌ๊ธฐ๋ฅผ 1,2,4,8...๊ณผ ๊ฐ™์ด ์ง€์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚ค๋‹ค๊ฐ€ ํ˜ผ์žก์ด ๊ฐ์ง€๋˜๋ฉด ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ 1๋กœ ์ค„์ด๋Š” ๋ฐฉ์‹์ด๋‹ค.

์ด ๋ฐฉ์‹์€ ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ์˜ ACK๊ฐ€ ๋„์ฐฉํ• ๋•Œ๋งˆ๋‹ค ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜์Œ์—๋Š” ์œˆ๋„์šฐ ํฌ๊ธฐ๊ฐ€ ์กฐ๊ธˆ ๋А๋ฆฌ๊ฒŒ ์ฆ๊ฐ€ํ• ์ง€๋ผ๋„, ์‹œ๊ฐ„์ด ๊ฐ€๋ฉด ์œˆ๋„์šฐ ํฌ๊ธฐ๊ฐ€ ์ ์  ๋น ๋ฅด๊ฒŒ ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

ํ˜ผ์žก ์œˆ๋„์šฐ์˜ ํฌ๊ธฐ๊ฐ€ ์ž„๊ณ„์น˜์— ๋„๋‹ฌํ•˜๊ธฐ ์ „๊นŒ์ง€ ์ ์šฉ๋˜๋ฉฐ, ์ž„๊ณ„ ๊ฐ’์— ๋„๋‹ฌํ•˜๋ฉด ํ˜ผ์žกํšŒํ”ผ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์ž„๊ณ„์ (Threshold) ์—ฌ๊ธฐ๊นŒ์ง€๋งŒ slow start๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค. slow start threshold(ssthresh)๋ผ๊ณ ๋„ ํ•œ๋‹ค. ์ด ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ง€์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚ค๋‹ค๋ณด๋ฉด ํฌ๊ธฐ๊ฐ€ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ๋Š˜์–ด๋‚˜ ์ œ์–ด๊ฐ€ ํž˜๋“ค์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

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

์œˆ๋„์šฐ์˜ ํฌ๊ธฐ๊ฐ€ ์ž„๊ณ„ ๊ฐ’์— ๋„๋‹ฌํ•œ ์ดํ›„์—๋Š” ๋ฐ์ดํ„ฐ ์ง€์—ฐ, ์†์‹ค์ด ๋ฐœ์ƒํ•  ํ™•๋ฅ ์ด ๋†’์•„์ง„๋‹ค.

๋”ฐ๋ผ์„œ ์ „์†ก ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ์ž„๊ณ„์ ์— ๋„๋‹ฌํ•˜๋ฉด ์„ ํ˜•์ ์œผ๋กœ 1์”ฉ ์œˆ๋„์šฐ๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

๋งŒ์•ฝ ํƒ€์ž„ ์•„์›ƒ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค๋ฉด ์œˆ๋„์šฐ ํฌ๊ธฐ๋Š” 1๋กœ ๋Œ์•„๊ฐ€๋ฉฐ ์ž„๊ณ„์ ์€ ์†์‹ค ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ์˜ ํ˜ผ์žก ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ์˜ 1/2๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค. ์ดํ›„ ๋น ๋ฅธ ํšŒ๋ณต ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.

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

ํŒจํ‚ท์„ ๋ฐ›๋Š” ์ˆ˜์‹ ์ž ์ž…์žฅ์—์„œ๋Š” ์„ธ๊ทธ๋จผํŠธ๋กœ ๋ถ„ํ• ๋œ ๋‚ด์šฉ๋“ค์ด ์ˆœ์„œ๋Œ€๋กœ ๋„์ฐฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฐ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ˆ˜์‹  ์ธก์—์„œ๋Š” ์ˆœ์„œ๋Œ€๋กœ ์ž˜ ๋„์ฐฉํ•œ ๋งˆ์ง€๋ง‰ ํŒจํ‚ท์˜ ๋‹ค์Œ ์ˆœ๋ฒˆ์„ ACK ํŒจํ‚ท์— ์‹ค์–ด์„œ ๋ณด๋‚ธ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฐ ์ค‘๋ณต ACK๋ฅผ 3๊ฐœ ๋ฐ›์œผ๋ฉด ์žฌ์ „์†ก์ด ์ด๋ฃจ์–ด์ง„๋‹ค. ์†ก์‹  ์ธก์€ ์ž์‹ ์ด ์„ค์ •ํ•œ ํƒ€์ž„ ์•„์›ƒ ์‹œ๊ฐ„์ด ์ง€๋‚˜์ง€ ์•Š์•˜์–ด๋„ ๋ฐ”๋กœ ํ•ด๋‹น ํŒจํ‚ท์„ ์žฌ์ „์†กํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณด๋‹ค ๋น ๋ฅธ ์žฌ์ „์†ก๋ฅ ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ ํ˜ผ์žกํ•œ ์ƒํ™ฉ์ด๋ผ ํŒ๋‹จํ•˜๊ณ  ํ˜ผ์žก ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ๋Š” 1๋กœ ๋Œ์•„๊ฐ€๋ฉฐ ์ž„๊ณ„์ ์€ ์†์‹ค ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ์˜ ํ˜ผ์žก ์œˆ๋„์šฐ์˜ ์‚ฌ์ด์ฆˆ์˜ 1/2๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค.

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

ํ˜ผ์žกํ•œ ์ƒํƒœ๊ฐ€ ๋˜๋ฉด ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ 1๋กœ ์ค„์ด์ง€ ์•Š๊ณ  ๋ฐ˜์œผ๋กœ ์ค„์ด๊ณ  ์„ ํ˜• ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

๋งŒ์•ฝ ํƒ€์ž„์•„์›ƒ์ด ๋ฐœ์ƒํ•˜๋ฉด ํ˜ผ์žก ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ๋Š” 1๋กœ ํ•˜๊ณ , ์ž„๊ณ„์ ์€ ์†์‹ค ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ์˜ ํ˜ผ์žก ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ์˜ 1/2๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค.

congestion

๐Ÿ’ก ํ˜ผ์žก์ œ์–ด ์ •์ฑ…

TCP์—๋Š” Tahoe, Reno, New Reno, Cubic, Ealstic-TCP๊นŒ์ง€ ๋‹ค์–‘ํ•œ ํ˜ผ์žก ์ œ์–ด ์ •์ฑ…์ด ์กด์žฌํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ํ˜ผ์žก ์ œ์–ด ์ •์ฑ…๋“ค์€ ๊ณตํ†ต์ ์œผ๋กœ ํ˜ผ์žก์ด ๋ฐœ์ƒํ•˜๋ฉด ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ฑฐ๋‚˜, ํ˜น์€ ์ฆ๊ฐ€์‹œํ‚ค์ง€ ์•Š์œผ๋ฉฐ ํ˜ผ์žก์„ ํšŒํ”ผํ•œ๋‹ค ๋ผ๋Š” ์ „์ œ๋ฅผ ๊น”๊ณ  ์žˆ๋‹ค.

๋Œ€ํ‘œ์ ์ธ ์ •์ฑ… Tahoe์™€ Reno์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!

Tahoe์™€ Reno๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฒ˜์Œ์—๋Š” Slow Start ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ๋„คํŠธ์›Œํฌ๊ฐ€ ํ˜ผ์žกํ•˜๋‹ค๊ณ  ๋А๊ผˆ์„ ๋•Œ๋Š” AIMD ๋ฐฉ์‹์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ์ •์ฑ…์ด๋‹ค.

TahoeandReno

์œ„ ๊ทธ๋ž˜ํ”„์˜ Y์ถ•์€ ํ˜ผ์žก ์œˆ๋„์šฐ, X์ถ•์€ ์‹œ๊ฐ„์œผ๋กœ ํ•˜์—ฌ Tahoe์™€ Reno์˜ ์ž‘๋™ ๋ฐฉ์‹์„ ์„ค๋ช…ํ•˜๊ณ  ์žˆ๋‹ค.

๊ทธ๋ž˜ํ”„๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์ „์— ๊ทธ๋ž˜ํ”„๊ฐ€ ๊บพ์—ฌ ์žˆ๋Š” ์ง€์ ์ธ 3 ACK duplicate, Timeout์šฉ์–ด์™€ ๊ทธ๋ž˜ํ”„ ์ƒ์Šน ํญ์ด ๋ณ€ํ•˜๊ณ  ์žˆ๋Š” ์ง€์ ์ธ Threshold ์šฉ์–ด๋ฅผ ์•Œ์•„๋ณด์ž

์šฉ์–ด ์ •๋ฆฌ

Timeout

๋ง ๊ทธ๋Œ€๋กœ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์š”์ธ์œผ๋กœ ์ธํ•ด ์†ก์‹ ์ธก์ด ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ ์ž์ฒด๊ฐ€ ์œ ์‹ค๋˜์—ˆ๊ฑฐ๋‚˜, ์ˆ˜์‹ ์ธก์ด ์‘๋‹ต์œผ๋กœ ๋ณด๋‚ธ ACK๊ฐ€ ์œ ์‹ค๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

3-ACK Duplicate

3ack

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

1. TCP Tahoe

์ฒ˜์Œ์—๋Š” Slow Start๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž์‹ ์˜ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ง€์ˆ˜์ ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์ฆ๊ฐ€์‹œํ‚ค๋‹ค๊ฐ€ ssthresh๋ฅผ ๋งŒ๋‚œ ์ดํ›„๋ถ€ํ„ฐ๋Š” AIMD์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ ํ˜•์ ์œผ๋กœ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ACK Duplicated๋‚˜ Timeout์ด ๋ฐœ์ƒํ•˜๋ฉด ๋„คํŠธ์›Œํฌ์— ํ˜ผ์žก์ด ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ณ , ssthresh์™€ ์ž์‹ ์˜ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ˆ˜์ •ํ•˜๊ฒŒ ๋œ๋‹ค.

tahoe

  • ์ฒญ๋ก์ƒ‰ ์„ ์€ ์†ก์‹ ์ธก์˜ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ, ๊ตต์€ ๊ฒ€์ •์„ ์€ ssthresh ๊ฐ’์„ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์†ก์‹ ์ธก์˜ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋Š” 8๋กœ ์ดˆ๊ธฐํ™” ๋˜์—ˆ๊ณ , ๊ทธ์— ๋”ฐ๋ผ ssthresh๋Š” 4๋กœ ์„ค์ •๋˜์–ด ์žˆ๋‹ค.

  • ์†ก์‹ ์ธก์€ ์ž„๊ณ„์ ์„ ๋งŒ๋‚˜๊ธฐ ์ „๊นŒ์ง€ slow start ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž์‹ ์˜ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ€ ์‹œํ‚ค๋‹ค๊ฐ€ ssthresh๋ฅผ ๋„˜์–ด์„  ์ดํ›„๋ถ€ํ„ฐ๋Š” ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ์žˆ๋‹ค.

  • ์ด ์ƒํ™ฉ์—์„œ 3 ACK Duplicated๋‚˜ Timeout๊ณผ ๊ฐ™์€ ํ˜ผ์žก ์ƒํ™ฉ์„ ๋งŒ๋‚˜๋ฉด?? ์ฒ˜์Œ ํ˜ผ์žก ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ ์ƒํƒœ์˜ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋Š” 6์ด๋ฉฐ, ๊ทธ์— ๋”ฐ๋ผ ssthresh๋ฅผ 3์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ , ์ž์‹ ์˜ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ 1๋กœ ์ค„์˜€๋‹ค. ์ดํ›„ ๋‹ค์‹œ slow start๋กœ ์‹œ์ž‘ํ•˜์—ฌ ์ž„๊ณ„์ ์— ๋„๋‹ฌํ•˜๋ฉด AIMD๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.

2. TCP Reno

TCP Reno๋Š” TCP Tahoe ์ดํ›„์— ๋‚˜์˜จ ์ •์ฑ…์œผ๋กœ, Tahoe์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Slow Start๋กœ ์‹œ์ž‘ํ•˜์—ฌ ์ž„๊ณ„์ ์„ ๋„˜์–ด์„œ๋ฉด AIMD๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋‹ค๋งŒ, Tahoe์™€๋Š” ๋‹ค๋ฅด๊ฒŒ 3 ACK Duplicated์™€ Timeout ํ˜ผ์žก ์ƒํ™ฉ์„ ๊ตฌ๋ถ„ํ•œ๋‹ค.

reno

Reno๋Š” 3๊ฐœ์˜ ์ค‘๋ณต ACK๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ 1๋กœ ์ค„์ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ AIMD์ฒ˜๋Ÿผ ๋ฐ˜์œผ๋กœ๋งŒ ์ค„์ด๊ณ  ssthresh๋ฅผ ์ค„์–ด๋“  ์œˆ๋„์šฐ ๊ฐ’์œผ๋กœ ์ •ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ๋ฐฉ์‹์„ ๋น ๋ฅธ ํšŒ๋ณต์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ Timeout์— ์˜ํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋˜๋ฉด Tahoe์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ๋ฐ”๋กœ 1๋กœ ์ค„์—ฌ๋ฒ„๋ฆฌ๊ณ  slow start๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค. ์ด๋•Œ ssthresh๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.

์ฆ‰ Reno๋Š” ACK ์ค‘๋ณต์€ Timeout์— ๋น„ํ•ด ๊ทธ๋ฆฌ ํฐ ํ˜ผ์žก์ด ์•„๋‹ˆ๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ 1๋กœ ์ค„์ด์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์—์„œ ํ˜ผ์žก ์ƒํ™ฉ์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋‘” ์ •์ฑ…์ด๋ผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

TCP์˜ ์žฅ์ 

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ •ํ™•ํ•˜๊ณ  ์•ˆ์ •์ ์œผ๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ˜ธ์ŠคํŠธ ๊ฐ„ ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๊ณผ ํ๋ฆ„์ œ์–ด๋ฅผ ํ•œ๋‹ค.

TCP์˜ ๋‹จ์ 

  • ๋ฐ์ดํ„ฐ๋กœ ๋ณด๋‚ด๊ธฐ ์ „์— ๋ฐ˜๋“œ์‹œ ์—ฐ๊ฒฐ์ด ํ˜•์„ฑ ๋˜์–ด์•ผ ํ•œ๋‹ค.
  • 1:1 ํ†ต์‹ ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๊ณ ์ •๋œ ํ†ต์‹  ์„ ๋กœ๊ฐ€ ์ตœ๋‹จ์„ ๋กœ(๋„คํŠธ์›Œํฌ ๊ธธ์ด)๊ฐ€ ์•„๋‹๊ฒฝ์šฐ ์ƒ๋Œ€์ ์œผ๋กœ UDP๋ณด๋‹ค ๋ฐ์ดํ„ฐ ์ „์†ก์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค.

๐Ÿ“Œ UDP(User Datagram protocol)

UDP๋Š” ์ „์†ก๊ณ„์ธต์˜ ๋น„ ์—ฐ๊ฒฐ ์ง€ํ–ฅ์  ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

๋น„ ์—ฐ๊ฒฐ ์ง€ํ–ฅ์ : ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„๋•Œ ์—ฐ๊ฒฐ ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ฐœ์‹ ์ž๊ฐ€ ์ผ๋ฐฉ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐœ์‹ ํ•˜๋Š” ๋ฐฉ์‹

๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ, ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๊ทธ๋žจ ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœํ† ์ฝœ

๋ฐ์ดํ„ฐ๊ทธ๋žจ : ๋…๋ฆฝ์ ์ธ ๊ด€๊ณ„๋ฅผ ์ง€๋‹ˆ๋Š” ํŒจํ‚ท

UDP๋Š” ํ๋ฆ„์ œ์–ด, ์˜ค๋ฅ˜์ œ์–ด ๋˜๋Š” ์†์ƒ๋œ ์„ธ๊ทธ๋จผํŠธ์˜ ์ˆ˜์‹ ์— ๋Œ€ํ•œ ์žฌ์ „์†ก์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด ๋ชจ๋‘๊ฐ€ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค์˜ ๋ชซ์ด๋‹ค. UDP๊ฐ€ ํ–‰ํ•˜๋Š” ๊ฒƒ์€ ํฌํŠธ๋“ค์„ ์‚ฌ์šฉํ•˜์—ฌ IP ํ”„๋กœํ† ์ฝœ์— ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

UDP์˜ ํŠน์ง•

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

UDP์˜ ์žฅ์ 

  • ๋ฐ์ดํ„ฐ์˜ ์‹ ์†์„ฑ! TCP๋ณด๋‹ค ๋ฐ์ดํ„ฐ ์ „์†ก ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.

UDP์˜ ๋‹จ์ 

  • ๋ฐ์ดํ„ฐ์˜ ์‹ ๋ขฐ์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.
  • ํŒจํ‚ท์˜ ๋ถ„์‹ค ํ™•์ธ์ด๋‚˜ ์ „๋‹ฌ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค.
  • TCP์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ชผ๊ฐœ์ฃผ์ง€ ์•Š์•„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‹จ์—์„œ ํŒจํ‚ท์„ ์ชผ๊ฐœ์•ผ ํ•œ๋‹ค.

UDP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

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

DNS(Domain Name Service)์—์„œ UDP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

  • Request์˜ ์–‘์ด ์ž‘์•„์„œ UDP Request์— ๋‹ด๊ธธ ์ˆ˜ ์žˆ๋‹ค.
  • 3 way handshaking์œผ๋กœ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
  • Request์— ๋Œ€ํ•œ ์†์‹ค์€ Application Layer์—์„œ ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๊ทธ๋Ÿฌ๋‚˜ ํฌ๊ธฐ๊ฐ€ 512(UDP ์ œํ•œ)์ด ๋„˜์„ ๋•Œ, TCP๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  • DNS๋Š” UDP๋ฅผ 53๋ฒˆ port์—์„œ ์‚ฌ์šฉํ•œ๋‹ค.

TCP vs UDP

  • TCP๋Š” ์—ฐ์†์„ฑ๋ณด๋‹ค ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ์ „์†ก์ด ์ค‘์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ณ 
  • UDP๋Š” TCP๋ณด๋‹ค ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜๊ฐ€ ์ ์ง€๋งŒ ์‹ ๋ขฐ์„ฑ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์„ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์‹ ๋ขฐ์„ฑ๋ณด๋‹ค ์—ฐ์†์„ฑ์ด ์ค‘์š”ํ•œ ์‹ค์‹œ๊ฐ„ ์„œ๋น„์Šค์— ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

SCTP(Streaming ControlTransmission Protoco)

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

QUIC(Quik UDP Internet Connenctions)

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

QUIC๋Š” UDP ์œ„์— ๊ตฌํ˜„ํ•œ ์ „์†ก ํ”„๋กœํ† ์ฝœ์ด๋‹ค. UDP์— ๊ธฐ๋ฐ˜์„ ๋‘” QUIC๋Š” UDP ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฃผ์–ด์ง„ IP ์ฃผ์†Œ์˜ ํŠน์ • ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค๋ฅผ ์‹๋ณ„ํ•œ๋‹ค.

ํŠน์ง•

1. ์‹ ๋ขฐ์„ฑ

UDP๊ฐ€ ๋ฐ์ดํ„ฐ ์ „์†ก์˜ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์ง€๋งŒ, QUIC์€ UDP ์œ„์— ์ƒˆ๋กœ์šด ๊ณ„์ธต์„ ์ถ”๊ฐ€ํ•จ์œผ๋กœ์จ ์‹ ๋ขฐ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค. ์ถ”๊ฐ€๋œ ๊ณ„์ธต์€ TCP์— ์กด์žฌํ•˜๋Š” ํŒจํ‚ท ์žฌ์ „์†ก, ํ˜ผ์žก ์ œ์–ด, ์†๋„ ์กฐ์ • ๋ฐ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•œ๋‹ค.

ํ•œ ์—”๋“œํฌ์ธํŠธ๋กœ๋ถ€ํ„ฐ QUIC์„ ํ†ตํ•ด ์ „์†ก๋œ ๋ฐ์ดํ„ฐ๋Š” ์—ฐ๊ฒฐ์ด ์œ ์ง€๋˜๋Š” ํ•œ ๋‹ค๋ฅธ ์—”๋“œํฌ์ธํŠธ์—์„œ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.

2. ๋‹ค์ค‘ ํ†ต์‹  ๊ฒฝ๋กœ(์ŠคํŠธ๋ฆผ)

ํ•˜๋‚˜์˜ ์—ฐ๊ฒฐ๋กœ ๋‹ค์ˆ˜์˜ ๋ณ‘๋ ฌ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋‹ค๋ฅธ ์ŠคํŠธ๋ฆผ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋™์‹œ์— ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค.

QUIC ์—ฐ๊ฒฐ์€ UDP ํฌํŠธ์™€ IP ์ฃผ์†Œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์ง€๋งŒ ์ผ๋‹จ ์—ฐ๊ฒฐ์„ ๋งŒ๋“ค๊ณ  ๋‚˜๋ฉด "connection ID"๋กœ ์—ฐ๊ฒฐ๋œ๋‹ค. ๋งŒ๋“ค์–ด์ง„ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์–‘์ชฝ์—์„œ ์ŠคํŠธ๋ฆผ์„ ๋งŒ๋“ค์–ด ๋‹ค๋ฅธ ์ชฝ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ŠคํŠธ๋ฆผ์€ ์ˆœ์„œ๋Œ€๋กœ ์ „๋‹ฌ๋˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์„œ๋กœ ๋‹ค๋ฅธ ์ŠคํŠธ๋ฆผ์€ ์ˆœ์„œ ์—†์ด ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ๋‹ค.

QUIC์€ ์—ฐ๊ฒฐ๊ณผ ์ŠคํŠธ๋ฆผ ๋ชจ๋‘์—์„œ ํ๋ฆ„ ์ œ์–ด๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

head of line blocking: ํ•˜๋‚˜์˜ ์š”์ฒญ์—์„œ๋งŒ ์†์‹ค์ด ์ผ์–ด๋‚˜๋„ ๋ชจ๋‘ ์˜ํ–ฅ์„ ๋ฐ›๋Š” ์ด๋Ÿฌํ•œ ์ƒํ™ฉ

3. ๋น ๋ฅธ ํ•ธ๋“œ์‰์ดํฌ

quic

QUIC๋Š” 0-RTT, 1-RTT ํ•ธ๋“œ์‰์ดํฌ ๋‘˜๋‹ค ์ œ๊ณตํ•˜๋Š”๋ฐ ์ด๋Š” ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ์„ ํ˜‘์ƒํ•˜๊ณ  ์„ค์ •ํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์ค„์—ฌ์ค€๋‹ค. TCP์˜ 3-way handshake์™€ ๋น„๊ตํ•ด๋ณด๋ฉด ๋œ๋‹ค.

๋‘˜ ์ค‘ ๊ฐ€์žฅ ๋น ๋ฅธ 0-RTT ํ•ธ๋“œ์‰์ดํฌ๋Š” ํ˜ธ์ŠคํŠธ์— ์ด๋ฏธ ์ด์ „ ์—ฐ๊ฒฐ์ด ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ณ  ํ•ด๋‹น ์—ฐ๊ฒฐ์˜ ์‹œํฌ๋ฆฟ์ด ์บ์‹œ ๋˜์–ด ์žˆ์„ ๋•Œ๋งŒ ๋™์ž‘ํ•œ๋‹ค.

4. TLS 1.3

QUIC์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ „์†ก ๋ณด์•ˆ์€ TLS 1.3(RFC 8446)์ด๋ฉฐ ์•”ํ˜ธํ™”ํ•˜์ง€ ์•Š์€ QUIC ์—ฐ๊ฒฐ์€ ์ ˆ๋Œ€๋กœ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

QUIC์ด TLS 1.3์„ ์‚ฌ์šฉํ•œ ์ฃผ๋œ ์ด์œ ๋Š” ํ•ธ๋“œ์‰์ดํฌ์— ๋” ์ ์€ ๋ผ์šด๋“œ ํŠธ๋ฆฝ์ด ํ•„์š”ํ•˜๋„๋ก ๋ฐ”๋€Œ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๋Š” ํ”„๋กœํ† ์ฝœ ์ง€์—ฐ์„ ์ค„์—ฌ์ค€๋‹ค.


์ฐธ๊ณ 

TCP ํ˜ผ์žก์ œ์–ด/ํ๋ฆ„์ œ์–ด

TCP ํ˜ผ์žก์ œ์–ด

UDP

์™œ QUIC ์ธ๊ฐ€


โ‰๏ธ ๋ฉด์ ‘ ์˜ˆ์ƒ ์งˆ๋ฌธ

  1. TCP์™€ UDP์˜ ํŠน์ง•๊ณผ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
  1. TCP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ํ”„๋กœํ† ์ฝœ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?
  1. UDP๊ฐ€ ์–ด๋””์— ์‚ฌ์šฉ๋˜๊ณ  ์™œ ์‚ฌ์šฉ๋˜๋‚˜์š”?
  1. TCP/UDP์˜ ์žฅ๋‹จ์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?
  1. ์‹ ๋ขฐ์„ฑ์žˆ๋Š” TCP๋ฅผ ๋‘๊ณ  UDP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?
  1. TCP์—์„œ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
  1. TCP ํ†ต์‹ ์—์„œ ํ๋ฆ„ ์ œ์–ด ๊ธฐ๋ฒ•์ด ์™œ ์‚ฌ์šฉ๋˜๋‚˜์š”?
  1. TCP ํ๋ฆ„ ์ œ์–ด ๊ธฐ๋ฒ•์€ ๋ฌด์—‡์ด ์žˆ์„๊นŒ์š”?
  1. TCP ํ˜ผ์žก ์ œ์–ด ๊ธฐ๋ฒ•์€ ์™œ ์‚ฌ์šฉ๋˜๋‚˜์š”?
  1. TCP ํ˜ผ์žก ์ œ์–ด ๊ธฐ๋ฒ•์—๋Š” ๋ฌด์—‡์ด ์žˆ์„๊นŒ์š”?
  1. TCP ํ˜ผ์žก ์ œ์–ด ์ •์ฑ…์—๋Š” ๋ฌด์—‡์ด ์žˆ์„๊นŒ์š”?