
STCR(Social-Tie Content Retrieval)은 k-means clustering algorithm을 사용하여 node간 계층 구조를 만들어 적절한 relay node를 찾는 것이 목적인 routing protocol이다.
STCR의 기본 철학은 "많은 node를 만나는 node가 receiver로 packet을 forward 할 확률이 높다"이다.
현실 세계를 예로 들면 와닿는다. 내가 한정판 CD를 갖고 싶다고 가정하자. 그렇다면 나는 주위 사람들에게 갖고 있는 사람을 찾을 것이다. 그 중 인싸인 친구는 또 다시 주위 사람들 중 한정판 CD를 갖고 있는지 확인을 한다. 상대적으로 아싸인 친구는 한명에게만 확인을 한다.
둘 중 누가 나에게 한정판 CD를 구해 줄 확률이 높을까? 아무래도 주변 사람에 대한 정보가 많은 친구가 구해 줄 확률이 높을 것이다.
STCR은 이러한 철학을 바탕으로 많은 node를 여러 번 만난 node는 높은 계층에 속하고 적게 만난 node는 낮은 계층에 속하게 된다. 이를 통해 packet을 높은 계층에만 forwarding하여 network overhead를 줄일 수 있다는 장점이 생긴다.
Content requester가 특정 content를 요청하려는 경우 자신의 node id와 content name을 포함하는 Interest packet을 생성한다. 이 packet은 naive flooding을 피하기 위해(network overhead를 줄이기 위해) 높은 계층의 node에게만 forward한다.
자신과 비슷한 또는 낮은 계층의 node는 자신보다 적은 node를 만났다는 의미이다. 따라서, 자신보다 다른 node에 대한 정보가 적다는 것을 의미하기 때문에 더 높은 계층의 node에게만 Interest packet을 forward한다.
Interest packet을 받은 node는 local digest table을 통해 sender가 찾는 content name이 있는지 확인한다. 만약 일치하는 content 없다면 계속 높은 계층으로 forward된다. 만약 있다면, content provider의 node id를 interest packet에 포함하고 content provider보다 높은 계층의 node에게 interest packet을 forward한다.
Interest packet이 receiver(content provider)에게 도달하면 content provider는 content requester에게 data packet을 전송한다. 이때, forward방식은 request 방식과 동일하다. content requester보다 높은 계층의 node에게 data packet을 forward한다.
이때, content provider는 같은 interest packet에 대해 오직 한번만 response를 보낸다.
출처
You Lu, Xiao Li, et al. (2014). Information-centric delay-tolerant mobile ad-hoc networks. IEEE