์‚ฌ์ด ์ข‹๊ฒŒ ๋„คํŠธ์›Œํฌ๋ฅผ ๋‚˜๋ˆ  ์“ฐ๋Š” ๋ฐฉ๋ฒ•, TCP์˜ ํ˜ผ์žก ์ œ์–ด

    ์‚ฌ์ด ์ข‹๊ฒŒ ๋„คํŠธ์›Œํฌ๋ฅผ ๋‚˜๋ˆ  ์“ฐ๋Š” ๋ฐฉ๋ฒ•, TCP์˜ ํ˜ผ์žก ์ œ์–ด


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

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

    ์ด๋•Œ ์œ„์—์„œ ์ด์•ผ๊ธฐํ•œ ํ๋ฆ„ ์ œ์–ด๋‚˜ ์˜ค๋ฅ˜ ์ œ์–ด ๊ธฐ๋ฒ•๋“ค๋งŒ์„ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์žฌ์ „์†ก์ด๋ผ๋Š” ์ž‘์—…์ด ๊ณ„์† ๋ฐ˜๋ณต๋  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.

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

    ๊ทธ๋ž˜์„œ ์ด๋Ÿฐ ์‹์œผ๋กœ ๋„คํŠธ์›Œํฌ์˜ ํ˜ผ์žก ์ƒํƒœ๊ฐ€ ๊ฐ์ง€๋˜๋ฉด, ์ด๋Ÿฐ ์ตœ์•…์˜ ์ƒํ™ฉ์„ ์ตœ๋Œ€ํ•œ ํšŒํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์†ก์‹  ์ธก์˜ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ์ „์†ก๋Ÿ‰์„ ๊ฐ•์ œ์ ์œผ๋กœ ์ค„์ด๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๊ฒƒ์ด ๋ฐ”๋กœ ํ˜ผ์žก ์ œ์–ด์ธ ๊ฒƒ์ด๋‹ค.

    ํ˜ผ์žก ์œˆ๋„์šฐ(Congestion Window, CWND)

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

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

    ์ฆ‰, ์•„๋ž˜ ํ›„์ˆ ํ•  ํ˜ผ์žก ์ œ์–ด ๊ธฐ๋ฒ•๋“ค์ด ๋Š˜์˜€๋‹ค ์ค„์˜€๋‹ค ํ•˜๋Š” ์œˆ๋„์šฐ ํฌ๊ธฐ๋Š” ์†ก์‹  ์œˆ๋„์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ ์†ก์‹  ์ธก์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ์ธ ๊ฒƒ์ด๋‹ค.

    ์ฐธ๊ณ ๋กœ RWND๋‚˜ CWND๊ฐ€ ๊ทธ๋ƒฅ ์œˆ๋„์šฐ๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์œˆ๋„์šฐ์™€ ๊ฐ™์€ ๊ฐœ๋…์ด๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์–˜๋„ค๋Š” ๊ฐ๊ฐ ์ˆ˜์‹ ์ž ์œˆ๋„์šฐ ํฌ๊ธฐ์™€ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์˜๋ฏธํ•˜๋Š” ์ˆซ์ž๋‹ค.

    ๊ทธ๋Ÿผ ํ†ต์‹  ์ค‘์—๋Š” ์–ด๋–ป๊ฒŒ๋“  ๋„คํŠธ์›Œํฌ์˜ ํ˜ผ์žก๋„๋ฅผ ํŒŒ์•…ํ•ด์„œ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•œ๋‹ค๊ณ  ํ•ด๋„, ํ†ต์‹ ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์—๋Š” ์ด ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒƒ์ผ๊นŒ?

    ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ

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

    MSS๋Š” ํ•œ ์„ธ๊ทธ๋จผํŠธ์— ์ตœ๋Œ€๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’์ธ๋ฐ, ๋Œ€๋žต ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณ„์‚ฐ์„ ํ†ตํ•ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

    MSS = MTU - (IPํ—ค๋”๊ธธ์ด + IP์˜ต์…˜๊ธธ์ด) - (TCPํ—ค๋”๊ธธ์ด + TCP์˜ต์…˜๊ธธ์ด)

    ์—ฌ๊ธฐ์„œ ๋“ฑ์žฅํ•˜๋Š” MTU(Maximum Transmission Unit)๋ผ๋Š” ์นœ๊ตฌ๋Š” ํ•œ๋ฒˆ ํ†ต์‹  ๋•Œ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋‹จ์œ„๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

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

    mtu setting 시스템 환경 설정에서 잘 찾아보면 기본 MTU를 변경할 수 있는 설정이 있다

    OSX ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” MTU ๊ธฐ๋ณธ ๊ฐ’์œผ๋กœ ์ด๋”๋„ท ํ‘œ์ค€์ธ 1500 bytes๊ฐ€ ์„ค์ •๋˜์–ด์žˆ๋‹ค. ์ด๋•Œ TCP์™€ IP์˜ ํ—ค๋”ํฌ๊ธฐ๊ฐ€ ๊ฐ๊ฐ 20 bytes๋ผ๊ณ  ํ•˜๋ฉด MSS๋Š” 1500 - 40 = 1460 bytes๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

    ์†ก์‹  ์ธก์€ ์ฒ˜์Œ ํ†ต์‹ ์„ ์‹œ์ž‘ํ•  ๋•Œ ์ด๋ ‡๊ฒŒ ๊ณ„์‚ฐํ•œ MSS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ผ์žก ์œˆ๋„์šฐ์˜ ํฌ๊ธฐ๋ฅผ 1 MSS๋กœ ์„ค์ •ํ•œ๋‹ค. ์ดํ›„ ํ†ต์‹ ์„ ํ•˜๋ฉด์„œ ๋„คํŠธ์›Œํฌ์˜ ํ˜ผ์žก ์ƒํ™ฉ์„ ๊ณ ๋ คํ•˜๋ฉฐ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ฑฐ๋‚˜ ๊ฐ์†Œ์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.

    ํ˜ผ์žก ํšŒํ”ผ ๋ฐฉ๋ฒ•

    ํ• ๋ฐฐ ํ”„๋กœํ† ์ฝœ์ธ TCP๋Š” ์ง€๋‚œ 50๋…„ ๋™์•ˆ ์ง€์†์ ์œผ๋กœ ๊ฐœ์„ ๋œ ๋‹ค์–‘ํ•œ ํ˜ผ์žก ์ œ์–ด ์ •์ฑ…๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

    ๊ฐ ํ˜ผ์žก ์ œ์–ด ์ •์ฑ…์€ ์–ด๋–ค ์‹œ์ ์„ ํ˜ผ์žกํ•œ ์ƒํƒœ๋ผ๊ณ  ํŒŒ์•…ํ•  ๊ฒƒ์ธ์ง€, ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ฑฐ๋‚˜ ํ‚ค์šฐ๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐœ์„ ํ•˜์—ฌ ์ ์  ๋ฐœ์ „ํ•ด์™”์ง€๋งŒ, ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ˜ผ์žก ์ œ์–ด ๋ฐฉ๋ฒ•์€AIMD์™€ Slow Start๋ผ๋Š” ํ˜ผ์žก ํšŒํ”ผ ๋ฐฉ๋ฒ•์„ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์กฐํ•ฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

    ๊ทธ๋ž˜์„œ ์ด ํฌ์ŠคํŒ…์—์„œ๋„ ๊ธฐ๋ณธ์ ์ธ ํ˜ผ์žก ํšŒํ”ผ ๋ฐฉ๋ฒ•์ธ AIMD์™€ Slow Start๋ฅผ ๋จผ์ € ์„ค๋ช…ํ•˜๊ณ ๋‚˜์„œ ๋Œ€ํ‘œ์ ์ธ ํ˜ผ์žก ์ œ์–ด ์ •์ฑ…์ธ Tahoe์™€ Reno๋ฅผ ์ด์•ผ๊ธฐํ•  ๊ฒƒ์ด๋‹ค.

    AIMD

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

    ๋Š˜์–ด๋‚  ๋•Œ๋Š” ws + 1, ์ค„์–ด๋“ค ๋•Œ๋Š” ws * 0.5์ด๋ฏ€๋กœ ๋ง ๊ทธ๋Œ€๋กœ ํ•ฉ ์ฆ๊ฐ€ / ๊ณฑ ๊ฐ์†Œ์ธ ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ๋Š˜์–ด๋‚  ๋•Œ๋Š” ์„ ํ˜•์ ์œผ๋กœ ์กฐ๊ธˆ์”ฉ ๋Š˜์–ด๋‚˜๊ณ  ์ค„์–ด๋“ค ๋•Œ๋Š” ๋ฐ˜์œผ๋กœ ํ™• ์ค„์–ด๋“œ๋Š” AIMD ๋ฐฉ์‹์˜ ํŠน์„ฑ ์ƒ, ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ๊ฒฐ์˜ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ๊ทธ๋ž˜ํ”„๋กœ ๊ทธ๋ ค๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ†ฑ๋‹ˆ ๋ชจ์–‘์ด ๋‚˜ํƒ€๋‚œ๋‹ค.

    aimd

    ์ด ๋ฐฉ์‹์€ ๊ต‰์žฅํžˆ ์‹ฌํ”Œํ•˜์ง€๋งŒ ์ƒ๊ฐ๋ณด๋‹ค ๊ณตํ‰ํ•œ ๋ฐฉ์‹์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์—ฌ๋Ÿฌ ์นœ๊ตฌ๋“ค์ด ์ด๋ฏธ ๋„คํŠธ์›Œํฌ๋ฅผ ์ ์œ ํ•˜๊ณ  ์žˆ๋Š” ์ƒํƒœ์—์„œ ํ•œ ์นœ๊ตฌ๊ฐ€ ๋’ค๋Šฆ๊ฒŒ ์ด ๋„คํŠธ์›Œํฌ์— ํ•ฉ๋ฅ˜ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.

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

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

    ๊ทธ๋Ÿฐ ์ด์œ ๋กœ ์‹œ๊ฐ„์ด ๊ฐ€๋ฉด ๊ฐˆ์ˆ˜๋ก ๋„คํŠธ์›Œํฌ์— ์ฐธ์—ฌํ•œ ์ˆœ์„œ์™€ ๊ด€๊ณ„ ์—†์ด ๋ชจ๋“  ํ˜ธ์ŠคํŠธ๋“ค์˜ ์œˆ๋„์šฐ ํฌ๊ธฐ๊ฐ€ ํ‰ํ–‰ ์ƒํƒœ๋กœ ์ˆ˜๋ ดํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

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

    ์œˆ๋„์šฐ ํฌ๊ธฐ๊ฐ€ ์ˆ˜๋ ดํ•œ๋‹ค๊ณ ?

    ์‚ฌ์‹ค AIMD๋Š” ์›Œ๋‚™ ๋‹จ์ˆœํ•œ ๋ฐฉ์‹์ด๋‹ค ๋ณด๋‹ˆ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ์˜ ์ƒํ™ฉ์„ ์žฌํ˜„ํ•ด๋ณผ ์ˆ˜๋„ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๋ฉด ๋ง๋กœ๋งŒ ๋“ค์—ˆ์„ ๋•Œ๋Š” ์• ๋งคํ•œ ํ˜ธ์ŠคํŠธ๋“ค์˜ ์œˆ๋„์šฐ ํฌ๊ธฐ๊ฐ€ ํ‰ํ–‰์œผ๋กœ ์ˆ˜๋ ดํ•œ๋‹ค๋Š” ๊ฒƒ์ด ์–ด๋–ค ์˜๋ฏธ์ธ์ง€ ์ง์ ‘ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•ด๋ณผ ์ˆ˜๋„ ์žˆ๋‹ค.

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

    1. ๋„คํŠธ์›Œํฌ์˜ ํ˜ผ์žก๋„ ์ตœ๊ณ ์น˜๋Š” 50์ด๋ฉฐ, ์ด ํ˜ผ์žก๋„๋Š” ๋„คํŠธ์›Œํฌ์— ์ฐธ์—ฌํ•œ ํ˜ธ์ŠคํŠธ๋“ค์ด ๊ฐ€์ง„ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ์˜ ์ดํ•ฉ์œผ๋กœ ๊ฒฐ์ •๋œ๋‹ค.
    2. ๋„คํŠธ์›Œํฌ์— ํ˜ธ์ŠคํŠธ๋ฅผ 300ms์— ํ•˜๋‚˜์”ฉ ์ƒ์„ฑํ•ด์„œ ์ถ”๊ฐ€ํ•œ๋‹ค.
    3. ๊ฐ ํ˜ธ์ŠคํŠธ๋Š” 100 ~ 200ms ๋งˆ๋‹ค ๋„คํŠธ์›Œํฌ์˜ ํ˜„์žฌ ํ˜ผ์žก๋„๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์ž์‹ ์˜ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•œ๋‹ค.
    4. ๊ฐ ํ˜ธ์ŠคํŠธ๋Š” ์œˆ๋„์šฐ ํฌ๊ธฐ ์กฐ์ ˆ์„ 300ํšŒ๊นŒ์ง€ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋„คํŠธ์›Œํฌ๋ฅผ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.

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

    ๊ทธ๋ž˜์„œ ํ…Œ์ŠคํŠธ์˜ ๋ชฉ์ ์ธ ๋„คํŠธ์›Œํฌ์— ๋Šฆ๊ฒŒ ์ฐธ์—ฌํ•œ ํ˜ธ์ŠคํŠธ๋“ค๋„ ์ถฉ๋ถ„ํ•œ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์šฉ๋„๋กœ๋Š” ๋”ฑํžˆ ๋ณ„ ๋ฌธ์ œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋Œ€๋กœ ์ง„ํ–‰ํ–ˆ๋‹ค.

    ์ด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๊ฐœ๋…์€ ๋กœ์šฐ ๋ ˆ๋ฒจ๋กœ ์‚ดํŽด๋ณด๋Š” Node.js ์ด๋ฒคํŠธ ๋ฃจํ”„์— ์ž์„ธํžˆ ์„ค๋ช…๋˜์–ด์žˆ์œผ๋‹ˆ ํ™•์ธํ•ด๋ณด๋„๋ก ํ•˜์ž.

    ์–ด์จŒ๋“  ์ด๋ ‡๊ฒŒ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด๊ณ  ๋‚˜์˜จ ๋ฐ์ดํ„ฐ๋“ค์„ ์‹œ๊ณ„์—ด ๊ทธ๋ž˜ํ”„๋กœ ์‹œ๊ฐํ™”ํ•ด๋ณด์•˜๋‹ค. ๋จผ์ € ๊ฐ ํ˜ธ์ŠคํŠธ๋“ค์˜ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ ๋ณ€ํ™”๋ฅผ ์‚ดํŽด๋ณด์ž.

    cwnd chart

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

    ์ด๋Ÿฐ ์‹์œผ๋กœ ์‹œ๊ฐํ™”๋ฅผ ํ•ด๋ณด๋‹ˆ ๊ฐ ํ˜ธ์ŠคํŠธ๋“ค์˜ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๊ฐ€ ํฐ ์ฐจ์ด ์—†์ด ์–ด๋Š ๋ถ€๋ถ„์— ์ˆ˜๋ ดํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋„คํŠธ์›Œํฌ์— ๋“ค์–ด์™€์žˆ๋Š” ํ˜ธ์ŠคํŠธ๋“ค์˜ ์ „์ฒด ์œˆ๋„์šฐ ํฌ๊ธฐ๋Š” ์‹œ๊ณ„์—ด ๊ทธ๋ž˜ํ”„๋กœ ์‹œ๊ฐํ™”ํ•ด๋ณด๋ฉด ์–ด๋–จ๊นŒ?

    total cwnd chart

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

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

    ์ด๋ ‡๊ฒŒ ์ง์ ‘ ์ƒํ™ฉ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•ด๋ณด๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๋‹ˆ ๋ง๋กœ๋งŒ ๋“ค์—ˆ์„ ๋•Œ๋Š” ์ž˜ ์™€๋‹ฟ์ง€ ์•Š์•˜๋˜ ์œˆ๋„์šฐ ํฌ๊ธฐ๊ฐ€ ํ‰ํ–‰ ์ƒํƒœ๋กœ ์ˆ˜๋ ดํ•œ๋‹ค๋Š” ์ด์•ผ๊ธฐ๋ฅผ ์กฐ๊ธˆ ๋” ์ž˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

    ๋งŒ์•ฝ ์ด ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์‹คํ–‰์‹œ์ผœ์„œ ๋ชจ๋“  ๊ณผ์ •์„ ํ™•์ธํ•˜๊ณ  ์‹ถ์€ ๋ถ„๋“ค์€ ํ•„์ž๊ฐ€ ์˜ฌ๋ ค๋†“์€ ๊นƒํ—ˆ๋ธŒ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ์—์„œ ํด๋ก ๋ฐ›์•„์„œ ์‹คํ–‰์‹œ์ผœ๋ณด๋ฉด ๋œ๋‹ค.

    Slow Start

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

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

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

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

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

    slow start chart

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

    AIMD์™€ Slow Start ๊ทธ๋ž˜ํ”„์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ ๋„คํŠธ์›Œํฌ ํ˜ผ์žก๋„์˜ ์ตœ๊ณ ์น˜์— ๋„๋‹ฌํ•˜๋Š” ์‹œ๊ฐ„์ด๋‹ค.

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

    ์ตœ๊ทผ์˜ TCP์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” Tahoe๋‚˜ Reno์™€ ๊ฐ™์€ ์ •์ฑ…๋“ค์€ AIMD์™€ Slow Start๋ฅผ ์ ์ ˆํžˆ ์„ž์–ด์„œ ์‚ฌ์šฉํ•˜๋˜, ๋„คํŠธ์›Œํฌ ํ˜ผ์žก ์ƒํ™ฉ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ๋Œ€์ฒ˜ํ•˜๋Š” ์ง€์— ๋”ฐ๋ผ์„œ ๋‚˜๋‰˜์–ด์ง€๊ฒŒ ๋œ๋‹ค.

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

    TCP์—๋Š” Tahoe, Reno, New Reno, Cubic, ์ตœ๊ทผ ๋‚˜์˜จ Elastic-TCP๊นŒ์ง€ ์ผ์ผํžˆ ๋‚˜์—ดํ•˜๊ธฐ์—๋„ ์ˆจ ๊ฐ€์  ์ •๋„๋กœ ๋‹ค์–‘ํ•œ ํ˜ผ์žก ์ œ์–ด ์ •์ฑ…์ด ์กด์žฌํ•œ๋‹ค.

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

    ํ•˜์ง€๋งŒ ์ด ์นœ๊ตฌ๋“ค์„ ์ด ํฌ์ŠคํŒ…์—์„œ ์ „๋ถ€ ์„ค๋ช…ํ•˜๊ธฐ๋Š” ํž˜๋“œ๋‹ˆ, ์ด ์ค‘์—์„œ ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ด๊ณ  ์œ ๋ช…ํ•œ ์ •์ฑ…์ธ Tahoe์™€ Reno๋ฅผ ์œ„์ฃผ๋กœ ํ˜ผ์žก ์ œ์–ด์˜ ๊ธฐ๋ณธ ๋ฐฉ์‹์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

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

    taheo reno 붉은 색이 Tahoe, 녹색이 Reno의 윈도우 크기를 나타낸다

    ์œ„ ๊ทธ๋ž˜ํ”„์˜ Y์ถ•์€ ํ˜ผ์žก ์œˆ๋„์šฐ, X์ถ•์€ ์‹œ๊ฐ„์œผ๋กœ ํ•˜์—ฌ Tahoe์™€ Reno์˜ ์ž‘๋™ ๋ฐฉ์‹์„ ์„ค๋ช…ํ•˜๊ณ  ์žˆ๋‹ค. ๋ณธ๊ฒฉ์ ์œผ๋กœ Tahoe์™€ Reno๋ฅผ ์•Œ์•„๋ณด๊ธฐ์— ์•ž์„œ, ์ผ๋‹จ ์ด ๊ทธ๋ž˜ํ”„๊ฐ€ ๋ญ˜ ์„ค๋ช…ํ•˜๊ณ  ์žˆ๋Š”์ง€ ๋น ๋ฅด๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ„๋‹จํ•œ ์šฉ์–ด๋ฅผ ๋ช‡ ๊ฐ€์ง€๋งŒ ์งš๊ณ  ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜๊ฒ ๋‹ค.

    ๊ทธ๋ž˜ํ”„๊ฐ€ ๊บพ์ด๋Š” ๊ณณ์— ์ ํ˜€์žˆ๋Š” 3 ACK Duplicated, Timeout๊ณผ ๊ทธ๋ž˜ํ”„์˜ ์ƒ์Šน ํญ์ด ๋ณ€ํ•˜๊ณ  ์žˆ๋Š” Threshold์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž. (๊ทธ๋ฆผ์˜ ์ฒ ์ž๊ฐ€ ์ด์ƒํ•œ ์ด์œ ๋Š” ์˜์–ด๊ฐ€ ์•„๋‹ˆ๋ผ ์ดํƒˆ๋ฆฌ์•„์–ด๋ผ์„œ ๊ทธ๋Ÿฐ ๊ฒƒ์ด๋‹ˆ ์‹ ๊ฒฝ์“ฐ์ง€๋ง์ž)

    3 ACK Duplicated, Timeout ์ผ๋‹จ ๋‘ ๋ฐฉ์‹ ๋ชจ๋‘ 3 ACK Duplicated์™€ Timeout์ด๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์„ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์ด ๋‘ ์ƒํ™ฉ์ด ํ˜ผ์žก ์ œ์–ด ์ •์ฑ…๋“ค์ด ํ˜ผ์žก ๋ฐœ์ƒ์„ ๊ฐ์ง€ํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ์ƒํ™ฉ์ธ ๊ฒƒ์ด๋‹ค.

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

    3 ACK Duplicated, ์ฆ‰ ์†ก์‹  ์ธก์ด 3๋ฒˆ ์ด์ƒ ์ค‘๋ณต๋œ ์Šน์ธ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ›์€ ์ƒํ™ฉ ๋˜ํ•œ ์ •์ƒ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋œ ์ƒํ™ฉ์€ ์•„๋‹Œ๋ฐ, ์ˆ˜์‹  ์ธก์€ ์ž์‹ ์ด ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ๋งŒ ACK๋ฅผ ๋ณด๋‚ด๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผํ•œ ์Šน์ธ ๋ฒˆํ˜ธ๋ฅผ ์„ธ ๋ฒˆ์ด๋‚˜ ๋ฐ›์€ ์ƒํ™ฉ์€ ์–ด๋–ค ์ด์œ ๋กœ ์ธํ•ด ์ˆ˜์‹  ์ธก์ด ํŠน์ • ์‹œํ€€์Šค ๋ฒˆํ˜ธ ์ดํ›„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•œ ์ƒํ™ฉ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

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

    fast transmit

    TCP๋Š” ํ˜„์žฌ๊นŒ์ง€ ๋ˆ„์ ๋œ ์ •์ƒ ๋ฐ์ดํ„ฐ ์ค‘ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์Šน์ธ ๋ฒˆํ˜ธ๋ฅผ ๋ณด๋‚ด์ฃผ๋Š” ๋ˆ„์  ์Šน์ธ ๋ฐฉ์‹(Cumulative Acknowledgement)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์†ก์‹  ์ธก์ด ๊ฐ™์€ ์Šน์ธ ๋ฒˆํ˜ธ๋ฅผ ๊ณ„์† ์ค‘๋ณตํ•ด์„œ ๋ฐ›๋Š”๋‹ค๋ฉด ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊นŒ์ง€๋Š” ์ •์ƒ์ ์œผ๋กœ ์ „์†ก๋˜์—ˆ์œผ๋‚˜ ๊ทธ ์ดํ›„๋ถ€ํ„ฐ๋Š” ๋ญ”๊ฐ€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

    ์ด๋•Œ 3๋ฒˆ์˜ ์ค‘๋ณต ์Šน์ธ ๋ฒˆํ˜ธ๋กœ ์ธํ•ด ์†ก์‹  ์ธก์ด ๋ฐ”๋กœ ํ•ด๋‹น ์Šน์ธ ๋ฒˆํ˜ธ์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ ๋‚˜๋ฉด ์ˆ˜์‹  ์ธก์€ Go back N์ด๋‚˜ Selective Repeat๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜ ์ œ์–ด ๋ฐฉ์‹์— ๋”ฐ๋ผ์„œ ๋‹ค์Œ์— ์–ด๋–ค ํŒจํ‚ท๋ถ€ํ„ฐ ๋ณด๋‚ด์ค˜์•ผํ•˜๋Š”์ง€ ์•Œ๋ ค์ค„ ๊ฒƒ์ด๋‹ค.

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

    ๋งŒ์•ฝ ๋น ๋ฅธ ์žฌ์ „์†ก ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ์†ก์‹  ์ธก์€ ์ž์‹ ์ด ์„ค์ •ํ•œ ํƒ€์ž„์•„์›ƒ ์‹œ๊ฐ„์ด ์ง€๋‚œ ์ดํ›„์—์•ผ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—๋Ÿฌ๋‚œ ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ์ „์†กํ•˜๊ธฐ๊นŒ์ง€ ์‹œ๊ฐ„์ด ๋‚ญ๋น„๋˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

    Slow Start ์ž„๊ณ„์ (ssthresh)

    Tahoe์™€ Reno๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณด๋ฉด Threshold(์ž„๊ณ„์ )์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๊ฝค ๋งŽ์ด ๋“ฑ์žฅํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด ์ž„๊ณ„์ ์€ Slow Start Threshold(ssthresh)๋ฅผ ๋œปํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ์—ฌ๊ธฐ๊นŒ์ง€๋งŒ Slow Start๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค.

    ssthresh

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

    ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•ด์„œ ํ˜„์žฌ ์œˆ๋„์šฐ ํฌ๊ธฐ๊ฐ€ 10์ด๊ณ  ํ˜„์žฌ ๋„คํŠธ์›Œํฌ์— ๋‚จ์€ ๊ณต๊ฐ„์ด 15๋ผ๊ณ  ํ•  ๋•Œ, Slow Start ๋ฐฉ์‹์œผ๋กœ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด 20์„ ๋„˜๊ฒจ๋ฒ„๋ฆฌ์ง€๋งŒ ํ•ฉ ์ฆ๊ฐ€๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ์•ž์œผ๋กœ ํ•œ 5๋ฒˆ์€ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ๋” ์ฆ๊ฐ€์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

    ๊ทธ๋ž˜์„œ ํŠน์ •ํ•œ ์ž„๊ณ„์ (Threshold)๋ฅผ ์ •ํ•ด๋†“๊ณ , ์ž„๊ณ„์ ์„ ๋„˜์–ด๊ฐ€๊ฒŒ๋˜๋ฉด AIMD ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ ํ˜•์ ์œผ๋กœ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ์ž„๊ณ„์ ์„ ์นญํ•˜๋Š” ๋‹จ์–ด๊ฐ€ ssthresh(Slow Start Threshold)์ธ ๊ฒƒ์ด๋‹ค.

    ์†ก์‹  ์ธก์€ ๋ณธ๊ฒฉ์ ์ธ ํ†ต์‹ ์ด ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ssthresh ๊ฐ’์„ ์ž์‹ ์˜ ํ˜ผ์žก ์œˆ๋„์šฐ์˜ ์ ˆ๋ฐ˜ ํฌ๊ธฐ์ธ 0.5 MSS์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ณ , ์ดํ›„ ์–ด๋–ค ํ˜ผ์žก ์ œ์–ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ƒ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๋Œ€์ฒ˜ํ•˜๊ฒŒ๋œ๋‹ค.

    TCP Tahoe

    TCP Tahoe๋Š” Slow Start๋ฅผ ์‚ฌ์šฉํ•œ ํ˜ผ์žก ์ œ์–ด ์ •์ฑ…์˜ ์ดˆ๊ธฐ ๋ฒ„์ „์œผ๋กœ, ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋น ๋ฅธ ์žฌ์ „์†ก(Fast Transmit) ๊ธฐ๋ฒ•์ด ์ฒ˜์Œ์œผ๋กœ ๋„์ž…๋œ ๋ฐฉ๋ฒ•์ด๋‹ค. Tahoe ์ดํ›„์˜ ํ˜ผ์žก ์ œ์–ด ์ •์ฑ…์€ Tahoe์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋น ๋ฅธ ์žฌ์ „์†ก ๊ธฐ๋ฒ•์„ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•˜๋˜, ํšจ์œจ์„ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ์–‘๋…์„ ๋” ์น˜๊ฒŒ ๋œ๋‹ค.

    ์ฐธ๊ณ ๋กœ TCP Tahoe๋Š” ๋ฏธ๊ตญ ๋„ค๋ฐ”๋‹ค์ฃผ์— ์žˆ๋Š” ํƒ€ํ˜ธ ํ˜ธ์ˆ˜์˜ ์ด๋ฆ„์„ ๋”ฐ์„œ ์ง€์–ด์กŒ์œผ๋ฏ€๋กœ ๊ทธ๋ƒฅ ํƒ€ํ˜ธ๋ผ๊ณ  ์ฝ์œผ๋ฉด ๋œ๋‹ค. (ํƒ€ํ˜ธ์—๊ฐ€ ์•„๋‹ˆ๋‹ค!)

    lake tahoe 왜 여기서 이름을 따왔는지는 모르겠지만 호수가 이쁘긴 하다

    Tahoe๋Š” ์ฒ˜์Œ์—๋Š” Slow Start๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž์‹ ์˜ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ง€์ˆ˜์ ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์ฆ๊ฐ€์‹œํ‚ค๋‹ค๊ฐ€ ssthresh๋ฅผ ๋งŒ๋‚œ ์ดํ›„๋ถ€ํ„ฐ๋Š” AIMD์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ•ฉ ์ฆ๊ฐ€ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ ํ˜•์ ์œผ๋กœ ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

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

    tahoe ssthresh

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

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

    ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณด๋ฉด ๊ฐ€์žฅ ์ฒ˜์Œ ํ˜ผ์žก ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ ์ƒํƒœ์˜ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋Š” 6์ด๋‹ค. ์ด๋•Œ ์†ก์‹  ์ธก์€ ssthresh๋ฅผ 6์˜ ์ ˆ๋ฐ˜์ธ 3์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ , ์ž์‹ ์˜ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ ๋‹ค์‹œ 1๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ชจ์Šต์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ดํ›„ ๋‹ค์‹œ Slow Start๋กœ ์‹œ์ž‘ํ•˜์—ฌ ์ž„๊ณ„์ ์— ๋„๋‹ฌํ•˜๋ฉด ํ•ฉ ์ฆ๊ฐ€๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋œ๋‹ค.

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

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

    ๊ทธ๋ž˜์„œ ๋‚˜์˜จ ๋ฐฉ๋ฒ•์ด ๋น ๋ฅธ ํšŒ๋ณต(Fast Recovery) ๋ฐฉ์‹์„ ํ™œ์šฉํ•œ TCP Reno์ด๋‹ค.

    TCP Reno

    TCP Reno๋Š” TCP Tahoe ์ดํ›„์— ๋‚˜์˜จ ์ •์ฑ…์œผ๋กœ, Tahoe์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Slow Start๋กœ ์‹œ์ž‘ํ•˜์—ฌ ์ž„๊ณ„์ ์„ ๋„˜์–ด์„œ๋ฉด ํ•ฉ ์ฆ๊ฐ€๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

    ๊ทธ๋Ÿฌ๋‚˜ Tahoe๋Š” ๋ช…ํ™•ํ•œ ์ฐจ์ด๊ฐ€ ์žˆ๋Š”๋ฐ, ๋ฐ”๋กœ 3 ACK Duplicated์™€ Timeout์„ ๊ตฌ๋ถ„ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. Reno๋Š” 3๊ฐœ์˜ ์ค‘๋ณต ACK๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ 1๋กœ ์ค„์ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ AIMD์ฒ˜๋Ÿผ ๋ฐ˜์œผ๋กœ๋งŒ ์ค„์ด๊ณ  sshthresh๋ฅผ ์ค„์–ด๋“  ์œˆ๋„์šฐ ๊ฐ’์œผ๋กœ ์ •ํ•˜๊ฒŒ ๋œ๋‹ค.

    reno ssthresh

    ์œ„ ๊ทธ๋ž˜ํ”„๋Š” ์•ž์„œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ฒญ๋ก์ƒ‰์œผ๋กœ ์†ก์‹  ์ธก์˜ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ, ๊ตต์€ ๊ฒ€์ •์„ ์œผ๋กœ ssthresh๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์žˆ๋‹ค.

    Reno๋Š” Tahoe์™€ ๋‹ค๋ฅด๊ฒŒ 3๊ฐœ์˜ ์ค‘๋ณต ACK๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ๋Š” ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ 1๋กœ ์ค„์ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฐ˜์œผ๋กœ ์ค„์ธ ํ›„ ํ•ฉ ์ฆ๊ฐ€๋ฅผ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด ๋ฐฉ์‹์€ ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ 1๋กœ ์ค„์ด๊ณ  ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” Tahoe์— ๋น„ํ•ด์„œ ๋น ๋ฅด๊ฒŒ ์›๋ž˜ ์œˆ๋„์šฐ ํฌ๊ธฐ์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋น ๋ฅธ ํšŒ๋ณต(Fast Recovery)๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค.

    ์ด๋•Œ ssthresh๋Š” ์ค„์–ด๋“  ์œˆ๋„์šฐ์˜ ํฌ๊ธฐ์™€ ๋™์ผํ•˜๊ฒŒ ์„ค์ •ํ•˜๊ฒŒ ๋œ๋‹ค. ์œ„ ๊ทธ๋ž˜ํ”„์—์„œ๋„ ํ˜ผ์žก ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜์ž ํ˜ผ์žก ์œˆ๋„์šฐ ํฌ๊ธฐ๋ฅผ 6์—์„œ 3์œผ๋กœ ์ค„์ด๊ณ  ssthresh ๋˜ํ•œ 3์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์ž‡๋‹ค.

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

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

    ๋งˆ์น˜๋ฉฐ

    ์ด๋ฒˆ์—๋Š” TCP์˜ ํ˜ผ์žก ์ œ์–ด ์ •์ฑ…์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค. ์‚ฌ์‹ค ํ•„์ž๊ฐ€ ํฌ์ŠคํŒ…์—์„œ ์†Œ๊ฐœํ•œ Taheo์™€ Reno ๊ฐ™์€ ํ˜ผ์žก ์ œ์–ด ์ •์ฑ…์€ ์ตœ๊ทผ์—๋Š” ๋งŽ์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ตฌ์‹์ด๋‹ค.

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

    cubic vs tahoe 높은 대역폭에서의 Tahoe와 CUBIC의 효율 차이를 보면 어마무시하다

    ์‚ฌ์‹ค Tahoe๋‚˜ Reno๊ฐ€ ๊ฐœ๋ฐœ๋œ ์‹œ์ ˆ์˜ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ์— ๋น„๊ตํ•˜๋ฉด ์ตœ๊ทผ์˜ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ์€ ์ ์–ด๋„ 1,000๋ฐฐ๋Š” ๋” ์—ฌ์œ ๊ฐ€ ์žˆ์ง€ ์•Š์„๊นŒ?

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


    3차 함수의 특성을 사용하는 TCP CUBIC은
    혼잡을 회피할 때는 거의 윈도우 크기를 증가시키지 않다가, 혼잡이 해결되면 다시 폭발적으로 증가시킬 수 있다


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

    ์ด ํฌ์ŠคํŒ…์€ ๋‹ค์–‘ํ•œ ํ˜ผ์žก ์ œ์–ด ์ •์ฑ…์„ ์•Œ์•„๋ณด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํ˜ผ์žก ์ œ์–ด๋ผ๋Š” ๋งค์ปค๋‹ˆ์ฆ˜ ์ž์ฒด๊ฐ€ ์–ด๋–ค ์‹์œผ๋กœ ํ˜๋Ÿฌ๊ฐ€๋Š”์ง€ ์•„๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๋ฏ€๋กœ ๊ตณ์ด ๋‹ค๋ฅธ ํ˜ผ์žก ์ œ์–ด ์ •์ฑ…์€ ์†Œ๊ฐœํ•˜์ง€ ์•Š์•˜๋‹ค.

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

    ์ด์ƒ์œผ๋กœ ์‚ฌ์ด ์ข‹๊ฒŒ ๋„คํŠธ์›Œํฌ๋ฅผ ๋‚˜๋ˆ  ์“ฐ๋Š” ๋ฐฉ๋ฒ•, TCP์˜ ํ˜ผ์žก ์ œ์–ด ํฌ์ŠคํŒ…์„ ๋งˆ์นœ๋‹ค.

    Evan Moon

    ๐Ÿข ๊ฑฐ๋ถ์ด์ฒ˜๋Ÿผ ์‚ด์ž

    ๊ฐœ๋ฐœ์„ ์ž˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๊ฐ€ ์•„๋‹Œ ๊ฐœ๋ฐœ์„ ์ฆ๊ธฐ๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๋Š” ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค. ์‚ฌ์†Œํ•œ ์ƒ๊ฐ ์ •๋ฆฌ๋ถ€ํ„ฐ ํŠœํ† ๋ฆฌ์–ผ, ์‚ฝ์งˆ๊ธฐ ์ •๋„๋ฅผ ์ฃผ๋กœ ๋„์ ์ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.