무선네트워크환경에서안드로이드기반 SCTP 프로토콜의성능분석 105 무선네트워크환경에서안드로이드기반 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일 CopyrightC2013 한국정보과학회 ː개인목적이나교육목적인경우, 이저작물의전체또는일부에대한복사본혹은디지털사본의제작을허가합니다. 이때, 사본은상업적수단으로사용할수없으며첫페이지에본문구와출처를반드시명시해야합니다. 이외의목적으로복제, 배포, 출판, 전송등모든유형의사용행위를하는경우에대하여는사전에허가를얻고비용을지불해야합니다. 정보과학회논문지 : 시스템및이론제40권제2호 (2013.4) 1. 서론최근 Internet Engineering Task Force(IETF) 에서는 Stream Control Transmission Protocol(SCTP) 표준을개발하였다 [1]. 현재까지 SCTP 프로토콜은인터넷전화서비스를위한시그널링게이트웨이간트래픽전송, 멀티미디어트래픽전송등의실시간으로신뢰전송이요구되는응용에서널리사용되고있고, 이에대한성능분석연구가진행되어왔다 [2-4]. 하지만지금까지의연구개발및실험은주로 PC 및노트북단말을토대로수행되어서, 기존의실험결과들이실제안드로이드혹은 ios 등의스마트폰단말에적용가능한지, 그리고스마트폰단말에적용되었을때실제 PC 환경과같은성능을제공할수있는지에대한연구는거의전무한실정이다.
106 정보과학회논문지 : 시스템및이론제 40 권제 2 호 (2013.4) 이에본논문에서는안드로이드플랫폼기반의스마트폰단말을대상으로 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 crosscompiler를준비한다. 다음 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 실험환경본논문에서는무선환경에서의안드로이드플랫폼상 그림 1 SCTP 개발을위한안드로이드플랫폼구조 [6] Fig. 1 Android Platform for SCTP Development[6]
무선네트워크환경에서안드로이드기반 SCTP 프로토콜의성능분석 107 (4) 패킷손실률과 SCTP 스트림수에따른성능비교다양한패킷손실률환경을구성하고각각에적합한스트림개수를실험을통해알아본다. 이를통해 SCTP 를실제무선네트워크에적용했을때최적의스트림개수를파악해볼수있다. 4. 실험결과분석및성능비교 그림 2 실험환경구성도 Fig. 2 Testbed Configuration 에서의성능분석을위해 LK-SCTP를설치하였고, 데이터전송응용프로그램을이용한테스트베드를구축하였다. 또한, 데이터전송성능측정을위해패킷분석기인 Wireshark를이용하였다 [8]. 그림 2는실험환경의구성도이다. 리눅스서버, 안드로이드단말로이루어져있으며무선환경실험을위해안드로이드단말과 IP 공유기는서로 WiFi 통신을하고, 파일발신측네트워크와수신측네트워크는인터넷망으로연결되어있다. 3.2 성능분석시나리오무선환경의안드로이드단말에서 100MB 파일을리눅스서버로전송하고, 초당전송량을측정한다. 이때, 성능비교를위한기준값으로는패킷의 Maximum Segment 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.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
108 정보과학회논문지 : 시스템및이론제 40 권제 2 호 (2013.4) 크기가아니라전체패킷에포함되는데이터청크의크기를결정한다. 이로인해 MSS가작은경우에는실제링크의 Maximum Transmission Unit(MTU) 에따라여러개의데이터청크가하나의 SCTP 패킷으로번들링 (bundling) 되어전송된다. 이러한번들링효과로인해 SCTP의경우 MSS가작을수록더좋은전송성능을보이고있다. 전체적으로 MSS 크기가작아질수록 TCP 전송효율은떨어지나, SCTP는전송효율을일정하게유지하거나더좋아지는것을알수있다. 이후실험은 MSS 크기를 365 바이트로설정하여진행하였다. 4.2 SCTP 스트림수에따른성능비교그림 5는 SCTP의스트림수에따른성능비교를나타내고있다. 실험결과, MMS 크기가다양하게바뀌어도스트림개수를 5개로설정했을때전송효율이가장좋은것을알수있다. 하지만그이상이되면효율은떨어진다. 이는과도하게많은스트림을사용하는경우, 수신측에서각각의스트림에서패킷을재배치하는과정에서오버헤드가발생하는것으로해석된다. 그림 6 패킷손실률에따른성능비교 : E250 Fig. 6 Comparison by Pack Loss Rate: E250 그림 7 패킷손실률에따른성능비교 : I9300 Fig. 7 Comparison by Pack Loss Rate: I9300 그림 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가더좋은성능을제공하고있다. 그림 8 패킷손실률에따른성능비교 : I9100 Fig. 8 Comparison by Pack Loss Rate: I9100 4.4 패킷손실률과 SCTP 스트림수에따른성능비교그림 9에서 14까지는패킷손실률별로 SCTP 스트림수에따른성능측정결과를보여준다. 그림에서패킷손실률이증가할수록 TCP는성능이급격히떨어지고, SCTP는일정한수준을유지하거나오히려좋아지는모습을볼수있다. 또한패킷손실률이 0~20% 상태의망에서 SCTP 프로토콜을사용할경우스트림 5 개를사용하는것이최적의성능을제공하고있다. 이를통해무선네트워크환경에따라적정한스트림개수가존재함을할수있다.
무선네트워크환경에서안드로이드기반 SCTP 프로토콜의성능분석 109 그림 9 패킷손실률 (0%) 에따른성능비교 Fig. 9 Comparison by Pack Loss Rate 0% 그림 13 패킷손실률과스트림수에따른비교 : I9300 Fig. 13 Comparison by Loss Rate and Stream Count: I9300 그림 10 패킷손실률 (10%) 에따른성능비교 Fig. 10 Comparison by Pack Loss Rate 10% 그림 14 패킷손실률과스트림수에따른비교 : I9100 Fig. 14 Comparison by Loss Rate and Stream Count: I9100 5. 결론 그림 11 패킷손실률 (20%) 에따른성능비교 Fig. 11 Comparison by Pack Loss Rate 20% 본논문에서는안드로이드플랫폼을사용하는모바일단말환경에서다양한파라미터값에대하여 TCP와 SCTP 프로토콜의성능을비교하였다. 실험결과, MSS 크기에따른전송률실험에서는 MSS가작을수록 TCP 는패킷수가많아져전송효율은떨어지나, SCTP는일정한전송효율을유지하거나오히려좋아질수있음을확인하였다. 또한멀티스트리밍기능을사용하는 SCTP의경우, 본실험에서는 5개의스트림을사용할때가장좋은성능을보였다. 패킷손실률을고려한실험에서, 패킷손실률이 0% 인무선환경에서는 TCP가좋은성능을보이지만, 패킷손실률이존재하는무선네트워크에서는 SCTP가멀티스트리밍기능을활용하여더좋은성능을제공할수있음을확인하였다. 또한, 패킷손실률및 MSS 등의네트워크환경에따라최적의 SCTP 스트림개수가존재함을알수있었다. 상기실험결과는향후안드로이드기반의스마트폰단말에서 SCTP 응용개발시에관련파라미터설정에참고가될수있을것으로사료된다. 그림 12 패킷손실률과스트림수에따른비교 : E250 Fig. 12 Comparison by Loss Rate and Stream Count: E250
110 정보과학회논문지 : 시스템및이론제 40 권제 2 호 (2013.4) 참고문헌 [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 Bandwidth 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 Heterogeneous 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) 고석주 1992년 KAIST 경영과학과 ( 공학사 ). 1994 년 KAIST 경영과학과 ( 공학석사 ). 1998년 KAIST 산업공학과 ( 공학박사 ). 1998년~ 2004년 ETRI 표준연구센터. 2004년 3 월~현재경북대학교 IT대학컴퓨터학부교수. 관심분야는미래인터넷, 이동성관리, SCTP, 멀티캐스트 민경욱 2007년동서대학교컴퓨터공학과 ( 학사 ) 2007년~현재삼성전자무선사업부책임연구원. 2010년~현재경북대학교전자전기컴퓨터학부석사과정. 관심분야는통신프로토콜, SCTP 김지인 2008년경북대학교전자전기컴퓨터학부 ( 학사 ). 2010년경북대학교전자전기컴퓨터학부 ( 석사 ). 2010년~현재경북대학교전자전기컴퓨터학부박사과정. 관심분야는미래인터넷, 이동성관리