[2026-02-05] Elastic Sketch Adaptive and Fast Network-wide Measurements
๐ฆฅ ๋ณธ๋ฌธ
Background and Motivation
๊ธฐ์กด ์ฐ๊ตฌ์์๋ ํธ๋ํฝ ํน์ฑ (๊ฐ์ฉ ๋์ญํญ, ํ๋ก์ฐ ํฌ๊ธฐ ๋ถํฌ, ํจํท ์๋ ํฌํจ)์ ๋ฐ๋ฅธ ๋์ ๋คํธ์ํฌ ์ธก์ ์ ๋ํด ๋ค๋ฃจ์ง ์์
ํธ๋ํฝ ํน์ฑ
- ๊ฐ์ฉ ๋์ญํญ : ๋คํธ์ํฌ ํผ์ก ์ ๋ฅ๋์ ์ผ๋ก ์์ถ
- ํจํท ์๋ : ๋คํธ์ํฌ ๊ณต๊ฒฉ ์ ํจํท์ ์์์ง์ง๋ง ์๋๋ ๋นจ๋ผ์ ธ์ ๊ฐ์ฉ ๋์ญํญ์ ์ฌ์ ๊ฐ ์์ง๋ง ์ฒ๋ฆฌ ์๋๊ฐ ๋ชป ๋ฐ๋ผ๊ฐ์ ์ค์ํ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ์ง ๋ชปํ ์ ์์. ์ค์ํ์ง ์์ ์ ๋ณด๋ฅผ ๋ฅ๋์ ์ผ๋ก ํ๊ธฐํ์ฌ ์ฒ๋ฆฌ ์๋๋ฅผ ๊ฐ์ํ.
- ํ๋ก์ฐ ํฌ๊ธฐ ๋ถํฌ : ๋ง์ฐ์ค ํ๋ก์ฐ์ ์๋ฆฌํํธ ํ๋ก์ฐ๋ฅผ ๋ถ๋ฆฌํ์ฌ ์ ์ฅํ๊ธฐ ์ํด ๋ค๋ฅธ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉ. ํ๋ก์ฐ ํฌ๊ธฐ ๋ถํฌ๋ ๋ณํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ๋์ ์ผ๋ก ํ ๋น
์๊ตฌ ์ฌํญ
- ๋ฒ์ฉ์ฑ : ๋ ธ๋๋ ์ฌ๋ฌ ์์ ์ ์ํํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์์ ์ ์ํ ํ๋์ ๋ฒ์ฉ ๋ฐ์ดํฐ ๊ตฌ์กฐ.
- ์ ์์ฑ : ํจํท์ ์ฒ๋ฆฌ ์๊ฐ์ด ์งง๊ณ ์ผ์
- ์ ํ์ฑ : ์ ํ๋ ๋ฆฌ์์ค๋ก ์ค๋ฅ์จ์ ๋ฎ์ถค
Challenge
- ์์ถํ๋ฉด์๋ ๋์ ์ ํ๋
- ๊ธฐ์กด ์ฐ๊ตฌ : ๊ณ ์ ๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ
- ํด๋น ์ฐ๊ตฌ : ๋คํธ์ํฌ ๊ฐ์ฉ์ฑ์ด ๋ฎ์ ๋, ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์์ถํ์ง๋ง ํฐ ๋ฉ๋ชจ๋ฆฌ์์ ๋์ ์ด์ ์ ์ด๋ ค์ ์ฒ์๋ถํฐ ์์๋ ๊ณ ์ ๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ณด๋ค ๋์ ์ ํ๋๋ฅผ ๋ฌ์ฑํ๋ ๊ฒ์ด ๋ชฉํ
- ํจํท ์๋์ ๋ง๋ ์ฒ๋ฆฌ ์๋
- ๊ธฐ์กด ์ฐ๊ตฌ : ์ผ์ ํ ์ฒ๋ฆฌ ์๋. ํจํท ํ๋๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ์ฌ๋ฌ ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ
- ํด๋น ์ฐ๊ตฌ : ํจํท ์๋๊ฐ ๋ฎ์ ๋์๋ 2ํ, ํจํท ์๋๊ฐ ๋์ ๋์๋ 1ํ์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์ํ
- ํ๋ก์ฐ ๋ถํฌ์ ๋ฐ๋ฅธ ๋ฉ๋ชจ๋ฆฌ ํ ๋น
- ๋๋ถ๋ถ์ ๋ง์ฐ์ค ํ๋ก์ฐ์ด๊ณ ๊ทน์์๊ฐ ์๋ฆฌํํธ ํ๋ก์ฐ์ด์ง๋ง, ์๋ฆฌํํธ ํ๋ก์ฐ๊ฐ ์ค์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฏ๋ก, ์ ์ ํ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ ํ ๋น
Contribution
- ์๋ก์ด ์ค์ผ์น์ธ Elastic Sketch๋ฅผ ์ ์
- ํธ๋ํฝ ํน์ฑ์ ์ ์ํ๋ ๋ฅ๋ ฅ
- ๋ฒ์ฉ์ ์ด๊ณ ๋น ๋ฅด๋ฉฐ ์ ํ
- ์๋ฆฌํํธ ํ๋ก์ฐ์ ๋ง์ฐ์ค ํ๋ก์ฐ๋ฅผ ๋ถ๋ฆฌํ๋ ๊ธฐ์
- ์ค์ผ์น ์์ถ์ ์ํ ๊ธฐ์
- ๋ค์ํ ํ๋ซํผ์์ ์๋
Generic Method for Measurements
- ํ๋ก์ฐ ํฌ๊ธฐ ์ถ์
- ํ๋ก์ฐ ID๋ 5-ํํ(5-tuple)์ ์กฐํฉ์ด๊ฑฐ๋ ํ๋กํ ์ฝ ๋จ๋
- ํ๋ก์ฐ์ ํจํท ์๋ฅผ ํ๋ก์ฐ ํฌ๊ธฐ๋ก ๊ฐ์ฃผ.
- EX) ์ต์ ํจํท์ 64๋ฐ์ดํธ๋ผ๊ณ ๊ฐ์ ํ ๋ 120๋ฐ์ดํธ์ ํจํท์ด ๋ค์ด์ค๋ฉด ์ด๋ฅผ 2๊ฐ์ ํจํท์ผ๋ก ๊ฐ์ฃผ
- Heavy Heater ํ์ง : ๋ฏธ๋ฆฌ ์ ์๋ ์๊ณ๊ฐ๋ณด๋ค ํฐ ํ๋ก์ฐ ํ์ง
- Heavy Change ํ์ง : ์ธ์ ํ ๋ time window ์ฌ์ด์์ ํ๋ก์ฐ ํฌ๊ธฐ๊ฐ ์๊ณ๊ฐ ์ด์์ผ๋ก ์ฆ๊ฐํ๊ฑฐ๋ ๊ฐ์ํ ํ๋ก์ฐ ํ์ง
- ํ๋ก์ฐ ํฌ๊ธฐ ๋ถํฌ ์ถ์ /์ํธ๋กํผ ์ถ์ /์นด๋๋๋ฆฌํฐ ์ถ์
Elastic Sketch
๋ฐ์ดํฐ ๊ตฌ์กฐ

- Heavy part : ์๋ฆฌํํธ ํ๋ก์ฐ๋ฅผ ์ ์ฅ
- Heavy part $H$๋ ํด์ ํจ์ $h(.)$์ ์ฐ๊ฒฐ๋ ํด์ ํ ์ด๋ธ๋ก ๊ตฌ์ฑ
- ๊ฐ ๋ฒํท์ ํ๋ก์ฐ ID, positive votes($vote^{+}$), negative votes($vote^{-}$), flag ์ ๋ณด๋ฅผ ์ ์ฅ
- positive votes๋ ์ด ํ๋ก์ฐ์ ์ํ ํจํท์ ์(ํ๋ก์ฐ ํฌ๊ธฐ)๋ฅผ ๊ธฐ๋ก
- negative votes๋ ๋ค๋ฅธ ํ๋ก์ฐ์ ์ํ ํจํท์ ์๋ฅผ ๊ธฐ๋ก
- flag๋ ํด๋น ํ๋ก์ฐ์ ๋ํ ํจํท์ด light part์ ํฌํจ๋์ด ์์ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ง๋ฅผ ๋ํ๋
- ํจํท์ด ํด๋น ๋ฒํท์ ๋ค์ด์์ ๋, ๋ฒํท์ ์๋ ํ๋ก์ฐ์ ๋์ผํ๋ฉด positive votes๋ฅผ ์ฆ๊ฐํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด negative votes๋ฅผ ์ฆ๊ฐ์ํด. ๋ง์ฝ $\frac{\text{๋ถ์ ํฌํ์}}{\text{๊ธ์ ํฌํ์}} \ge \lambda$ (์ฌ์ ์ ์ ์๋ ์๊ณ๊ฐ)๋ผ๋ฉด, ํด๋น flow๋ฅผ evict ์ํค๊ณ ๊ทธ ์๋ฆฌ์ ํด๋น ํ๋ก์ฐ ์ฝ์
- Light part : ๋ง์ฐ์ค ํ๋ก์ฐ๋ฅผ ์ ์ฅ. CM ์ค์ผ์น
- d๊ฐ์ ๋ฐฐ์ด๋ก ๊ตฌ์ฑ๋์ด ์๊ณ ๊ฐ ๋ฐฐ์ด์ ํ๋์ ํด์ ํจ์์ ์ฐ๊ฒฐ๋์ด ์์. w๊ฐ์ ์นด์ดํฐ๋ก ๊ตฌ์ฑ.
- ํจํท์ด ๋ค์ด์ค๋ฉด, ํ๋ก์ฐ ID๋ฅผ ์ถ์ถํ์ฌ d๊ฐ์ ํด์ ํจ์๋ฅผ ๊ณ์ฐํ์ฌ ๋ฐฐ์ด๋ง๋ค ํ๋์ฉ ์นด์ดํฐ ์์น๋ฅผ ์ฐพ์๋ธ ๋ค, ๊ทธ d๊ฐ์ ์นด์ดํฐ๋ฅผ 1์ฉ ์ฆ๊ฐ
- ์กฐํ : d ๊ฐ์ ํด์ ์นด์ดํฐ ๊ฐ์ ์ป์ ํ, ๊ทธ ์ค ์ต์๊ฐ์ ํตํด ์กฐํ
๋์ ํ๋ฆ
- ์ฝ์
- ํ๋ก์ฐ ID๊ฐ $f$์ธ ํจํท์ด ๋ค์ด์ค๋ฉด, ํค๋น ํํธ์ ๋ฒํท ์์ธ $B$๋ฅผ ์ด์ฉํ์ฌ $H[h(f)\%B]$ ๋ฒํท์ผ๋ก ํด์ฑ
- ํด๋น ๋ฒํท์ $f_{1}, vote^{+}, flag_{1}, vote^{-}$์ด ์๋ค๊ณ ๊ฐ์ ํ ๋, $f$์ ์ $f_{1}$๊ฐ ๊ฐ์ผ๋ฉด $vote^{+}$๋ฅผ ์ฆ๊ฐ. ์๋ ๊ฒฝ์ฐ $vote^{-}$๋ฅผ ์ฆ๊ฐ์ํค๊ณ $f_{1}$์ ๋ฐฉ์ถํ ์ง ๊ฒฐ์
- ๋ฒํท์ด ๋น์ด ์๋ ๊ฒฝ์ฐ. ๋ฒํท์ ($f, 1, F, 0$)์ ์ฝ์ ํฉ๋๋ค. ์ฌ๊ธฐ์ $F$๋ ๋ฒํท์์ ๋ฐฉ์ถ์ด ์ผ์ด๋ ์ ์ด ์์์ ์๋ฏธ. ์ฝ์ ์ข ๋ฃ
- ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ๊ฐ ์์
- $vote^{-}$๋ฅผ ์ฆ๊ฐ์ํจ ํ์๋ $\frac{vote^{-}}{vote^{+}} < \lambda$์ธ ๊ฒฝ์ฐ ($f, 1$)์ CM ์ค์ผ์น์ ์ฝ์ . 1์ ํด๋น ํ๋ก์ฐ์ ํจํท์ ์๋ฅผ ์๋ฏธํจ.
- $vote^{-}$๋ฅผ ์ฆ๊ฐ์ํจ ํ์๋ $\frac{vote^{-}}{vote^{+}} > \lambda$์ธ ๊ฒฝ์ฐ. ๋ฒํท์ ($f, 1, T, 1$)๋ก ์ค์ . ๊ธฐ์กด ํ๋ก์ฐ ($f_{1}, vote^{+}$)์ CM ์ค์ผ์น๋ก ์ฝ์ . ๋งคํ๋ ์นด์ดํฐ๋ค์ $vote^{+}$๋งํผ ์ฆ๊ฐ
- ์กฐํ : Heavy part ์กฐํ ํ ์๋ ํ๋ก์ฐ์ ๋ํด์๋ Light part์์ ์กฐํ
- Heavy part์ ์๋ ๊ฒฝ์ฐ
- ํ๋๊ทธ๊ฐ false์ธ ๊ฒฝ์ฐ : ํ๋ก์ฐ ํฌ๊ธฐ๋ ์ค์ฐจ ์๋ $vote^{+}$ ๊ฐ
- ํ๋๊ทธ๊ฐ true์ธ ๊ฒฝ์ฐ : $vote^{+}$ ๊ฐ๊ณผ CM ์ค์ผ์น ์กฐํ ๊ฒฐ๊ณผ๋ฅผ ๋ํด์ผ ํจ
- Heavy part์ ์๋ ๊ฒฝ์ฐ
์ ํ๋ ๋ถ์
- Theorem
- ๋ฒกํฐ $\mathbf{f} = (f_{1}, f_{2}, โฆ, f_{n})$๋ฅผ ์คํธ๋ฆผ์ ํฌ๊ธฐ ๋ฒกํฐ. $f_{i}$๋ i๋ฒ์งธ ํ๋ก์ฐ์ ํฌ๊ธฐ
- ๋ ๋งค๊ฐ๋ณ์ $\epsilon$๊ณผ $\delta$๊ฐ ์ฃผ์ด์ก์ ๋, $w = \lceil \frac{e}{\epsilon} \rceil$ (e๋ ์ค์ผ๋ฌ ์)์ด๊ณ $d = \lceil \ln \frac{1}{\delta} \rceil$
- $d$(์นด์ดํฐ ๋ฐฐ์ด์ ์)์ $w$(๊ฐ ๋ฐฐ์ด์ ์นด์ดํฐ ์)๋ฅผ ๊ฐ๋ ์๋ผ์คํฑ ์ค์ผ์น
- $\mathbf{f}_{L}$์ ๋ผ์ดํธ ํํธ์ ๊ธฐ๋ก๋ ์๋ธ ์คํธ๋ฆผ์ ํฌ๊ธฐ ๋ฒกํฐ
-
์๋ผ์คํฑ ์ค์ผ์น์ ์ํด ์ถ์ ๋ ํ๋ก์ฐ i์ ํฌ๊ธฐ $\hat{f}{i}$๋ ์ต์ $1 - \delta$์ ํ๋ฅ ๋ก ๋ค์๊ณผ ๊ฐ์ ๋ฒ์๋ฅผ ๊ฐ์ง

-
์ถ์ ์ค์ฐจ๋ Count-Min์ $ ย \mathbf{f} ย _{1}$ ๋์ $ ย \mathbf{f}_{L} ย _{1}$์ ์ํด ์ ํ. ์ค์ ๋ก๋ ์คํธ๋ฆผ์ ๋๋ถ๋ถ์ ํจํท์ด ํค๋น ํํธ์ ๊ธฐ๋ก๋๋ฏ๋ก, $ ย \mathbf{f}_{L} ย _{1}$์ ๋ณดํต $ ย \mathbf{f} ย _{1}$๋ณด๋ค ํ์ ํ ์์. - ๋งค๊ฐ๋ณ์ d์ w๊ฐ ๊ฐ์ ๋ CM๋ณด๋ค ๋ ์ด์ดํ ์ค์ฐจ ๋ฒ์๋ฅผ ๊ฐ์ง
- Heavy part์ flag๊ฐ false์ธ ํ๋ก์ฐ์ ๊ฒฝ์ฐ ์ค์ฐจ๊ฐ ์์
- Heavy part์ flag๊ฐ true์ธ ํ๋ก์ฐ์ ๊ฒฝ์ฐ Light part์ ๊ธฐ๋ก๋ ํ๋ก์ฐ์ ์ผ๋ถ๋ถ๋ง ์ค์ฐจ๊ฐ ์์
- Light part์์๋ ํ๋ก์ฐ ํฌ๊ธฐ๋ง ๊ธฐ๋ก๋๋ฏ๋ก ๋ง์ ์์ ์์ ์นด์ดํฐ (8๋นํธ ์นด์ดํฐ)๋ฅผ ์ฌ์ฉํ ์ ์์.
- ๊ธฐ์กด CM์ ์๋ฆฌํํธ ํ๋ก์ฐ๋ฅผ ์์ฉํ๊ธฐ ์ํด 32๋นํธ ์นด์ดํฐ๋ฅผ ์ฌ์ฉ
- ์๋ฆฌํํธ ์ถฉ๋ : ์ ํ๋๊ฐ ์ต์
์ธ ๊ฒฝ์ฐ. ๋ ์ด์์ ์๋ฆฌํํธ ํ๋ก์ฐ๊ฐ ๋์ผํ ๋ฒํท์ ๋งคํ๋ ๋ ์ผ๋ถ ์๋ฆฌํํธ ํ๋ก์ฐ๊ฐ ๋ผ์ดํธ ํํธ๋ก ๋ฐฉ์ถ๋์ด ์ผ๋ถ ๋ง์ฐ์ค ํ๋ก์ฐ๊ฐ ํฌ๊ฒ ๊ณผ๋ ์ถ์ ๋๋ ๊ฒฝ์ฐ
- ์๋ฆฌํํธ ์ถฉ๋๋ฅ ($P_{hc}$) : ํ๋ ์ด์์ ์๋ฆฌํํธ ํ๋ก์ฐ๊ฐ ๋งคํ๋ ๋ฒํท์ ์๋ฅผ ์ ์ฒด ๋ฒํท ์๋ก ๋๋ ๊ฐ์ผ๋ก ์ ์. ๊ฐ ๋ฒํท์ ๋งคํ๋ ์๋ฆฌํํธ ํ๋ก์ฐ์ ์๋ ์ดํญ ๋ถํฌ๋ฅผ ๋ฐ๋ฆ
- ์ฌ๋ฌ ๊ฐ์ ์๋ธ ํ ์ด๋ธ์ ์ฌ์ฉํ๊ฑฐ๋ ํ๋์ ๋ฒํท์ ์ฌ๋ฌ ๊ฐ์ ํค-๊ฐ ์์ ์ฌ์ฉํ์ฌ ํด๊ฒฐ
Adaptivity to Available Bandwidth
์ค์ผ์น ์์ถ

์นด์ดํฐ๋ค์ ๊ทธ๋ฃนํํ ๋ค์ ๋์ผํ ๊ทธ๋ฃน ๋ด์ ์นด์ดํฐ๋ค์ ํ๋์ ์นด์ดํฐ๋ก ์์ถ
ํฌ๊ธฐ๊ฐ $zwโ \times d$์ธ ์ค์ผ์น A. (d๋ ๋ฐฐ์ด์ ๊ฐ์. z๋ ๊ทธ๋ฃนํ ๊ฐ์. wโ๋ ๊ทธ๋ฃน ๋ด ์นด์ดํฐ ๊ฐ์
- ๊ทธ๋ฃนํ
- A๋ฅผ z๊ฐ์ ๋์ผํ ๊ตฌ์ญ์ผ๋ก ๋๋. ๊ฐ ๊ตฌ์ญ์ ํฌ๊ธฐ๋ $wโ \times d$
- ํฌ๊ธฐ๋ $wโ \times d$์ธ ์ค์ผ์น B ์์ฑ
- ์์ถ ์ฐ์ฐ์์ ์ํด ์์ถ
-
ํฉ์ฐ ์์ถ(Sum Compression, SC) : ๊ฐ ๊ทธ๋ฃน์ ์นด์ดํฐ๋ค์ ํฉ์ฐ. $B_{i}[j] = \sum_{k=1}^{z}{A_{i}^{k}[j]}$
๋์ผํ ์ ํ๋๋ฅผ ๊ฐ์ง๋ง, ํฐ ๋ฉ๋ชจ๋ฆฌ์ ๊ธฐ๋ก๋ ์ ๋ณด๋ฅผ ์ถฉ๋ถํ ํ์ฉํ์ง ๋ชปํจ
-
์ต๋ ์์ถ(Maximum Compression, MC) : ๊ฐ ๊ทธ๋ฃน์ ์นด์ดํฐ๋ค ์ค ๊ฐ์ฅ ํฐ ๊ฐ์ผ๋ก ์์ถ. $B$${i}[j] = \max{A{i}^{1}[j], A_{i}^{2}[j], โฆ, A_{i}^{z}[j]}$
- ์๋ณธ์ ์ ๋ณด๋ฅผ ๋ ๋ง์ด ํ์ฉํ์ฌ ๋ ๋์ ์ ํ๋๋ฅผ ๊ฐ์ถค. ํฉ์ฐ ์์ถ ํ์๋ CM ์ค์ผ์น์ ์ค์ฐจ ๋ฒ์๊ฐ ๋ณํ์ง ์๋ ๋ฐ๋ฉด, ์ต๋ ์์ถ ํ์๋ ์ค์ฐจ ๋ฒ์๊ฐ ๋ ์ด์ดํด์ง
- MC๋ฅผ ์ฌ์ฉํ๋ฉด ๊ณผ๋ ์ถ์ ์ค์ฐจ๋ ๋ฐ์ํ์ง๋ง, ๊ณผ์ ์ถ์ ์ค์ฐจ๋ ๋ฐ์ํ์ง ์์
- ์์ถ ์๋๊ฐ ๋น ๋ฅด๋ฉฐ, ์์ถ ํด์ ๊ฐ ํ์ํ์ง ์๊ณ ์ถ๊ฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ํ์ํ์ง ์์
-
์์ถ ์ค์ผ์น ์กฐํ : ํด์ ํจ์ $h_{i}(.) \% w$๋ฅผ $h_{i}(.) \% w \% wโ$๋ก ๋ณ๊ฒฝ
- ์์์ ์ ์ i์ ๋ ์ ์ w, wโ๊ฐ ์ฃผ์ด์ก์ ๋, w๊ฐ wโ๋ก ๋๋์ด ๋จ์ด์ง๋ฉด (i % w) % wโ = i % wโ๊ฐ ์ฑ๋ฆฝ
์ค์ผ์น ๋ณํฉ

๊ฐ๊ฐ ์๋ฒ๋ ์ธก์ ๋ ธ๋๋ค๋ก๋ถํฐ ๋ง์ ์ค์ผ์น๋ฅผ ์์ ํ์ฌ ์ด๋ฅผ ๋ณํฉํ ํ ์์ง๊ธฐ๋ก ์ ์ก. ๋ชจ๋ ์ค์ผ์น์ ๋ํด ๋์ผํ ํด์ ํจ์๋ฅผ ์ฌ์ฉ.
- ๋ณํฉ ๋ฐฉ๋ฒ
- ํฉ์ฐ ๋ณํฉ (Sum merging) : ๋์ผํ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ๋ CM ์ค์ผ์น๋ฅผ ๋์ํ๋ ๋ชจ๋ ์นด์ดํฐ ์์ ๋ํ์ฌ ๋ ์ค์ผ์น๋ฅผ ํฉ์นจ. ๋น ๋ฅด์ง๋ง ์ ํํ์ง ์์
-
์ต๋ ๋ณํฉ(Maximum Merging, MM) : ๋ ์ค์ผ์น์ ๋์ํ๋ ๋ชจ๋ ์นด์ดํฐ ์ ์ค ์ต๋๊ฐ์ ํตํด ์๋ก์ด ์ค์ผ์น ์์ฑ. ๊ณผ์ ์ถ์ ์ค์ฐจ๊ฐ ๋ฐ์ํ์ง ์์ผ๋ฉฐ, ์๋ก ๋ค๋ฅธ ๋๋น๋ฅผ ๊ฐ์ง ๋ ์ค์ผ์น๋ฅผ ๋ณํฉํ ์ ์์.

Adaptivity to Packet Rate
ํจํท ์๋๊ฐ ๋์ผ๋ฉด ์ ๋ ฅ ํ๊ฐ ๋น ๋ฅด๊ฒ ์ฑ์์ ธ ๋ชจ๋ ํจํท์ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ๊ธฐ ์ด๋ ค์.
๊ธฐ์กด ์ฐ๊ตฌ
SketchVisor : fast path๋ผ๋ ์ ์ฉ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉ. ๋ถํ ์ํ O(1) ์ ๋ฐ์ดํธ ๋ณต์ก๋๋ฅผ ๊ฐ์ง์๋ ๋ถ๊ตฌํ๊ณ ์ต์ ์ ๊ฒฝ์ฐ์๋ ์ ์ฒด ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ํ์ํด์ผ ํจ โ ์๋นํ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์ ๋ฐํ๊ณ ์ฑ๋ฅ์ ์ ํด
๋์ ํ๋ฆ
- ์
๋ ฅ ํ์ ํจํท ์๊ฐ ๋ฏธ๋ฆฌ ์ ์๋ ์๊ณ๊ฐ๋ณด๋ค ์ปค์ง๋ฉด, ๋ค์ด์ค๋ ํจํท์ด heavy part์๋ง ์ ๊ทผํ๋๋ก ํ์ฌ ์๋ฆฌํํธ ํ๋ก์ฐ์ ์ ๋ณด๋ง ๊ธฐ๋กํ๊ณ ๋ง์ฐ์ค ํ๋ก์ฐ๋ ํ๊ธฐ
- light part๋ฅผ ํ๊ธฐํ๋ ๊ฒ์ด ์๋๋ผ ์ ๋ฐ์ดํธ๋ฅผ ์ํ๋ ๊ฒ.
- light part์ ๊ธฐ๋ก๋์ด์ผ ํ ์ ๋ณด๋ง ์์ค
- ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ Heavy part ์ฝ์ ๊ณผ์ ๊ณผ ๊ฐ์
- ๋ฒํท์ ์๋ ํ๋ก์ฐ $f$๊ฐ ๋ค๋ฅธ ํ๋ก์ฐ $fโ$๋ก ๊ต์ฒด๋ ๋, $fโ$์ ํ๋ก์ฐ ํฌ๊ธฐ๋ $f$์ ํฌ๊ธฐ๋ก ์ค์
- ๊ธฐ์กด ์๊ณ ๋ฆฌ์ฆ์์ ์ง์ฐ๊ณ ์ ID๋ฅผ ์ฐ๊ณ ๊ฐ์ 1๋ก ์ด๊ธฐํํ๋ ๊ฒ์ ์ฌ๋ฌ ์ฐ์ฐ์ด ํ์ํ์ง๋ง ์นด์ดํธ ๊ฐ์ ๊ทธ๋๋ก ๋ฎ์ด ์์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ๊ณผ ์ฐ์ฐ์ ์ต์ํ
๊ฐ ์ฝ์ ์์ ์ ํค๋น ํํธ ๋ด ๋ฒํท์ ๋ํ ๋จ ํ ๋ฒ์ probe(๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ)๋ง์ ํ์. ์ ํ๋๊ฐ ์ ํ๋๋ ๋์ ๋์ ์ฒ๋ฆฌ ์๋๋ฅผ ๋ฌ์ฑ.
ํจํท ์๋๊ฐ ๋ด๋ ค๊ฐ๋ฉด ๋ค์ ์ด์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉ.
Adaptivity to Flow Size Distribution
ํ๋ก์ฐ ํฌ๊ธฐ ๋ถํฌ๋ ๋์ ์ด๋ฏ๋ก Heavy part์ ํฌ๊ธฐ๋ ๋์ ์ผ๋ก ๊ฒฐ์
๋์ ํ๋ฆ

- Heavy part์ ์์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ํ ๋นํ๊ณ ์๊ณ๊ฐ $T_{1}$์ ์ ์
- ํน์ ๋ฒํท ์์ ์๋ ๋ชจ๋ ํ๋ก์ฐ์ ํฌ๊ธฐ๊ฐ $T_{2}$๋ณด๋ค ํฌ๋ฉด ๊ฐ๋ ์ฐธ์ผ๋ก ๊ฐ์ฃผ
- ๊ฐ๋ ์ฐฌ ๋ฒํท์ ์๊ฐ ์๊ณ๊ฐ $T_{1}$์ ์ด๊ณผํ๋ฉด Heavy part๊ฐ ๊ฐ๋ ์ฐฌ ๊ฒ์ผ๋ก ๊ฐ์ฃผ
- Heavy part๋ฅผ ๋ณต์ฌํ๊ณ ์๋ณธ๊ณผ ๊ฒฐํฉ
- ํด์ ํจ์๋ $h(.)\%w$์์ $h(.)\%(2w)$๋ก ๋ณ๊ฒฝ
- ๋ณต์ฌ ์์
ํ ๋ฒํท ๋ด ํ๋ก์ฐ์ ์ ๋ฐ์ ์ ์ง์ ์ผ๋ก ์ ๊ฑฐ.
- ์๋ก์ด ํจํท ์ฝ์ ์ ํด๋น ๋ฒํท์ ํ๋ก์ฐ๋ฅผ ํ์ธํ์ฌ ๋ค๋ฅธ ์นธ์ ์์ด์ผ ํ ํ๋ก์ฐ์ด๋ฉด ์ ๊ฑฐ
- ์ ๊ฑฐ๊ฐ ์๋๋๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น์ง ์์
์ค๋ฒ ํค๋
- ๋ณต์ฌ ๋น์ฉ : Heavy part๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ณต์ฌํ๋ ์๊ฐ์ ๋ฌด์ํ ์ ๋
- ์์ถ : ์ต๋ ์์ถ๊ณผ ์ ์ฌํ ๋ฐฉ์์ผ๋ก ์์ถ. ์นด์ดํฐ๊ฐ ์๋ ($key, vote^{+}, flag, vote^{-}$)์ ๋ณํฉ. ๋ ํค์ ๋ํด ๋น๋๋ฅผ ์กฐํํ์ฌ ๋ ํฐ ๊ฒ์ ์ ์งํ๊ณ ๋ค๋ฅธ ํ๋๋ Light part๋ก evict
Optimization
Light part
d=1 CM ์ค์ผ์น ์ฌ์ฉ : ์ ํ๋๋ณด๋ค ๊ตฌํ ๊ฐ๋ฅ์ฑ๊ณผ ์๋๋ฅผ ์ค์ํ๋ฉฐ, ์ถฉ๋ถํ ์ ํํจ
Hardware Version of Elastic Sketches

์๋ฆฌํํธ ์ถฉ๋์ ์ค์ด๊ธฐ ์ํด ์ฌ๋ฌ ๊ฐ์ ์๋ธ ํ ์ด๋ธ์ ์ฌ์ฉ. Heavy part์ ๋์ผํ์ง๋ง ์๋ก ๋ค๋ฅธ ํด์ ํจ์๋ฅผ ์ฌ์ฉ. ๊ฐ ์๋ธ ํ ์ด๋ธ์ด ๋์ผํ ์ฐ์ฐ์ ์ํํ๋ฏ๋ก ํ๋์จ์ด ํ๋ซํผ์ ์ ํฉ
๋์ ํ๋ฆ
- $f_{8}$์ ์ฝ์ ํ ๋, ์ฒซ ๋ฒ์งธ ์๋ธ ํ ์ด๋ธ์์ $vote^{-}$๊ฐ 1 ์ฆ๊ฐํ๊ณ , $f_{8}$์ ๋ค์ ์๋ธ ํ ์ด๋ธ๋ก ์ฝ์
- ์ฒซ ๋ฒ์งธ ์๋ธ ํ ์ด๋ธ์ $f_{9}$๋ฅผ ์ฝ์ ํ ๋, ํ๋ก์ฐ ํฌ๊ธฐ๊ฐ 7์ธ $f_{4}$๊ฐ ๋ฐฉ์ถ๋์ด ๋ค์ ๋จ๊ณ๋ก ์ฝ์ . ๋ ๋ฒ์งธ ์๋ธ ํ ์ด๋ธ์์ $f_{4}$๋ ์ด๋ฏธ $f_{4}$๊ฐ ์๋ ๋ฒํท์ ๋งคํ. ๊ฐ์ 2์์ 9๋ก ์ฆ๊ฐ
- ํ๋ก์ฐ๋ฅผ ์กฐํํ ๋๋ ์ฌ๋ฌ Heavy part์ ๋ชจ๋ ๊ฐ์ ๋ํจ
Software Version of Elastic Sketches

์๋ฆฌํํธ ์ถฉ๋์ ์ค์ด๊ธฐ ์ํด ๊ฐ ๋ฒํท์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ฐ ์ ์ฅ. ๋ฒํท ํฌ๊ธฐ๊ฐ Word ๋จ์๋ณด๋ค ์ปค์ง ์ ์์ด์, Heavy packet์ ์ ๊ทผํ๋ ๊ณผ์ ์ด ๋ณ๋ชฉ ์ง์
CPU ํ๋ซํผ์์ SIMD๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ํํ ์ ์์ด์ ์ํํธ์จ์ด ํ๋ซํผ์ ์ ํฉ
๋์ ํ๋ฆ
- ๊ฐ ๋ฒํท์ ๋ชจ๋ ํ๋ก์ฐ๊ฐ ํ๋์ $vote^{-}$ ํ๋๋ฅผ ๊ณต์
- ํ๋ก์ฐ $f_{8}$์ธ ํจํท์ด ๋ค์ด์์ ๋, $vote^{-}$$๋ฅผ ์ฆ๊ฐ. $11 \le 11 * \lambda = 11 * 8$์ด๋ฏ๋ก, $f_{8}$์ Light part์ ์ฝ์
- ํ๋ก์ฐ $f_{9}$์ธ ํจํท์ด ๋ค์ด์์ ๋, $vote^{-}$$๋ฅผ ์ฆ๊ฐ. $56 \ge 7 * \lambda = 7 * 8$์ด๋ฏ๋ก, ํ๋ก์ฐ ํฌ๊ธฐ๊ฐ ๊ฐ์ฅ ์์ $f_{4}$์ evict
Application
ํ๋ก์ฐ ํฌ๊ธฐ ์ถ์
ํ๋๊ทธ๊ฐ false์ธ ํ๋ก์ฐ๋ค์ ๋ํด์๋ ์ถ์ ์ค์ฐจ๊ฐ ์์. ์คํ ๊ฒฐ๊ณผ์ ๋ฐ๋ฅด๋ฉด, 250๋ง ๊ฐ์ ํจํท์ ๋ํด 600KB์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๋ ํค๋น ํํธ(heavy part)์ ์๋ ํ๋ก์ฐ์ 56.6% ์ด์์ด ์ค์ฐจ๊ฐ ์์
Heavy Hitter ํ์ง
Heavy part์ ํ๋ก์ฐ ID๋ฅผ ์ง์ ๊ธฐ๋กํ๊ธฐ ๋๋ฌธ์ ๋์ ์ ํ๋๋ก Heavy Heater ํ์ง. Light part์์ ๊ต์ฒด๋ ์์ฃผ ์ ์ ๋ถ๋ถ์ ํ๋ก์ฐ๋ค๋ง์ด ์ค์ฐจ๋ฅผ ๊ฐ์ง
Heavy Change ํ์ง
๊ฐ ์๊ฐ ์ฐฝ์์ ํฌ๊ธฐ๊ฐ ์๊ณ๊ฐ ์ด์์ธ ๋ชจ๋ ํ๋ก์ฐ๋ฅผ ํ์ธํ๋ ๋ฐฉ์์ผ๋ก ํ์ง. ๋ ์๊ฐ์ฐฝ์ Heavy part๋ฅผ ์กฐํํ ํ ํฌ๊ธฐ ์ฐจ์ด๊ฐ ์๊ณ๊ฐ๋ณด๋ค ํฐ ๊ฒฝ์ฐ ํ์ง
ํ๋ก์ฐ ํฌ๊ธฐ ๋ถํฌ, ์ํธ๋กํผ, ์นด๋๋๋ฆฌํฐ ์ถ์
- ํ๋ก์ฐ ํฌ๊ธฐ ๋ถํฌ ์ถ์ : MRAC ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ Light part์ ๋ถํฌ๋ฅผ ์ถ์ ํ ํ, Heavy part์ ๋ถํฌ์ ํฉ์ฐ
- ์ํธ๋กํผ ์ถ์ : ํ๋ก์ฐ ํฌ๊ธฐ ๋ถํฌ๋ฅผ ๋ฐํ์ผ๋ก $-\sum(i * \frac{n_{i}}{m} \log \frac{n_{i}}{m})$ ๋ฐฉ์์ผ๋ก ๊ณ์ฐ.
- ์นด๋๋๋ฆฌํฐ ์ถ์ : Heavy part์ ์๋ ๊ณ ์ ํ๋ก์ฐ ๊ฐ์๋ฅผ ์ธ๊ณ Linear counting ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ Light part์ ์๋ ๊ณ ์ ํ ํ๋ก์ฐ์ ๊ฐ์์ ํฉ์ฐ
Implementation
Hardware Version Implementations
P4
- data plane์ ๋ ์ง์คํฐ๋ฅผ ์ฌ์ฉํ์ฌ Heavy part์ Light part ๊ตฌํ
- Stateful ALU๋ฅผ ํ์ฉํ์ฌ ๋ ์ง์คํฐ ๋ฐฐ์ด์ ํญ๋ชฉ์ ์กฐํํ๊ณ ์ ๋ฐ์ดํธ
- Stateful ALU ๋ฆฌ์์ค ์ ํ
- 3๊ฐ์ ํ๋($vote_{all}, key, vote^{+}$)๋ง ์ฌ์ฉ
- $\frac{vote_{all}}{vote^{+}} \ge \lambdaโ$์ธ ๊ฒฝ์ฐ์ eviction. $\lambdaโ = 32$๋ฅผ ๊ถ์ฅ
- ํ ํ๋ก์ฐ($f, vote^{+}$)๊ฐ ๋ค๋ฅธ ํ๋ก์ฐ$(f_{1}, vote^{+}{1}$)์ ์ํด ๋ฐฉ์ถ๋ ๋, ๋ฒํท์ ($f{1}, vote^{+} + vote^{+}_{1}$)๋ก ์ค์
์ค์์น ASIC์ ์ ์ฒด ๋ฆฌ์์ค ์ฌ์ฉ๋์ 6% ๋ฏธ๋ง์ผ๋ก ์ ์งํ๋ฉด์ Line-rate ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํจ์ ์ ์ฆ
FPGA
Altera Stratix V ๋ชจ๋ธ์ ๊ตฌํ๋์์ผ๋ฉฐ, ์จ์นฉ RAM์ 4%์ ์ ์ฒด ํ์ 4%๋ง์ ์ฌ์ฉํ์ฌ 162.6 Mpps์ ์ฒ๋ฆฌ ์๋๋ฅผ ๋ฌ์ฑ
GPU
NVIDIA GTX 1080์์ CUDA๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํ์ผ๋ฉฐ, ๋ฐฐ์น ์ฒ๋ฆฌ(Batch processing)์ ๋ฉํฐ ์คํธ๋ฆฌ๋ฐ ๊ธฐ์ ๋ก ์ฝ์ ์๋๋ฅผ ๊ฐ์ํ
Software Version Implementations
CPU ๋ฐ ๋ฉํฐ์ฝ์ด
- ํ ๋ฒํท์ ์ฌ๋ฌ ํ๋ก์ฐ๋ฅผ ์ ์ฅํ๋ ์ํํธ์จ์ด ๋ฒ์ ์ ์ ์ฉ
- CPU์ SIMD ๋ช ๋ น์ด๋ฅผ ํ์ฉํ์ฌ ํฐ ๋ฒํท ๋ฐ์ดํฐ๋ฅผ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํจ์ผ๋ก์จ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ๋ณ๋ชฉ ํ์์ ํด๊ฒฐ
OVS (Open vSwitch)
๊ฐ์ ์ค์์น ํ๊ฒฝ์ ํตํฉ๋์์ผ๋ฉฐ, 8๊ฐ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ ๋ OVS ์ ์ฒด ์ฒ๋ฆฌ๋์ ๊ฑฐ์ ์ํฅ์ ์ฃผ์ง ์๋ ๊ณ ์ฑ๋ฅ
Experimental results
- Setup
- Trace : CAIDA์์ ์์งํ Equinix-Chicago ๋ชจ๋ํฐ์ 1์๊ฐ์ง๋ฆฌ ๊ณต๊ณต ํธ๋ํฝ ํธ๋ ์ด์ค 4๊ฐ๋ฅผ ์ฌ์ฉ.
- ์งํ : ํ๋ก์ฐ ํฌ๊ธฐ ์ถ์ ์๋ ARE(ํ๊ท ์๋ ์ค์ฐจ), Heavy Heater ๋ฐ Change ํ์ง์๋ F1 ์ค์ฝ์ด, ๊ทธ๋ฆฌ๊ณ ์๋ ์ธก์ ์๋ ์ฒ๋ฆฌ๋(Mpps)์ ์ฌ์ฉ
Accuracy
- ํ๋ก์ฐ ํฌ๊ธฐ ์ถ์ : 600KB์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๋, ์๋ผ์คํฑ ์ค์ผ์น์ ARE๋ CM, CU, Count ์ค์ผ์น๋ณด๋ค ๊ฐ๊ฐ ์ฝ 3.8๋ฐฐ, 2.5๋ฐฐ, 7.5๋ฐฐ ๋ ๋ฎ์ต๋๋ค.
- Heavy Heater ํ์ง : 200KB ๋ฏธ๋ง์ ๋ฉ๋ชจ๋ฆฌ์์๋ ์๋ผ์คํฑ ์ค์ผ์น๋ 100%์ ์ ๋ฐ๋์ ์ฌํ์จ์ ๋ฌ์ฑ
- Heavy Change ํ์ง : 99.5% ์ด์์ F1 score ๋ฌ์ฑ. ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ๋ค์ ์ต๊ณ ๊ธฐ๋ก์ 97%
Memory and Bandwidth Usage
Heavy Change ํ์ง์์ 99%์ ์ ๋ฐ๋์ ์ฌํ์จ์ ๋ฌ์ฑํ๊ธฐ ์ํด ๋จ 150KB์ ๋์ญํญ๋ง์ ์ฌ์ฉ
Elasticity
- ๋์ญํญ ์ ์์ฑ : ์ต๋ ์์ถ ๋ฐฉ์์ด ํฉ์ฐ ์์ถ๋ณด๋ค 1.24๋ฐฐ์์ 2.38๋ฐฐ ๋ ์ ํ
- ํจํท ์๋ ์ ์์ฑ : ํจํท ์์ค ์์ด ์ฝ 50Mpps์ ํจํท ์๋๋ฅผ ๊ฒฌ๋ ์ ์์ผ๋ฉฐ, Light part๊ฐ ์๋ quick mode์์๋ ์ฝ 70Mpps๊น์ง ๊ฐ๋ฅ
-
ํธ๋ํฝ ๋ถํฌ ์ ์์ฑ

Conclusion & My Opinion
์๋ผ์คํฑ ์ค์ผ์น๊ฐ ํธ๋ํฝ ํน์ฑ์ด ๋ณํ ๋ ์ ์๋ํ๋ฉฐ, ์๋์ ์ ํ๋ ๋ชจ๋ ๋ฉด์์ ์ต์ ๊ธฐ์ ๋ค์ ๋ฅ๊ฐํจ
๊ฐ์ธ์ ์ธ ์๊ฐ์ผ๋ก๋ ๋ณต์ฌ ํ ์ ์ง์ ์ฒญ์ ๊ณผ์ ๊ณผ ํจํท ์๋๊ฐ ๋น ๋ฅด๊ฒ ์ค๋ ๊ฒฝ์ฐ๋ ์ด๋ป๊ฒ ํ ์งโฆ. ์ค๋๊ฑธ๋ฆด ๊ฑฐ ๊ฐ์๋ฐโฆ
Leave a comment