원격교육시스템을위한멀티캐스트미들웨어의 설계및구현 (A Design and Implementation of Multicast Middleware for the Remote Educational Systems) 변상선 ( 邊相銑, Sang-Seon Byun) 진현욱 ( 陳弦煜, Hyun-Wook Jin) 유 혁 ( 柳爀, Hyuck Yoo) 연구세부분야 : 컴퓨팅의실제 소속기관 : 고려대학교컴퓨터학과 주소 : 서울성북구안암동 5가 1번지고려대학교컴퓨터학과운영체제연구실 ( 우 :136-701) 전화 : (02)3290-3639, 019-326-2084 팩스 : (02)922-6341 Email : 변상선 (ssbyun@os.korea.ac.kr) 진현욱 (hwjin@os.korea.ac.kr) 유혁 (hxy@os.korea.ac.kr) 원격교육시스템을위한멀티캐스트미들웨어
(A Multicast Middleware for the Remote Educational Systems) 요약 원격교육시스템은멀티캐스트를사용함으로써교육내용을전송하는서버의부하를줄일수있을뿐만아니라네트워크대역폭을효율적으로사용할수있다. 본논문은원격교육시스템을지원하기위한멀티캐스트미들웨어를설계, 구현한다. 본논문에서제시하는멀티캐스트미들웨어는다음과같은특성을갖는다 : 1) 피동적멤버를위한중앙집중적인멀티캐스트그룹관리를통해특정수신자그룹을송신자가지정하여멀티캐스트전송 2) 그룹관리서버와멤버의비정상적인종료로발생되는예외처리를위한멀티캐스트그룹정보유지 / 복구 3) 대용량멀티미디어데이터의멀티캐스트전송을위한단편화및역단편화지원과버퍼공유를통한추가적인데이터복사의제거. 개발된미들웨어는 30대의 PC가 Fast Ethernet으로연결되어있는원격교육시스템에실제로적용하여초당 18프레임의 320 X 120 픽셀의해상도를갖는동영상과 128kbps의음성데이터, 기타텍스트메시지를멀티캐스팅을통해요구조건을만족하는송수신성능을보였다. * 키워드 : 멀티캐스트, 중앙집중적그룹관리, 수동적멤버
Abstract By choosing Multicast for transmission of educational contents in the Remote Educational System, we can reduce the server load and increase network bandwidth utilization. We design and implement Multicast Middleware for the Remote Educational System in this paper. There are three characteristics in this Multicast Middleware: 1) Through Centralized Multicast Group Management for passive members, it allows a host to make multicast group, which is composed of receivers, called Group Member and who are chosen by the host, called Group Maker. Because, all groups are created by the Group Maker in Centralized Group Management, Group Member s join action will be passive 2) Maintenance and recovery of multicast group information in order to restore from exception and crash; the maintenance and recovery mechanism of Group Maker is distinct from that of Group Member. 3) The mechanism which enables to transmit large size multimedia data through multicasting and remove additional copy operation through shared buffer. Fragmentation/de-fragmentation for large data delivery results in additional copy operation in user level. But by using user level shared buffer, it can be done without user level copy operation. By applying to Remote Educational environment which consists of 30 PCs and Fast Ethernet, we can examine the efficiency of this middleware, which can transmit 18frames/sec movie which resolution 320 X 120 pixels, 128Kbps encoded sound data and some text data. * Key words: Multicast, Centralized Group Management, Passive Member
1. 서론 원격교육시스템은교육내용을전송하는서버 ( 교사컴퓨터 ) 와그내용을받는클라이언트 ( 학생컴퓨터 ) 로이루어진다. 이러한원격교육시스템에서멀티캐스트를사용하면, 교사컴퓨터의부하를줄일수있을뿐만아니라, 네트워크의대역폭을효율적으로사용할수있다. 또한멀티캐스트그룹을각각의채널로활용하여데이터타입별로송수신할수있는장점이있다 [1]. 따라서원격교육시스템을위한멀티캐스트미들웨어는시스템의효율성및응용프로그램구현의용이성을제공한다 [2][3]. 원격교육시스템을위한멀티캐스트미들웨어에게가장요구되어지는특성은바로피동적멤버를위한멀티캐스트그룹관리이다. 교육시스템에서교사컴퓨터는능동적으로멤버를정하여교육정보를제공하고학생컴퓨터들은피동적멤버가된다. 따라서교사컴퓨터가그룹및멤버쉽관리를관장해야한다. 하지만, 기존의 IGMP(Internet Group Management Protocol) 를기반으로한멀티캐스트는그룹의멤버가주체가되어가입 (join) 또는탈퇴 (leave) 를수행한다 [4]. 교육용시스템의또다른특성중하나는학생컴퓨터의비정상적인종료에있다. 이와같은비정상적인종료후재시동시에도형성되었던멀티캐스트그룹멤버쉽에관련된정보를복구해줘야한다. 이와같은예외처리는교육중에일어날수있는예기치못한상태를자동복구해줄수있다. 또한네트워크대역폭이증가함에따라, 원격교육자료는단순한텍스트뿐만아니라음성, 화상과같은멀티미디어데이터로이루어진다. 따라서대용량데이터전송에적합한미들웨어가요구된다 [1]. 본논문은이와같은원격교육용시스템의요구에적합한멀티캐스트미들웨어를설계, 구현한다. 멀티캐스트미들웨어는마이크로소프트사의윈도우운영체제제품군에 Winsock Version 2 API를사용하여구현하고실제원격교육용소프트웨어에적용하여그유용성을검증한다 [5]. 본논문은다음과같이구성되어있다. 본서론에이어 2장에서는본논문에서개발하
는멀티캐스트미들웨어의구조를설명한다. 3장은피동적멤버를위한멀티캐스트그룹관리에대해서논한다. 4장은예외처리를위한멀티캐스트그룹유지기법을설명하고, 5장은대용량멀티미디어데이터전송방법에대해서기술한다. 제시한미들웨어에대한구현및실험은 6장에서설명한다. 7장에서는관련연구를서술하고마지막으로 8장에서본논문의결론을맺는다.
2. 멀티캐스트미들웨어 2.1 어플리케이션요구사항 이멀티캐스트미들웨어가적용될교육용어플리케이션이요구하는사항은다음과같다. (1) 중앙집중적멀티캐스트그룹관리 : Group Maker( 교사 PC) 에의해모든멀티캐스트그룹이생성 / 소멸 / 수정될수있어야한다. Group Member( 학생 PC) 는피동적멤버로서 Group Maker로부터그룹가입 / 탈퇴의제어를받게된다. 이때, 이러한그룹생성 / 소멸 / 수정과관련된제어메시지전달에있어최소한의지연시간을갖도록하고, 그결과를어플리케이션에게전달한다. (2) 교사 PC 와학생 PC 의비정상적인종료에따른예외상황처리 : 교사 PC 또는학 생 PC 가비정상적인종료후재시작을하더라도기존의멀티캐스트그룹정보를유지 할수있어야한다. (3) 대용량데이터전송 : 64KB 이상의대용량데이터의멀티캐스팅을위한단편화와역 단편화기능을수행할수있어야한다. 단편화와역단편화수행에따른별도의복사과 정으로인한성능저하를제거한다. (4) 다양한데이터의동시송수신가능 : 멀티캐스트를통해다양한데이터의송수신이 동시에이루어져야한다. 즉, 여러종류의데이터를각기다른주소를사용하여동시에 송수신할수있어야한다.
2.2 미들웨어전체구조 그림 1. Group Maker 의미들웨어구성도 그림 2. Group Member 의미들웨어구성도 본미들웨어를사용하는원격교육시스템은교사의컴퓨터에서모든멀티캐스트그룹
의관리가이루어지고, 학생의컴퓨터는피동적으로교사컴퓨터의그룹관리에따라가입및탈퇴를한다. 따라서, 본논문에서는교사의컴퓨터를 Group Maker, 학생의컴퓨터를 Group Member 라는용어를사용하여설명한다. 멀티캐스트미들웨어는그림 1, 2와같이 Group Maker와 Group Member를위한미들웨어가각각존재한다. 각모듈별역할은간략하게다음과같다. (1) API: 응용프로그램에게미들웨어의기능을사용하기위한프로그램인터페이스를제공한다. 제공되는대표적인 API들은표 1과같다. API Make_McastGroup() Group_Modify_Send() Close_Group() Mcast_Send() Mcast_SendLarge() Mcast_Recv() Description 멀티캐스트그룹생성멀티캐스트그룹에하나의멤버를추가 / 삭제멀티캐스트그룹소멸멀티캐스트데이터송신대용량의멀티캐스트데이터송신멀티캐스트데이터수신 표 1. 멀티캐스트미들웨어 API (2) Group Manager, Group Management Handler: Group Maker의 Group Manager가멀티캐스트그룹을생성 / 수정 / 삭제하는메시지를작성하여해당 Group Member에게전달하고 Group Member의 Group Management Handler는그룹에가입또는그룹으로부터탈퇴를수행한다. (3) Group Exception Handler, Member Exception Handler: 비정상적인종료로부터재시작하였을경우자신이유지하고있던멀티캐스트그룹관련정보를복구하기위해필요하다. Group Maker는그룹관리연산이이루어질때마다이를파일로저장을하게되고, Maker Exception Handler를통해파일로부터그룹정보를복구한다. Group Member는 Member Exception Handler를통해 Group Maker에게그룹정보를
요청하고, 이를전달받은 Group Maker로부터해당그룹으로의가입메시지를전달받아서그룹정보를복구한다. (4) Multicast Buffer Manager: 대용량데이터에대한멀티캐스트송수신을수행한다. 멀티캐스트는전송계층으로 UDP를사용하기때문에 64KB 이상의데이터송수신을위해서는별도의송수신버퍼관리가필요하게된다. 이를위해서 Multicast Buffer Manager는 64KB보다큰데이터에대해서단편화와역단편화를수행한다.
3. 그룹관리 원격교육시스템은 Group Maker가특정 Group Member들을선택하여교육및제어데이터를송신해야효율적이다. 즉, 멀티캐스트그룹의멤버들은기존의멀티캐스트시스템과같이그룹가입과탈퇴동작이허용되는능동적멤버이어서는안되고, 오직 Group Maker에의해서만그룹가입 / 탈퇴동작을수행되는피동적멤버이어야한다. 또한, 교육중간에빈번하게그룹이생성 / 수정 / 소멸되기때문에효율적이고정확한그룹정보관리가요구된다. 본장에서는이러한피동적멤버를위한관리기법을제시한다. 3.1 그룹생성 그림 3. 그룹생성과정그룹생성은하나의멀티캐스트그룹을생성하여 Group Maker 자신도멤버로가입을한후, 지정된 Group Member들을가입시키는것이다. 그림 3과같이 Group Maker의응용프로그램이그룹의생성을미들웨어에게 Make_McastGroup() 을사용하여요청하면, 같은멀티캐스트주소를사용한그룹이이미만들어졌는가를검사한다. 생성, 수정의경우 Group Member 측에서도정당성확인이필요하다. 그이유는 Group Maker가비정상적인종료후재시작하였을때예외처리과정 (4. 예외처리참고 ) 을통해재차그룹을생성하려할것이고, 이때, 이미같은멀티캐스트주소를
갖는그룹의멤버인 Group Member들은이요청에응답을해서는안되기때문이다. 만약, 응답을하게되면같은그룹에재차가입하는것이되어소켓및자료구조, 송수신쓰레드, 수신버퍼를중복운용하게되므로자원의낭비를초래하게된다. 정당성확인절차에서 Group Maker는그룹테이블을통해자신이이미만든그룹중에같은멀티캐스트주소를갖는레코드항목의존재를확인한다. Group Member는자신이가입한그룹주소리스트를통해확인한다. 이미존재하고있는동일한그룹이없으면다음의과정을통해서그룹을생성한다. (1) 그룹가입요청메시지를 Group Member들에게전달한다 ( 그룹가입요청메시지와같은그룹제어메시지들의전송프로토콜은 3.4절에서설명한다 ). (2) 그룹가입요청메시지를전달받은 Group Member는이미해당그룹의멤버인지그정당성을확인한다. 그룹정당성에이상이없으면, 미들웨어는요청받은그룹에가입을한다. (3) 정상적으로가입이완료되면미들웨어는응용프로그램에게해당멀티캐스트그룹으로가입이되었음을알리고, Group Maker의미들웨어에게가입이성공적으로이루어졌음을알린다. 3.2 그룹수정 그림 4. 그룹수정과정
그룹수정은그림 4 와같이이미생성되어진그룹내에서하나의멤버를가입또는 탈퇴하는것을말한다. Group Maker 는 Group Table 을통해서가입일경우는그 Group Member 가해당 멀티캐스트그룹의멤버가아닌지, 탈퇴일경우는멤버인지확인한다. 확인후이상이 없으면, 다음의과정을수행한다. (1) Group Maker 의미들웨어는응용프로그램으로부터하나의 Group Member 를가입 또는탈퇴할것을요청받으면그 Group Member 에게메시지를전달한다. (2) 그룹수정메시지를수신받은 Group Member 의미들웨어는정당성을확인하고, 정당성에위배될경우그룹수정거부를 Group Maker 에게응답한다. 거부를응답하는조건은다음과같다. i. 가입요청에대해해당멤버가이미해당그룹의멤버이다. ii. 탈퇴요청에대해해당멤버는해당그룹의멤버가아니다. (3) Group Member 는정당성이확인되면, 요청받은그룹에가입또는탈퇴를한다. (4) 정상적으로수정이이루어지면, Group Member 의미들웨어는응용프로그램에게 그룹수정이되었음을알리고, 그룹수정메시지를전달한 Group Maker 의 미들웨어에게그룹수정이성공적으로이루어졌다는메시지를전송한다. 3.3 그룹소멸 그룹소멸은그림 5 와같이존재하고있는그룹의모든멤버를탈퇴 (pruning) 시키고 Group Maker 자신도탈퇴하는것을말한다. 그룹소멸을수행하기전에 Group Maker는정당성을확인한다. Group Maker에서그룹소멸시확인하는정당성은 Close_Group() 이해당그룹의 Group Maker에의해호출되었는지를확인하는것이다. Group Maker의정당성이확인되면다음의과정을통해그룹을소멸한다.
(1) Group Maker는그룹탈퇴요청메시지를 Group Member들에게전달한다. (2) Group Member의미들웨어는해당그룹으로부터탈퇴를한다. (3) 탈퇴가정상적으로이루어지면 Group Member의미들웨어는응용프로그램에게해당그룹으로부터탈퇴하였음을알리고, Group Maker의미들웨어에게그룹탈퇴가성공적으로이루어졌음을알린다. 3.4 그룹관리메시지전송프로토콜 그림 5. 그룹소멸과정 Group Maker가 Group Member들에게그룹생성 / 수정 / 소멸과관련한그룹제어메시지를전송하는프로토콜에따라그룹제어성능이크게달라질수있다. 본논문에서는 Broadcasting, Broadcasting with ACK, TCP, UDP with ACK의네가지다른전송프로토콜을비교하여그룹제어메시지전송에적합한프로토콜을선택한다. UDP나 Broadcasting이 TCP에비해나은성능을보일것은자명하나, 이가운데 Broadcasting with ACK과 UDP with ACK의성능이본실험의주비교대상이다. Broadcasting은근거리교육시스템에서그룹제어메시지를모든 Group Member에게한번에전송할수있는장점이있다. 하지만, Broadcasting을이용할경우, 제어메시지에대한신뢰성을보장해주지못한다. 또한그룹에가입또는탈퇴할 Group Member들이명시되어있어야하기때문에메시지의길이가길어진다. 그리고 Broadcasting된메시지에반응하지않아야하는 Group
Member 들까지메시지를수신하는단점이있고, Group Maker 와 Group Member 들이근거리 내에위치하지않을경우에는적용하지못한다. Broadcasting의비신뢰성을보완하기위해서 Broadcasting with ACK을사용할수있다. Group Member들이그룹제어메시지를보낸 Group Maker에게 ACK을보냄으로써신뢰성을보장한다. 이때, 고려되어야하는것은 ACK가서버측으로일시에몰리는현상 (ACK Implosion) 이다. 이러한현상을제거하기위해서 Group Member는랜덤대기시간후 ACK를송신할수있다. 하지만효율적인랜덤대기시간을정하는것은어려운일이다. TCP는신뢰성이보장되는전송프로토콜이므로그룹제어메시지를전송하기에적합하다. TCP를사용하여그룹제어메시지를전송할경우, Group Maker는해당 Group Member들각각에게 TCP 연결을설정하고제어메시지를전송한후 TCP 연결을닫는작업을차례로한다. 시스템수행동안제어메시지를위한 TCP 연결을모든 Group Member와설정하고지속적으로유지할수도있지만, Group Member의수가많을경우에는연결설정유지에필요한메모리의낭비를초래할수있다. UDP with ACK은전송계층으로 TCP보다는오버헤드가적은 UDP를적용하고, UDP의비신뢰성을보완하기위해서 ACK기법을사용한다. TCP를사용하는경우와마찬가지로, Group Maker는해당 Group Member들에게그룹제어메시지를전송하고 ACK을받는작업을순차적으로수행한다. 재전송을위한타이머는 Group Maker와 Group Member간의 Round-Trip-Time(RTT) 를이용하여설정할수있다. 설명된네프로토콜에대한성능분석은그림 6과같다. 그림 6은그룹생성동작의성능을측정한것이다. 그룹생성시모든프로토콜은 Group Maker 자신의그룹가입, 그룹가입요청메시지작성, 메시지전송의절차를거치게되며, Broadcasting without ACK을제외한모든프로토콜은 Group Member로부터처리결과를수신한다. 정상적인상황에서의비교를위해네트워크상의물리적오류, 운영체제상의오류로인한패킷손실은없다고가정하였다.
16 14 Delay (ms) 12 10 8 6 4 Broadcasting with ACK TCP UDP with ACK Broadcasting without ACK 2 0 1 2 3 4 5 Number of Members 그림 6. 그룹생성시각전송프로토콜의처리시간 각프로토콜의성능분석방법은다음과같다. Broadcast without ACK을제외한 TCP, UDP with ACK, Broadcast with ACK 프로토콜은그룹관리메시지를전송하고난다음부터모든 Group Member들로부터응답을받기까지걸리는시간을측정하였다. TCP의경우는 Group Maker로부터모든 Group Member들과의 1:1 TCP 세션을유지한상태에서, UDP의경우는 1:1 연결소켓만생성한상태에서순차적으로 Group Member들에게일일이그룹관리메시지를전송하였다. 응답은수신쓰레드를따로두어서처리를하였다. Broadcast with ACK의경우는한번의브로드캐스팅으로그룹관리메시지를모든멤버에게전달하고, 역시응답은수신쓰레드를따로두어처리를하였다. 그림 6에서 Broadcasting without ACK이가장적은지연시간을보이고있다. 또한쉽게예상할수있듯이 UDP with ACK이 TCP에비해훨씬좋은성능을보이고있다. Broadcasting without ACK의경우한번에모든 Group Member들에게제어메시지를전송할수있기때문이다. 하지만, Broadcasting without ACK은성능비교를위한기반을제시해줄
뿐, 신뢰성을제공해주지못하기때문에실제로응용하기에는문제점이있다. Broadcasting with ACK은그룹의멤버수가증가함에따라그지연시간이급격하게증가하는것을알수있다. 이것은 ACK Implosion을막기위해서 Group Member들이랜덤대기시간후 ACK을전송하기때문이다. 랜덤대기시간을조정하면지연시간을줄일수는있으나, 최상의랜덤대기시간을찾는것은어려운문제이다. TCP와 UDP with ACK은그림 6에서보듯이선형적으로처리시간이증가하는것을알수있다. 하지만 TCP와 UDP with ACK은지연시간에서큰차이를보이고있다. 이것은 TCP가연결을설정하고제거할때마다각각 three-way handshake와 active/passive close를수행하기위해서 TCP 제어패킷들을교환하기때문이다 [6]. 이러한실험결과는하나의제어메시지를보내기위해서 TCP 연결을생성, 제거하는것은비효율적이라는것을보여준다. 따라서본논문에서는그룹제어메시지전송을위한프로토콜로서 UDP with ACK을선택하고, 비교된나머지전송프로토콜들은옵션으로구현한다. 4. 예외처리
원격교육시스템이동작하는동안시스템또는사용자의오류로인해서 Group Maker 또는특정 Group Member가비정상적으로종료후재시작할수있다. 이때, 재시작된 Group Maker 또는 Group Member는가입된그룹의멤버쉽을모두잃게되어수신해야할데이터를수신하지못하게된다. 본미들웨어는예외처리모듈을통해서 Group Maker와 Group Member가이러한예외상황을처리할수있도록한다. 4.1 Group Maker 예외처리 생성된그룹과그그룹별로멤버리스트를관리하고있는 Group Maker가오류를일으켜서동작이중지된다면 Group Maker가정상적인상태에서유지하고있는 group table은자료구조이기때문에모든멤버쉽정보를잃어버리게된다. 이러한경우를위해서 Group Maker는생성한멀티캐스트그룹주소와그그룹의멤버주소를자료구조와동시에파일의형태로도유지한다. 즉, 그룹생성 / 수정 / 소멸작업이이루어질때마다파일을갱신하여최신정보를유지한다. 정상적으로종료했을경우에는파일을삭제한다. 그리고, 비정상적으로종료후재시작하였을경우다음의과정을수행한다. (1) Group Maker 의멀티캐스트미들웨어가시작될때마다, 그룹정보가저장되어 있는파일의존재유무를확인한다. (2) 만약비정상적인종료후, 재가동된것이면파일로부터정보를받아자동적으로 종료직전의상태로되돌리기위해그룹생성연산을수행한다. (3) 그룹정보를저장하는파일이존재하지않으면정상적인종료가된것으로 간주한다. 4.2 Group Member 예외처리 Group Member 가하나이상의멀티캐스트그룹에가입된상태에서비정상적으로 종료될경우, Group Member 는멀티캐스트그룹에대한정보를잃어버리게된다. Group Member 의이러한예외상황에대처하기위해서 Group Member 는다음을수행한다. (1) Group Member 의미들웨어가초기화될때, 현재자신이특정그룹의멤버였는가를
요구하는메시지 ( 멤버쉽쿼리 ) 를 Group Maker 에게전송하고, 응답을기다리게된다. 이때, 명시적인응답이없으면정상적인종료 ( 그룹수정의탈퇴연산후종료 ) 를 수행한것으로간주한다. (2) 이멤버쉽쿼리를수신받은 Group Maker 는 Group Table 을참조하여해당 Group Member 가자신이만든그룹의멤버인지확인하다. 멤버임이확인되면, 그 Group Member 에게그룹수정의가입요청메시지를송신한다. (3) 멤버쉽쿼리를전송한 Group Member 는 Group Maker 로부터그룹가입요청 메시지를수신받으면해당그룹에가입을하여가장최근상태의멤버쉽정보를 유지하게된다.
5. 대용량데이터의멀티캐스팅 멀티캐스트의전송계층인 UDP 는최대 64KB 의데이터만을전송할수있다. 하지만, 원격교육컨텐츠는대용량의멀티미디어데이터로이루어져있다. 따라서응용프로그램은 전송할대용량의데이터에대한단편화작업을수행해야한다. 본논문의미들웨어는이와같은대용량데이터의단편화에대한추상을제공하기 위해서그림 7 과같이단편화를수행한다. 각단편의헤더에포함되는정보는다음과같다. 그림 7. 대용량데이터의단편화 (1) Identifier : 다른대용량데이터로부터단편화된일련의패킷과구별하기위해 랜덤하게생성된다. 이식별자는연속해서다른대용량의데이터를구성하는 단편이들어왔을경우구별하기위해서필요하다. (2) Number of Packets : 단편화를수행한후, 몇개로나누어졌는가를나타낸다. (3) Sequence Number : 단편화가되었을경우 0 부터순서대로다음단편으로진행될 때마다 1 씩증가된다. 이 sequence number 를이용하여수신측은수신버퍼의
시작지점으로부터 ( 단편의크기 * sequence_number) bytes 지점에저장을하게 된다. 위와같이송신되어진멀티캐스트데이터를수신할때, 응용프로그램이수신버퍼를폴링하여들어온데이터가있으면응용프로그램이가져가거나, 아니면데이터가들어올때미들웨어가응용프로그램에게윈도우메시지를전송하여수신하게할수있다. 이때, 미들웨어가수신한데이터가단편화가발생한데이터의일부일경우, 원래데이터를구성하는모든단편이수신된후에응용프로그램이데이터를읽어가도록한다. 단편화가발생된데이터를수신할경우, 단편화가발생된데이터의마지막부분이손실되면교착상태에빠지게된다. 이를막기위해단편화가발생된데이터중에서서로인접한두단편의도착시간차이를수신자는측정한다. 측정한이시간의두배를수신자는다음단편이도착하기까지대기하는시간으로설정한다. 패킷손실로인해연속적인두단편의도착시간차이측정이불가능할경우대기시간을일정한시간으로설정한다. 이대기시간이지나도다음단편이수신되지않으면, 미들웨어는이제까지수신한데이터의버퍼포인터를응용프로그램에게전달하게된다. 미들웨어가데이터의송수신을관장할때, 성능을좌우하는중요한요소는데이터복사이다. 응용프로그램과미들웨어가별도의통신버퍼를사용하게되면, 응용프로그램의버퍼와미들웨어의버퍼간데이터이동을위해서데이터복사가발생한다. 이오버헤드는멀티미디어데이터일경우에그대용량성에의해서더치명적이다. 본미들웨어는버퍼에대한포인터만을응용프로그램과교환하고버퍼자체는공유하도록한다. 수신버퍼할당은미들웨어가수행하며, 이버퍼의포인터를전달받은응용프로그램이해지한다. 미들웨어는버퍼를할당할때단편화없이하나의패킷으로전달가능한데이터의최대사이즈로할당한다. 소켓을통해데이터가도착하면버퍼의포인터를어플리케이션에게전달하고미들웨어는다음에수신될데이터를위해새로운버퍼를할당한다. 단편화가발생된패킷이수신되었을경우에는모든단편이수신될때까지이전단편이차지하고있는버퍼에새로수신된단편을계속붙여나간다. 모든단편이수신되면
첫번째단편의버퍼포인터를어플리케이션에게전달한다. 어플리케이션은수신받은 데이터에대한처리가모두끝나면버퍼를해지한다.
6. 구현및실험 그림 8. 실험환경 제시한멀티캐스트미들웨어는마이크로소프트사의윈도우제품군 (Windows NT/98/ME/2000) 에구현되었으며, 응용프로그램으로는 ( 주 ) 훈소프트의 Schoolcap2를적용시켰다. Schoolcap2는근거리망에서 PC실습교육을위한원격교육시스템으로서음성, 화상, 텍스트데이터의송수신이이루어진다. 실험은 30대의 PC가 Fast Ethernet으로연결되어있는환경에서수행하였고, 2.1절에서제시한이교육용소프트웨어가미들웨어에게요구하는기능들을대상으로다음과같이실험하였다. (1) 중앙집중적멀티캐스트그룹관리 : 교사 PC를통해 30대의학생 PC를대상으로멀티캐스트그룹을생성 / 삭제 / 수정연산을수행하였다. 그룹연산은 UDP with ACK을사용하였다. 실험과정에서교사 PC로부터처음송신된생성 / 삭제 / 수정메시지를받지못한학생이발생하기도하였다. 그러나교사 PC에서메시지를재전송함으로써모든학생이메시지를수신받아서메시지에따른그룹연산을수행하는것을확인할수있었다. (2) 교사 PC 와학생 PC 의비정상적인종료에따른예외상황처리 : 윈도우운영체제
상에서강제적인프로세스종료를통해, 교사 PC와학생 PC에예외상황을발생시켰다. 예외상황을발생시킨후, 교사 PC와학생 PC의어플리케이션을재시작하였을때, 예외상황발생직전의상태로모든그룹의정보가복구되었다. 교사 PC만을강제종료후복구하는과정, 학생 PC만을강제종료후복구하는과정, 교사 PC와학생 PC를모두강제종료후복구하는과정에대해모두실험하였다. (3) 대용량데이터전송 : 대용량멀티미디어데이터의전송지원을확인하기위해초당 18프레임의 320 X 120의 MPEG 동영상파일과캠코더와 MPEG 보드를통해실시간인코딩된동영상데이터의전송을실험하였다. 그리고, 교사 PC에서동영상을재생하면서학생 PC에서도교사 PC로부터전송받은동영상파일을실시간으로재생하였다. 실험결과, 교사 PC에서재생되는프레임과학생 PC에서재생되는프레임이거의일치하는것을확인할수있었다. 구현된미들웨어는멀티캐스트데이터전송의신뢰성을보장하지못하기때문에, 패킷손실에의한학생 PC 화면의일시적인품질저하현상이관찰되었다. 다른대용량데이터의전송을실험하기위해 1024 X 768의윈도우데스크탑화면을실시간으로인코딩하여전송하였다. 인코딩은 RLE(Run Length Encoding) 만을사용하였고, 동영상과같이빈번하게프레임이변하지않는다는점을감안하여, 손실된매크로블록에대해서재전송을해주는에러제어모듈을어플리케이션에서구현하였다. 또한, 동영상전송과같이일정한프레임으로전송하지않고, 윈도우데스크탑화면의변화를감지하여, 변화가있을경우, 변화가생긴매크로블록만을전송해주는방식을사용하였다. 실험결과, 변화가발생한화면영역이커지면커질수록, 전송해야하는데이터의용량이커지고또그에따른에러제어모듈의동작으로인해품질저하가발생함을확인하였다. 이는전용의 MPEG 보드를사용한동영상전송과달리어플리케이션에서직접 RLE 인코딩과디코딩작업을행함에따라, 성능이저하되는것을확인하였다. (4) 다양한데이터의동시송수신 : 아래와같은데이터종류별로각각하나의
멀티캐스트그룹을할당하여동시에전송하는과정을실험하였다.. (i) 128Kbps 로인코딩된음성파일 (ii) 채팅메시지 (iii) 윈도우데스크탑화면 (1024 X 768) (iv) 동영상파일 (320 X 120, 18frame/s) (v) 어플리케이션이사용하는각종제어메시지 실험결과, (iii) 의윈도우데스크탑화면의변화로데스크탑화면의인코딩과전송, 수신과정이발생하게되면 (i) 의음성파일과 (iv) 의동영상파일의일시적인 품질저하 ( 끊김현상 ) 가발생하였다. 7. 관련연구
원격교육시스템과같은중앙집중적인그룹관리는 CGM(Contractual Group Membership)[7] 메카니즘을통해서그예를찾아볼수있다. CGM은멤버를대역폭, 전송지연, 패킷손실률에따라비슷한성능을갖는멤버끼리서브그룹을형성하여멀티캐스팅에있어서공정성을이루는그룹관리메커니즘이다. 이연구는중앙집중적인그룹관리를통해서브그룹형성이있을경우가전반적인성능의향상을가져온다는것을보이고있다. 그러나, 그룹관리와관련한구체적인구조제시와구현은이루어지지않았다. STORM(Structure-Oriented Resilient Multicast)[8] 과 LVMR(Layerd Video Multicast Recovery)[9] 에서는멀티미디어스트리밍을전송할때있어서각멤버들과링크의성능에따라서브그룹을형성한다. 그런후에, STORM은각그룹별로그그룹의성능에적합한 bit rate로스트리밍을인코딩하는것이며, LVMR은패킷손실을복구할때, 각그룹별로그그룹의성능에부합하는레이어에해당하는인코딩데이터를복구하는것이다. LMR(Layered Multicast Recovery)[10] 은각멤버들의패킷손실률을통계적으로예측하여비슷한손실률을갖는멤버끼리서브그룹을형성한다. 송신자는이들그룹별로해당손실률에따른에러를충분히복구할수있는 FEC(Forward Error Correction) 데이터를여분으로첨가하여전송하는것이다. 이와같은 STORM, LVMR, LMR의서브그룹형성에본멀티캐스트미들웨어에서사용하는중앙집중적인그룹관리를통해더욱효율적으로이루어질수있다. 8. 결론및향후과제 본논문은특정호스트 (Group Maker) 가멀티캐스트그룹을생성 / 수정 / 소멸할수있는
중앙집중적인멀티캐스트그룹관리, Group Maker와 Group Member 각각을위한예외처리, 단편화와역단편화, 그리고공유버퍼관리를통해대용량멀티미디어데이터의송수신이가능한멀티캐스트미들웨어를설계, 구현하였다. 그리고, 다양한형태의데이터를데이터별로각각하나의멀티캐스트그룹을할당동시에송수신할수있도록하였다. 이미들웨어를교육용어플리케이션에적용, 위와같은기능들이원활히수행되어짐을확인하였다. 향후계획으로는원거리멀티캐스팅으로의확장을위해신뢰성을갖는멀티캐스트프로토콜과, 이질적 (heterogeneous) 수신자를위한세션및수신자간의공정성 (fairness) 확립, 실시간멀티미디어데이터전송에적합한에러복구, 흐름제어기법의개발및도입이이루어져야할것이다. 또한, 본미들웨어의예외처리는전적으로로그파일에의존을하고있기때문에, 파일에그룹정보의변경사항을기록하는도중발생하는예외상황에대해서는대처를하지못하고있다. 향후, 파일에의존하지않는예외처리가요구된다. 그리고, Group Maker 와 Group Member 간의멤버쉽정보의동기화를위한정형검증 등이필요하다.
참고문헌 [1] X. Li, Scalable and Adaptive Video Multicast over the Internet, PhD thesis, Georgia Institute of Technology, 1998. [2] C. Diot, B.N. Levine, B. Lyles, H. Kassem, and D. Balensifen, Deployment issues for the IP multicast service and architecture, IEEE Network, Volume: 14, Issue: 1, Jan.- Feb. 2000. [3] R. Wittmann and M. Zitterbart, Multicast Communication: Protocols and Applications, Morgan Kaufmann Publishers, 2001. [4] W. Fenner, Internet Group Management Protocol, version 2, IETF RFC 2236, Nov. 1997. [5] A. Jones and J. Ohulund, Network Programming for Microsoft Windows: Clear, Practical guide to Microsoft s networking APIs, Microsoft Press, 1999. [6] R. Stevens, TCP/IP Illustrated: The Protocols, Addison-Wesley Publishing Company, 1994. [7] T. Asfour, S. Block, A. Serhrouchni and S.Tohme, Contractual Group Membership CGM: a new mechanism for multicast group management, Computers and Communications, 2000, Proceedings, ISCC 2000, Fifth IEEE Symposium on, 2000. [8] X. R. Xu, A. Myers, H. Zhang, and R. Yavatkar, Resilient multicast support for continuous-media applications, in Proceedings of NOSSDAV 97, May 1997. [9] I. Rhee, S. R. Joshi, M. Lee, S. Muthukrishnan and V. Ozdemir, Layered Multicast Recovery, in Proceedings of IEEE INFOCOM 2000, 2000. [10] X. Li, S. Paul, P. Pancha, and M. H. Ammar, Layered Video Multicast with Retransmission(LVMR): Evaluation of error recovery, in Proceedings of NOSSDAV 97, May, 1997.