Computer Science/๐Ÿ“ก Network

[๋„คํŠธ์›Œํฌ] TCP/IP ํ๋ฆ„์ œ์–ด์™€ ํ˜ผ์žก์ œ์–ด

J1Yun 2023. 2. 6. 15:39
728x90

ํ๋ฆ„์ œ์–ด

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

 

1. Stop and Wait

  • ๋งค๋ฒˆ ์ „์†กํ•œ ํŒจํ‚ท์— ๋Œ€ํ•ด ํ™•์ธ ์‘๋‹ต(ACK)์„ ๋ฐ›์•„์•ผ๋งŒ ๊ทธ ๋‹ค์Œ ํŒจํ‚ท์„ ์ „์†ก
  • ๊ตฌ์กฐ ์ƒ ๋น„ํšจ์œจ์ 

 

2. Sliding Window

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

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

  • ์†ก์‹ ์ธก์—์„œ [0, 1, 2, 3, 4, 5, 6]์˜ ํ”„๋ ˆ์ž„์„ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ์œˆ๋„์šฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ
  • ๋จผ์ € 0๊ณผ 1์„ ์ „์†กํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ์†ก์‹ ์ธก์˜ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ๊ตฌ์กฐ๋Š” [2, 3, 4, 5, 6]๊ณผ ๊ฐ™์ด ์ถ•์†Œ
  • ์ด๋•Œ, ์ˆ˜์‹ ์ธก์œผ๋กœ๋ถ€ํ„ฐ ์ •์ƒ ์ˆ˜์‹ ์„ ์•Œ๋ฆฌ๋Š” ACK๋ฅผ ๋ฐ›์•˜๋‹ค๋ฉด ์†ก์‹ ์ธก์˜ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ๋Š” ํ•ด๋‹น ACK์˜ ํ”„๋ ˆ์ž„ ์ˆ˜([0, 1])๋งŒํผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์œˆ๋„์šฐ์˜ ๊ฒฝ๊ณ„๋ฅผ ํ™•์žฅ
  • ๋งŒ์•ฝ ์†ก์‹ ์ธก์ด ์ผ์ • ์‹œ๊ฐ„๋™์•ˆ ์ˆ˜์‹ ์ธก์œผ๋กœ๋ถ€ํ„ฐ ACK๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ๋‹ค๋ฉด ํŒจํ‚ท ์žฌ์ „์†ก
  • ์†ก์‹ ์ธก์€ ACK์™€ ํ•จ๊ป˜ ์ „๋‹ฌ๋˜๋Š” ์ˆ˜์‹ ์ธก์˜ ๋‚จ์€ ๋ฒ„ํผ ํฌ๊ธฐ(์œˆ๋„์šฐ ํฌ๊ธฐ)๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ „์†ก๋Ÿ‰ ์ œ์–ด

 

 

ํ˜ผ์žก ์ œ์–ด

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

 

1. AIMD (Additive Increase/ Multicative Decrease, ํ•ฉ ์ฆ๊ฐ€/ ๊ณฑ ๊ฐ์†Œ)

  • ์ฒ˜์Œ์—๋Š” ํŒจํ‚ท์„ ํ•˜๋‚˜์”ฉ ์ „์†ก (Window Size = 1)
  • ๋„คํŠธ์›Œํฌ๊ฐ€ ์ •์ƒ(ACK ์ˆ˜์‹  O)์ผ ๊ฒฝ์šฐ Window Size + 1
  • ๋„คํŠธ์›Œํฌ๊ฐ€ ํ˜ผ์žก(ACK ์ˆ˜์‹  X)ํ•œ ๊ฒฝ์šฐ Window Size / 2
  • ๊ณตํŽธํ•œ ๋ฐฉ์‹์œผ๋กœ, ์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŠธ๊ฐ€ ํ•œ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๋‚˜์ค‘์— ์ง„์ž…ํ•œ ์ชฝ์ด ๋ถˆ๋ฆฌํ•˜๊ฒ ์ง€๋งŒ, ์‹œ๊ฐ„์ด ํ๋ฅด๋ฉด์„œ ํ‰ํ˜• ์ƒํƒœ๋กœ ์ˆ˜๋ ดํ•˜๊ฒŒ ๋˜๋Š” ํŠน์ง•
  • ๋ฌธ์ œ์ ์€ ์ดˆ๊ธฐ์— ๋„คํŠธ์›Œํฌ์˜ ๋†’์€ ๋Œ€์—ญํญ์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•ด ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ณ , ๋„คํŠธ์›Œํฌ ํ˜ผ์žก ์ƒํ™ฉ์„ ๋ฏธ๋ฆฌ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋„คํŠธ์›Œํฌ๊ฐ€ ํ˜ผ์žกํ•ด์ง€๊ณ  ๋‚˜์„œ์•ผ ๋Œ€์—ญํญ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์ž„

 

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

  • ์ฒ˜์Œ์—๋Š” ํŒจํ‚ท์„ ํ•˜๋‚˜์”ฉ ์ „์†ก (Window Size = 1)
  • ๋„คํŠธ์›Œํฌ๊ฐ€ ์ •์ƒ(ACK ์ˆ˜์‹  O)์ผ ๊ฒฝ์šฐ ๊ฐ๊ฐ์˜ ํŒจํ‚ท ๋งˆ๋‹ค Window Size + 1, ํ•œ ์ฃผ๊ธฐ๊ฐ€ ์ง€๋‚˜๋ฉด Window Size * 2๊ฐ€ ๋จ (์ง€์ˆ˜์  ์ฆ๊ฐ€)
  • ๋„คํŠธ์›Œํฌ๊ฐ€ ํ˜ผ์žก(ACK ์ˆ˜์‹  X)ํ•œ ๊ฒฝ์šฐ Window Size๋ฅผ 1๋กœ ์ค„์ž„
  • AIMD ๋ฐฉ์‹์— ๋น„ํ•ด ์ฒ˜์Œ ์ „์†ก ์†๋„๋ฅผ ์˜ฌ๋ฆฌ๋Š”๋ฐ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€ ์•Š์Œ

 

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

  • ์ฒ˜์Œ์—๋Š” ๋„คํŠธ์›Œํฌ ์ˆ˜์šฉ๋Ÿ‰์„ ์˜ˆ์ƒํ•˜๊ธฐ ์–ด๋ ต์ง€๋งŒ ํ•œ๋ฒˆ ํ˜ผ์žก์ด ๋ฐœ์ƒํ•˜๊ณ  ๋‚˜๋ฉด ๊ทธ ์ดํ›„์—๋Š” ๋„คํŠธ์›Œํฌ ์ˆ˜์šฉ๋Ÿ‰์„ ์–ด๋Š์ •๋„ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์Œ
  • ํ˜ผ์žก ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๋˜ window size์˜ ์ ˆ๋ฐ˜(์ž„๊ณ„๊ฐ’)๊นŒ์ง€๋Š” ์ด์ „์ฒ˜๋Ÿผ ์ง€์ˆ˜ ํ•จ์ˆ˜ ๊ผด๋กœ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ณ , ์ดํ›„๋ถ€ํ„ฐ๋Š” ์™„๋งŒํ•˜๊ฒŒ 1์”ฉ ์ฆ๊ฐ€
  • ์ „์†ก๋Ÿ‰์ด ์ž„๊ณ„๊ฐ’์„ ๋„˜์œผ๋ฉด Congestion Avoidance ๋‹จ๊ณ„๋กœ ์ง„์ž…ํ•˜์—ฌ AIMD ๋ฐฉ์‹์œผ๋กœ Window Size ์กฐ์ •

 

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

  • ์ˆ˜์‹ ์ธก์—์„œ ๋จผ์ € ๋„์ฐฉํ•ด์•ผํ•  ํŒจํ‚ท์ด ๋„์ฐฉํ•˜์ง€ ์•Š๊ณ  ๋‹ค์Œ ํŒจํ‚ท์ด ๋„์ฐฉํ•œ ๊ฒฝ์šฐ์—๋„ ACK ํŒจํ‚ท์„ ์ „์†กํ•จ
  • ๋‹จ, ์ˆœ์„œ๋Œ€๋กœ ์ž˜ ๋„์ฐฉํ•œ ๋งˆ์ง€๋ง‰ ํŒจํ‚ท์˜ ๋‹ค์Œ ํŒจํ‚ท ์ˆœ๋ฒˆ์ด ACK ํŒจํ‚ท๊ณผ ํ•จ๊ฒŒ ์ „์†ก๋˜๋ฏ€๋กœ ์†ก์‹ ์ธก์€ ์†์‹ค๋œ ํŒจํ‚ท์— ๋Œ€ํ•ด ์ˆœ๋ฒˆ์ด ์ค‘๋ณต๋œ ACK ํŒจํ‚ท์„ ๋ฐ›๊ฒŒ๋จ. ์ด๋ฅผ ์ธ์ง€ํ•˜๋ฉด ์†ก์‹ ์ธก์€ ํ•ด๋‹น ์ˆœ๋ฒˆ์˜ ํŒจํ‚ท์„ ์žฌ์ „์†ก
  • ์ค‘๋ณต๋œ ์ˆœ๋ฒˆ์˜ ํŒจํ‚ท์„ 3๊ฐœ ๋ฐ›์œผ๋ฉด ์žฌ์ „์†ก, ํ˜ผ์žก์„ ๊ฐ์ง€ํ•˜๊ณ  window size ๊ฐ์†Œ

 

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

  • ํ˜ผ์žกํ•œ ์ƒํƒœ๊ฐ€ ๋˜๋ฉด window size๋ฅผ 1๋กœ ์ค„์ด์ง€ ์•Š๊ณ  ๋ฐ˜์œผ๋กœ ์ค„์ด๊ณ  ์„ ํ˜•์ฆ๊ฐ€์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•
  • ๋น ๋ฅธ ํšŒ๋ณต ์ •์ฑ…๊นŒ์ง€ ์ ์šฉํ•˜๋ฉด ํ˜ผ์žก ์ƒํ™ฉ์„ ํ•œ๋ฒˆ ๊ฒช๊ณ  ๋‚˜์„œ๋ถ€ํ„ฐ๋Š” ์ˆœ์ˆ˜ํ•œ AIMD ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘
728x90