Recipes in {lambda}

의견 형성 동역학 / 경제 물리학 / 전산 물리학에 대한 소소한 이야기들.

왜 메시징 앱들이 통신사에 트래픽을 주는가?

최근 스마트폰과 트래픽을 둘러싼 여러 이야기들이 있습니다. 가깝게는 SMS 대체 서비스들이 유도하는 트래픽의 크기등에 대한 이야기를 흔하게 볼 수 있습니다. 뉴스등을 통해 통신사들이 카카오톡등의 앱이 트래픽을 유도한다는 이야기를 접한 분들이 패킷 용량을 계산하는 식으로 실제 부담이 그렇게 크지 않다고 생각하는 경우를 종종 봅니다. 겸사겸사 넘어가기에는 이해가 잘못되고 있는 부분에 대한 아쉬움이 계속 눈에 밟혀서 글을 한 번 적어보려고 합니다.

카카오톡이나 마이피플등의 앱이 트래픽을 유도해야 얼마나 유도할까? 등의 생각을 할 때는 '문자 하나의 용량' 이 얼마나 되겠어? 식으로 생각하기 쉽습니다. 그런데 트래픽은 패킷의 크기로만 결정되는 것이 아닙니다. 굉장히 여러가지 요소가 있는데, 이번에는 이미 널리 연구되었고 인스턴트 메시징 모델과 가장 가깝다고 알려진 P2P 에 대한 연구들을 엮어서 예를 들어 설명해 볼까 합니다.

조금 복잡해 질 수 있을 것 같아 미리 이해를 부탁 드립니다. 아마 지루할 수도 있을것 같습니다만, 읽어 두시면 '아하 그렇구나' 하실 부분이 있지 않을까 기대를 해 봅니다.

*

기존의 트래픽에 대한 연구및 예측들은 기본 가정으로 트래픽이 '마르코브 과정(markovian process)'이라는 전제를 깔고 있습니다. 마르코브 과정을 간단하게 설명하면 현재의 상태가 아주 가까운 (실질적으로 바로 직전인) 과거의 상태에만 의존하는 과정입니다. 마르코브 과정을 따르는 경우 미래를 예측하기 위하여 과거의 데이터는 큰 의미가 없습니다. 직후의 미래는 현재 상태에만 영향을 받는 과정입니다. 대부분의 트래픽은 마르코브 과정을 따르는 것으로 알려져 있습니다. 예를 들어 스트리밍으로 영화를 보는 경우를 상상해 봅시다. 데이터 트래픽은 느려지거나 빨라지지만 비교적 연속적으로 흐릅니다.

그런데 P2P 모델이나 메세징 앱들의 트래픽을 연구해보면 (설계에 따라 다를 수도 있지만) 자기 유사성(self-similarity[1])이 있는 패턴을 보입니다. 자기 유사성이 있는 시스템의 신호는 짧은 시간 간격 또는 긴 시간 간격에서 신호간의 패턴이 유사하거나 경향성을 보입니다. 또한 시간을 따라 신호를 관찰할 경우 신호간의 상호 연관성이 강한 특징이 있습니다. (long-range dependence / correlation 이라고 합니다)

자기 유사성이 있는 트래픽의 경우 버스트 신호 특성을 보이는 특징이 있습니다. 버스트 신호 특성은 간헐적으로 트래픽이 뛰는 패턴을 뜻합니다. 주위에서 가장 간단하게 접할 수 있는 대표적인 버스트 신호 특성은 심장 박동 신호입니다. 가슴에 손을 얹으시면 심장 박동을 느낄 수 있죠. 심장 박동이 시계처럼 정확하게 뛰는 것은 아닙니다만, 특정한 시간 간격으로 상호 연관성을 보이고 신호가 주기적으로 뛰는 특성이 있습니다. 흔하게 볼 수 있는 자기 유사성이 있는 다른 시스템은 주식 시장입니다. 불규칙적으로 보이지만 10분단위의 주식별 그래프의 통계적 특성은 하루 단위나 한 달 단위의 통계적 특성과 굉장히 유사한 결과를 보입니다.

자기 유사성이 있는 신호에 의한 트래픽은 앞서 말씀드린 마르코브 과정을 따르는 트래픽과는 다르게 동기화(synchronization[2])가 일어나는 특성을 보입니다. 차를 운전하다보면 깜빡이를 넣는 경우가 있죠. 그 때 깜빡이 신호는 굉장히 일정합니다만 1초마다 두번씩 딱딱 떨어지는 시간 간격으로 깜빡이진 않습니다. 그런데 어떤 순간에는 굉장히 정확하게 딱딱 떨어지는 것 처럼 들릴 때가 있습니다. 신호를 만드는 시스템들의 주기가 서로 완전히 일치하지 않아도, 주기를 가지고 있는 신호들 끼리는 동기화가 일어나는 것 같은 현상이 일어납니다.

자기 유사성이 있는 트래픽들을 모두 모아본 결과는 마르코브 과정을 모아 만들어낸 결과와 완전히 다른 특성을 보여줍니다. 가장 큰 차이는 동기화로 인하여 불규칙적으로 트래픽이 동시에 몰리는 결과를 보인다는 점입니다. 시간에 따라 트래픽을 보면 마르코브 과정을 따르는 기존의 트래픽들의 합은 랜덤하지만 어느정도 규칙적인 경향을 보입니다. 하지만 자기 유사성이 있는 트래픽의 합은 굉장히 불규칙적으로 보이며, 동기화가 일어나는 순간에는 엄청나게 큰 트래픽이 발생합니다. 이러한 정도를 휘발성 또는 변동성(volatility[3])이라고 합니다.

메세징 프로그램, 특히 서버 사이드 푸시에 의존하지 않는 프로그램은 규칙적인 접속을 통하여 자기 유사성이 있는 신호를 만들어냅니다. 이러한 트래픽은 변동성이 모이는 경향이 있기 때문에(volatility clustering이라고 합니다) 큰 트래픽을 비주기적이지만 순간적으로 만들어냅니다. 문제는 기존의 트래픽을 담당하는 하드웨어들은 트래픽을 마르코브 과정으로 가정하고 만들어졌다는 점입니다. 사실 현재 기술로는 순간적으로만 처리 능력을 늘릴 방법이 없습니다. 자기 유사성이 있는 트래픽을 감당하기 위해서는 트래픽의 최대치를 상정해서 시스템을 구축하는 방법 뿐입니다. 그런데 평균 트래픽은 그렇게 크지 않기 때문에, 트래픽의 최대치를 상정해서 시스템을 구축하는 것은 큰 낭비가 됩니다. 하지만 평균 트래픽을 가정하여 백본망이나 서버를 구축할 경우 자기 유사성이 있는 신호들의 동기화가 간헐적으로 일어날 때 마다 전체 시스템에 과부하가 걸리게 됩니다.[4]

조금 더 재미있는 경우를 상상해 볼 수 있습니다. 카카오톡의 경우 메인 서버가 뻗거나 처리량을 감당할 수 없게 되는 경우 클라이언트는 리퀘스트를 다시 보내게 됩니다. 그런데 앱은 내부에 내장된 기본값에 따라 모두 같은 시간을 기다렸다가 재요청을 보내게 됩니다. 굉장히 주기적인 요청을 보내게 되고, 결과적으로 평소에도 일어나는 자기 유사성이 있는 트래픽의 동기화가 네트워크 전체에서 일어나게 됩니다. 카카오톡 서버의 불안정성을 생각해보면 과거에 이런 경우가 몇 번은 있었을 것이고, 그 때마다 통신사의 네트워크가 단속적으로 마비되었을 수 있음을 역으로 추론해 볼 수 있습니다.[5]

자기 유사성이 있는 신호의 동기화에 의한 트래픽 폭주는 단기적이고 일시적이라는 점 때문에 최근의 재미있는 연구 분야 중 하나입니다. 특히 최근에는 컴퓨터 네트워크쪽에서 버스트 신호 특성을 보이는 경우가 많아져서 문제 해결의 측면에서도 도전적인 분야가 되었습니다 또한 자기 유사성이 있는 신호의 동기화 현상은 비단 메시징 앱이나 P2P 네트워크[6]뿐만 아니라 소셜 네트워크 및 기후를 포함한 광범위한 자연 및 인공 시스템에서 발생하는 일입니다.

트래픽 문제를 이해하는데 도움이 되셨으면 합니다. :-D

  1. 자기 유사성에 관한 연구는 구조적인 접근과 시간적인 접근에 모두에 대하여 깊이 진행되었습니다. 여기서의 자기 유사성은 시계열을 기준으로 하는 시간적인 부분에서의 연구입니다.
  2. 동기화에 대한 연구는 굉장히 많습니다. 즐겁게 읽을 수 있는 교양 서적으로 Strogatz의 Sync를 추천해 드립니다.
  3. volatility에 대하여 궁금하신 분들은 Black–Scholes model을 참고하시기 바랍니다. 주식시장의 옵션을 설명하기 위하여 만들어진 모델입니다.
  4. 그러면 전체 시스템을 최대치에 가깝게 상정해서 시스템을 설계하면 되지 않겠는가 하는 의문을 가질 수 있습니다. 그런데 자기 유사성에 의한 신호 동기화에 의해 일어날 수 있는 트래픽의 최대치는 예측이 불가능합니다. 단지 얼마동안의 기간동안 평균 트래픽의 몇 배 정도되는 오버 트래픽이 발생할 것인지 정도의 예측을 할 수 있습니다. 그런데 시간을 길게 잡을 경우 시간 값에 따라 그 값이 10^3~4배가 될 수 있습니다. 실질적인 대응이 불가능합니다.
  5. 약간이라도 문제를 줄일 수 있는 해결책이라면 푸시 서버를 쓰는 것이겠습니다. 안드로이드 버전 호환 문제가 있는 것 같긴 합니다만…
  6. 지금은 라우팅 기기의 발전으로 덜하지만 초창기 P2P에서는 패킷 처리 과정 자체가 문제가 되기도 했었습니다. 예를 들면 끊임없이 기찻길 연결을 바꿔야 하는 역의 경우, 선로 수가 문제가 아니라 연결을 바꾸는 시간이 더 큰 부하를 주는 경우겠습니다. 실제로 21세기 초 소리바다 P2P의 경우 네트워크 트래픽의 40퍼센트를 차지했다는 조사 결과가 있는데 그 중 대부분은 실제 데이터 처리가 아니라 패킷 경로 처리등을 포함한 오버헤드였습니다.
Trackback URL
//reciphys.nubimaru.com/trackback/6
Trackback ATOM Feed
//reciphys.nubimaru.com/atom/trackback/6

Comments

ATOM Feed : //reciphys.nubimaru.com/atom/comment/6

z0nam
M/D
Reply

정말 깔끔하고 유익한 설명입니다 :D
규칙성을 가진 수많은 작은 신호들이 순간 폭발적 트래픽을 만들어낼 수 있는거군요.

Comments

Leave your comment