• 검색 결과가 없습니다.

무선 네트워크 환경에서 안드로이드 기반 SCTP 프로토콜의 성능 분석

N/A
N/A
Protected

Academic year: 2021

Share "무선 네트워크 환경에서 안드로이드 기반 SCTP 프로토콜의 성능 분석"

Copied!
6
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

무선 네트워크 환경에서 안드로이드 기반

SCTP 프로토콜의 성능 분석

(Performance Analysis of SCTP Protocol over Android

Platform in Wireless Network Environments)

민 경 욱

김 지 인

고 석 주

††

(Kyeong-Wook Min)   (Ji-In Kim)    (Seok-Joo Koh)

요 약 최근 실시간 신뢰전송을 요구하는 인터넷 응용에 대하여 Stream Control Transmission Protocol(SCTP)의 활용이 증대되고 있다. 지금까지의 연구개발은 주로 리눅스 기반의 유선 단말에 대하 여 수행되어 왔다. 본 논문에서는 무선 네트워크 환경에서 안드로이드(Android) 기반의 스마트폰 단말에 대한 SCTP 프로토콜의 성능 분석 결과를 논의하고자 한다. 실험 결과, 패킷의 Maximum Segment Size(MSS) 값이 작을수록 SCTP가 TCP에 비해 좋은 전송 성능을 보였다. 한편, 패킷 손실률이 존재하는 무선 네트워크에 대한 실험에서는, TCP의 경우 패킷 손실률이 높을수록 성능이 떨어지는 반면에, 멀티스 트리밍(multi-streaming) 기능을 사용하는 SCTP경우에는 TCP에 비하여 안정적인 성능을 보이고 나아가 최적의 전송률을 제공하는 스트림의 개수가 존재함을 확인할 수 있었다. 키워드: SCTP, Android, 스마트폰, 성능분석

Abstract The Stream Control Transmission Protocol (SCTP) can be used for real-time reliable

transport applications. Until now, the research on SCTP has been made for the wired terminals on Linux environments. This paper deals with the performance analysis of SCTP over Android-based smart phone in the wireless networks. From the empirical results, it is shown that SCTP provides better performance than TCP does for a smaller Maximum Segment Size (MSS). In the meantime, for experiments on wireless networks with packet losses, the TCP performance becomes worse as the packet loss rate gets large. However, the SCTP using the multi-streaming feature tends to provide a consistent and stable performance. In particular, we see that there could be an optimal number of SCTP streams to give the best performance in the wireless networks with a certain packet loss rate.

Keywords: SCTP, android, smart phone, analysis

․본 연구는 기술표준원의 표준기술력향상사업 및 2012학년도 경북대학교 학술연구비 지원으로 수행하였습니다. ․이 논문은 제39회 추계학술발표회에서 ‘안드로이드 플랫폼 환경에서의 SCTP 프로토콜 성능분석’의 제목으로 발표된 논문을 확장한 것임 † †† 학생회원 종신회원 논문접수 심사완료 : : : : 경북대학교 전자전기컴퓨터학부 minlab81@gmail.com jiin16@gmail.com 경북대학교 컴퓨터학부 교수 sjkoh@knu.ac.kr (Corresponding author임) 2012년 11월 26일 2013년 1월 2일 CopyrightⒸ2013 한국정보과학회ː개인 목적이나 교육 목적인 경우, 이 저작 물의 전체 또는 일부에 대한 복사본 혹은 디지털 사본의 제작을 허가합니다. 이 때, 사본은 상업적 수단으로 사용할 수 없으며 첫 페이지에 본 문구와 출처 를 반드시 명시해야 합니다. 이 외의 목적으로 복제, 배포, 출판, 전송 등 모든 유형의 사용행위를 하는 경우에 대하여는 사전에 허가를 얻고 비용을 지불해야 합니다. 정보과학회논문지: 시스템 및 이론 제40권 제2호(2013.4)

1. 서 론

최근 Internet Engineering Task Force(IETF)에서 는 Stream Control Transmission Protocol(SCTP) 표 준을 개발하였다[1]. 현재까지 SCTP 프로토콜은 인터넷 전화 서비스를 위한 시그널링 게이트웨이간 트래픽 전 송, 멀티미디어 트래픽 전송 등의 실시간으로 신뢰전송 이 요구되는 응용에서 널리 사용되고 있고, 이에 대한 성능분석 연구가 진행되어 왔다[2-4]. 하지만 지금까지의 연구개발 및 실험은 주로 PC 및 노트북 단말을 토대로 수행되어서, 기존의 실험 결과들 이 실제 안드로이드 혹은 iOS 등의 스마트폰 단말에 적 용 가능한지, 그리고 스마트폰 단말에 적용되었을 때 실 제 PC 환경과 같은 성능을 제공할 수 있는지에 대한 연구는 거의 전무한 실정이다.

(2)

그림 1 SCTP 개발을 위한 안드로이드 플랫폼 구조[6] Fig. 1 Android Platform for SCTP Development[6] 이에 본 논문에서는 안드로이드 플랫폼 기반의 스마 트폰 단말을 대상으로 SCTP 프로토콜을 활용하는 방법 에 대하여 논의하고, 무선 네트워크 환경에서 다양한 실 험을 통해 TCP와 SCTP의 전송 성능을 비교 분석함으 로써, 스마트폰 단말 기반의 응용 프로그램 개발 시에 적정한 파라미터 설정에 도움을 제공하고자 한다. 본 논문의 구성은 다음과 같다. 먼저, 2절에서는 안드 로이드 플랫폼 환경에서 SCTP 프로토콜 모듈을 설치하 는 방법을 간략히 기술한다. 3절에서 무선 네트워크 환 경에서 TCP와 SCTP의 성능분석을 위한 실험 환경 및 시나리오 기술하고, 4절에서는 실험 결과를 토대로 무선 환경에서의 SCTP 프로토콜의 성능을 비교 분석한다. 끝으로, 5절에서 본 논문의 결론을 맺는다.

2. 안드로이드 플랫폼에서의 SCTP 설치

응용 프로그램에서 SCTP를 사용하기 위해서는 커널 에 SCTP 프로토콜 스택이 존재하고 플랫폼 차원에서 사용자 라이브러리를 제공해야 된다. 안드로이드 환경에서 SCTP 프로토콜 스택을 지원하 기 위해서는 커널에 포함된 네트워크 설정파일에 SCTP 를 위한 옵션을 추가해 주고 커널 컴파일 시에 모듈로 생성해서 커널에 포함시켜야 한다. 표 1은 안드로이드 플랫폼에서 SCTP 프로토콜 스택 설치를 위한 파일위치 및 옵션을 지정하는 예제를 보여 준다. 또한, 응용 프로그램을 작성하기 위해서는 SCTP 관 련 라이브러리가 필요한데, 리눅스에서 제공하는 lksctp 패키지를[5] 안드로이드 환경에서 동작할 수 있도록 변 표 1 SCTP 스택 설치 파일위치 및 옵션 지정 Table 1 File Location and Options for SCTP Stack

파일위치 /android/kernel/chip_vender/arch/arm/configs/ chip_vender_deconfig 옵션 명 CONFIG_IP_SCTP 환한 후 라이브러리 계층에서 사용한다. 안드로이드용 lksctp 라이브러리 생성 과정은 다음과 같다. 먼저, 리눅스용 lksctp 소스를 받고 arm cross- compiler를 준비한다. 다음 lksctp를 arm용으로 컴파일 하기 위해서 configure 파일을 수정한다(configure-build= i386-linux-host=컴파일러이름). 컴파일을 수행한 후, lksctp 소스가 안드로이드 환경에서 컴파일 될 수 있도 록 앞의 컴파일 과정을 분석해서 android.mk 파일을 작 성한다. 즉, 리눅스의 makefile 빌드 스크립트를 안드로 이드에 맞는 android.mk 파일로 변환하는 과정이 필요 하다. 이 후, 안드로이드 풀(full) 빌드 시 android.mk를 참조해서 lksctp를 빌드에 포함시키면 안드로이드에서 사용할 수 있는 라이브러리가 생성된다[6,7]. 그림 1은 상기 과정을 마친 후 생성되는 안드로이드 플랫폼 구조를 보여준다. 그림에서 보여지듯이 Linux Kernel layer에는 SCTP Protocol Stack이 추가되고 Library layer에는 응용프로그램에서 필요한 SCTP Library(lksctp)가 포함된다.

3. 실험환경 및 성능분석 시나리오

3.1 실험환경

(3)

그림 2 실험환경 구성도 Fig. 2 Testbed Configuration

에서의 성능 분석을 위해 LK-SCTP를 설치하였고, 데 이터 전송 응용프로그램을 이용한 테스트베드를 구축하 였다. 또한, 데이터 전송 성능 측정을 위해 패킷 분석기 인 Wireshark를 이용하였다[8]. 그림 2는 실험환경의 구성도이다. 리눅스 서버, 안드 로이드 단말로 이루어져 있으며 무선환경 실험을 위해 안드로이드 단말과 IP 공유기는 서로 WiFi 통신을 하 고, 파일 발신 측 네트워크와 수신 측 네트워크는 인터 넷 망으로 연결되어 있다. 3.2 성능분석 시나리오 무선환경의 안드로이드 단말에서 100MB 파일을 리눅 스 서버로 전송하고, 초당 전송량을 측정한다. 이 때, 성 능 비교를 위한 기준 값으로는 패킷의 Maximum Seg-ment Size(MSS)와 SCTP의 스트림 수를 고려하였다. 또한 실험 결과 최적의 성능 비교 값들을 추출하여, 실 제 패킷 손실이 존재하는 망에 적용함으로써 TCP와 SCTP의 무선환경에서의 성능을 비교 분석하였으며, 실 험은 각 5회 실시하여 그 평균값으로 성능 비교를 진행 하였다. (1) MSS 크기에 따른 성능비교 MSS 크기를 1460, 730, 365로 변경하면서 MSS 크 기가 프로토콜 성능에 미치는 영향을 분석한다. (2) SCTP 스트림 수에 따른 성능비교 멀티스트리밍은 SCTP 프로토콜의 특징 중 하나로서, 패킷 손실이 존재하는 경우에 발생할 수 있는 TCP의 HoL(Head of Line) blocking 문제를 해결하기 위해 사 용될 수 있다. 본 실험에서는 스트림 수를 10, 5, 2개로 변화시키면서 실험을 진행한다. (3) 패킷 손실률에 따른 성능비교 무선 네트워크에 발생하는 패킷 손실이 SCTP 전송 성능에 미치는 영향을 알아보기 위해서 임의로 패킷 손 실을 발생시켰다. 본 실험에서는 패킷 손실률을 0%, 10%, 20%로 변경하면서 전송 성능을 비교 분석하였다. (4) 패킷 손실률과 SCTP 스트림 수에 따른 성능비교 다양한 패킷 손실률 환경을 구성하고 각각에 적합한 스트림 개수를 실험을 통해 알아본다. 이를 통해 SCTP 를 실제 무선 네트워크에 적용했을 때 최적의 스트림 개수를 파악해 볼 수 있다.

4. 실험결과 분석 및 성능비교

4.1 MSS 크기에 따른 성능비교 그림 3, 4는 MSS 크기에 따른 생성된 패킷의 개수와 초당 전송량을 보여준다. TCP의 경우 MSS는 TCP 패 킷 크기를 결정하는 반면에, SCTP의 경우 데이터 청크 (chunk) 크기를 결정한다. MSS 크기는 기본을 1460바 이트로 하고 절반씩 줄여가며 실험하였다. TCP의 경우, MSS 크기를 50%씩 줄이면 전송해야 하는 패킷 수가 50%씩 증가하고, TCP 패킷 헤더 크기 가 20byte 인걸 감안하면 다음과 같은 오버헤드가 발생 하게 된다. (증가한 패킷 수 × 20byte) 이 때문에 초당 전송량도 현저히 떨어지게 됨을 실험 을 통해 확인할 수 있다. 반면에, SCTP의 경우에는 패 킷 개수가 완만히 늘어나는데 이는 SCTP의 패킷 번들 링 효과에 의한 것이다. 즉, MSS는 SCTP의 전체 패킷 그림 3 MSS 크기에 따른 성능비교: 패킷 수 Fig. 3 Comparison by MSS: Packet Count

그림 4 MSS 크기에 따른 성능비교: 전송률 Fig. 4 Comparison by MSS: Throughput

(4)

크기가 아니라 전체 패킷에 포함되는 데이터 청크의 크 기를 결정한다. 이로 인해 MSS가 작은 경우에는 실제 링크의 Maximum Transmission Unit(MTU)에 따라 여러 개의 데이터 청크가 하나의 SCTP 패킷으로 번들 링(bundling)되어 전송된다. 이러한 번들링 효과로 인해 SCTP의 경우 MSS가 작을수록 더 좋은 전송성능을 보 이고 있다. 전체적으로 MSS 크기가 작아질수록 TCP 전송효율 은 떨어지나, SCTP는 전송효율을 일정하게 유지하거나 더 좋아지는 것을 알 수 있다. 이후 실험은 MSS 크기 를 365 바이트로 설정하여 진행하였다. 4.2 SCTP 스트림 수에 따른 성능비교 그림 5는 SCTP의 스트림 수에 따른 성능 비교를 나 타내고 있다. 실험 결과, MMS 크기가 다양하게 바뀌어 도 스트림 개수를 5개로 설정했을 때 전송 효율이 가장 좋은 것을 알 수 있다. 하지만 그 이상이 되면 효율은 떨어진다. 이는 과도하게 많은 스트림을 사용하는 경우, 수신 측에서 각각의 스트림에서 패킷을 재배치하는 과 정에서 오버헤드가 발생하는 것으로 해석된다. 그림 5 SCTP 스트림 수에 따른 성능비교 Fig. 5 Comparison by SCTP Stream Count

4.3 패킷 손실률에 따른 성능비교 그림 6,7,8은 앞서 실험한 결과를 토대로 최적의 기준 값을 적용하고 (TCP: MSS=1460, SCTP: MSS=365, 스트림=5개), 실제 망과 비슷하게 손실률을 0%, 10%, 20%로 변경하면서 실험한 결과이다. 실험은 최근 2년간 안드로이드 단말기중 가장 출하량이 많은 Galaxy 모델 (E250, I9300, I9100)을 사용하였다.

그림에서 알 수 있듯이, 기본적으로 손실률이 0% 일 때 TCP가 좋은 전송률을 보여준다. 하지만, 손실률이 증가할수록 TCP의 성능은 떨어지는데 비하여, SCTP는 일정한 전송효율을 유지하며 보다 안정적인 성능을 보 여주고 있다. 또한, 패킷 손실률이 10%를 초과하는 네 트워크 환경에서는 TCP 보다 SCTP가 더 좋은 성능을 제공하고 있다. 그림 6 패킷 손실률에 따른 성능비교: E250 Fig. 6 Comparison by Pack Loss Rate: E250

그림 7 패킷 손실률에 따른 성능비교: I9300 Fig. 7 Comparison by Pack Loss Rate: I9300

그림 8 패킷 손실률에 따른 성능비교: I9100 Fig. 8 Comparison by Pack Loss Rate: I9100

4.4 패킷 손실률과 SCTP 스트림 수에 따른 성능비교 그림 9에서 14까지는 패킷 손실률 별로 SCTP 스트 림 수에 따른 성능 측정 결과를 보여준다. 그림에서 패 킷 손실률이 증가할수록 TCP는 성능이 급격히 떨어지 고, SCTP는 일정한 수준을 유지하거나 오히려 좋아지 는 모습을 볼 수 있다. 또한 패킷 손실률이 0~20% 상 태의 망에서 SCTP 프로토콜을 사용할 경우 스트림 5 개를 사용하는 것이 최적의 성능을 제공하고 있다. 이를 통해 무선 네트워크 환경에 따라 적정한 스트림 개수가 존재함을 할 수 있다.

(5)

그림 9 패킷 손실률(0%)에 따른 성능 비교 Fig. 9 Comparison by Pack Loss Rate 0%

그림 10 패킷 손실률(10%)에 따른 성능 비교 Fig. 10 Comparison by Pack Loss Rate 10%

그림 11 패킷 손실률(20%)에 따른 성능 비교 Fig. 11 Comparison by Pack Loss Rate 20%

그림 12 패킷 손실률과 스트림수에 따른 비교: E250 Fig. 12 Comparison by Loss Rate and Stream Count: E250

그림 13 패킷 손실률과 스트림 수에 따른 비교: I9300 Fig. 13 Comparison by Loss Rate and Stream Count: I9300

그림 14 패킷 손실률과 스트림 수에 따른 비교: I9100 Fig. 14 Comparison by Loss Rate and Stream Count: I9100

5. 결 론

본 논문에서는 안드로이드 플랫폼을 사용하는 모바일 단말 환경에서 다양한 파라미터 값에 대하여 TCP와 SCTP 프로토콜의 성능을 비교하였다. 실험결과, MSS 크기에 따른 전송률 실험에서는 MSS가 작을수록 TCP 는 패킷 수가 많아져 전송 효율은 떨어지나, SCTP는 일정한 전송 효율을 유지하거나 오히려 좋아질 수 있음 을 확인하였다. 또한 멀티스트리밍 기능을 사용하는 SCTP의 경우, 본 실험에서는 5개의 스트림을 사용할 때 가장 좋은 성능을 보였다. 패킷 손실률을 고려한 실험에서, 패킷 손실률이 0%인 무선환경에서는 TCP가 좋은 성능을 보이지만, 패킷 손 실률이 존재하는 무선 네트워크에서는 SCTP가 멀티스 트리밍 기능을 활용하여 더 좋은 성능을 제공할 수 있 음을 확인하였다. 또한, 패킷 손실률 및 MSS 등의 네 트워크 환경에 따라 최적의 SCTP 스트림 개수가 존재 함을 알 수 있었다. 상기 실험 결과는 향후 안드로이드 기반의 스마트폰 단말에서 SCTP 응용 개발 시에 관련 파라미터 설정에 참고가 될 수 있을 것으로 사료된다.

(6)

참 고 문 헌

[ 1 ] R. Stewart, et. al., Stream Control Transmission Protocol, IETF Request for Comment 4960, Sep. 2007.

[ 2 ] M. J. Chang, et al., "An End-to-End Mobility Support Mechanism based on mSCTP," Journal of

KIISE: Information Communication, vol.31, no.4,

pp.393-404, Aug. 2004. (in Korean)

[ 3 ] D. P. Kim, et al., "Adaptive Congestion Control of mSCTP for Vertical Handover Based on Band-width Estimation in Heterogeneous Wireless Networks," Wireless Personal Communications, vol.57, no.4, pp.707-725, Apr. 2011.

[ 4 ] D. P. Kim, et al., "Performance Enhancement of mSCTP for Vertical Handover across Hetero-geneous Wireless Networks," International Journal

of Communication Systems, vol.22, no.12, pp.1573-

1591, Dec. 2009.

[ 5 ] SCTP for Linux Kernel (2002), [Online]. Available: http://lksctp.sourceforge.net. (downloaded 2012, Sep. 11)

[ 6 ] Android Developer (2000), [Online]. Available: http:// developer.android.com. (downloaded 2012, Sep. 11) [ 7 ] Android Platform/NDK/Compile (2000), [Online].

Available: http://www.aesop.or.kr (downloaded 2012, Sep. 11)

[ 8 ] Wireshark (2000), [Online]. Available: Available from http://www.wireshark.org. (downloaded 2012, Sep. 11) 민 경 욱 2007년 동서대학교 컴퓨터공학과(학사) 2007년~현재 삼성전자 무선사업부 책임 연구원. 2010년~현재 경북대학교 전자 전기컴퓨터학부 석사과정. 관심분야는 통 신 프로토콜, SCTP 김 지 인 2008년 경북대학교 전자전기컴퓨터학부 (학사). 2010년 경북대학교 전자전기컴퓨 터학부(석사). 2010년~현재 경북대학교 전자전기컴퓨터학부 박사과정. 관심분야 는 미래인터넷, 이동성 관리 고 석 주 1992년 KAIST 경영과학과(공학사). 1994 년 KAIST 경영과학과(공학석사). 1998년 KAIST 산업공학과(공학박사). 1998년~ 2004년 ETRI 표준연구센터. 2004년 3 월~현재 경북대학교 IT대학 컴퓨터학부 교수. 관심분야는 미래인터넷, 이동성 관 리, SCTP, 멀티캐스트

수치

그림  1  SCTP  개발을  위한  안드로이드  플랫폼  구조[6] Fig.  1  Android  Platform  for  SCTP  Development[6]이에  본  논문에서는  안드로이드  플랫폼  기반의  스마트폰  단말을  대상으로  SCTP  프로토콜을  활용하는  방법에  대하여  논의하고,  무선  네트워크  환경에서  다양한  실험을  통해  TCP와  SCTP의  전송  성능을  비교  분석함으로써,  스마트폰  단말  기반의
그림  2  실험환경  구성도 Fig.  2  Testbed  Configuration
그림  8  패킷  손실률에  따른  성능비교:  I9100 Fig.  8  Comparison  by  Pack  Loss  Rate:  I9100
그림  9  패킷  손실률(0%)에  따른  성능  비교 Fig.  9  Comparison  by  Pack  Loss  Rate  0%

참조

관련 문서

(Attached to a verb) This is used to show that the succeeding action takes place right after the preceding action.. (Attached to a verb) This is used to indicate a

(Attached to a verb or an adjective) This is used to indicate a succeeding action or situation. This is used

(Attached to a verb or an adjective) This is used to reflect on a past situation. (Attached to an adjective) This is used to show another

발표를 듣고 느낀 점이나 서로의 생각을 이야기해 보 게 하면서

(Attached to a noun) This is used to indicate an object has the characteristics and qualities of both a preceding and succeeding

It is used when a movement or an event of the following clause has to be done before the movement or the event of the preceding clause.. The tense marker cannot be used

This modifier is attached to the stem of action verbs and follows a premodifying clause and modifies a following noun.. When verbs with ‘ㄹ’ meet the ending starting with

Four volumes of the text are used as a core text to instruct third and fourth year elementary school students in the rudiments of Korean language related to daily