
우리는 평소 스마트폰으로 인터넷에 기지국을 통해 접속한다. 하지만 전쟁 또는 자연재해 등으로 인해 network infrastructure가 파괴된다면 network에 접속할 수 없게된다.
이러한 상황에서 각 단말(node)만으로 network를 구성하여 통신할 수 있는데, 이를 Ad Hoc Network라 한다.
각 node는 이리저리 이동하며 무선 통신을 통해 다른 node와 통신하게 된다. 그렇기 때문에 각 node는 항상 연결되어 있는 것이 아닌 간헐적으로 다른 node와 연결된다.
Ad Hoc Network의 node는 data를 전송할 때 다른 node를 통해 packet을 receiver로 forward한다. 이때, sender는 어느 node에게 보낼지, 몇 개 보낼지 등을 정하게 된다.
빠른 전송을 위해 만나는 node마다 packet을 보낸다고 가정해보자. 그렇게 되면 delay는 줄일 수 있으나, 많은 복사본을 생성하기 때문에 network overhead가 심해질 것이다.
반대로 network overhead를 고려하여 packet을 1개만 생성하여 보낸다고하면 delay는 크게 늘어날 것이다.
결국, 적절한 relay node(route 역할을 하는 중간 node), 복사본 수를 통해 최적의 delay와 overhead를 찾는 것이 Ad Hoc Network에서 routing protocol의 주요 challenge이다.
Ad Hoc Network에서 routing protocol은 크게 두 개로 나뉜다.
이외에도 여러 방식이 있지만, 추후 각 routing protocol에 대한 정리글을 올릴 것이다.