์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ์๋น์ค ํ๋ฆฌ๋ฏธํฐ๋ธ
- tcp ์ธ๊ทธ๋จผํธ
- ์ฝ๋ฉํ ์คํธ์ค๋น
- ํญํด99
- reducible
- ์ค๋ฅ๊ฒ์ถ
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ํ๋ก์ด๋์์
- ์ค๋ ๋
- ๋น์ฃผ๊ธฐ์ ํธ
- 99ํด๋ฝ
- leetcode
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ํ๋ ์ ๊ตฌ์กฐ
- ์ค๋ธ์
- i-type
- ๋ฐ์ดํฐ ์ ์ก
- til
- IEEE 802
- mariadb
- well known ํฌํธ
- tcp ํ๋กํ ์ฝ
- ์ฃผ๊ธฐ์ ํธ
- ํ ํฐ ๋ฒ์ค
- git merge
- ์ค๋ฅ์ ์ด
- ์ฐ๋ถํฌdb
- xv6
- ์์๋ฒํธ
- ๊ฐ๋ฐ์์ทจ์
- Today
- Total
Unfazedโ๏ธ๐ฏ
์ฐ๊ฒฐ์งํฅํ ํธ๋์คํฌํธ(TCP) - ์๋ณต์๊ฐ(RTT) ์์ธก๊ณผ ํ์์์(timeout) ๋ณธ๋ฌธ
์ฐ๊ฒฐ์งํฅํ ํธ๋์คํฌํธ(TCP) - ์๋ณต์๊ฐ(RTT) ์์ธก๊ณผ ํ์์์(timeout)
9taetae9 2024. 12. 12. 14:07TCP์ ์์ค ์ธ๊ทธ๋จผํธ์ ๋ํ ์ฒ๋ฆฌ : ํ์์์/์ฌ์ ์ก ๋ฉ์ปค๋์ฆ
์๋ณต์๊ฐ(RTT, round-trip time) : ํจํท์ด ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์๋ฒ๊น์ง ๊ฐ๊ณ , ๋ค์ ํด๋ผ์ด์ธํธ๋ก ๋๋์์ค๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ
RTT๋ ํจํท ์ ํ ์ง์ฐ, ์ค๊ฐ ๋ผ์ฐํฐ์ ์ค์์น์์์ ํจํท ํ์ ์ง์ฐ, ํจํท ์ฒ๋ฆฌ ์ง์ฐ ๋ฑ์ ํฌํจ.
ex) ์ฌ์ฉ์๊ฐ ํ์ดํผ๋งํฌ๋ฅผ ํด๋ฆญํ์ ๋ ๋ฐ์ํ๋ ์ผ
1. ํด๋ฆญ - ๋ธ๋ผ์ฐ์ ๊ฐ ๋ธ๋ผ์ฐ์ ์ ์น ์๋ฒ ์ฌ์ด์์ TCP ์ฐ๊ฒฐ์ ์๋ (three-way handshake๋ฅผ ํฌํจ - ํด๋ผ์ด์ธํธ๊ฐ tcp ๋ฉ์์ง๋ฅผ ์๋ฒ๋ก ๋ณด๋ด๊ณ , ์๋ฒ๊ฐ ๋ฉ์์ง๋ก ์๋ต ํ ๋ง์ง๋ง์ผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ๋ค์ ์๋ฒ์ ์๋ต, ์ด ์ค ํธ๋์ ฐ์ดํฌ ์ค ์ฒ์ ๋ ๋จ๊ณ๊ฐ ๊ฒฝ๊ณผํ๋ฉด ํ RTT๊ฐ ๊ณ์ฐ๋จ.)
2. ํธ๋ ์ ฐ์ดํฌ์ ์ฒ์ ๋ ๊ณผ์ ์ด ๋๋ ํ, ํด๋ผ์ด์ธํธ๋ HTTP ์์ฒญ ๋ฉ์์ง๋ฅผ TCP ์ฐ๊ฒฐ๋ก ๋ณด๋ด๋ฉด์ ํธ๋์ ฐ์ดํฌ์ ์ธ ๋ฒ์งธ ๋ถ๋ถ(์๋ต)์ ํจ๊ป ๋ณด๋.
3. ์์ฒญ ๋ฉ์์ง๊ฐ ์๋ฒ์ ๋์ฐฉํ๋ฉด ์๋ฒ๋ HTML ํ์ผ์ TCP ์ฐ๊ฒฐ๋ก ๋ณด๋. ์ด HTTP ์์ฒญ/์๋ต์ด ๋ ํ๋์ RTT๋ฅผ ํ์๋ก ํจ
์ด ์๋ต ์๊ฐ : 2 RTT + HTML ํ์ผ ์ ์ก ์๊ฐ
ํ์์์ ์ฃผ๊ธฐ
ํ์์์์ ์ฐ๊ฒฐ์ ์๋ณต์๊ฐ(RTT)๋ณด๋ค๋ ์ปค์ผ ํจ.
์๋ณต์๊ฐ ์์ธก
TCP๊ฐ ์ก์์ ์ ๊ฐ ์๋ณต์๊ฐ(RTT, rount-trip time)์ ์์ธกํ๋ ๋ฐฉ๋ฒ
SampleRTT(์ธ๊ทธ๋จผํธ์ ๋ํ RTT ์ํ) : ์ธ๊ทธ๋จผํธ๊ฐ ์ก์ ๋ ์๊ฐ(IP์๊ฒ ๋๊ฒจ์ง ์๊ฐ)์ผ๋ก๋ถํฐ ๊ทธ ์ธ๊ทธ๋จผํธ์ ๋ํ ๊ธ์ ์๋ต์ด ๋์ฐฉํ ์๊ฐ๊น์ง์ ์๊ฐ ๊ธธ์ด
๋๋ถ๋ถ์ TCP๋ ํ ๋ฒ์ ํ๋์ SampleRTT ์ธก์ ๋ง์ ์ํํจ. (์ด๋ค ์์ ์์ SampleRTT๋ ์ ์ก๋์์ง๋ง ํ์ฌ๊น์ง ํ์ธ์๋ต์ด ์๋ ์ธ๊ทธ๋จผํธ ์ค ํ๋์ ๋ํด์๋ง ์ธก์ ๋๊ณ , ์ด๋ ๋๋ต ์๋ณต์๊ฐ๋ง๋ค SampleRTT์ ์๋ก์ด ๊ฐ์ ์ป๊ฒ ํจ)
๋ํ ์ฌ์ ์กํ ์ธ๊ทธ๋จผํธ์ ๋ํ SampleRTT๋ ๊ณ์ฐํ์ง ์๊ณ , ํ ๋ฒ ์ ์ก๋ ์ธ๊ทธ๋จผํธ์ ๋ํด์๋ง ์ธก์ ํจ.
SampleRTT๊ฐ์ ๋ผ์ฐํฐ์์์ ํผ์ก๊ณผ ์ข ๋จ ์์คํ ์์์ ๋ถํ ๋ณํ ๋๋ฌธ์ ์ธ๊ทธ๋จผํธ๋ง๋ค ๋ฌ๋ผ ๋ถ๊ท์น์ ์.
๋์ฒด๋ก RTT๋ฅผ ์ถ์ ํ๊ธฐ ์ํด์ SampleRTT๊ฐ์ ํ๊ท ๊ฐ(EstimatedRTT)์ ์ฑํํ๊ณ TCP๋ ์ด ํ๊ท ๊ฐ์ ์ ์งํจ.
TCP๋ ๊ธ์ ํ์ธ์๋ต์ ์์ ํ๊ณ ์๋ก์ด SampleRTT๋ฅผ ํ๋ํ์๋ง์ ๋ค์ ๊ณต์์ ๋ฐ๋ผ EstimatedRTT๋ฅผ ๊ฐฑ์ ํจ.
EstimatedRTT = ( 1 - α ) * EstimatedRTT + α * SampleRTT
์ฆ, ์๋ก์ด EstimatedRTT ๊ฐ์ EstimatedRTT ์ด์ ๊ฐ๊ณผ SampleRTT์ ๋ํ ์๋ก์ด ๊ฐ์ ๊ฐ์ค๋ ์กฐํฉ์ผ๋ก ํํ
๊ถ์ฅ๋๋ α์ ๊ฐ์ α = 0.125(1/8) [RFC 6298]์ด๋ฉฐ, ์ด๋ฌํ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ ๊ณต์์ ์ฌ์ฉ
EstimatedRTT = 0.875 * EstimatedRTT + 0.125 * SampleRTT
EstimatedRTT๋ SampleRTT๊ฐ์ ๊ฐ์คํ๊ท (weighted average)์ด๊ณ ๊ฐ์คํ๊ท ์ ์์ ์ํ๋ณด๋ค ์ต๊ทผ ์ํ์ ๋์ ๊ฐ์ค์น๋ฅผ ์ฃผ์ด,
์ต๊ทผ์ ์ํ๋ค์ด ๋คํธ์ํฌ์์ ํ์ฌ ํผ์ก์ ๋ ์ ๋ฐ์ํจ.
์ด๋ฌํ ํ๊ท ์ ํต๊ณ์์ ์ง์์ ๊ฐ์ค ์ด๋ ํ๊ท (exponential weighted moving average, EWMA)๋ผ ํจ.
SampleRTT์ ๊ฐ์ค์น๊ฐ ๊ฐฑ์ ์ ์ฐจ๊ฐ ์งํ๋จ์ ๋ฐ๋ผ ๋น ๋ฅด๊ฒ ์ง์์ ์ผ๋ก ๊ฐ์ํ๋ฏ๋ก EWMA์์ "์ง์์ (exponential)"์ด๋ผ ๋ช ์นญ
์ ๊ทธ๋ฆผ์ gaia.cs.umass.edu(๋งค์ฌ์ถ์ธ์ธ ์ฃผ ์ ๋จธ์คํธ)์ fantasia.eurecom.fr(ํ๋์ค ๋จ๋ถ) ์ฌ์ด์ TCP ์ฐ๊ฒฐ์ ๋ํ
α = 0.125(1/8)์ ๊ฐ์ ๋ํ SampleRTT ๊ฐ๋ค๊ณผ EstimatedRTT๋ฅผ ๋ณด์ฌ ์ค๋ค.
SampleRTT์ ๋ณํ์จ(variation)์ EstimatedRTT ๊ณ์ฐ์ ์ํด ์๋งํ๊ฒ ๋๋ค.
RTT์ ์์ธก ์ธ์๋ RTT์ ๋ณํ์จ์ ์ธก์ ํ๋ ๊ฒ๋ ๋งค์ฐ ์ ์ฉํ๋ฐ, [RFC 6298]์ RTT ๋ณํ์จ์ ์๋ฏธํ๋ DevRTT๋ฅผ SampleRTT๊ฐ EstimatedRTT๋ก๋ถํฐ ์ผ๋ง๋ ๋ง์ด ๋ฒ์ด๋๋์ง์ ๋ํ ์์ธก์ผ๋ก ์ ์ํ๋ค.
DevRTT = ( 1 - β ) * DevRTT + β * | SampleRTT - EstimatedRTT | ( β ๊ถ์ฅ๊ฐ : 0.25 )
DevRTT๋ SampleRTT์ EstimatedRTT ๊ฐ ์ฐจ์ด์ EWMA๋ก, SampleRTT๊ฐ์ ๋ณํ๊ฐ ์๋ค๋ฉด DevRTT๋ ์์ ๊ฒ์ด๊ณ , SampleRTT์ ๋ณํ๊ฐ ํฌ๋ค๋ฉด DevRTT๋ ํด ๊ฒ์ด๋ค.
์ฌ์ ์ก ํ์์์ ์ฃผ๊ธฐ์ ์ค์ ๋ฐ ๊ด๋ฆฌ
์ฃผ์ด์ง EstimatedRTT์ DevRTT์ ๊ฐ์์, TCP ํ์์์ ์ฃผ๊ธฐ์๋ ์ด๋ค ๊ฐ์ด ์ฌ์ฉ๋์ด์ผ ํ ๊น?
ํ์์์ ์ฃผ๊ธฐ๋ EstimatedRTT๋ณด๋ค๋ ์ปค์ผํ ๊ฒ์ด๋ค. (๊ทธ๋ ์ง ์์ผ๋ฉด ๋ถํ์ํ ์ฌ์ ์ก ๋ฐ์ ๊ฐ๋ฅ์ฑ ๋์)
๊ทธ๋ฌ๋ ํ์์์ ์ฃผ๊ธฐ๊ฐ EstimatedRTT๋ณด๋ค ๋๋ฌด ํฌ๋ฉด ์ธ๊ทธ๋จผํธ๋ฅผ ์์์ ๋, ์ฌ์ ์ก์ด ๋๋ ค์ ธ ๋ฐ์ดํฐ ์ ์ก ์ง์ฐ ๋ฌธ์ ๋ฐ์ํจ.
๊ทธ๋ฌ๋ฏ๋ก EstimatedRTT + safety margin(์ฝ๊ฐ์ ์ฌ์ ๊ฐ) ์ผ๋ก ์ค์ ํ๋ ๊ฒ์ด ๋ฐ๋์งํ๋ฐ,
SampleRTT๊ฐ์ ๋ง์ ๋ณ๋์ด ์์ ๋๋ safety margin์ด ์ปค์ผ ํ๊ณ , ๋ณ๋์ด ์์ ๋์๋ safety margin์ด ์์์ผ ํ๋ค.
์ด safety margin์ ์ญํ ์ DevRTT์ ๊ฐ์ด ํ๊ฒ ๋์ด ์๋์ ๊ฐ์ด ์ฌ์ ์ก ํ์์์ ์ฃผ๊ธฐ๋ฅผ ๊ฒฐ์ ํ๋ค.
TimeoutIntervral = EstimatedRTT + 4 * DevRTT
์ด๊ธฐ TimeoutInterveral์ ๊ฐ์ผ๋ก 1์ด๋ฅผ ๊ถ๊ณ [RFC 6298]ํ๊ณ , ํ์์์์ด ๋ฐ์ํ ๋, TimeoutInterval์ ๊ฐ์ ๋ ๋ฐฐ๋ก ํ์ฌ ํ์ธ์๋ต ํ ํ์ ์ธ๊ทธ๋จผํธ์๊ฒ ๋ฐ์ํ ์ ์๋ ์กฐ๊ธฐ ํ์์์์ ๋ฐฉ์งํ๋ค. ์ดํ ์ธ๊ทธ๋จผํธ๊ฐ ์์ ๋๊ณ EstimatedRTT๊ฐ ์์ ๋๋ฉด TimeoutInterval์ ๋ค์ ์ ๊ณต์์ ๋ฐ๋ผ ๊ณ์ฐ๋๋ค.
์ฐธ๊ณ ๋์ :
์ปดํจํฐ ๋คํธ์ํน ํํฅ์ ์ ๊ทผ - ์ 7ํ