์ „์†ก ๊ณ„์ธต

9/2/2025

Multiplexing/Demultiplexing๊ณผ ์‹ ๋ขฐ์  ๋ฐ์ดํ„ฐ ์ „์†ก ํ”„๋กœํ† ์ฝœ

Multiplexing / Demultiplexing

์ „์†ก ๊ณ„์ธต์€ ์ƒ์œ„ ๊ณ„์ธต์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์—์„œ ์†Œ์ผ“์„ ์‚ฌ์šฉํ•ด ์ „๋‹ฌํ•œ ๋ฐ์ดํ„ฐ๋ฅผย ์„ธ๊ทธ๋จผํŠธ๋กœ ๋งŒ๋“ ๋‹ค. ์—ฌ๋Ÿฌ ์†Œ์ผ“์—์„œ ๊ฐ์ž์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†ก ๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌํ•˜๋ฉด ๊ทธ๊ฑธย ํ•˜๋‚˜์˜ ์„ธ๊ทธ๋จผํŠธ๋กœ ๋ฌถ๋Š”๋‹ค๋Š” ์˜๋ฏธ์—์„œย multiplexing์ด๋ผ๊ณ  ํ•œ๋‹ค.

๋ฐ˜๋Œ€๋กœย Demultiplexing์€ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „์†ก๋ฐ›๋Š” ์ „์†ก ๊ณ„์ธต์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ์„ธ๊ทธ๋จผํŠธ์— ๋‹ด๊ธด ๋ฐ์ดํ„ฐ๋ฅผ ์•Œ๋งž๋Š” ์†Œ์ผ“์— ๊ฐ์ž ์ „๋‹ฌํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

์–ด๋–ป๊ฒŒ?

์„ธ๊ทธ๋จผํŠธ๋Š”ย ํ—ค๋”์™€ย ๋ฐ์ดํ„ฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ํ—ค๋”๋Š” ์—ฌ๋Ÿฌย ํ•„๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”๋ฐ ๊ทธ ์ค‘์—ย source port์™€ย dest portย ๋“ฑ์˜ ํ•„๋“œ๋ฅผ ํ†ตํ•ด ๋””๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

UDP vs TCP์˜ ๋””๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ

UDP: dest IP์™€ dest port ๋‘ ๊ฐœ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋””๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑํ•œ๋‹ค.

TCP: UDP๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋‘ ๊ฐœ์™€ ๋”๋ถˆ์–ด source port์™€ source IP๊นŒ์ง€ ํฌํ•จํ•ด์„œ ์ด ๋„ค ๊ฐœ์˜ ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋””๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ์„ ํ•œ๋‹ค.

(์ •ํ™•ํžˆ ๋งํ•˜๋ฉด IP์— ๋Œ€ํ•œ ํ•„๋“œ๋Š” ์ „์†ก ๊ณ„์ธต์˜ ํ—ค๋”๊ฐ€ ์•„๋‹Œย ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์˜ 'ํŒจํ‚ท'์˜ ํ—ค๋”์— ์žˆ๋‹ค.)

  • UDP: dest IP, dest port ๋‘ ํ•„๋“œ๊ฐ€ ๊ฐ™์œผ๋ฉด ๊ฐ™์€ ์†Œ์ผ“์œผ๋กœ ๊ฐ„๋‹ค
  • TCP: dest IP, dest port๊ฐ€ ๊ฐ™์•„๋„ source IP๋‚˜ source port๊ฐ€ ๋‹ค๋ฅด๋ฉด ๋‹ค๋ฅธ ์†Œ์ผ“์œผ๋กœ ์˜ฌ๋ฆฐ๋‹ค

์ „์†กํ•˜๋Š” ์ปดํ“จํ„ฐ์˜ IP๋Š” ๋ฌผ๋ก  ์†Œ์ผ“๋งˆ๋‹ค ๋ฐ›๋Š” ์ปดํ“จํ„ฐ์—๊ฒŒ๋„ 1:1 ๋Œ€์‘ํ•˜๋Š” ์†Œ์ผ“์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ TCP์—์„œ์˜ ๊ฒฝ์šฐ๋ฅผย Connection-orientedย demux๋ผ๊ณ  ํ•œ๋‹ค.

์ฐธ๊ณ : ์—ฌ๊ธฐ์„œ ๊ถ๊ธˆํ•œ ์ ์ด, dest port๊ฐ€ ๊ฐ™์€๋ฐ ์–ด๋–ป๊ฒŒ ๊ฐ์ž ๋‹ค๋ฅธ ์†Œ์ผ“์œผ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค๋Š” ๋ง์ด์ง€? ํฌํŠธ๋ฒˆํ˜ธ๋Š” ์†Œ์ผ“์— ๋ถ€์—ฌ๋˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ํ”„๋กœ์„ธ์Šค์— ๋ถ€์—ฌ๋˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ํ•œ๋‹ค.

UDP์˜ ์„ธ๊ทธ๋จผํŠธ ํ—ค๋”

ํ•„๋“œ๋Š” ๋„ค ๊ฐœ๊ฐ€ ์žˆ๋‹ค:

  • source port
  • dest port
  • length
  • checksum: ์ „์†ก ๊ณผ์ • ์ค‘ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํ•„๋“œ. ์—๋Ÿฌ๊ฐ€ ์žˆ์œผ๋ฉด ์†Œ์ผ“์œผ๋กœ ์ „๋‹ฌํ•˜์ง€ ์•Š๊ณ  ๋“œ๋žํ•œ๋‹ค.

UDP๋„ ์ตœ์†Œํ•œ 1) ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ/๋””๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ๊ณผ 2) ์—๋Ÿฌ ํ™•์ธ ๋‘ ๊ธฐ๋Šฅ์€ ์ œ๊ณตํ•ด์ค€๋‹ค.


์‹ ๋ขฐ์  ๋ฐ์ดํ„ฐ ์ „์†ก (Reliable Data Transfer)

Reliable: ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์‹ค๋˜์ง€ ์•Š๊ณ  ์ „๋ถ€ ์ „์†ก๋œ๋‹ค๋Š” ์˜๋ฏธ๋‹ค.

TCP๋Š” ์•ž์„œ ๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ ์†Œ์ผ“๋ผ๋ฆฌ 1:1 ์—ฐ๊ฒฐ์„ ์ œ๊ณตํ•˜๋ฉด์„œ reliableํ•œ ์—ฐ๊ฒฐ์„ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ ๊ฐ™์ด ๋ณด์ด์ง€๋งŒ, ์‹ค์ œ๋กœ TCP ํ†ต์‹ ๋„ ๋งค์šฐ ๋ถˆ์•ˆ์ •ํ•˜๋‹ค๊ณ  ํ•œ๋‹ค. packet error, packet loss๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์•ˆ์ •์ ์ธ ๋ฐ์ดํ„ฐ ์ „์†ก ํ”„๋กœํ† ์ฝœ์„ ๊ณ ์•ˆํ•ด๋ณด์ž.

ํ•„์š”ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜๋“ค

1. ์—๋Ÿฌ ๊ฐ์ง€ (checksum)

์ „์†ก ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•œ ๋น„ํŠธ ์—๋Ÿฌ๋ฅผ ๊ฐ์ง€ํ•œ๋‹ค.

2. ํ”ผ๋“œ๋ฐฑ

  • Acknowledgements (ACKs) : ์ˆ˜์‹ ์ž๊ฐ€ ๋ฐœ์‹ ์ž์—๊ฒŒ ํŒจํ‚ท์ด ์ œ๋Œ€๋กœ ๋„์ฐฉํ–ˆ์Œ์„ ๋ช…์‹œ์ ์œผ๋กœ ์•Œ๋ ค์ฃผ๋Š” ๋ฐฉ๋ฒ•
  • Negative Acknowledgements (NAKs) : ์ˆ˜์‹ ์ž๊ฐ€ ๋ฐœ์‹ ์ž์—๊ฒŒ ํŒจํ‚ท์— ์—๋Ÿฌ๊ฐ€ ์žˆ์—ˆ์Œ์„ ๋ช…์‹œ์ ์œผ๋กœ ์•Œ๋ ค์ฃผ๋Š” ๋ฐฉ๋ฒ•

3. ์žฌ์ „์†ก

  • NAK ์‹œ์—๋Š” ํ•ด๋‹น ํŒจํ‚ท์„ ๋‹ค์‹œ ์ „์†กํ•œ๋‹ค
  • ๋ฐœ์‹ ์ž๋Š” ์ˆ˜์‹ ์ž๋กœ๋ถ€ํ„ฐ ACK๊ฐ€ ์˜ค๋ฉด ๋‹ค์Œ ํŒจํ‚ท์„ ์ „์†กํ•œ๋‹ค

์œ„์˜ ์„ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜๋“ค๋กœ ์–ธ๋œป ๋ณด๋ฉด ์ถฉ๋ถ„ํ• ๊นŒ?

4. ์‹œํ€€์Šค ๋ฒˆํ˜ธ

๋งŒ์•ฝ ์ˆ˜์‹ ์ž๊ฐ€ ์ „์†กํ•˜๋Š” ํ”ผ๋“œ๋ฐฑ(ACK, NAK)์— ์—๋Ÿฌ๊ฐ€ ์žˆ๋‹ค๋ฉด? ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜๋Š”์ง€์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๋˜ ์ „์†กํ•ด์•ผ ๋˜๋‚˜? ๊ทธ๋Ÿผ ๊ทธ ํ”ผ๋“œ๋ฐฑ์—์„œ ๋˜ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด? ๊ทธ๋ž˜์„œ ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ๋Š” ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค.

๊ทธ๋ž˜์„œ ํ”ผ๋“œ๋ฐฑ์— ์—๋Ÿฌ๊ฐ€ ์žˆ์œผ๋ฉด ๋ฐœ์‹ ์ž๋Š” NAK์ผ ์ˆ˜ ์žˆ์œผ๋‹ˆ ํ•ด๋‹น ํŒจํ‚ท์„ ๋ฌด์กฐ๊ฑด ๋‹ค์‹œ ์ „์†กํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ˆ˜์‹ ์ž ์ธก์—์„œ๋Š” ์ด ํŒจํ‚ท์ด ์ƒˆ๋กœ์šด ํŒจํ‚ท์ธ์ง€ ์•„๋‹ˆ๋ฉด ์ด์ „์— ๋ฐ›์€ ํŒจํ‚ท์ด ์ค‘๋ณต๋œ ๊ฒƒ์ธ์ง€ ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์„๊นŒ?

๊ทธ๋ž˜์„œ ๊ฐย ํŒจํ‚ท๋ณ„๋กœ ๋ฒˆํ˜ธ(์‹œํ€€์Šค)๋ฅผ ๋ถ™์—ฌ ํ•ด๊ฒฐํ•œ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์‹œํ€€์Šค๋ฅผ 0,1,2, ... ์ด๋ ‡๊ฒŒ ๊ณ„์† ๋ฌดํ•œ๋Œ€๋กœ ๋ถ™์—ฌ๋‚˜๊ฐ€์•ผ ํ•˜๋‚˜? ๊ทธ๋Ÿฐ๋ฐ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ •ํ•œ ์ด ํ”„๋กœํ† ์ฝœ์—์„œ๋Š” ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํŒจํ‚ท์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ „์†กํ•œ๋‹ค. ๊ทธ๋ž˜์„œ 0๊ณผ 1 ๋‘ ๊ฐœ๋ฅผ ๋Œ๋ ค์“ฐ๋ฉด ๋œ๋‹ค (ํŒจํ‚ท์˜ ๊ฐœ์ˆ˜ mod 2).

NAK-free ๋ฐฉ์‹

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

5. ํƒ€์ด๋จธ

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

๊ทธ๋Ÿฐ๋ฐ ํƒ€์ด๋จธ์˜ ์‹œ๊ฐ„์€ ์–ด๋–ป๊ฒŒ ์ •ํ•ด์•ผ ๋ ๊นŒ?

  • ํƒ€์ด๋จธ์˜ ์‹œ๊ฐ„์ดย ๋„ˆ๋ฌด ์งง์œผ๋ฉด: ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๋งŽ๋‹ค๋Š” ๋‹จ์ (premature timeout ๊ฒฝ์šฐ)์ด ์žˆ๋‹ค
  • ํƒ€์ด๋จธ์˜ ์‹œ๊ฐ„์ดย ๋„ˆ๋ฌด ๊ธธ๋ฉด: ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์ค„์ง€๋งŒ ๋ฐ์ดํ„ฐ ์ „์†ก ๊ณผ์ • ์ž์ฒด์˜ ์‹œ๊ฐ„์ด ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค

Pipelined Protocols

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

๊ทธ๋Ÿฐ๋ฐ ์ง€๊ธˆ ๊ณ ์•ˆํ•œ ํ”„๋กœํ† ์ฝœ์€ ๋„ˆ๋ฌด ๋‹จ์ˆœํ•˜๊ณ , ๊ทธ๋ž˜์„œ ๋น„ํšจ์œจ์ ์ด๋‹ค. ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํŒจํ‚ท์„ ์ „์†กํ•˜๋ฉด ์•ˆ์ •์ ์ด์ง€๋งŒ ๋งค์šฐ ๋น„ํšจ์œจ์ ์ด๋‹ค.

Go-Back-N (GBN)

์ด ํ”„๋กœํ† ์ฝœ์€ '์œˆ๋„์šฐ(window)'๋ผ๋Š” ๋‹จ์œ„๋กœ ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ํŒจํ‚ท์„ ๋ณด๋‚ธ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ๊ฐ€ 5๋ผ๋ฉด, ํ•œ ๋ฒˆ์— 0,1,2,3,4๋ฒˆ ํŒจํ‚ท์„ ์ „์†กํ•œ๋‹ค. ์ˆ˜์‹ ์ž ์ธก์—์„œ๋Š” ๋งž๊ฒŒ ์ˆ˜์‹ ํ•œ ํŒจํ‚ท ๋ฒˆํ˜ธ๋ณ„๋กœ ACK๋ฅผ ๋ณด๋‚ธ๋‹ค. 3๋ฒˆ ํŒจํ‚ท์—์„œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ACK2๊นŒ์ง€ ํ”ผ๋“œ๋ฐฑ์„ ๋ณด๋‚ธ๋‹ค (cumulative ACK๋ผ๊ณ  ํ•œ๋‹ค).

๊ทธ๋Ÿฌ๋ฉด ๋ฐœ์‹ ์ž๋Š” ๋‹ค์‹œ 3๋ฒˆ๋ถ€ํ„ฐ ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ์— ๋งž๊ฒŒ 5๊ฐœ์˜ ํŒจํ‚ท 3,4,5,6,7์„ ๋ณด๋‚ธ๋‹ค.

์ด ๋ฐฉ์‹์€ ์œ„์—์„œ ๊ณ ์•ˆํ•œ ํ”„๋กœํ† ์ฝœ๋ณด๋‹ค ๋” ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ๋ž˜๋„ ์ค‘๋ณต๋˜๋Š” ํŒจํ‚ท์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ „์†กํ•ด์•ผ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์•„์ง๋„ ๋งŽ์ด ๋น„ํšจ์œจ์ ์ด๋‹ค.

Selective Repeat (SR)

์ด ๋ฐฉ์‹์—์„œ๋Š” cumulative ACK๊ฐ€ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ํŒจํ‚ท์— ๋Œ€ํ•ด ACK๋ฅผ ๋ณด๋‚ธ๋‹ค. 0,1,2,3,4 ์ค‘์—์„œ 3๋ฒˆ ํŒจํ‚ท์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋ฉด ACK๋Š” 0,1,2,4๋ฒˆ๋งŒ ๋ณด๋‚ธ๋‹ค.

์‹œํ€€์Šค ๋ฒˆํ˜ธ๋Š”?

๊ทธ๋Ÿฐ๋ฐ ์œ„์˜ ๋ฐฉ๋ฒ•์—์„œ ๋ฌธ์ œ๊ฐ€ ํŒจํ‚ท ๋ฒˆํ˜ธ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ๋˜๋Š”์ง€์— ๋Œ€ํ•œ ๋ฌธ์ œ๊ฐ€ ๋‚จ๋Š”๋‹ค. ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ๊ฐ€ 5๋ผ๊ณ  ํ•˜๋ฉด ์‹œํ€€์Šค ๋ฒˆํ˜ธ ๋ช‡ ๊ฐœ๋ฅผ ์จ์•ผ ํ• ๊นŒ?

๋ฌธ์ œ ์ƒํ™ฉ ์˜ˆ์‹œ:

์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ๊ฐ€ 3์ด๊ณ  ํŒจํ‚ท ๋ฒˆํ˜ธ๋ฅผ 0,1,2,3 ์ด๋ ‡๊ฒŒ ๋„ค ๊ฐœ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.

  1. ์ฒ˜์Œ์— 0,1,2๋ฅผ ์ „์†กํ–ˆ๊ณ  ์ˆ˜์‹ ์ž๋Š” ๋ชจ๋‘ ์ž˜ ์ „๋‹ฌ๋ฐ›์•„์„œ ACK๋ฅผ ์ „์†กํ–ˆ์ง€๋งŒ ๊ทธ ํ”ผ๋“œ๋ฐฑ๋“ค์ด ๋ชจ๋‘ ์œ ์‹ค๋˜์—ˆ๋‹ค๊ณ  ํ•˜์ž
  2. ๊ทธ๋Ÿฌ๋ฉด ๋ฐœ์‹ ์ž๋Š” timeout๋˜๋‹ˆ ๋‹ค์‹œ ๋ชจ๋“  ํŒจํ‚ท์„ ์žฌ์ „์†ก
  3. ์ˆ˜์‹ ์ž๋Š” 3,0,1์„ ๊ธฐ๋‹ค๋ฆฌ๋Š”๋ฐ ๋„์ฐฉํ•œ 0,1,2 ์ค‘์— 0๊ณผ 1์ด ์ค‘๋ณต๋œ ํŒจํ‚ท์ธ๊ฑธ ์•Œ์•„๋‚ด์ง€ ๋ชปํ•œ๋‹ค

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

์ด๊ฑธ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์€ ๊ฐ„๋‹จํ•œ๋ฐ ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ๋Š˜๋ฆฌ๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.ย ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ์˜ 2๋ฐฐ ๊ฐœ์ˆ˜์˜ ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉดย ๊ฒน์น  ์ผ์ด ์—†๋‹ค.

N๊ฐœ๋ฅผ ๋ณด๋ƒˆ์„ ๋•Œ a๊ฐœ์˜ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ํ•˜๋ฉด N+a๊ฐœ์˜ ์‹œํ€€์Šค ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š”๋ฐ, N๊ฐœ ์•ˆ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ท ์˜ค๋ฅ˜์˜ ์ˆ˜๋Š” N์ด๋‹ˆ๊นŒ N+N์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

Selective Repeat์ด ๊ทธ๋Ÿฌ๋ฉด ์ตœ์„ ์ผ๊นŒ?

์ด์ œ ์‹œํ€€์Šค ๋ฒˆํ˜ธ ๋ฌธ์ œ๋„ ํ•ด๊ฒฐ๋๋Š”๋ฐ ๊ทธ๋Ÿฌ๋ฉด ์ด ๋ฐฉ๋ฒ•์ด ์ตœ์„ ์ผ๊นŒ? ์ง€๊ธˆ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” TCP๋Š” ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ• ๊นŒ?

๊ตฌํ˜„์— ๋น„์šฉ์ด ๋„ˆ๋ฌด ๋งŽ์ด ๋“ ๋‹ค๊ณ  ํ•œ๋‹ค (๋น„์šฉ์ด๋ผ ํ•จ์€ ์ปดํ“จํŒ… ์ž์›์˜ ์†Œ๋ชจ๊ฐ€ ํฌ๋‹ค๋Š” ๋ง). ๊ทธ๋ž˜์„œ ์‹ค์ œ๋กœ TCP์—์„œ๋Š” Go-Back-N๊ณผ Selective Repeat์˜ ์žฅ์ ์„ ์ž˜ ์„ž์–ด์„œ ์‚ฌ์šฉ ์ค‘์ด๋ผ๊ณ  ํ•œ๋‹ค.

๊ฐ ๋ฐฉ์‹์˜ ์žฅ๋‹จ์ :

  • GBN์˜ ์žฅ์ : Selective Repeat ๋ฐฉ์‹์ฒ˜๋Ÿผย ๋ณต์žกํ•œ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๋Š” ์ 
  • Selective Repeat์˜ ์žฅ์ : GBN์ฒ˜๋Ÿผย ์ค‘๋ณต๋œ ํŒจํ‚ท์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์žฌ์ „์†กํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ์ 

์ด๋Ÿฐ ์žฅ์ ๋“ค์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ ์ด๋“ค์„ ์–ด๋–ป๊ฒŒ ์„ž์—ˆ๋‹ค๋Š” ๊ฑธ๊นŒ? TCP๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ GBN์˜ cumulative ACK ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ, Fast Retransmit ๊ฐ™์€ ๊ธฐ๋ฒ•์œผ๋กœ Selective Repeat์˜ ์žฅ์ ์„ ์ผ๋ถ€ ๊ฐ€์ ธ์˜จ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ •๋ฆฌ

์‹ ๋ขฐ์  ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ 5๊ฐ€์ง€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํ•„์š”ํ•˜๋‹ค:

  1. ์—๋Ÿฌ ๊ฐ์ง€ย (checksum)
  2. ํ”ผ๋“œ๋ฐฑย (ACK/NAK)
  3. ์žฌ์ „์†ก
  4. ์‹œํ€€์Šค ๋ฒˆํ˜ธ
  5. ํƒ€์ด๋จธ

๊ทธ๋ฆฌ๊ณ  ํšจ์œจ์„ฑ์„ ์œ„ํ•ด pipelining์„ ๋„์ž…ํ•˜๋ฉด์„œ Go-Back-N๊ณผ Selective Repeat ๊ฐ™์€ ํ”„๋กœํ† ์ฝœ์ด ๋“ฑ์žฅํ–ˆ๊ณ , ์‹ค์ œ TCP๋Š” ์ด๋“ค์˜ ์žฅ์ ์„ ์กฐํ•ฉํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค.