SCTP 표준기술 동향

Similar documents
Enhanced Communications Transport Protocol: Overview & Implementations

SCTP 표준기술 동향

Microsoft Word - 2. °í¼®ÁÖ_ÃÖÁ¾_.doc

°í¼®ÁÖ Ãâ·Â

Microsoft Word - CPL-TR LNP-guide.doc

K&R2 Reference Manual 번역본

DBPIA-NURIMEDIA

SCTP 표준기술 동향

DBPIA-NURIMEDIA

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft PowerPoint - MobileIPv6_김재철.ppt

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

Microsoft PowerPoint - Supplement-02-Socket Overview.ppt [호환 모드]

Microsoft Word - CPL-TR IETF-mobility.doc

07( ) CSTV12-19.hwp

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

The Pocket Guide to TCP/IP Sockets: C Version

untitled

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

Microsoft PowerPoint _TCP_IP

Microsoft Word - CPL-TR NS3.docx

The Pocket Guide to TCP/IP Sockets: C Version

歯김병철.PDF

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

Microsoft PowerPoint - L4-7Switch기본교육자료.ppt

PowerPoint 프레젠테이션

hd1300_k_v1r2_Final_.PDF

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트

03장.스택.key

1217 WebTrafMon II

The Pocket Guide to TCP/IP Sockets: C Version

Network seminar.key

Chapter #01 Subject

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

슬라이드 제목 없음

歯이시홍).PDF

PPP over Ethernet 개요 김학용 World Class Value Provider on the Net contents Ⅰ. PPP 개요 Ⅱ. PPPoE 개요및실험 Ⅲ. 요약및맺음말

Microsoft Word - src.doc

199

187호최종

제1장 Unix란 무엇인가?

일반적인 네트워크의 구성은 다음과 같다

금오공대 컴퓨터공학전공 강의자료

<4D F736F F F696E74202D D332928B1E8C0E7C7F629B1D7B7EC20C0CCB5BFBCBA20B9D720C6E8C5E4BCBF20C0CCB5BFBCBA20B1E2BCFA2E >

Lab 3. 실습문제 (Single linked list)_해답.hwp

소프트웨어 융합 개론

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

歯홍원기.PDF

슬라이드 1

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

Chapter 4. LISTS


PowerPoint 프레젠테이션

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾

DBPIA-NURIMEDIA

UI TASK & KEY EVENT

Microsoft PowerPoint 통신과 통신망.ppt

<4D F736F F F696E74202D20352E20516F5320BAB8C0E5C0BB20C0A7C7D120C0CCB1E2C1BE20B8C1B0A C E646F B1E2BCFA20B1B8C7F6B0FA20C0FBBFEB5FC1F8BCBAC0CF284B E BC8A3C8AF20B8F0B5E55D>

The Pocket Guide to TCP/IP Sockets: C Version

5.스택(강의자료).key

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - additional08.ppt [호환 모드]

The Pocket Guide to TCP/IP Sockets: C Version

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

PBNM CIM(Common Information Model) DEN, COPS LDAP 21 CIM (Common Information Model) CIM, specification schema [7]

PowerPoint 프레젠테이션

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

Microsoft Word doc

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

r3.eps

<4D F736F F F696E74202D FB5A5C0CCC5CDC5EBBDC5B0FA20B3D7C6AEBFF6C5A9205BC8A3C8AF20B8F0B5E55D>

Microsoft Word - NAT_1_.doc

SRC PLUS 제어기 MANUAL

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

Microsoft PowerPoint - 10Àå.ppt

API 매뉴얼

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

4. 스위치재부팅을실시한다. ( 만약, Save 질문이나오면 'no' 를실시한다.) SWx#reload System configuration has been modified. Save? [yes/no]: no Proceed with reload? [confirm] (

OSI 참조 모델과 TCP/IP

PowerPoint 프레젠테이션

Microsoft PowerPoint - B2-1-한연희

vi 사용법

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

歯Phone

Lab 5. 실습문제 (Double linked list)-1_해답.hwp

슬라이드 제목 없음

bn2019_2

제3회 정보통신표준화 우수논문집 CONTENTS 회장 발간사 4 심사위원장 심사후기 5 최우수상 논문 ( 정보통신부 장관상 ) 촉각 정보 메타데이터 표준 개발 및 국제 표준화 전략 7 I 경기욱, 이준영, 이용희 (한국전자통신연구원) 우수상 논문 ( 한국정보통신기술협회

Microsoft Word - CPL-TR IETF-ID.doc

쉽게 풀어쓴 C 프로그래밍



UI TASK & KEY EVENT

PowerPoint 프레젠테이션

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

PowerPoint 프레젠테이션

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Microsoft Word doc

Transcription:

SCTPLIB 기반 msctp 핸드오버설계서 2006 년 8 월 경북대학교통신프로토콜연구실 이동화 (yiffie9819@gmail.com) 요약 본문서는 RAW socket을이용하여 user level에서구현한 SCTP STACK인 SCTPLIB와그추가확장규격인 Dynamic Address Reconfiguration(ADD-IP) 을이용하여수송계층에서 IP의이동성을제공함으로써이기종망에서의끊김없는핸드오버를지원할수있는시스템을설계함이그목적이다. 목 차 1. 서론.. 2 2. SCTPLIB 기반 IP 이동성지원모델. 2 2.1 SCTP 이동성기법 3 2.2 SCTP 핸드오버시나리오.. 4 3. 핸드오버구현을위한 SCTPLIB APIS.. 5 3.1 SCTPLIB의 ASCONF 모듈인터페이스설계. 5 3.1.1 sctp_bindx() 5 3.1.2 sctp_setpeerprimary(). 7 3.2 SCTPLIB API 사용순서.. 8 4. 결론.. 9 참고문헌. 9 1

1. 서론본문서는 RAW socket을이용하여 user level에서구현한 SCTP STACK인 SCTPLIB와그추가확장규격인 Dynamic Address Reconfiguration(ADD-IP) 을이용하여수송계층에서 IP의이동성을제공함으로써이기종망에서의끊김없는핸드오버를지원할수있는시스템을설계할수있음이그목적이다. 기본적으로 SCTPLIB의모든 API는 RFC 2960의 10장 "Interface with Upper Layer" 의내용에따라서크게 ULP-to-Upper 인터페이스와 SCTP-to-ULP Notification, 보조함수로구분되어서작성이되었으며, 각함수가사용하는인자들은부가적인설명이없이도개발자가쉽게이해할수있게설계되었다. 이동성지원을위해추가된함수역시기존 SCTPLIB의철학을따라서사용자에게친숙한형태를가지고있다. 본문서에서는 SCTPLIB 기반 msctp 핸드오버시스템의구조에대해서설명하고그시나리오에대하여분석하도록한다. 2. SCTPLIB 기반 IP 이동성지원모델 SCTP는 TCP/UDP에이은 3번째수송계층프로토콜로써종단간데이터신뢰전송기능을제공한다. 주요특징으로는 멀티스트리밍 (multi-streaming) 및 멀티홈잉 (multi-homing) 기능이있다. 먼저 SCTP 멀티스트리밍을통해하나의세션에서여러개의응용스트림을식별하여전송할수있으며, 멀티호밍특성을통해여러개의 IP 주소를 SCTP 세션에바인딩할수있다. 그림 1은 SCTP 멀티호밍개념을보여준다. SCTP는등록된여러 IP 주소중의하나로데이터를전송할수있다. 특히, 최근에개발중인 동적 IP 주소설정 (Dynamic Address Configuration) 방식에서는, 세션도중에새로운 IP 주소를추가하고 (Add-IP), 주요데이터전송경로를변경하거나 (Primary-Change), 기존 IP 주소를삭제하는 (Delete-IP) 기능이추가되었다. 그림 멀티홈잉 2

SCTP 이동성기법은상기와같은 멀티홈잉 특성및 동적 IP 주소설정 기능을활용하여, 이동단말의 IP 주소변경시에핸드오버를지원하는기술이다. 2.1 SCTP 이동성기법 SCTP 주요확장기능으로 ADD-IP 확장을들수있다. SCTP 기본규격에서는세션에사용되는 IP 주소를세션초기화단계에서만지정하도록되어있었으나, 본확장규격에서는세션도중에도신규 IP 주소를세션에등록하거나혹은삭제하는기능을제공한다. 또한세션도중에 primary IP 주소를변경하는기능도포함한다. 이러한 SCTP 세션에대한 IP 주소의재구성이필요할경우, 해당 SCTP는관련주소정보를 ASCONF (Address Configuration Change) 제어 Chunk에실어상대방에전송하며, 상대방은 ACSONF-ACK Chunk로응답할수있다. 위기능은특히이동단말이세션도중에다른 IP 망으로이전하게되는경우에, seamless handover 기능지원을위해필수적으로요구되는사항이다. 특히기존의 Mobile IP 경우, 핸드오버기능이취약하였으나 SCTP를통해핸드오버기능이상당히개선될것으로기대된다. 한편완전한 IP 이동성지원을위해서는핸드오버와함께, IP 단말에대한위치관리기능이제공되어야하며, 이를위해 Mobile IP의위치등록기능이함께사용될수있을것으로전망된다. 본절에서는 ASCONF 기능을활용한 seamless handover 절차에대해기술한다. 그림 2에보여지듯이, 이동단말이 SCTP를사용하며세션도중에 IP 지역을바꾸는경우핸드오버절차는다음과같다. (1) 먼저그림에서처럼, 세션초기화단계에서이동단말 (Mobile Node, MN) 은주소 2를, 상대단말 (Correspondent Node, CN) 은주소 1를사용하여 SCTP 세션을설정하였다고가정한다. (2) MN이다른 IP 영역으로이동하는경우, 중첩지역 (overlapping region) 에서신규주소 3을하위네트웍계층으로부터받게되면, 이를 ASCONF chunk를통해 CN 에게통지한다. 이를통해 MN은 dual-homing 상태가되며, CN으로부터의데이터를주소 2 뿐만아니라주소 3을통해서도받을수있게된다. (3) MN은무선계층의신호세기에따라 primary 주소를주소 3으로변경할수있다. (4) MN이중첩지역을벗어나는경우 ASCONF를통해기존주소 2를 SCTP 세션에서삭제할수있다. (5) 이러한절차가 SCTP 세션도주에 IP 지역을바꿀때마다되풀이된다. SCTP는이동단말 MT의이동으로 IP 주소가변경된경우에도, 바뀐주소를세션에바인딩함으로써세션이중단되지않는핸드오버기능을제공한다. 그림 2는 SCTP 핸드오버모델을보여준다. 3

그림 2. SCTP 핸드오버 2.2 SCTP 핸드오버시나리오상기핸드오버알고리즘은네트워크환경에따라다음두가지시나리오에적용될수있다. A. 시나리오 1 ( 그림 3(a) 참조 ): Dual-homing MT 3G-WLAN 혹은 3G-WiBro 연동처럼이종망간 Vertical Handover 상황에적용될수있다. MT 단말에두개의 NIC가탑재되고, 핸드오버동안에동시에두개의 NIC가활성화된다. 즉, MT는 dual-homing 상태에서패킷송수신을수행한다. B. 시나리오 2( 그림 3(b) 참조 ): Single-homing MT 3G 혹은 WiBro 등의동일망에서의 Horizontal Handover 상황에적용될수있다. MT는한순간에하나의 NIC 및 IP 주소를사용하며, single-homing 상태에서패킷송수신을수행한다. 그림 3에서처럼 시나리오 1 에서는중첩영역에서두개의 NIC가동시에활성화될수있는이종망간 Vertical 핸드오버를가정한다. 반면에 시나리오 2 에서는동일망간 Horizontal 핸드오버를가정하고, 한순간에 NIC를통해하나의 IP 주소만사용할수있다. 즉, 하위 L2/L3 계층에서 Link-Up 및 Link-Down이동시에발생하는 Hard Handoff를가정한다. 이경우, SCTP 계층에서 Add-IP, Primary-Change 및 Delete-IP 절차가거의동시에수행되어야한다. 4

그림 3. SCTP 핸드오버적용시나리오 SCTP 기반의핸드오버는기존의 MIP (mobile IP) 와는달리종단간수송계층에서이루어진다는특징이있으며, 따라서터널링등의네트워크라우터의도움이없이도적용가능하다. SCTP 핸드오버에대한유일한요구사항은 MN 및 CN에 SCTP가사용되어야한다는점이다. 이러한 mobile SCTP 기능은차세대 all-ip 기반이동통신망의 IP 이동성관리기법으로적용될수있을것으로전망된다. 3. 핸드오버구현을위한 SCTPLIB APIs 기본적으로 SCTPLIB의모든함수의 API는 RFC 2960의 10장 "Interface with Upper Layer" 의내용에따라서크게 ULP-to-Upper 인터페이스와 SCTP-to-ULP Notification, 보조함수로구분되어서작성이되었으며, 각함수가사용하는인자들은부가적인설명이없이도개발자가쉽게이해할수있게설계되었다. 이동성지원을위해추가된함수역시기존 SCTPLIB의철학을따라서사용자에게친숙한형태를가지고있다. Int sctp_bindx(int associationid, unsigned char addresses[][sctp_max_ip_len], Int noofaddresses, int flags); Int sctp_setpeerprimary(int associationid, unsigned char address[sctp_max_ip_len]); 3.1 SCTPLIB의 ASCONF 모듈인터페이스설계사용자인터페이스로서다음과같은 APIs의설계가필요하다. int sctp_getlocaladdress(unsigned int assoc_id, struct sockaddr **addrs); int sctp_getpeeraddress(unsigned int assoc_id, struct sockaddr **addrs); int sctp_freelocaladdress(struct sockaddr *addrs); int sctp_freepeeraddress(struct sockaddr *addrs); 3.1.1 sctp_bindx() 5

sctp_bindx() 의내부구현의전체적인흐름은리눅스커널코드를참조한다. 리눅스커널코드 SCTP_STATIC int sctp_setsockopt_bindx(struct sock* sk, struct sockaddr user *addrs, int addrs_size, int op) switch (op) case SCTP_BINDX_ADD_ADDR: err = sctp_bindx_add(sk, kaddrs, addrcnt); if (err) goto out: err = sctp_send_asconf_add_ip(sk, kaddrs, addrcnt); break; case SCTP_BINDX_REM_ADDR: err = sctp_bindx_rem(sk, kaddrs, addrcnt); if (err) goto out; err = sctp_send_asconf_del_ip(sk, kaddrs, addrcnt); break; default: err = -EINVAL; break; 위와같은형식을참조로 sctp_bindx() 의내부구현을다음과같이정의한다. int sctp_bindx(int SCTP_instance, struct sockaddr *addrs, int addrcnt, int flags) switch ( flags ) case SCTP_BINDX_ADD_ADDR: asc_add_ip(); => mdi_addaddresstoinstance()? mdi_xxx가맞는지고찰. => mdi_addlocaladdresstoassoc() asc_buildparam(); asc_sendrequest(); case SCTP_BINDX_REM_ADDR: 6

asc_del_ip(); => mdi_deladdressfrominstance() => mdi_deladdressfromassoc() asc_buildparam(); asc_sendrequest(); default: 3.1.2 sctp_setpeerprimary() sctp_setpeerprimary(). SCTP_STATIC int sctp_setsockopt(struct sock *sk, int level, int optname, char user *optval, int optlen) switch (optname) case SCTP_SET_PEER_PRIMARY_ADDR: retval = sctp_setsockopt_peer_primary_addr(sk, optval, optlen); break; static int sctp_setsockopt_peer_primary_addr(struct sock *sk, char user *optval, int optlen) chunk = sctp_make_asconf_set_prim(asoc, (union sctp_addr *)&prim.sspp_addr); if (!chunk) return -ENOMEM; err = sctp_send_asconf(asoc, chunk); 7

위와같은형식을참조로 sctp_setpeerprimary() 의내부구현은다음과같이구현한다 int sctp_setpeerprimary(int assoc_id, unsigned char address[sctp_max_ip_len) asc_buildparam(); asc_sendrequest(); 3.2 SCTPLIB API 사용순서 다음그림은 3.1 절의 SCTP 핸드오버알고리즘을구현하기위한 SCTPLIB API 사용법을순서 대로기술하고있다. 그림 4. 핸드오버를위한 SCTPLIB APIs 호출순서그림에서알수있듯이, MT의이동으로인해새로운영역의 Link-Up 신호가감지되고 IP 계층에서새로운 IP 주소를얻게되면, SCTP에서 sctp_bindx() 함수를호출하여 Add-IP 기능을수행한다. Add-IP 함수호출후에, SCTP ASCONF 패킷이 FS에게전달되며, FS는 ASCONF- ACK 패킷으로 MT에게응답한다. 새로운 Link 신호가강해지는경우혹은별도로정한규칙에의해, MT는 Primary-Change 패킷을 FS에게전송하고이를위해 sctp_setpeerprimary() 함수를호출한다. 구체적인 Primary- Change 발생시점은구현및적용시나리오에따라다를수있다. MT의추가적인이동으로기존 Link의신호를감지하지못하는경우, 기존 IP 주소는 SCTP 8

세션에서삭제되며이를위해 sctp_bindx() 함수가사용된다. 함수호출후에기존 IP 주소 는더이상 SCTP 세션에서사용되지않는다. 4. 결론 지금까지본고에서는 SCTPLIB를이용한핸드오버와그에해당하는 APIs에대하여살펴보았다. SCTP는 TCP 이후의차세대수송계층프로토콜로써지속적인표준확장및보급이이어질것으로전망된다. 시간이지남에따라 SCTP 보급이확대되면, 기존에 TCP를통해제공되던응용들도 SCTP를통해보다효율적으로제공될수있을것으로전망된다. 특히, 실시간멀티미디어전송및고도의신뢰성이요구되는응용에대해서는 SCTP의적용이선호된다. 또한, 차세대이동통신망에서의 IP 이동성제공측면에서도 SCTP의사용이긍정적으로검토될수있을것이다. 참고문헌 [1] Stewart R., et al., "Stream Control Transmission Protocol", IETF RFC 2960, October 2000 [2] Pastor J. and Belinchon M., SCTP Management Information Base, IETF Internet Draft, draft-ietf-sigtran-sctp-mib-08.txt, November 2002 [3] SCTP implementations by Linux, http://rivus.sourceforge.net/ [4] SCTP tutorial, http://www.iec.org/online/tutorials/sctp/ [5] Stewart, R., et al., " SCTP Dynamic Address Reconfiguration", IETF Internet Draft, draft-ietftsvwg-addip-sctp-19.txt, Jul 2007 9