반응형

라우팅 프로토콜에 대한 논문은 오래 전부터 지금까지 다양한 분야에 대해서 무지 많이 쏟아져 나오고 있고, 그 중에서 유난히 읽기 쉬우면서 성능도 괜찮은 논문들도 있고, 반면에 복잡한 수학적 개념을 적용한 어려운 논문들도 있다.


내가 target으로 보고 있는 환경이 무선 네트워크(특히 와이파이) 쪽인데, 이 쪽으로도 90년대 후반부터 라우팅 관련 논문이 매일같이 쏟아져 나오고 있다.

처음에는 AODV나 DSR처럼 간단명료한 구조와 변화무쌍한 환경에 대한 적응이 가능한 모바일 애드혹 네트워크(MANET) 라우팅 프로토콜 논문들과 그 파생 논문들을 보면서 놀랐던 기억이 있다. 왜냐하면 딱 들어맞지는 않더라도 "Simple is the best"를 잘 보여주는 프로토콜이었기 때문이다.

이어서 여러 개의 무선 네트워크 인터페이스를 쓰는 multi-radio routing protocol에서도 이렇게 간단하면서 준수한 성능을 보여 주는 기존의 single-radio routing 분야에 있는 DSR이나 AODV를 기반으로 해서 확장한 논문들이 인기가 많았던 것도 볼 수 있었다. (인용이 엄청났으니까)


이 때까지만 해도 나는 라우팅 프로토콜에 굳이 수학이 들어가지 않아도 간단한 프로토콜 구조만 잘 만들면 되는 줄로 크게 착각했었음을 이제서야 알게 되었다. 사실은 그렇게 간단한 최단경로 라우팅 프로토콜에서 각 노드가 맡는 역할이 그저 프로그래밍 차원에서 역할과 메세지 교환 로직만 구현해서 되는 것이 아니고, 그래프 이론에서 먼저 개념을 정립한 뒤에 프로그래밍 요구사항으로 도출된 것으로 봐야 한다.


시간이 지나면서 단순히 최단 경로(shortest path)를 찾는 것으로 응용 프로그램의 요구를 만족시킬 수 없는 경우를 해결하기 위해서 hop count가 아닌 다른 링크 품질(link quality metric)을 적용하는 사례가 생겨났다. 예를 들어, 그래프 형태로 보면 모든 링크는 단순히 임의의 두 노드 사이에 연결된 하나의 엣지(edge)이지만, 자세히 보면 패킷 전송 속도나 대역폭, 패킷이 유실될 확률과 같은 세부 특성이 다른 것이다.


앞서 언급한 잘 만들어진 간단한 구조의 유명한 라우팅 프로토콜들은 모두 hop count 기반이었고, 이것을 그외의 다른 링크 품질로 대체하기 시작하면서, 거의 대부분의 논문이 더 복잡한 수학이 되는 것을 볼 수 있었다. 결국 복잡한 수학적 표현은 불가피한 것인데, 나는 나도 모르게 속으로 "Simple is the best"를 엉뚱하게 적용하며 라우팅 프로토콜에서 쓰이는 복잡한 (사실 공부해 보면 인공지능 같은 요즘의 트렌드에 비하면 복잡한 것도 아니다) 수학을 기피해 왔었던 것 같다.


그리고 내가 해결하고자 하는 상황은 더이상 single-radio network도 아니고, hop count만 쓸 수도 없고, 응용 프로그램도 다양하기 때문에 라우팅 프로토콜을 프로그래밍 관점에서만 바라보고 간단하게 해 보려는 생각을 버려야 하겠다.

비록 응용 계층에서 작동하면서 커널 계층의 도구들을 활용하는 식으로 구현하기는 했지만, 실제로 라우팅 프로토콜을 바닥부터 설계하고 구현해 보니 수학적인 기반을 갖지 않고서는 실제로 라우팅 프로토콜이 경로 하나를 발견하는 데 필요한 여러 가지 의사결정 과정을 구현하는 가이드라인이 없어진다는 것도 알 수 있었다.


많이 늦어지긴 했고 비록 수학을 좋아하지는 않지만, 이제 와서 수학을 기피하면 학교를 그만두는 것이나 마찬가지이기에, 그리고 문제 상황을 수학적으로 모델링하는 연습을 지금 해 두지 않으면 나중에도 내가 내 문제를 주도적으로 해결할 수 없을 것이기 때문에 힘들지만 열심히 복잡한 수학적 개념을 "잘" 적용한 좋은 학회/저널 논문들을 다시 공부해야겠다.


반응형
블로그 이미지

Bryan_

,