DOI QR코드

DOI QR Code

Priority Based Clustering Algorithm for VANETs

VANET 환경을 위한 우선순위 기반 클러스터링 알고리즘

  • 김인환 (연세대학교 컴퓨터과학과)
  • Received : 2020.07.17
  • Accepted : 2020.08.20
  • Published : 2020.08.28

Abstract

VANET (Vehicular Ad Hoc Networks) is a network between vehicles and between vehicles and infrastructure. VANET-specific characteristics such as high mobility, movement limitation, and signal interference by obstacles make it difficult to provide stable VANET services. To solve this problem, this paper proposes a vehicle type-based priority clustering method that improves the existing bus-based clustering. The proposed algorithm constructs a cluster by evaluating the priority, link quality, and connectivity based on the vehicle type, expected communication lifetime, and link degree of neighbor nodes. It tries to simplify the process of selecting a cluster head and increase cluster coverage by utilizing a predetermined priority based on the type of vehicle. The proposed algorithm is expected to become the basis for activating various services by contributing to providing stable services in a connected car environment.

VANET (Vehicular Ad Hoc Networks)은 차량 간, 차량과 인프라 간의 네트워크이다. 높은 이동성, 이동 제한, 장애물에 의한 신호 방해와 같은 VANET 고유의 특성은 안정적인 VANET 서비스 제공을 어렵게 한다. 이를 해결하기 위해, 본 논문에서는 기존 버스 기반 클러스터링을 개선한, 차량 종류 기반 우선순위 클러스터 방법을 제시한다. 제안 알고리즘은 차량 종류, 예상 통신 수명, 주변 노드 링크 차수를 바탕으로 우선순위, 링크 품질, 연결성을 평가해 클러스터를 구성한다. 차량의 종류를 바탕으로 미리 결정된 우선순위를 활용함으로써 클러스터 헤드 선택을 단순화하고 클러스터 커버리지를 높이고자 한다. 제안 알고리즘은 커넥티드카 환경에서 안정적인 서비스를 제공하는데 기여함으로써 다양한 서비스 활성화의 기반이 될 것으로 기대된다.

Keywords

I. 서론

VANETs(Vehicular Ad Hoc Networks)은 차량과 인프라, 혹은 차량과 차량 통신에 이용되는 네트워크 기술이다. VANET은 최근 화두가 되고 있는 스마트카(Smart Car) 혹은 커넥티드카(Connected Car)를 구성하는 기술로, 운전자와 승객을 위한 각종 서비스의 기반기술이다. 예를 들어, 도로의 차량 통행량 예측, 자동차 사고 정보, 인포테인먼트 데이터 전달 등이 VANET 을 통해 서비스될 수 있다[1]. 이 같은 서비스를 안정적으로 제공하기 위해서는 VANET의 고유한 특성을 고려한 안정적인 라우팅 프로토콜이 필요하다.

VANET의 고유한 특성은 높은 이동성, 차량의 제한된 움직임, 장애물에 의한 신호 차단으로 요약할 수 있다[1][2]. 첫째, VANET의 노드는 매우 빠르게 움직이는 차량이기 때문에 이동성이 높다. 따라서 잦은 네트워크 파티션 또는 병합으로 인해 자동차 간의 안정적인 통신을 달성하기 어렵다. 둘째, 노드의 움직임은 도로에 의해 제한된다. 차량은 도로를 따라 주행해야하며 특히 도시 환경에서 앞 차량 및 교통 신호의 동작에 크게 영향을 받는다. 이 특성은 확장성의 문제를 야기하기도 한다. 즉, 네트워크의 노드 밀도가 낮아지거나 높아지는 일이 빈번하게 발생할 수 있다. 이 같은 상황은 모두 라우팅 프로토콜에 바람직하지 않은 이슈다. 마지막으로, 건물이나 보행자와 같은 장애물로 인해 신호가 차단되거나 영향을 받을 수 있다. 클러스터링은 이 같은 어려움을 해결하는 한 가지 방법이다[2]. 차량을 클러스터링 하면 보다 안정적이고 효율적인 통신이 가능해져 QoS(서비스 품질)를 높일 수 있다[3].

본 논문에서는 VANET을 위한 우선순위 기반 클러스터링 알고리즘을 제안한다. Jingxuan Wang[4]의 아이디어를 바탕으로, 차량을 유형별로 구분하고 우선순위를 부여해 클러스터 헤드 선택을 단순화하고 커버리지를 높인다. 본 논문은 다음과 같이 구성되어 있다. II 장에서는 관련 연구에 대해 기술한다. III 장에서는 VANET 환경에서의 우선순위 기반 클러스터링 알고리즘을 제안하고 커버리지에 대해 분석한다. 마지막으로 IV 장에서 결론과 향후 연구 방향에 대해 설명한다.

II. 관련 연구

VANET 클러스터링은 크게 두 가지로 분류할 수 있다[11]. 첫째, 지리적 영역을 여러 개의 고정 그리드 (grid)로 나누는 방법이다[5]. 둘째, 차량이 클러스터 헤드 역할을 하는 이동식 클러스터 방법이다[7-9].

첫 번째 방법은 고정 그리드를 설정하고 클러스터를 지리적 영역에 매핑하는 것이다[5]. 각 그리드는 하나의 클러스터이다. 그리드에 진입하는 차량이 클러스터 형성 과정에 참여해 클러스터 헤드 역할 수행 여부를 결정하거나, 각 그리드에서 클러스터 헤드 역할을 할 RSU(Road-Side-Unit)를 적어도 하나 배치하는 방법이 있다. 클러스터 헤드 이외의 차량은 자신을 클러스터 헤드에 등록한 뒤 클러스터 헤드를 통해 서로 통신한다. 이 방법은 클러스터가 고정된 영역을 반영하므로, 클러스터 구성이 빈번하게 변경된다는 문제가 있다. 통신하는 동안 클러스터를 변경하면 추가 지연이 발생할 수 있으므로 통신 성능을 저하시킬 수 있다.

두 번째 방법의 대표적인 예는 Jie Luo 가 제안한 MI-VANET (Mobile Infrastructure Based VANET)기법에서 소개한 2 계층 아키텍처이다[7]. 이 방법은 버스를 모바일 백본으로 활용한다. 그리고 버스를 통해 일반 차량과 승객이 상호 간 통신하도록 지원한다. 클러스터 헤드를 항상 버스로 고정함으로써 클러스터 헤드 선택을 단순화한다. 하지만, 버스 노선이 포함되지 않은 지역의 차량은 다른 차량과 통신 할 수 없다는 문제가 있다. 본 논문에서는 이 상황을 "블라인드 스팟 (blind spot)" 문제로 정의한다. 또한, 버스가 운행하지 않는 시간에는 라우팅 프로토콜이 작동하지 않는다는 문제가 있다. 본 논문에서는 이를 “서비스 불가 (out-of-service)” 문제로 정의한다. Jie Luo 의 연구는 노드가 이동함에 따라 클러스터도 함께 이동하는 “모바일 클러스터”의 안정성을 높이는 방법으로 버스의 활용 가능성을 보여준 대표적인 연구라 할 수 있다.

차량 밀도는 나은 연결성(connectivity) 성취 조건 중 하나이다. 특정 도로에 많은 버스 노선이 운행된다는 사실은, 도로가 많은 차량을 포함하고 있음을 반영한다. 더 많은 차량이 패킷 전달 역할을 할 수 있으므로 이런 도로는 더 나은 연결성을 제공한다[6]. 따라서 버스는 좋은 클러스터 헤드 후보라 할 수 있다.

보다 최근에는 VAENT에서 에지 컴퓨팅(Edge Computing)을 적용하기 위해 버스를 포그 컴퓨팅 노드(FCN, Fog-Computing Node)로 이용하는 방안도 제안되었다[10]. 중앙집중형 클라우드 컴퓨팅은 지연과 처리율(Throughput)이라는 단점이 있다. 이를 극복하기 위해 MECNs(Multi-access Edge Computing Nodes)와 FCNs 같은 컴퓨팅 노드가 사용되곤 하는데, VANET 에서는 Basic Safety Message (BSM) 교환과 Service Migration 빈도 측면에서 성능 문제라는 두 가지 기본적인 문제를 해결할 필요가 있다. 저자는 버스를 에지 노드로 활용해 문제를 해결하고자 했다. 하지만, 버스가 없는 상황에서는 고정된 RSU 에 의존하므로 모바일 클러스터를 충분히 활용하진 못했다.

버스는 라우팅 기법의 설계에서도 유용하게 활용되었다[12]. 예측할 수 없는 노드의 이동성은 데이터가 항상 최적 경로로 전달된다는 보장을 할 수 없게 만든다. 이를 해결하기 위해 버스를 라우팅에 활용하는 Bus-based Routing Technique (BRT) 라는 기법을 제안했다. 이 기법은 버스 기반 전용 백본을 통해 RSU 로 데이터를 전송하는데 필요한 시간(혹은 시간 거리)을 학습하기 위해 버스의 주기적이고 예측 가능한 이동성을 활용한다. BRT는 데이터 패킷을 멀리 전달하는데 차량이 다른 타입을 이용하기도 한다. 하지만 버스 외 차량은 버스 간의 통신의 보조 역할로만 이용되어 버스가 없는 환경의 고려는 미흡한 면이 있다.

본 논문에서는 이런 문제를 해결하기 위해 버스를 활용한 클러스터링 알고리즘을 제안한다.

III. 클러스터링 알고리즘

클러스터 헤드를 버스와 같이 특수한 유형의 차량으로 고정하면 클러스터링 과정이 간단해지고, 네트워크의 이동성을 반영해 클러스터 안정성이 높아진다. 본 논문에서는 클러스터링 과정에서 버스 외의 차량 유형을 추가 고려함으로써 앞서 언급한 "블라인드 스팟"과 “서비스 불가" 문제로 인한 영향을 줄이고자 했다. 제안하는 클러스터링 방법은 차량 우선순위 지정과 클러스터링 과정의 두 가지 단계로 구성된다.

1. 차량 우선순위 지정

차량 이동 경로를 고려해 차량 유형을 3가지로 분류한다. 각 유형은 차량 경로 변동 정도를 반영한다. 각 유형에 우선순위를 두어 클러스터 헤드 선택 시 참고하도록 한다. 본 논문에서는 복잡성을 줄이기 위해 차량 유형을 3가지로 분류했으나 상황에 따라 조정될 수 있다. [그림 1]은 차량 유형을 버스, 통근 차량, 일반 차량으로 나누고 우선순위를 부여한 예시이다.

CCTHCV_2020_v20n8_637_f0001.png 이미지

그림 1. 차량 타입 분류와 우선순위

이 같이 분류한 이유는 다음과 같다. 첫째, 버스는 스케줄에 따라 미리 결정된 도로를 통과한다는 특성으로 인해 가장 안정적인 클러스터 헤드가 될 수 있다. 또한, 버스는 무선 신호를 주고받을 때 다른 차량에게 방해받지 않을 정도로 크기가 충분하다. 즉, VANET의 특성 중 하나인 물체에 의한 신호 블록 현상을 최소화하는데 도움이 된다. 따라서 가장 높은 우선순위를 부여한다. 둘째, 통근 차량은 이동 지역과 시간이 어느 정도 일정하므로 안정적인 클러스터 헤드가 될 수 있다. 통근 차량은 사업 목적의 차량이거나 일반 차량일 수 있다. 지역을 순찰하는 경찰차와 같은 공공 차량 역시 이 범주에 속할 수 있다. 마지막으로 일반 차량은 이동 특성이 가장 불명확하므로 안정성이 떨어진다. 따라서 높은 우선순위 차량이 없는 경우에 클러스터 헤드 역할을 할 수 있다.

모든 자동차는 사전에 유형이 분류되어 있다고 가정 한다. 버스 유형은 공공 기관에 의해 입력될 수 있다. 통근 차량은 사전에 결정하기 어렵지만 협력을 통해 결정 가능하다. 예를 들어, 모든 자동차가 정기적으로 이동 경로를 확인하고 동일 경로를 일정한 패턴으로 여러 차례 주행하면 통근 차량으로 분류하는 것이다. 보다 정교한 모델을 만들기 위해서는 차량 간 상호 협력을 통해 생성한 관측 결과를 머신러닝 기술을 활용해 분류할 수 있을 것이다. 모든 차량은 기본적으로 일반 차량으로 입력된다고 가정한다.

위와 같이 차량 유형을 분류하더라도 우선순위가 동일한 차량이 존재할 경우에는 클러스터 헤드 선정 경합 절차가 필요하다. 이 같은 클러스링 방식은 다음과 같은 세 가지 이점이 있다.

1) 클러스터 헤드 선정 과정을 단순화하고 고정 클러스터링 방식의 문제점을 해결할 수 있다.

2) 블라인드 스팟과 서비스 불가 문제를 해결해 클러스터 커버리지를 넓힐 수 있다.

3) 일반 사용자의 차량이 클러스터 헤드가 되는 부담을 어느 정도 피할 수 있다.

2. 클러스터링 과정

클러스터링 과정은 Hello 메시지, 클러스터 초기화 메시지, 클러스터-헤드 메시지로 구성된 제어 메시지 교환을 통해 이루어진다. 각 차량은 클러스터링 과정에 필요한 정보를 이웃노드 테이블에 보관한다.

2.1 메시지 및 행동

각 차량은 주기적으로 브로드캐스트하는 Hello 메시지를 통해 클러스터링에 필요한 정보를 획득할 수 있다. Hello 메시지는 차량의 방향, 속도, 유형, ID, 위치, 관련 클러스터 헤드 ID를 포함한다. 우선순위가 높은 차량이 없는 경우, Hello 메시지를 바탕으로 적절한 클러스터 헤드를 결정한다. Hello 메시지는 차량의 상태를 보고하거나 확인하는 데에도 사용된다.

또 다른 메시지는 CI (Cluster-Initiation) 메시지이다. 모든 차량이 동시에 클러스터링 과정을 시작하면 네트워크에 혼잡이 발생하기 때문에 특정 지역의 차량중 하나가 클러스터링 과정을 시작한다. CI 메시지를 전송하는 차량은 해당 지역에서 가장 느린 노드로 가정 한다. 아직 클러스터에 참여하지 않은 차량이 이 메시지를 수신하면 클러스터링 과정을 수행한다. 차량이 CI 메시지를 수신하면, 다른 클러스터링 과정에 중복 참여 하지 않도록 자신의 상태를 클러스터링 과정 진행 중으로 표시한다. 모든 차량은 차량 유형에 따라 클러스터 헤드 선택 프로세스를 진행한다. 우선순위가 높은 차량이 하나뿐인 경우, 해당 차량이 곧 클러스터 헤드이므로 클러스터링 과정 시간을 절약할 수 있다. 우선순위가 동일한 두 대 이상의 차량이 존재하는 경우, 클러스터 헤드 경쟁이 필요하다. 그렇더라도 경쟁 노드 수가 적으므로 시간을 절약 할 수 있다. 마지막 경우는 모든 노드가 클러스터 헤드 경쟁을 하는 상황이다. 이 상황에서는 다른 일반적인 클러스터링 방식과 유사한 시간을 소모하게 된다.

마지막 메시지 종류인 클러스터 헤드(CH) 비콘 메시지는 선택된 클러스터 헤드를 알리는데 사용된다. 이 메시지는 클러스터 헤드 ID, 클러스터 밀도 비율과 같은 클러스터 상태를 포함한다. 클러스터 밀도 비율은 클러스터의 현재 멤버수 대비 클러스터의 최대 멤버수로 계산된다. 클러스터 상태 정보는 현재 클러스터에 있는 차량 수와 앞으로 참여 가능한 차량 수를 알려주므로 매우 중요하다. 아직 클러스터에 참여하지 않은 차량은 이 정보를 바탕으로 클러스터 가입 가능 여부를 확인할 수 있다. 또한, 클러스터 되지 않은 차량은 이 메시지에 포함된 ID를 참조해 클러스터 헤드를 설정한다. [그림 2]는 각각의 동작을 묘사한 내용이다.

CCTHCV_2020_v20n8_637_f0002.png 이미지

그림 2. 클러스터 제어 메시지 별 차량 행동

2.2 이웃 테이블 (Neighborhood table)

각 차량은 이웃 테이블에 클러스터 헤드 선거 과정에 활용되는 이웃 차량의 정보를 유지한다. 이 테이블에는 차량ID, 가중치 속도, 방향, 위치, 차량 유형, 클러스터 헤드 ID, 예상 통신 수명을 포함한 기록이 유지된다. 예상 통신 수명을 제외한 모든 정보는 Hello 메시지로부터 얻을 수 있다. 가중치 속도는 차량의 최근 속도 추세를 측정하는 데 사용된다. 갑작스러운 속도 변화가 미치는 영향을 줄이기 위해 과거와 현재 속도에 가중치를 적용한 가중치 속도를 다음과 같이 계산한다.

Vsmoothed(i) = (1-α) × Vsmoothed(i)′ + α × Vcurrent(i)       (1)

예상 통신 수명은 상대 차량이 통신 범위에 존재할 것으로 예상하는 시간이다. 이 값은 차량 간 링크의 품질을 측정하고 클러스터를 떠날 노드를 결정하는데 필요하다. 예상 통신 수명은 다음과 같이 계산된다.

Srest(i,j) = TXrange (i) - Srelative(i,j)       (2)

Lifetime(Tlife) = Srest(i,j)/Vrelative(i,j)       (3)

Srest(i, j)는 차량 j가 한 차량 i의 전송 범위를 벗어날 때까지 남은 거리를 의미하고 TXrange(i)는 차량 i의 전송 범위를 의미한다. Srelative(i, j)는 두 차량 i와 j 사이의 상대 거리를 나타내고, Vrelative(i, j)는 두 차량 i와 j 사이의 상대 속도를 나타낸다.

2.3 클러스터 헤드 선택 과정

클러스터 헤드를 결정하기 위해서는 이웃 테이블의 정보를 사용해 클러스터 헤드 적합성을 계산해야 한다. 클러스터 헤드 선택 절차는 [8] 또는 [9] 에서 소개된 동적 클러스터링 알고리즘과 유사하다.

클러스터 안정성을 위해 노드의 연결성 및 연결 품질을 메트릭으로 사용했다. 연결 품질은 가중치 기반 예상 통신 수명(Wlifetime)을 나타내는 값으로, Hello 메시지를 수신 할 때 계산된 후 이웃 테이블에 저장되는 예상 통신 수명으로부터 유도된다. 또 다른 주요 메트릭인 연결성은 한 차량에서 통신 가능한 차량 수를 의미 한다. 연결성은 이웃 테이블을 바탕으로 상대속도가 특정 속도 범위 내에 있고 클러스터에 참여하지 않은 차량 수로 표현된다. [그림 3]은 제안하는 클러스터링 알고리즘을 표현한 것이다.

CCTHCV_2020_v20n8_637_f0004.png 이미지

그림 3. Clustering process

Si는 노드 i의 클러스터 헤드 적합성, Wlifetime 는 가중치 기반 예상 통신 수명, degi는 노드 i의 링크 수, NTi는 노드 i의 이웃 테이블, f()는 이웃 테이블에 있는 예상 통신 수명 값에 비례하는 가중치 적용 예상 통신 수명 연산 함수, g()는 특정 범위에 있는 상대 속도인 차량 수를 카운트하는 링크 수 연산 함수이다.

CI 메시지를 수신한 노드는 자신의 상태를 확인하고 아직 클러스터에 참여하지 않은 경우 클러스터링 과정에 참여한다. 상대 속도는 연결 안정성을 반영하는 값이므로 모든 노드는 상대 속도가 -ΔVth 및 +ΔVth 조건을 만족하는지 확인한다. 이 범위에 속하는 모든 클러스터 미참여 차량은 해당 지역에 대한 클러스터 헤드 후보로서의 적합성을 계산한다. 이 과정은 모든 차량이동일 우선순위이거나, 동일 우선순위 차량이 두 대 이상인 경우에만 트리거 된다. 각 차량은 독립적으로 적합성을 계산하고 서로 비교한다. 결과적으로 적합성이 가장 큰 차량이 클러스터 헤드가 된다. 클러스터 헤드는 주변 노드들이 클러스터에 참여할 수 있도록 CH 메시지를 보낸다.

[그림 4]와 [그림 5]는 클러스터링 과정 시나리오다. [그림 4]는 우선순위가 높은 차량이 하나인 상황이다. 모든 차량은 자신의 이웃 테이블을 보고 가장 우선순위가 높은 버스가 근처에 있다는 것을 알고 있다. 이때는 클러스터 헤드 선택 경쟁이 필요하지 않다. 반면, [그림 5]는 우선순위가 같은 3대의 차량이 존재하는 상황이다. 해당 지역에서는 클러스터 헤드 경쟁이 발생하지만 클러스터링 관련 차량 수가 적기 때문에 전체 차량이 참여할 때에 비해 과정이 단순해진다.

CCTHCV_2020_v20n8_637_f0003.png 이미지

그림 4. 최고 우선순위 차량이 한 대만 존재할 때의 클러스터링 예시

CCTHCV_2020_v20n8_637_f0005.png 이미지

그림 5. 동등 우선순위 차량이 두 대 이상일 때의 클러스터링 예시

2.4 클러스터 멤버 관리

클러스터 멤버 관리는 가입 절차와 탈퇴 절차를 포함한다. 새 멤버가 클러스터에 참여하려 하면 먼저 Hello 메시지를 기다린다. CH 비콘이 있고 클러스터에 아직 여유가 있다면 상대 속도를 확인하고 CH 메시지에 있는 ID를 자신의 클러스터 헤드로 설정한다. 조건이 만족되지 않으면 클러스터에 참여하지 않으며, CI 메시지를 보낼 수 있다면 클러스터링 과정을 시작한다.

클러스터를 떠나는 경우는 이웃 테이블의 예상 통신 수명으로 판단할 수 있다. 테이블 각 항목의 수명 값이 만료되면 멤버가 클러스터를 떠났다는 것을 의미한다.

3. 클러스터 커버리지

제안 알고리즘은 고정 클러스터 역할 담당 차량을 사전 결정함으로써 클러스터링 과정을 간소화시키고 커버리지를 증가시키는데 목적이 있다. 다만 제안 알고리즘은 우선순위의 차량 종류가 추가되었으나 클러스터링 과정은 기존의 버스 중심 클러스터링과 거의 유사하다고 볼 수 있다. 따라서 본 섹션에서는 클러스터 안정성이나 클러스터링 과정 복잡도는 제외하고 클러스터 커버리지에 대한 내용을 다룬다.

대한민국 서울시의 예를 들면, 2019 년 주중 시간대별 교통량 추이는 [그림 6]과 같다[13]. 또한, 2019년 12월 기준 일반버스의 첫차시각은 03:30~07:30, 막차 시각은 19:30~00:00 으로 분포되어 있다[14]. 심야 버스는 노선 커버리지가 높지 않아 고려하지 않았다. 이에 따르면 심야 3시간 동안 약 30만대의 차량이 버스의 서비스를 받기 어려운 것으로 볼 수 있다. 하지만, 제안하는 알고리즘 이용하면 버스 운행시간이 아닌 때에도 이러한 제약을 극복할 수 있게 된다. 또한, 시간대와 관계없이 버스가 커버하지 못하는 지역에서도 서비스가 가능하다는 사실을 유추할 수 있다.

CCTHCV_2020_v20n8_637_f0006.png 이미지

그림 6. 2019 서울시 시간대별 교통량 추이(주중)

IV. 결론

본 논문에서는 버스를 고정 클러스터 헤드로 사용하는 클러스터링 기법을 바탕으로 VANET 환경을 위한 우선순위 기반 클러스터링 알고리즘을 제시했다. 구체적으로 차량을 버스, 통근 자동차, 일반 자동차의 세 가지 유형으로 분류하고 있는 우선순위를 부여함으로써 클러스터링 과정을 단순화하고 커버리지를 높이고자 했다. 즉, 이를 통해 시간 및 공간 측면에서 클러스터의 적용 범위를 향상시킬 수 있다. 결과적으로 통신 안정성을 보장하는데 도움이 된다. 다만, 특정 지역에서 차량 밀집도가 낮은 경우 통신 자체가 불가능한 상황이 존재할 수 있다는 점은 극복이 필요하다. 또한, 제안 알고리즘을 통해 형성된 클러스터를 바탕으로 전체 메시지 전달과정을 고려한 통합적인 연구가 필요하다. 이는 효율적인 클러스터 간 통신 방식을 추가함으로써 달성 가능하다.

최근 화두가 되고 있는 스마트카 혹은 커넥티드카 환경에서 제공될 수 있는 각종 서비스는 통신 안정성이 매우 중요하다. 특히 일부 차량 서비스에서는 통신 안정성이 인명의 손실과도 직결될 수 있다는 점을 생각해볼 때, 제안하는 알고리즘이 이 같은 서비스 활성화에 긍정적인 영향을 미칠 수 있을 것으로 예상된다.

References

  1. Y. Toor, P. Muhlethaler, and A. Laouiti, "VEHICLE AD HOC NETWORKS: APPLICATIONS AND RELATED TECHNICAL ISSUES," Communications Surveys & Tutorials, IEEE, Vol.10, No.3, pp.74-88, Third Quarter 2008. https://doi.org/10.1109/COMST.2008.4625806
  2. M. L. Sichitiu and M. Kihl, "Inter-vehicle communication systems: a survey," Communications Surveys & Tutorials, IEEE, Vol.10, No.2, pp.88-105, Second Quarter 2008 https://doi.org/10.1109/COMST.2008.4564481
  3. R. Ramanathan and M. Steenstrup, "Hierarchically-organized, multihop mobile wireless networks for quality-of-service support," Mobile Networks and Applications, Vol.3, No.1, pp.101-119, 1998 https://doi.org/10.1023/A:1019148009641
  4. J. X. Wang and Wei Yan, "RBM: A Role Based Mobility Model for VANET," Communications and Mobile Computing, 2009. CMC '09. WRI International Conference on, Vol.2, pp.437-443, 6-8 Jan. 2009
  5. Y. Y. Luo, W. Zhang, and Y. Q. Hu, "A New Cluster Based Routing Protocol for VANET," Networks Security Wireless Communications and Trusted Computing (NSWCTC), 2010 Second International Conference on, Vol.1, pp.176-180, 24-25 April 2010
  6. B. Seet, G. Liu, B. Lee, C. Foh, and K. Lee, "A-STAR: A mobile ad hoc routing strategy for metropolis vehicular communications," In Proceedings of NETWORKING'2004. pp.989-999, 2004.
  7. J. Luo, X. Gu, T. Zhao, and W. Yan, "MI-VANET: A New Mobile Infrastructure Based VANET Architecture for Urban Environment," Vehicular Technology Conference Fall (VTC 2010-Fall), 2010 IEEE 72nd, pp.1-5, 6-9 Sept. 2010
  8. Z. Y. Rawshdeh and S. M. Mahmud, "Toward Strongley Connected Clustering Structure in Vehicular Ad Hoc Networks," Vehicular Technology Conference Fall (VTC 2009-Fall), 2009 IEEE 70th, pp.1-5, 20-23 Sept. 2009
  9. C. Shea, B. Hassanabadi, and S. Valaee, "Mobility-Based Clustering in VANETs Using Affinity Propagation," Global Telecommunications Conference, 2009. GLOBECOM 2009. IEEE, pp.1-6, Nov. 30 2009-Dec. 4 2009
  10. L. Zeng, J. Zhang, Q. Han, L. Ye, Q. He, X. Zhang, and T. Yang, "A Bus-Oriented Mobile FCNs Infrastructure and Intra-Cluster BSM Transmission Mechanism," IEEE Access, Vol.7, pp.24308-24320, 2019 https://doi.org/10.1109/ACCESS.2019.2900392
  11. I. Kim and J. Song, "Classification of Clustering Schemes in VANETs," Vol.4, No.2, p.4, 2014.
  12. N. Chaib, O. S. Oubbati, M. L. Bensaad, A. Lakas, P. Lorenz, and A. Jamalipour, "BRT: Bus-Based Routing Technique in Urban Vehicular Networks," IEEE Transactions on Intelligent Transportation Systems, pp.1-13, 2019.
  13. 서울시 교통정보과, 2019 서울특별시 교통량 조사자료, 서울시, 2019.
  14. https://topis.seoul.go.kr/refRoom/openRefRoom_3_1.do