CS_N_04

์ด์ •๋นˆยท2024๋…„ 2์›” 1์ผ
0

CS์Šคํ„ฐ๋””

๋ชฉ๋ก ๋ณด๊ธฐ
9/10

๐Ÿ“• ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํ”„๋กœํ† ์ฝœ(UDP/IP)

UDP๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

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

UDP์˜ ์ž‘๋™ ์›๋ฆฌ

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

UDP์˜ ์šฉ๋„

๋Œ€ํ‘œ์ ์œผ๋กœ UDP์˜ ์šฉ๋„๋Š” ํฌ๊ฒŒ ์„ธ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ
  • ์—ฌ๋Ÿฌ ์ƒ๋Œ€์—๊ฒŒ ๊ฐ™์€ ๋‚ด์šฉ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ
  • ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ ์‹ ๋ขฐ์„ฑ์ด ํ•„์š”ํ•˜์ง€ ์•Š๋Š” ์†Œ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ
  1. ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „์†ก์€ VoIp(Voice Over IP)๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. VoIp๋Š” ๋„คํŠธ์›Œํฌ์ƒ์—์„œ ์Œ์„ฑ์„ IP ํŒจํ‚ท์œผ๋กœ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ IP ํŒจํ‚ท์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์ฃผ๊ณ  ๋ฐ›์•„์•ผ ํ•˜๋Š” ๊ธฐ์ˆ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ง€์—ฐ์‹œ๊ฐ„์ด ์ƒ๊ธฐ๋Š” ๊ฒƒ์€ ํฐ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— TCP์™€ ๊ฐ™์€ ์—ฐ๊ฒฐ์˜ ์„ฑ๋ฆฝ์ด ํ™•์ธ ์‘๋‹ต ์‹œ์Šคํ…œ์€ ๋‹จ์ˆœ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์ด๊ธฐ์— ์‹ ๋ขฐ์„ฑ์ด ๋‚ฎ๋”๋ผ๋„ ์ „์†ก์„ ์šฐ์„ ์œผ๋กœ ํ•˜๋Š” UDP๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  2. ๋‘๋ฒˆ์งธ ์šฉ๋„์—์„œ ์—ฌ๋Ÿฌ ์ƒ๋Œ€์—๊ฒŒ ๊ฐ™์€ ๋‚ด์šฉ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ• ๋•Œ, Broad Cast, Multi Cast ํ†ต์‹  ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ด๋Ÿฌํ•œ ํ†ต์‹  ๋ฐฉ๋ฒ•์€ TCP์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—(TCP๋Š” 1:1 ํ†ต์‹ ๋งŒ ๊ฐ€๋Šฅํ•œ ์œ ๋‹ˆ์บ์ŠคํŠธ ํ†ต์‹ ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.) ์‹ค์‹œ๊ฐ„ ์˜์ƒ์„ ์ œ๊ณตํ•˜๋Š” Zoom๊ณผ ๊ฐ™์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ UDP๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

  3. ๋งˆ์ง€๋ง‰์œผ๋กœ, ์†Œ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ์ฃผ๋กœ ๋“ค ์ˆ˜ ์žˆ๋Š” ์˜ˆ์‹œ๋Š” DNS Domain name transfering ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋ช‡ ๋ฉ”๊ฐ€ ๋ฐ”์ดํŠธ ์ด์ƒ์˜ ํŒŒ์ผ์„ ์ „์†กํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” TCP๋ฅผ ํ†ตํ•œ ์‹ ๋ขฐ์„ฑ ํ™•์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ํฐ ์‚ฌ์ด์ฆˆ์˜ ๋ฐ์ดํ„ฐ๋Š” ํŒจํ‚ท์˜ ํ˜•ํƒœ๋กœ ์ชผ๊ฐœ์ ธ ๋“ค์–ด์™€ ํ•ฉ์ณ์ง€๋Š” ๋ฐฉ์‹์ธ๋ฐ ํ•˜๋‚˜๋ผ๋„ ์œ ์‹ค๋˜๋ฉด ํ•ด๋‹น ํŒŒ์ผ์ด ์ •์ƒ ๋™์ž‘ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์—, ์•„์ฃผ ์ž‘์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฒฝ์šฐ์—๋Š” ์˜คํžˆ๋ ค ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ํ†ต์‹  ํšจ์œจ๋งŒ ๋‚ฎ์ถ”๊ธฐ ๋–„๋ฌธ์— UDP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

UDP์˜ ์žฅ๋‹จ์ ์ด ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

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

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

UDP DDos Attack
UDP๋Š” ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ทธ๋Ÿฐ ํŠน์ง•๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ, ํŒจํ‚ท ์†์‹ค๊ณผ ๊ฐ™์€ ์œ„ํ—˜์€ ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋‚˜, ์ด๋Ÿฌํ•œ UDP์˜ ํŠน์ง•์— ์˜ํ•ด์„œ ์•…์˜์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

ICMP(Internet Control Message Protocol)
ICMP๋Š” ๋„คํŠธ์›Œํฌ ์žฅ์น˜์—์„œ ๋„คํŠธ์›Œํฌ ํ†ต์‹  ๋ฌธ์ œ๋ฅผ ์ง„๋‹จํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋„คํŠธ์›Œํฌ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ ์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ, ๋ฐ์ดํ„ฐ๊ฐ€ ์˜๋„ํ•œ ๋Œ€์ƒ์— ์ ์‹œ์— ๋„๋‹ฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์žฅ์น˜๋Š” ๋ผ์šฐํ„ฐ์™€ ๊ฐ™์€ ์žฅ์น˜์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ICMP๋Š” DDos ๊ณต๊ฒฉ์—๋„ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

UDP์˜ ์ฒดํฌ์„ฌ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

TCP์™€ UDP๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ณด๋‚ด๋Š” ๋ฐ์ดํ„ฐ์˜ ์ •๋ณด๋ฅผ ํ—ค๋”๋ผ๋Š” ๋ด‰์ง€์— ๋‹ด์•„์„œ ๋ณด๋‚ด๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ ํ•ด๋‹น ๋ฐ์ดํ„ฐ์˜ ๋ชฉ์ ์ง€ ๋“ฑ์„ ์ „๋‹ฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์œ„์˜ Table์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ TCP/UDP๋Š” ๊ณตํ†ต์ ์œผ๋กœ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์˜ค๋ฅ˜ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•œ ์ฒดํฌ์„ฌ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. (UDP์˜ ํ—ค๋”์™€ ์‹ค์ œ UDP ๋ฐ์ดํ„ฐ๋ฅผ ํ•ฉ์นœ ๊ฒƒ์„ ๋ฐ์ดํ„ฐ๊ทธ๋žจ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ TCP ์—์„œ๋Š” TCP Segment๋ผ๊ณ  ๋ช…๋ช…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.) ์ฒดํฌ์„ฌ์„ ํ†ตํ•ด์„œ UDP์—์„œ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ํ™•์ธํ•˜๋ฉฐ ์ด๋Ÿฌํ•œ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ํŒจํ‚ท์„ ์ „์†กํ•˜๊ธฐ ์ „์— ๋งˆ์ณ ๋†“๊ณ , ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ํŒจํ‚ท์— ํฌํ•จํ•˜์—ฌ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

์ฒดํฌ์„ฌ์˜ ํŒจํ‚ท ๊ณ„์‚ฐ ๋ฐฉ์‹

  1. ์†ก์‹ ์ธก์—์„œ ์ „์†กํ•  ๋ฐ์ดํ„ฐ๋ฅผ 16๋น„ํŠธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ฐ์žํ„ฐ์˜ ๊ธธ์ด๊ฐ€ 16๋น„ํŠธ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค๋ฉด, ํŒจ๋”ฉ ๋น„ํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ 16๋น„ํŠธ ๋‹จ์œ„๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  2. ๋‚˜๋ˆˆ ๊ฐ 16๋น„ํŠธ ๋‹จ์œ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ๋ง์…ˆ์˜ ๊ฒฐ๊ณผ๊ฐ€ 16๋น„ํŠธ๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด, ์ดˆ๊ณผ๋œ ๋น„ํŠธ๋ฅผ ๋‹ค์‹œ ๋”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์–ป์€ ๊ฒฐ๊ณผ๋ฅผ 1์˜ ๋ณด์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ฒดํฌ์„ฌ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  3. ์ด ์ฒดํฌ์„ฌ์„ ๋ฐ์ดํ„ฐ ํŒจํ‚ท์— ํฌํ•จํ•˜์—ฌ ์ˆ˜์‹ ์ž์—๊ฒŒ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๋ฐ›์€ ์ฒดํฌ์„ฌ์„ ์ˆ˜์‹ ์ž ์ธก์—์„œ๋Š” ํŒจํ‚ท์˜ ์ฒดํฌ์„ฌ์„ ์ œ์™ธํ•œ ๋ถ€๋ถ„์„ 16๋น„ํŠธ๋กœ ๋‚˜๋ˆ„์–ด ๋”ํ•˜๊ณ , ์ด๋ ‡๊ฒŒ ๋”ํ•œ ๊ฒฐ๊ณผ์— ์ฒดํฌ์„ฌ์„ ๋”ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๊ฐ€ 0์ด ์•„๋‹ ๊ฒฝ์šฐ์—๋Š” ๋ฐ์ดํ„ฐ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ์œผ๋กœ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“— ์‹ ๋ขฐ์  ๋ฐ์ดํ„ฐ ์ „์†ก์˜ ์›๋ฆฌ

์ „์†ก ํ›„ ๋Œ€๊ธฐ ํ”„๋กœํ† ์ฝœ์ด ๋ญ”์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

์ „์†ก ํ›„ ๋Œ€๊ธฐ ํ”„๋กœํ† ์ฝœ์ด๋ผ๊ณ  ํ•จ์€ Stop and Wait Protocol์ด๋ผ๊ณ  ์“ฐ๊ณ , ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ํ˜•ํƒœ์˜ ์˜ค๋ฅ˜ ์ œ์–ด ํ”„๋กœํ† ์ฝœ ์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋žตํ•˜๊ฒŒ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ ํ›„ ์ˆ˜์‹ ์ž๋กœ๋ถ€ํ„ฐ ACK๋ฅผ ๋ฐ›์„ ๋•Œ ๊นŒ์ง€ ๋Œ€๊ธฐํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐ์ดํ„ฐ์˜ ์†์‹ค์ด๋‚˜ ์˜ค๋ฅ˜๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด๋ ‡๊ฒŒ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ๋งŒ ํ•˜๋Š” ๋ฐฉ์‹์„ ํšจ์œจ์ ์ด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Go-Back-N๊ณผ Selective Repeat ๊ฐ™์€ ์˜ค๋ฅ˜ ์ œ์–ด ํ”„๋กœํ† ์ฝœ์ด ๋” ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋†’์€ ํšจ์œจ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

  1. ์†ก์‹ ์ž๊ฐ€ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์ˆ˜์‹ ์ž์—๊ฒŒ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
  2. ์ˆ˜์‹ ์ž๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์ •์ƒ์ ์œผ๋กœ ๋ฐ›์œผ๋ฉด ACK(Positive Acknowledgement)๋ฅผ ์†ก์‹ ์ž์—๊ฒŒ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  3. ์†ก์‹ ์ž๋Š” ACK๋ฅผ ๋ฐ›์„ ๋•Œ ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.
  4. ๋งŒ์•ฝ ์†ก์‹ ์ž๊ฐ€ ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ACK๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ๋‹ค๋ฉด, ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์žฌ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ง€๋Š” ์ด์œ ๋Š” ์„ธ๊ฐ€์ง€๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
1. ๋ฐ์ดํ„ฐ ์ž์ฒด์˜ ์˜ค๋ฅ˜๋กœ ์ธํ•œ ์†์‹ค -> ๋ฐ์ดํ„ฐ ์ž์ฒด๊ฐ€ ๊ฐ€์ง€ ์•Š์œผ๋ฏ€๋กœ ACK ์‹ ํ˜ธ ๋˜ํ•œ ๋ณด๋‚ด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฌดํ•œ์ • ๋Œ€๊ธฐ
2. ์†์‹ค๋œ ํ™•์ธ ์‹ ํ˜ธ์˜ ๋ˆ„๋ฝ -> ํ•œ๋ฒˆ ๋ˆ„๋ฝ์ด ๋˜๋ฉด ์ด์ „ ํŒจํ‚ท์˜ ํ™•์ธ์ด ์ˆ˜์‹ ๋ ๋•Œ ๊นŒ์ง€ ๊ณ„์†ํ•ด์„œ ๋Œ€๊ธฐ
3. ์ง€์—ฐ๋œ ๋ฐ์ดํ„ฐ ๋˜๋Š” ํ™•์ธ ์‹ ํ˜ธ -> ํ™•์ธ ์‹ ํ˜ธ๋Š” ์†ก์‹ ์ฐจ ์ธก์˜ ์‹œ๊ฐ„์ดˆ๊ณผ(timeout) ๊ธฐ๊ฐ„ ํ›„์— ์ˆ˜์‹ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ํ™•์ธ ์‘๋‹ต์ด ์ง€์—ฐ๋˜์–ด ์ˆ˜์‹ ๋˜๋ฏ€๋กœ ์ž์นซ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํŒจํ‚ท์˜ ์‘๋‹ต์œผ๋กœ ์ž˜๋ชป ๊ฐ„์ฃผ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ดํ”„๋ผ์ธ ํ”„๋กœํ† ์ฝœ์ด ๋ญ”์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

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

์ด๋Ÿฌํ•œ ํŒŒ์ดํ”„๋ผ์ธ ํ”„๋กœํ† ์ฝœ์—๋Š” GO-Back-N, Selective Repeat ARQ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์— ๋Œ€ํ•ด์„œ ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

Go-Back-N ARQ

Go-Back-N์€ ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์˜ค๋ฅ˜ ์ œ์–ด ํ”„๋กœํ† ์ฝœ ์ค‘ ํ•˜๋‚˜๋กœ, ์ „์†ก์ž์™€ ์ˆ˜์‹ ์ž ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๊ด€๋ฆฌํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ์†์‹ค์ด๋‚˜ ์†์ƒ์„ ๊ฐ์ง€ํ•˜๊ณ  ๋ณต๊ตฌํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ธฐ์ˆ ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์—ฐ์†์ ์œผ๋กœ ํŒจํ‚ท์„ ์ „์†กํ•˜์—ฌ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ํ”„๋กœํ† ์ฝœ์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ, 0~7๊นŒ์ง€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ• ๋•Œ ๊ฐ๊ฐ์ด ์ „์†ก๋˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๋˜ํ•œ ๋ณ„๋„์˜ ํƒ€์ด๋จธ๊ฐ€ ๋™์ž‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํƒ€์ด๋จธ์— ์„ค์ •ํ•œ ์‹œ๊ฐ„ ๋‚ด์— ACK๋ฅผ ๋ฐ›์ง€ ๋ชปํ•˜๋ฉด ํ•ด๋‹น ํŒจํ‚ท๋ถ€ํ„ฐ ์œˆ๋„์šฐ ํฌ๊ธฐ๋งŒํผ์˜ ๋ชจ๋“  ํŒจํ‚ท์„ ์žฌ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋งŒ์•ฝ 0~5๊นŒ์ง€ ํŒจํ‚ท์„ ์ „์†ก์„ ํ–ˆ์ง€๋งŒ, Receiver ์ธก์—์„œ 5๋ฅผ ์˜จ์ „ํžˆ ๋ฐ›์ง€ ๋ชปํ–ˆ๋‹ค๋ฉด, ๊ณ„์† ACK๋Š” 1234444---๋ฅผ ๋ณด๋‚ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ œ๋Œ€๋กœ ์ „์†ก๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ์˜จ์ „ํžˆ ๋‹ค์‹œ ๋ณด๋ƒ„์œผ๋กœ์จ ๋ฌด๊ฒฐ์„ฑ์„ ์ง€ํ‚ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํƒ€์ด๋จธ๊ฐ€ ๋งŒ๋ฃŒ๋˜๊ธฐ ์ „์— ACK๊ฐ€ ์˜ค๊ฒŒ ๋˜๋ฉด ๊ทธ ๋‹ค์Œ ACK๊ฐ€ ๋˜์ง€ ์•Š์€ ๊ฐ€์žฅ ์ตœ์‹ ์˜ ํŒจํ‚ท์— ๋Œ€ํ•œ ํƒ€์ด๋จธ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

Selective Repeat ARQ

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

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

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

๐Ÿ“˜ Transmission Control Protocol

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

TCP๋Š” OSI 7 Layers๋ฅผ ๊ณต๋ถ€ํ•  ๋•Œ ๋งŽ์ด ๋“ค์–ด๋ณผ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์˜ ํ•˜๋‚˜๋กœ, ์žฅ๋น„๋“ค ๊ฐ„์˜ ํ†ต์‹  ๊ณผ์ •์—์„œ ์ •๋ณด๋ฅผ ์•ˆ์ •์ ์œผ๋กœ, ์ˆœ์„œ๋Œ€๋กœ, ์—๋Ÿฌ์—†์ด ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์— ๋ชฉ์ ์„ ๋‘” ํ”„๋กœํ† ์ฝœ ์ž…๋‹ˆ๋‹ค. ์ผ์ƒ์ ์œผ๋กœ ์‘์šฉ๊ณ„์ธต๋ณด๋‹ค ๋‚ฎ์€ ๋ ˆ์ด์–ด์˜ ํ”„๋กœํ† ์ฝœ์„ ์ ‘ํ•  ๊ธฐํšŒ๋Š” ํ”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, ์ผ๋ จ์˜ ์ž‘์—…๋“ค์„ ๊ฑฐ์˜ OS์˜ ์„ ์—์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋Š” ์‘์šฉ๊ณ„์ธต์˜ ์ผ์—์„œ ์ž‘์—…์„ ํ•˜๊ณ  ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฒƒ์ด ๋ ˆ์ด์–ด ๋ชจ๋ธ์ด ๋“ฑ์žฅํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค. ๊ฐ ๊ณ„์ธต๊ฐ„์˜ ์—ญํ•  ๋ถ„๋‹ด์„ ํ†ตํ•ด ์–ด๋–ค ์ž‘์—…์„ ํ•  ๋•Œ ์‹ ๊ฒฝ์จ์•ผํ•˜๋Š” ๋ฒ”์œ„๋ฅผ ์ขํ˜€ ์ˆ˜๋งŽ์€ ๊ธฐ์ˆ ์˜ ์ง‘์•ฝ์ฒด์ธ ๋„คํŠธ์›Œํฌ๋ฅผ ํ•œ๋ช… ํ•œ๋ช… ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ชจ๋‘ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ํ•„์š”์— ๋”ฐ๋ผ ์‘์šฉํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ณผ๊ฑฐ์˜ ๋ƒ‰์ „๊ณผ ์„ธ๊ณ„ ๋Œ€์ „ ๋‹น์‹œ ๋ฐ์ดํ„ฐ์˜ ํ•„์š”์„ฑ์— ๋”ฐ๋ผ ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

TCP์˜ ํ—ค๋”

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

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

3-way handshake

๋ง ์ฒ˜๋Ÿผ 3๋ฒˆ์˜ Handshake, ์ฆ‰ 3๋ฒˆ์˜ ํ†ต์‹  ๊ณผ์ •์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด์„œ ํ†ต์‹ ์„ ํ•˜๋Š” ์–‘ ์ข…๋‹จ์€ ์–ด๋Š ๋ˆ„๊ตฌ์™€ ํ†ต์‹ ์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€, ๋ฐ›์•„์•ผ ํ•  ๋‚จ์€ ์‹œํ€ธ์Šค ๋ฒˆํ˜ธ๋Š” ๋ช‡๋ฒˆ์ธ์ง€ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • Closed : ์•„์ง ์—ฐ๊ฒฐ ์š”์ฒญ์„ ํ•˜์ง€ ์•Š์•˜๊ธฐ์— ์•„๋ฌด๋Ÿฐ ์—ฐ๊ฒฐ๋„ ์—†๋Š” ์ƒํ™ฉ
  • Listen : ์ˆ˜์‹ ์ž(Receiver)๊ฐ€ ์š”์ฒญ์ž(Initiator)์˜ ์—ฐ๊ฒฐ ์š”์ฒญ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ, Initiator๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ด๊ธฐ ์ „๊นŒ์ง€๋Š” ๊ณ„์† Receiver๋Š” Listen์˜ ์ƒํƒœ๋กœ ๋Œ€๊ธฐ๋ฅผ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํƒœ๋ฅผ Passive Open์ด๋ผ๊ณ  ํ•˜๊ณ , ์ด๋ ‡๊ฒŒ ๊ฐœ๋ฐฉํ•˜๊ฒŒ ํ•˜๋Š” Initiator๋Š” Passive Opener๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค.
  • SYN_SENT : Initiator๊ฐ€ ์—ฐ๊ฒฐ ์š”์ฒญ์„ ํ•˜๋ฉด์„œ ๋žœ๋คํ•œ ์ˆซ์ž์ธ ์‹œํ€ธ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ƒ์„ฑํ•ด์„œ SYN Packet์— ๋‹ด์•„ ๋ณด๋‚ธ ์ƒ๋Œ€๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น Sequence Number๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Initiator ์™€ Receiver๋Š” ๊ณ„์† ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋งŒ๋“ค๊ณ  ์„œ๋กœ ํ™•์ธํ•˜๋ฉฐ ์—ฐ๊ฒฐ ์ƒํƒœ์™€ ํŒจํ‚ท์˜ ์ˆœ์„œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์„ Active Open๊ทธ๋ฆฌ๊ณ  Initiator๋ฅผ Active Opener๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  • SYN_RECV : Initiator๊ฐ€ ๋ณด๋‚ธ SYN Packet์„ ์ œ๋Œ€๋กœ ๋ฐ›์€ ์ƒํƒœ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ Receiver๋Š” Acknowledgement ๊ฐ’์„ ๋‹ค์‹œ ๋งŒ๋“ค์–ด์„œ Initiator์—๊ฒŒ ๋‹ค์‹œ ๋Œ๋ ค์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ACK๋Š” Squence Number + 1์˜ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ์ด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ๋Œ๋ ค์ค„ ๋•Œ๋Š” ์ƒ๋Œ€๋ฐฉ์ด ๋ณด๋‚ธ ์‹œํ€ธ์Šค ๋ฒˆํ˜ธ + ์ƒ๋Œ€๋ฐฉ์ด ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ์˜ Byte๋ฅผ ํ•ฉ์ณ์„œ ACK๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๋ƒ…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ดˆ๊ธฐ ๊ณผ์ •์—์„œ๋Š” ์•„๋ฌด๋Ÿฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœํ•˜๊ฒŒ ๊ตฌ๋ณ„์„ ์œ„ํ•ด +1์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ESTABLISHED(Initiator) : Initiator๋Š” ์ž์‹ ์ด ๋งจ ์ฒ˜์Œ์— ๋ณด๋ƒˆ๋˜ Sequence Number์™€ Receiver๊ฐ€ ์‘๋‹ต์œผ๋กœ ๋ณด๋‚ด์ค€ ACK(SN + 1)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐ์ด ์ œ๋Œ€๋กœ ์„ฑ๋ฆฝ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„ ์ œ๋Œ€๋กœ ์—ฐ๊ฒฐ ๋˜์—ˆ์Œ์„ ํ™•์ธ ํ–ˆ์„ ๊ฒฝ์šฐ ๋‹ค์‹œ Sequence Number + 1์„ ํ•œ ACK๋ฅผ Receiver์—๊ฒŒ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  • ESTABLISHED(Receiver) : 1์„ ๋ฐ›๊ฒŒ ๋  ๊ฒฝ์šฐ ์ œ๋Œ€๋กœ ์—ฐ๊ฒฐ์ด ๋˜์—ˆ์Œ์„ ํ™•์ธํ•˜๊ณ  ESTABLISHED ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ€ ์•ˆ์ „ํ•˜๊ณ  ์‹ ๋ขฐ์„ฑ์žˆ๋Š” ์—ฐ๊ฒฐ์ด ์ƒ์„ฑ๋˜์—ˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ณ  ํ†ต์‹ ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4-way Handshake

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

๊ฐœ๋ฐœ์ž๋“ค์€ 4-way handshake, ์ฆ‰ ์—ฐ๊ฒฐ์ด ๋Š์–ด ์งˆ๋•Œ๋ฅผ ๋” ์ฃผ์˜ ๊นŠ๊ฒŒ ๋ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, ์ˆœ์ฐจ์ ์œผ๋กœ ์‹ ํ˜ธ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ฐฉ์‹์ด ์•„๋‹Œ ์ƒ๋Œ€๋ฐฉ์ด ์‘๋‹ต์„ ์ค„๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐ ํ•˜๋Š” ๊ณผ์ •์ด ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๊ฐ„์— ํ•˜๋‚˜๋ผ๋„ ์–ด๊ธ‹๋‚˜๋ฉด ๋ฐ”๋กœ DEADLOCK์ด ๋ฐœ์ƒํ•  ์ˆ˜ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ผ์ • ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ํƒ€์ž„์•„์›ƒ์ด ๋˜๋ฉด์„œ ์ •์ƒํ™”๊ฐ€ ๋˜์ง€๋งŒ, ๊ทธ๋™์•ˆ ๋ฉ”๋ชจ๋ฆฌ์™€ ํฌํŠธ๋ฅผ ์ ์œ ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋ณ‘๋ชฉ์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋Š˜๊ฒŒ ๋˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

  • FIN_WAIT_1 : ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ณ ์ž ํ•˜๋Š” Initiator๊ฐ€ FIN packet์„ ๋ณด๋‚ด๋ฉด์„œ FIN_WAIT_1 ์ƒํƒœ๋กœ ๋“ค์–ด์„œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. FIN packet์— ํฌํ•จ๋˜๋Š” sequence number๋Š” ๋žœ๋คํ•œ ๊ฐ’์ด ์•„๋‹Œ ์ด๋ฏธ 3-way handshake์—์„œ ์„ค์ •๋œ ๊ฐ’์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. (Active Closer, Active Close)

  • CLOSE_WAIT : Initiator๋กœ ๋ถ€ํ„ฐ FIN Packet์„ ๋ฐ›์€ Receiver๋Š” Initiator๊ฐ€ ๋ณด๋‚ธ SN+1๋กœ ACK(์Šน์ธ ๋ฒˆํ˜ธ)๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋‹ค์‹œ ์š”์ฒญ์ž์—๊ฒŒ ์‘๋‹ตํ•˜๋ฉฐ CLOSE_WAIT ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ close(), shutdown() ๊ณผ ๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด ๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์—ฐ๊ฒฐ ์ข…๋ฃŒ ํ•จ์ˆ˜๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœ ๋˜์ง€ ์•Š๋Š” ๋‹ค๋ฉด ๋‹ค์Œ ์ƒํƒœ๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ๋Š” ์ˆ˜๋™์œผ๋กœ ์ข…๋ฃŒ๋ฅผ ํ•  ์ค€๋น„๋ฅผ ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— Passive Closer, Passive Close๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  • FIN_WAIT_2 : Initiator๊ฐ€ Receiver๋กœ ๋ถ€ํ„ฐ ACK๋ฅผ ๋ฐ›๊ณ  ๋ณด๋ƒˆ๋˜ SN๊ณผ์˜ ์ฐจ์ด๊ฐ€ 1์ด ๋งˆ์ฆŒ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•„์ง, ์ˆ˜์‹ ์ž์˜ ๋ฐ์ดํ„ฐ ์ „์†ก์ด ์ „๋ถ€ ๋๋‚˜์ง€ ์•Š์•˜์„ ์ˆ˜ ๋„ ์žˆ๊ธฐ๋Œ€ ๋Œ€๊ธฐ ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ€ ์—ฐ๊ฒฐ ์ข…๋ฃŒ๋ฅผ ํ—ˆ๋ฝํ•˜๋Š” FIN Packet์„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. ํƒ€์ž„์•„์›ƒ์„ ์„ค์ •ํ–ˆ์„ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด ๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • LAST_ACK : Receiver๋Š” ์ž์‹ ์ด ์ฒ˜๋ฆฌํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ๋” ์ด์ƒ ์—†๋‹ค๋ฉด ์—ฐ๊ฒฐ ์ข…๋ฃŒ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , FIN Packet์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด๋•Œ, FIN Packet์˜ SN์€ ์ž์‹ ์ด ์ „์†กํ•ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ SN์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ ACK๋„ ๋˜‘๊ฐ™์ด ๋งˆ์ง€๋ง‰์œผ๋กœ ์‚ฌ์šฉํ–ˆ๋˜ ๊ฒƒ์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ LAST_ACK ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ€๋ฉฐ ACK๋ฅผ ๋ณด๋‚ด์ค„ ๋•Œ ๊นŒ์ง€ ๋Œ€๊ธฐํ•ฉ๋‹ˆ๋‹ค.

  • TIME_WAIT : Receiver๋กœ๋ถ€ํ„ฐ FIN Packet์„ ๋ฐ›์€ Initiator๋Š” SN+1์˜ ACK๋ฅผ ์ƒ์„ฑํ•˜์—ฌ Receiver์—๊ฒŒ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ TIME_WAIT ์ƒํƒœ๋กœ ๋Œ์ž…ํ•˜๋ฉฐ ์‹ค์งˆ์ ์ธ ์ข…๋ฃŒ๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ƒํƒœ๋Š” ์˜๋„ํ•˜์ง€ ์•Š์€ ์—๋Ÿฌ๋กœ ์ธํ•ด ๋ฐ๋“œ๋ฝ์— ๋น ์ง€๋Š” ๊ฒƒ์„ ๋ง‰์ง€ ์œ„ํ•ด์„œ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๊ธฐ ์‹œ๊ฐ„์€ ๋Œ€์ฒด๋กœ 2 MSL(Maximum Segment Lifetime)์œผ๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“™ Congestion control์ด๋ž€?

Congestion Control์ด๋ž€ ๋ง ๊ทธ๋Œ€๋กœ ๋„คํŠธ์›Œํฌ์˜ ํ˜ผ์žก ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ๊ทธ ์ƒํƒœ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก์„ ์ œ์–ดํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

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

์œ„ ๊ฐ™์€ ์ƒํ™ฉ์ด ๋ฒŒ์–ด์ง€๊ฒŒ ๋˜๋ฉด, ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์žฌ์ „์†ก์ด๋ผ๋Š” ์ž‘์—…์ด ๊ณ„์† ๋ฐ˜๋ณต๋˜๊ฒŒ ๋˜๋Š”๋ฐ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ๊ฒƒ๋“ค์ด ๋™์‹œ ๋‹ค๋ฐœ์ ์œผ๋กœ ์žฌ์ „์†ก์„ ํ•˜๊ฒŒ ๋˜๋ฉด Latency๊ฐ€ ๊ธธ์–ด์ง€๋ฉฐ ๋ฌธ์ œ๊ฐ€ ์ ์  ์•…ํ™”๊ฐ€ ๋˜๋Š” ๊ฒƒ์„ ์ž˜ ์กฐ์œจํ•˜๊ธฐ ์œ„ํ•ด Initiator ์ธก์˜ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ์ „์†ก๋Ÿ‰์„ ๊ฐ•์ œ์ ์œผ๋กœ ์ค„์ด๋Š” ๊ฒƒ์€ Congestion Control, ํ˜ผ์žก ์ œ์–ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

Congestion Window, CWND
์†ก์‹ ์ธก์˜ ์œˆ๋„์šฐ๋Š” ์ˆ˜์‹ ์ธก์ด ๋ณด๋‚ด์ค€ ์œˆ๋„์šฐ ํฌ๊ธฐ์™€ ๋„คํŠธ์›Œํฌ ์ƒํ™ฉ์„ ๊ณ ๋ คํ•˜์—ฌ ์ •ํ•ด์ง‘๋‹ˆ๋‹ค. Initiator๋Š” ์ตœ์ข… ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ •ํ•  ๋•Œ, Receiver๊ฐ€ ๋ณด๋‚ด ์ค€ ์œˆ๋„์šฐ ํฌ๊ธฐ์ธ RWND(Receiver Window) ๊ทธ๋ฆฌ๊ณ  ์ž์‹ ์˜ ๋„คํŠธ์›Œํฌ ์ƒํ™ฉ์„ ๊ณ ๋ คํ•ด์„œ ์ •ํ•œ ์œˆ๋„์šฐ ํฌ๊ธฐ์ธ CWND ์ค‘ ์—์„œ ๋” ์ž‘์€ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์กฐ์ ˆ ํ•˜๋Š” ๊ฒƒ์ด ์ˆ˜์‹  ์ธก์ด ์•„๋‹Œ ์†ก์‹ ์ธก, Initiator์˜ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ผ๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ์—ฌ๊ธฐ์„œ ์˜๋ฏธํ•˜๋Š” ์œˆ๋„์šฐ ํฌ๊ธฐ๋Š” ์ „๋‹ฌํ•˜๋Š” ํŒจํ‚ท์˜ ์œˆ๋„์šฐ ํฌ๊ธฐ๊ฐ€ ์•„๋‹Œ ํ˜ผ์žก ์œˆ๋„์šฐ์˜ ํฌ๊ธฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

Initialize Congestion Window

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

MSS=MTUโˆ’(IPh+IPo)โˆ’(TCPh+TCPo)MSS = MTU-(IP_h + IP_o) - (TCP_h + TCP_o)

  • MTU (Maximum Transmission Unit) : ํ•œ๋ฒˆ ํ†ต์‹  ๋•Œ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋‹จ์œ„๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, MSS๋Š” ํ•œ๋ฒˆ ์ „์†กํ•  ๋•Œ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋‹จ์œ„๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๋Š” ์ƒํ™ฉ์—์„œ IP header, TCP header ๋“ฑ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ ๋ถ€๋ถ„์„ ์ž˜๋ผ๋‚ด๊ณ  ์ง„์งœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ด ์–ผ๋งˆ๋‚˜ ๋‚จ์•˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

AIMD(Additive Increase / Multicative Decrease)

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

AIMD=WS+1,WSโˆ—0.5AIMD = WS + 1 , WS * 0.5

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

Slow Start

AIMD ๋ฐฉ์‹์€ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚ค๊ธฐ์— ๋Œ€์—ญํญ์„ ์ ๊ทน ํ™œ์šฉํ•˜์—ฌ ์ œ๋Œ€๋กœ๋œ ์†๋„๊ฐ€ ๋‚˜์˜ค๊ธฐ๊นŒ์ง€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น Slow Start ๊ธฐ๋ฒ•์€ AIMD์™€ ๋น„์Šทํ•˜์ง€๋งŒ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ€ ์‹œํ‚ฌ ๋•Œ๋Š” ์ง€์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚ค๋‹ค๊ฐ€ ํ˜ผ์žก์ด ๊ฐ์ง€๊ฐ€ ๋˜๋ฉด ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ 1๋กœ ์ค„์—ฌ๋ฒ„๋ฆฌ๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

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

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

TCP ๋น ๋ฅธ ์žฌ์ „์†ก

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

Flow control์ด๋ž€?

Flow Control์ด๋ผ๋Š” ๊ฒƒ์€ ์œ„์—์„œ ๋งํ–ˆ๋˜ ARQ(Automatic Repeat Request), ์ฆ‰ ์žฌ์ „์†ก ๊ธฐ๋ฐ˜ ์˜ค๋ฅ˜ ์ œ์–ด๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ํ๋ฆ„ ์ œ์–ด ๊ธฐ๋ฒ•์€ ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ์–ธ Stop-and-Wait Protocol์ด ์žˆ๊ณ  ์ด ๋‹จ์ ์€ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด์„œ Sliding Window ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Sliding Window

Sliding Window ๋ฐฉ์‹์€ Stop-and-Wait Protocol์˜ ๋น„ํšจ์œจ์ ์ธ ๋ถ€๋ถ„์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‚˜์˜จ ๋ฐฉใ…‡์‹์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฐฉ์‹์€ ์ˆ˜์‹  ์ธก์ด ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ •ํ•ด๋†“๊ณ  ๊ทธ๋•Œ ๊ทธ๋•Œ ์ˆ˜์‹  ์ธก์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ƒํ™ฉ์„ ์†ก์‹  ์ธก์— ์•Œ๋ ค์ค˜ ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด์˜ SNWP์™€ ๋‹ค๋ฅธ ์ ์€ ์ˆ˜์‹  ์ธก์ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘์„ ์•Œ๊ณ  ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

TCP 3-way handshake ๊ณผ์ •์—์„œ ๋„คํŠธ์›Œํฌ์˜ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์œˆ๋„์šฐ์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ๊ฒฐ์ •์ด ๋˜๋ฉด, ์•ˆ์˜ ํ”„๋ ˆ์ž„์— ๋Œ€ํ•œ ์ˆ˜์‹  ์ธก์˜ ์‘๋‹ต์ด ์—†์ด๋„ ์—ฐ์†์ ์œผ๋กœ ํŒจํ‚ท์„ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ์œˆ๋„์šฐ์˜ ํฌ๊ธฐ๋Š” ๋ฒ„ํผ์™€ ํŒจํ‚ท์˜ ์™•๋ณต ์‹œ๊ฐ„์ธ RTT ๋„ ๊ฐ™์ด ๊ณ ๋ คํ•˜์—ฌ ๊ฒฐ์ •์ด ๋ฉ๋‹ˆ๋‹ค.

๋ฉด์ ‘์— ๋‚˜์™”๋˜ ์งˆ๋ฌธ

  1. HTTP Pipelining vs TCP Pipe Line Protocol
  2. ํ˜ผ์žก ์ œ์–ด๋Š” ์ปค๋„ฅ์…˜์„ ์ค„์—ฌ ์–ด๋–ค ๊ฒƒ์„ ์–ป์œผ๋ ค๋Š” ๊ฒƒ์ธ๊ฐ€?

References

  1. UDP Table
  2. UDP Usage
  3. Stop-and-Wait Protocol(1)
  4. GBN_SR
  5. GBN_SR(2)
  6. GBN_SR(3)
  7. TCP
profile
๋ฐฑ์—”๋“œ ํ™”์ดํŒ… :)

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