DOI QR코드

DOI QR Code

Adaptive Multipath Routing Algorithm for Low-power Lossy Networks

저전력 손실 네트워크에서의 적응형 다중경로 라우팅 알고리즘

  • 김승현 (상명대학교 컴퓨터과학과) ;
  • 정진우 (상명대학교 휴먼지능정보공학과)
  • Received : 2019.02.26
  • Accepted : 2019.04.05
  • Published : 2019.04.30

Abstract

For a wireless sensor network in general, efficient routing decision is important because wireless connections are not stable, sensitive to external interference, and topology changes dynamically. RPL standard of IETF is not flexible to various environmental changes and causes packet loss and delay due to topological imbalance. Sending packets through multipath can partially remedy this problem. The multipath routing, however, can introduce significant delay overhead by allocating unnecessary timeslots. This paper proposes an RPL using multipath adaptively according to network conditions. We show by simulations that the proposed algorithm is more efficient than the basic RPL and the multipath RPL.

일반적인 무선 센서 네트워크는 연결이 안정적이지 않고 외부 간섭에 민감하며 토폴로지가 유동적이므로 상황에 맞는 효율적인 전송 경로 설정이 중요하다. IETF (Internet Engineering Task Force)의 RPL(IPv6 Routing Protocol for Low-power Lossy Networks) 표준 라우팅 프로토콜은 다양한 환경 변화에 유연하게 대응하기 어려우며 네트워크 토폴로지의 불균형으로 인한 패킷 손실 문제가 상존한다. 다중경로로 여러 부모 노드를 통해 패킷을 전송할 경우 이러한 문제를 부분적으로 해결할 수 있지만 경우에 따라 필요 이상의 timeslot 할당으로 지연시간 증가를 초래할 수 있다. 본 논문에서는 상황에 따라 적절하게 다중경로를 사용하는 적응형 다중경로 RPL 알고리즘을 제안하고, 시뮬레이션을 통해 이의 효율성이 기존 RPL이나 다중경로 RPL에 비해 높음을 보였다.

Keywords

Ⅰ. 서론

최근 들어 스마트 팩토리, 차량 간 통신, 스마트 홈, 지능형 빌딩 등과 같은 다양한 분야에서 무선 네트워크 센서가 사용되고 있다. 유선 네트워크 환경과는 다르게 무선 네트워크 환경은 보통 연결이 안정적이지 않고 외부 간섭에 민감할 뿐 아니라 노드의 이동성으로 인해 토폴로지가 유동적이다. 따라서 토폴로지의 변화에 따라 적절히 데이터의 전송 경로를 설정하는 라우팅 알고리즘의 설계가 중요하다. IETF에서 발표한 RPL[1]은 현재 저전력 손실 네트워크(LLN, Low power lossy network)에서 의 표준 라우팅 프로토콜이다. RPL은 불안정한 상황에서의 안정적인 데이터 전달을 목표로 한다. 하지만 안정성을 보장하기 위한 다양한 신호 처리로 인해 오버헤드의 크기가 늘어나는 문제를 내포하고 있다. 네트워크가 불균형한 토폴로지를 가지는 경우 하나의 부모 노드가 다수의 자식 노드들을 수용하게 됨으로써 발생할 수 있는 문제도 존재한다. 우선 트래픽 양이 많으므로 부모 노드의 버퍼가 충분하지 않아 overflow가 빈번하게 발생할 수 있고, 처리하는 데이터의 양이 많아 에너지가 빠르게 소모되어 전체 네트워크 수명을 줄일 수 있게 된다. 또한, 동시에 부모를 잃게 된 자식 노드들은 비슷한 위치와 조건을 공유하기 때문에 다시 같은 부모 노드를 선택하게될 확률이 높아 Thundering Herd Phenomenon[2]과 같은 문제가 생기게 된다.

본 논문은 다음과 같은 개선된 RPL을 제안한다. 데이터의 트래픽이 특정 노드로 몰리지 않은 상황에서는 일반 RPL로 작동하고 트래픽이 늘어날 때 다중경로 RPL 모드로 전환하여 기존 부모 노드뿐 아니라 차선의 부모 노드를 통해 데이터를 전송한다. 이를 통해 버퍼의 overflow로 인한 데이터 손실을 낮춘다. 버퍼가 여유로울 경우 다중경로 모드를 종료함으로써 전체 slotframe의 크기를 줄여 필요하지 않은 오버헤드를 줄인다.

본 논문은 다음과 같이 구성되었다. 다음 장에서 관련 표준화 및 연구 동향을 살펴보고, 3장에서는 상기한 적응형 다중경로 RPL 알고리즘을 제시한다. 4장에서는 제시한 알고리즘과 기존 RPL, 기존의 다중경로 RPL의 성능을 비교 평가하고 마지막으로 5장에서 본 논문에 대한 결론과 향후 연구 방향을 제시한다.

Ⅱ. 관련 연구

1. TSCH

TSCH(time slotted channel hopping)는 안정성이 높고 deterministic 한 지연시간을 보장하며 적은 에너지를 소비하는 매체접근제어기술이다[3]. TSCH에서는 모든 노드가 동기화되어 있으며 시간은 timeslot으로 쪼개지는데, 이는 노드가 패킷을 전송하고 ACK(acknowledgement)를 받기까지 충분한 길이여야 한다.[3] 각 노드는 하나의 timeslot에 전송, 수신 또는 절전 기능 중 하나를 수행할 수 있으며, channel offset이 지정되어 패킷을 송수신하게 된다. 모든 할당된 타임 슬롯은 비경쟁 방식의 GTS(Guarantee Time Slot) 이며, 패킷 충돌이 발생하지 않는다.[4] Timeslot들을 묶어서 slotframe으로 부른다. 특정 노드를 slotframe 중 어느 timeslot에 할당하는지 결정하는 것을 스케줄링이라고 한다. TSCH의 경우 아직 스케줄링에 관한 알고리즘이 정확히 명시되지않기 때문에 여러 방법이 연구되고 있는데, 중앙집중형 스케줄링, 분산 스케줄링, 자율적 스케줄링이 대표적인 카테고리이다. 그중 자율적인 스케줄링의 경우 중앙집중형 스케줄링이나 분산된 스케줄링보다 상호 협의 과정이 없으므로 오버헤드가 적고 확장하기 쉽다. 따라서 본 논문에서는 데이터링크 계층에서 자율적 스케줄링 방식을 사용하는 Orchestra[5]를 사용하였다고 가정한다.

2. RPL

RPL[1]은 IPv6 WSNs의 표준 라우팅 프로토콜로 여러개의 DODAGs (destination-oriented DAGs)로 이루어진 DAG(directed acyclic graph) 형태를 가진다. 그래프는 rank에 따라 계층적인 구조로 만들어지는데 부모 노드의 경우 자식 노드보다 rank 값이 항상 낮으며 노드의 rank는 OF(object function)에 의해 계산된다. 또한, OF는 자식 노드가 자신의 부모 노드를 정할 때도 사용된다. RPL 에서 수행하는 주요 메커니즘은 네트워크 초기화, upward 라우팅, 그리고 로컬 repair가 있다. 이중 본 논문에서 개선하고자 하는 Upward 라우팅에서는 자식 노드들로부터 루트 노드까지의 경로가 DODAG에 저장이 되며 생성된 패킷을 DODAG의 경로 정보에 따라 최선의 부모에게 전송해주는 메커니즘이다. RPL이 현재 표준으로 지정되어 있지만 다양한 문제점이 존재하며, 현재 이들을 해결하고자 하는 연구들이 진행되고 있다.[6]

3. 다중경로 RPL

네트워크를 보다 효율적으로 사용하고 수명을 늘리기 위해서는 네트워크의 균형을 유지하는 것이 중요하다. 이를 위해 RPL에 다중경로를 적용하려는 시도가 있다. 이는 병목현상이나 네트워크의 불균형을 방지하여 전체적인 네트워크의 수명을 늘릴 수 있도록 도와주며, 패킷의 단대단(End-to-End) 지연시간을 줄일 수 있다. 기존 연구[7]에서 제안하는 다중경로 RPL은 기본적으로 연결할 수 있는 모든 부모 노드들에 패킷을 전송하는 방식을 사용한다. 우선 부모 리스트에 있는 모든 부모 노드들에 동등한 비율로 트래픽을 할당한다. 그리고 점진적으로 각 부모에게 보내는 트래픽을 조정하며 병목현상이 발생한 노드에서의 최대 지연시간을 측정한다. 만약 조정된 트래픽 비율의 최대 지연시간이 기존 최대 지연시간보다 작다면 현재 상태를 저장한다. 이렇게 점차 최적의 비율을 조정한다. 점진적으로 상태를 측정하고 저장하며 다른 노드들에게 전송하는 방식은 오버헤드가 크며, 트래픽이 많지 않은 상황에서 다중경로를 사용하는 것은 필요하지 않은 정보를 저장하게 할 뿐 효율이 늘지 않는다. 따라서 다음 장에 이를 보완하는 방안을 제시하였다.

Ⅲ. 제안하는 RPL

본 장에서는 상황에 따라 유연하게 다중경로를 작동시키는 RPL을 제안한다. 초기 토폴로지가 생성된 직후에는 기본적인 RPL을 사용하여 경로를 설정한다. 모든 노드는 같은 크기의 slotframe을 공유한다. Slotframe의 크기는 네트워크 내의 모든 노드가 전송할 수 있는 timeslot을 할당받은 최소 크기이다. 이는 모든 노드가 경쟁하지 않고 패킷을 전송할 수 있는 각자의 전송 timeslot을 할당받음을 뜻한다. 특정 노드(이를 A라 하자.)의 버퍼에서 overflow가 발생하거나 설정한 수준(T%) 이상으로 버퍼가 차면 다중경로 모드로 변환시킨다. 다중경로 모드에서는 기존에 노드가 갖고 있었던 부모 리스트 내의 부모 노드들 중 최선의 (preferred) 부모뿐만 아니라 차선의 (alternative) 부모로 설정했던 부모 노드에게도 timeslot을 할당하여 다중경로를 실행한다. 이때 현재 사용 중인 slotframe의 크기가 부족 할 수 있는데, 필요한 최소한의 timeslot 만큼 slotframe을 확장하고 동기화한다.

Algorithm 1:

if (nodeA_buffer_filled > T%)

Mode = Multipath_RPL_Mode

Multipath_start_Node = nodeA Transmit to nodeA_alternative_parent

slotframe_size = Min of needed timeslots

다중경로 모드로 변환하려는 노드 A는 본인의 자식 노드(이를 C라 하자.)들에게도 A의 모드가 다중경로 모드로 바뀌었음을 알리고 자식 노드들 C 역시 A의 버퍼가 현재 여유롭지 않음을 인식한다. C 노드들 또한 차선의 부모를 통해 다중경로 전송을 시작한다. 이때도 역시 slotframe의 확장이 필요할 경우 필요한 최소한으로 확장한다.

Algorithm 2:

if ((Mode == Multipath_RPL_Mode) &&

(nodeA == nodeC->preferred_parent))

Transmit to nodeC_alternative_parent

slotframe_size = Min of needed timeslots

만약 한번 다중경로로 바뀐 후 그 상태를 계속 유지할 경우 두 가지 문제점이 생길 수 있다.

1. 다중경로를 사용하기 위해 설정한 전송 slot과 수신 slot이 유지되어 전체적 slotframe의 길이가 확장된 상태로 유지된다. 이는 전체 지연시간을 커지게 만든다.

2. 루트 노드로 가까워질수록 연결되는 물리적인 노드들의 수는 작아질 수밖에 없다.하지만 모든 노드에서 발생하는 패킷들은 루트 노드에게 전송되어야 하므로 루트 노드 부근에서 병목현상이 집중된다. 따라서 루트 노드 부근에서의 패킷 전달의 속도 조절이 필요하다. 하지만 만약 하위 노드들에서 다중경로를 통해 버퍼를 지속해서 빠르게 비우며 상위 노드들에 패킷을 전달한다면 상위 노드들의 버퍼에서 발생하는 overflow를 조절할 수 없게된다.

따라서 토폴로지의 불균형으로 인해 발생한 버퍼 overflow는 노드의 버퍼가 특정 수준(TL%) 이하로 비워졌을 경우 종료하고 표준 RPL을 실행하도록 한다. 기본 RPL 모드로 돌아갈 때, slotframe 크기 역시 기존의 크기로 돌려놓는다.

Algorithm 3:

if (nodeA_buffer_filled < TL%)

Mode = Basic_RPL_Mode

Multipath_start_Node = NULL

slotframe_size = basic_slotframe_size

그림 1은 적응형 다중경로 RPL이 작동하는 방식을 간략화하여 나타낸 흐름도이다. 다중경로 모드로 변환하는 threshold 크기(T)와 기본 RPL 모드로 돌아갈 때의 threshold 크기(TL)가 같을 경우 노드들이 지속해서 모드를 변환하며 필요하지 않은 오버헤드를 발생시킬 수 있다. 또한, 빈번한 모드의 변경은 전체 네트워크의 동기화에 문제를 줄 수도 있다. 따라서 두 threshold 크기에 적절한 차이를 주어 최소의 데이터 손실과 낮은 지연을 도모할 필요가 있다. 또한 T값은 100%보다 작은 값으로 설정하는 것이 합리적이다.

OTNBBE_2019_v19n2_91_f0001.png 이미지

그림 1. 적응형 다중경로 RPL의 기본적인 알고리즘 흐름도

Fig. 1. Basic algorithm flowchart of Adaptive Multipath RPL

Ⅳ. 실험 및 결과

그림 2와 같은 토폴로지를 고려한다.

OTNBBE_2019_v19n2_91_f0002.png 이미지

그림 2. 기본 토폴로지

Fig. 2. Basic topology

루트 노드는 2개의 자식 노드를 갖고 있고 A1 노드와 A2 노드는 각각 2개와 1개의 자식 노드를 갖고 있다. B1 노드는 C1 노드를 자식 노드로 갖고 있고 B2 노드는 C2, C3, C4, C5 노드를 자식 노드로 갖고 있다. A1 노드와 A2 노드의 slotframe 당 데이터 생성률은 1/7이고 B1, B2, B3 노드들의 slotframe 당 데이터 생성률은 1/5이며 C1, C2, C3, C4, C5 노드들의 slotframe당 데이터 생성률은 1/3~2/3으로 데이터 생성 및 전송률이 높은 네트워크 환경을 가정한다. 또한, 각 노드의 버퍼 크기는 10으로 고정하여 overflow의 발생 확률이 높은 환경을 선정한다. 시뮬레이션의 길이는 100 slotframe 동안의 결과를 하나의 시뮬레이션 단위로 진행하며 총 100 단위의 시뮬레이션에 대한 평균으로 나타낸다. 또한, slotframe의 크기는 토폴로지 내의 모든 노드가 통신할 수 있는 최소 크기로 유동적으로 변화하며 RPL의 모드가 변하는 순간 일괄적으로 변화한다고 가정한다.

표 1. 실험 파라미터

Table 1. Simulation Parameters

OTNBBE_2019_v19n2_91_t0001.png 이미지

그림 3의 토폴로지는 다중경로 RPL에서 모든 노드들이 연결 가능한 부모들에게 연결되었을 때의 토폴로지이다.[1] 해당 RPL을 실행하는 데 필요한 최소 slotframe 크기는 7 timeslots이다.

OTNBBE_2019_v19n2_91_f0003.png 이미지

그림 3. 다중경로가 연결된 토폴로지

Fig. 3. Topology with multipath rout is linked

그림 4의 토폴로지에서는 B2 노드에서의 병목현상으로 인해 발생하는 overflow의 방지를 위해 적응형 다중 경로 RPL이 사용될 경우 B2와 B2의 자식 노드들에서 차선의 부모를 사용하여 다중경로 RPL을 실행하게 된다. 이때 필요한 최소 slotframe 크기는 6이다.

OTNBBE_2019_v19n2_91_f0004.png 이미지

그림 4. 적응형 다중경로가 연결된 토폴로지

Fig. 4. Topology with multipath rout is linked

그림 5의 실험 결과 그래프는 C 노드들의 패킷 생성률을 1/3~2/3로 조절하였을 때 발생하는 패킷 손실 확률이다. 순서대로 위에서부터 RPL, 다중경로 RPL, 적응형 다중경로 RPL의 그래프이다. 그림에서 확인할 수 있듯이 RPL에 비하여 다중경로 RPL들의 패킷 손실률이 전반적으로 낮음을 확인할 수 있다.

OTNBBE_2019_v19n2_91_f0005.png 이미지

그림 5. 패킷 생성률 변화에 따른 평균 패킷 손실률

Fig. 5. Average packet loss rate according to packet generation rate

특히, 패킷 생성률이 높아 트래픽의 양이 많을 때는 적응형 다중경로 RPL의 패킷 손실률이 다중경로 RPL보다 미세하게 낮다. 패킷 생성률이 1/2 이하인 구간에서는 생성률이 낮아질수록 다중경로 RPL에 비해 적응형 다중경로 RPL의 패킷 손실률이 높아짐을 확인할 수 있다. 이는 적응형 RPL이 다중경로와 단일경로의 중간적인 특성을 가지는데 기인한다.

그림 6의 실험 결과는 x축을 따라 C 노드들의 패킷 생성률이 0.3에서 0.6까지 변화하고, y축을 따라 적응형 다중경로 RPL의 시작점(T)이 버퍼 사이즈의 100%부터 60%까지 변화할 때, 다중경로 RPL과 적응형 다중경로 RPL의 패킷 지연을 비교하는 그래프이다.

OTNBBE_2019_v19n2_91_f0006.png 이미지

그림 6. 다중경로 RPL과 적응형 다중경로 RPL 간의 지연시간 비교

Fig. 6. Delay difference between Multipath RPL and Adaptive Multipath RPL

그래프에 표시된 두 개의 곡면 중, 아래에 위치한 곡면이 적응형 다중경로 RPL의 지연시간을, 위에 위치한 곡면이 다중경로 RPL의 지연시간을 나타낸다. 시뮬레이션 결과 논문에서 제안하고 있는 적응형 다중경로 RPL은 기존의 다중경로 RPL에 비해 slotframe의 크기를 작게 할 수 있어 전반적으로 패킷의 지연시간도 작음을 확인할 수 있다.

Ⅴ. 결론

본 연구에서는 기존 RPL을 개선하여 상황에 따라 효율적으로 동작하는 적응형 다중경로 RPL을 제시하였다. 이를 통해 통신량이 많은 상황에서는 다중경로의 사용을 통해 오버헤드로 인한 패킷 손실을 줄일 수 있고 bottleneck 현상으로 인한 네트워크의 불균형을 해결하여 지연시간을 낮출 수 있다. 또한, 통신량이 많지 않은 상황에서는 slotframe의 크기를 작게 유지하여 오버헤드를 낮춤으로써 패킷의 지연시간을 낮출 수 있다. 본 연구에서는 간략한 시뮬레이션을 통해 결과를 비교하였다. 향후 Contiki를 활용, 실제 프로토콜을 최대한 반영하여 성능을 분석하고, slotframe의 동기화 문제를 연구할 예정이다.

References

  1. RPL: IPv6 Routing Protocol for Low Power and Lossy Networks,(RFC 6550)
  2. Taghizadeh, Seyedreza, Hossein Bobarshad and Halima Elbiaze. "CLRPL: Context-Aware and Load Balancing RPL for Iot Networks Under Heavy and Highly Dynamic Load." IEEE Access 6 (2018) DOI:10.1109/ACCESS.2018.2817128
  3. Mi-Ryong Park, Dongwon Kim. (2017). Scheduling Scheme and Performance Analysis of IEEE802.15.4e TSCH. The Journal of the Institute of Internet, Broadcasting and Communication, 17(5), 43-49. DOI: https://doi.org/10.7236/JIIBC.2017.17.5.43
  4. Bui Xuan Yen, Wonhee Lee, Youngsuk Kim and Myungsik Yoo, "Performance Evaluation of Wireless Networked Control System Based on IEEE 802.15.4e With Redundancy," The Journal of Korean Institute of Communications and Information Sciences, Vol. 38, No. 7, pp. 572-580, Jul, 2013. DOI:http://dx.doi.org/10.7840/kics.2013.38B.7.572
  5. Duquennoy, Simon, Beshr Al Nahas, Olaf Landsiedel and Thomas Watteyne. "Orchestra: Robust Mesh Networks Through Autonomously Scheduled TSCH." SenSys (2015). DOI: 10.1145/2809695.2809714
  6. Badach, Anatol. (2017). A Literature Collection on Routing in the Internet of Things (IoT) with RPL - Part 2: RPL Extensions. DOI :10.13140/RG.2.2.12610.48329.
  7. Zhu, Licai, Ruchuan Wang and Hao Yang. "Multi-Path Data Distribution Mechanism Based on RPL for Energy Consumption and Time Delay." Information 8 (2017): 124. DOI: 10.3390/info8040124.
  8. Iova, O., Theoleyre, F., & Noel, T. (2015). Using multiparent routing in RPL to increase the stability and the lifetime of the network. Ad Hoc Networks, 29, 45-62. DOI:10.1016/j.adhoc.2015.01.020
  9. Hsiao, P., Hwang, A., Kung, H.T., & Vlah, D. (2001). Load Balancing Routing for Wireless Access Networks. INFOCOM. DOI:10.1109/INFCOM.2001.916291