CoAP Observe: 예제및활용 2017 년 1 월 경북대학교통신프로토콜연구실 정중화 최동규 목 차 1. 서론 COAP 이란? COAP OBSERVE 란?

Similar documents
1. 서론 사물인터넷 (IoT : Internet of Things) 의개념은 1999년케빈애쉬톤 (Kevin Ashton) 에의해최초로사용되었다. 초기에케빈애쉬톤이사용을하던개념은 RFID 태그를활용한시스템의발전을시작으로개념이조금씩변화되어, 최근에는유비쿼터스컴퓨팅을포함


Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

The Pocket Guide to TCP/IP Sockets: C Version

OM2M 기반의 OHP-M2M 오픈소스설치가이드 2015 년 8 월 경북대학교통신프로토콜연구실 최예찬, 강형우 요약 사물인터넷 (Internet of Things: IoT) 이이슈가되면서다양한사

0. 들어가기 전

게시판 스팸 실시간 차단 시스템

슬라이드 1

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

메일서버등록제(SPF) 인증기능적용안내서 (AIX - sendmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 AIX 5.3 sendmail spf-filter 년 6 월

Windows 8에서 BioStar 1 설치하기

[Brochure] KOR_TunA

3 : BLE CoAP 6LoWPAN (Cheol-Min Kim et al.: Implementation of CoAP/6LoWPAN over BLE Networks for IoT Services).,, [1]. [2], (Wireless Sensor Network,

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

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

Microsoft Word - 서두옥

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

PowerPoint Template

Microsoft Word - src.doc

하는 요구이다. 또한 사람이 인지하고 처리하는 수준에 서 확장하여 사물 간의 통신이 이루어져 일처리를 해 주는 스마트한 세상을 만들고자 한다. 실제 M2M, IoT 등이 추구하는 바가 궁극적으로 이러한 세상을 만드는 것일 것이다. 그렇다면 사물 웹(WoT)의 의미를 어

Secure Programming Lecture1 : Introduction

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

3. MOBIUS 서버플랫폼의 SOURCE 구조몇구성 MOBIUS 서버플랫폼 SOURCE 구조 MOBIUS 서버플랫폼의구성 MOBIUS 서버설치 (WINDOWS) REDIS DB 설치

TTA Journal No.157_서체변경.indd

Install stm32cubemx and st-link utility

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 년 6 월

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

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

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - 03-TCP Programming.ppt

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix spf-filter 년 6 월

Subnet Address Internet Network G Network Network class B networ

ibmdw_rest_v1.0.ppt

Keil Flexlm 라이선스 설명서

JDK이클립스

제20회_해킹방지워크샵_(이재석)

2009년 상반기 사업계획

UDP Flooding Attack 공격과 방어

PowerPoint 프레젠테이션

Network seminar.key

Network Programming

Windows Server 2012

단계

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 10Àå.ppt

. PC PC 3 [ ] [ ], [ ] [ ] [ ] 3 [ ] [ ], 4 [ ] [ ], 4 [Internet Protocol Version 4 (TCP/IPv4)] 5 [ ] 6 [ IP (O)], [ DNS (B)] 7 [ ] 한국어 -

SMB_ICMP_UDP(huichang).PDF

전송계층프로토콜 TCP(Transmission Control Protocol) 전송계층에서동작하는연결지향형 (connectionoriented) 프로토콜 데이터의흐름을관리하고, 데이터가정확한지검증하며통신 쓰리웨이핸드셰이킹 (three-way handshaking) 을통

Ä¡¿ì³»ÁöÃÖÁ¾

<4D F736F F F696E74202D E20C0CEC5CDB3DD20C0C0BFEB20B9D720BCADBAF1BDBA20B1E2BCFA E >

Apache Ivy

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

쉽게 풀어쓴 C 프로그래밊

The Pocket Guide to TCP/IP Sockets: C Version

5-03-Â÷¼¼´ëÀ¥Iš

1. SNS Topic 생성여기를클릭하여펼치기... Create Topic 실행 Topic Name, Display name 입력후 Create topic * Topic name : 특수문자는 hyphens( - ), underscores( _ ) 만허용한다. Topi

6강.hwp

<4D F736F F F696E74202D FB5A5C0CCC5CDC5EBBDC5B0FA20B3D7C6AEBFF6C5A9205BC8A3C8AF20B8F0B5E55D>

vi 사용법

Microsoft Word - release note-VRRP_Korean.doc

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2003) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2003 Exchange Server 2003 GFI MailEssentials 2010 fo

PowerPoint 프레젠테이션

RealDSP UT 프로그램 메뉴얼

Microsoft Word - CPL-TR OM2M.doc

SRC PLUS 제어기 MANUAL

JDBC 소개및설치 Database Laboratory

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

<464B4949B8AEC6F7C6AE2DC0AFBAF1C4F5C5CDBDBABBEABEF7C8AD28C3D6C1BE5FBCD5BFACB1B8BFF8BCF6C1A4292E687770>

RHEV 2.2 인증서 만료 확인 및 갱신

오브젝트 스토리지를 통한 검색의 신속 정확성 확보 HDS는 계속 증가하고 장기간 존속하는 고정 콘텐츠 관리를 위 해 실제 검증을 마친 수단으로서 오브젝트 스토리지 솔루션 에 주목하고 있다. 그 가장 기본적인 레벨로서 오브젝트 스토리지 기기는 오브젝트의 스토리지를 관리하

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

쉽게 풀어쓴 C 프로그래밍

FileMaker 15 ODBC 및 JDBC 설명서

FileMaker ODBC 및 JDBC 가이드

MVVM 패턴의 이해

슬라이드 제목 없음

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

ISP and CodeVisionAVR C Compiler.hwp

PowerPoint 프레젠테이션

<4D F736F F D FB1E2BCFAB5BFC7E2BAD0BCAE2DB8F0B9D9C0CF20B3D7C6AEBFF6C5A92DC3D6BFCF2E646F6378>

Microsoft PowerPoint 웹 연동 기술.pptx

슬라이드 1

컴퓨터관리2번째시간

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

Microsoft Word - CSWP_sample(KOR).docx

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

PowerPoint 프레젠테이션

JAVA 플랫폼 개발 환경 구축 및 활용

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Transcription:

CoAP Observe: 예제및활용 2017 년 1 월 경북대학교통신프로토콜연구실 정중화 (godopu16@gmail.com), 최동규 (supergint@gmail.com) 목 차 1. 서론... 2 1.1 COAP 이란?... 3 1.2 COAP OBSERVE 란?... 5 2. COAP OBSERVE 예제구현... 6 2.1 JDK 설치... 6 2.2 CALIFORNIUM 라이브러리가져오기... 8 2.3 COAP OBSERVE 예제가져오기... 8 2.4 COAP OBSERVE 예제테스트... 9 1

1. 서론 사물인터넷 (IoT : Internet of Things) 의개념은 1999년케빈애쉬톤 (Kevin Ashton) 에의해최초로사용되었다. 초기에케빈애쉬톤이사용을하던개념은 RFID 태그를활용한시스템의발전을시작으로개념이조금씩변화되어, 최근에는유비쿼터스컴퓨팅을포함하여생활속유무선네트워크로연결할수있는모든사물들로범주가커졌다. 가전제품, 전자기기뿐만아니라헬스케어, 스마트홈, 스마트자동차, 원격제어등많은분야에서사물을네트워크로연결해편리하게사람과정보를교환할수있다. 기존에는사물본연의목적만으로단일적인기능을했다면인터넷과의융합으로다양한서비스를제공한다. 구글의구글글라스, 나이키의퓨어밴드, 그레이트리버메디컬센터의료플랫폼, 미국벤처기업코벤티스가개발한심장박동모니터링기기등모두사물인터넷의기반을둔예이다. 미국의정보기술연구및자문회사인가트너에의하면아래의그림 1과같이 2020년까지사물인터넷시장규모는 1.9조달러수준으로성장할것으로예상하고있다. 그림 1. 2020 년사물인터넷시장예상도표 사물의요소는우리가일반적으로사용하는전자기기및가전제품뿐만아니라경량화된 CPU, 센서등도포함하고있기에현재인터넷기술인 TCP/IP 프로토콜스택을맞추기에는불가능하다. 따라서낮은성능의사물인터넷기기도인터넷연결이가능하도록인터넷연결기술도현재보다경량화되어야한다. 현재국제적인획일화된표준은존재하지않지만 ITU-T, onem2m, 3GPP, IETF, IEEE 등의다양한표준화기구에서국제적인표준을확립하기위해글로벌한 IoT/M2M 서비스기술을연구하고있다. ITU-T와 onem2m 등은주로스마트헬스케어나스마트홈과같은서비스플랫폼표준기술을개발하고있으며, 3GPP, IETF, IEEE 등의표준기구는네트워크통신을위 2

한프로토콜을주로연구한다. 현재표준화의선두주자인 3GPP는기대만큼의수익이나오지않아소강상태에머무르고있으며, IETF는대표적인프로토콜로 CoAP을핵심적으로사용하고있다. IEEE는원활한 M2M 통신을제공하기위해 IEEE 802.x 계열의무선통신기술을확장하는표준개발이이루어지고있다. 국내에서의표준활동은 TTA를중심으로 M2M 서비스요구사항, 이동통신무선접속기술, 표준플랫폼간의인터페이스등을표준화하는작업을 ITU-T, onem2m 등과의국제표준화공동협력을추진하고있다. 1.1 CoAP 이란? CoAP 은사물인터넷과같이대역폭이제한된통신환경에최적화하여개발된 REST (REpresentational State Transfer) 기반의자원발견, 멀티캐스트지원, 비동기트랜잭션요청 및응답등을지원하기위한경량메시지전송프로토콜이다. CoAP 그림 2. CoAP 시스템개요도 CoAP은 RESTful기반의프로토콜이므로기존의 HTTP (Hypertext Transfer Protocol) 웹프로토콜과연동이쉽다. CoAP은자원관리를위해 HTTP와동일하게 GET, PUT, POST, DELETE의메서드를사용한다. CoAP은전송계층에서 UDP (User Datagram Protocol) 를사용하며송신자수신자간에정보를주고받을때자료를보낸다는신호나받는다는신호를보내지않는비동기식방식의전송방법이다. CoAP은수신자쪽에서자료를받았는지받지않았는지확인할수없는 UDP의단점을극복하기위해재전송및타이머관리를옵션으로포함하고있다. CoAP은확인형 (Confirmable), 비확인형 (Non-confirmable), 승인 (Acknowledgement), 리셋 (Reset) 4가지의메시지형을정의하고, 요청 (Request) 과응답 (Response) 메시지의상호작용으로전달된다. 3

그림 3. CoAP 과 HTTP 프로토콜스택비교 그림 4. CoAP 신뢰성메시지전송 그림 4는신뢰성메시지전송방법이다. 확인형 (CON) 메시지를전송하고, 여기에포함된메시지식별자 (Message ID) 는승인 (ACK) 메시지에도포함된다. 수신자가자료나요청을잘전달받았으면승인메시지를전송하고, 만약수신자가수신한자료나요청을처리할수없을때는승인메시지대신리셋 (Reset) 메시지를전송한다. 그림 5. CoAP 비신뢰성메시지전송 4

주기적으로센서자료값을얻어오는것처럼모니터링방식에서는메시지의신뢰성을요구하지않는다. 이런때에는그림 5와같이비확인성메시지 (NON) 을전송한다. 이때메시지 ID는메시지중복검사를위해사용한다. 만약수신자가비확인성메시지를처리할수없을때는신뢰성메시지전송과같은방식으로리셋메시지를전송한다. 그림 6. CoAP 메시지형식 CoAP 메시지는그림 6과같이간단한이진형식으로인코딩되어전송된다. 고정적인 4 바이트와 0바이트에서 8바이트길이의토큰, 그리고옵션과페이로드순으로배치된다. 처음 Ver 부분은 2비트로 CoAP의현재버전을나타낸다. 두번째 T 부분은 2비트로메시지형을의미하며 0 은확인형, 1 은비확인형, 2 는승인, 3 은리셋을나타낸다. TKL 부분은 4 비트로토큰필드의길이를나타내며값의단위는바이트이고 0에서 8까지의수를사용한다. 다음으로 Code 부분은 1바이트로 3비트는클래스를나타내고, 5비트는자세한내용을나타낸다. 클래스값의경우 0 은요청, 2 는성공적인응답, 4 는클라이언트에러응답, 5 는서버에러응답이다. 요청의경우, 0.01 은 GET, 0.02 는 POST, 0.03 은 PUT, 0.04 는 DELETE, 0.00 은빈메시지이다. 메시지 ID는메시지의중복확인및확인성 / 비확인성메시지에대한짝으로승인 / 리셋메시지에사용된다. Token 과 Options는필요에따라포함될수있고포함되지않을수있다. Token 과 Options의끝은 Payload 마커로알수있고, Payload 마커는 0xFF이다. 현재정의된 Options는 Content-Format, ETag, Location-Path, Location- Query, Max-Age, Proxy-Uri, Proxy-Scheme, Uri-Host, Uri-Path, Uri-Port, Accept, If-Match, If- Non-Match, Size1이있다. 1.2 CoAP Observe 란? CoAP과같이요청 / 응답모델은클라이언트가짧은주기로메시지를반복해서보내는경우에는적합하지않다. 이러한상황에서기존의 HTTP를사용한다면자원이제한된저성능의기기에서는큰오버헤드와복잡성때문에문제가발생한다. CoAP은이러한문제를해결하기위해기존의 CoAP을확장시켜 Observe라는기능을개발하였다. 이는 CoAP 서버에주제 (Subject) 라는공간을할당하여그주제에관심이는클라이언트가주제를통해서버로 5

접근한다. 특정주제에클라이언트가 Observe 요청을한다면그주제에관한내용이바뀔 때마다별도의요청메시지없이서버로부터변경된내용을알림 (Notifications) 으로받 게된다. 이러한기능이 CoAP Observe 기능이다. 그림 7. CoAP Observe 기능예시 그림 7은온도에관한정보를받는 Observe 기능의예시이다. 우선클라이언트는특정주제에관한내용을 Observe 하고싶다고서버에게확장된 GET 메시지를통해요청한다. 서버는 Observer 리스트에클라이언트의정보를저장하고. 그에관한응답으로특정주제의원하는정보를담아메시지를보낸다. 이렇게 Observe 과정이끝나게되면, 특정주제에관한상태가변경되었을때변경된정보를서버가별다른요청없이도클라이언트에게알려준다. 2. CoAP Observe 예제구현 CoAP Observe 를사용하기위해서는 CoAP 라이브러리를사용하여야합니다. 여기에서는 Californium 이라는 JAVA 용라이브러리를사용합니다. 2.1 JDK 설치 Californium 라이브러리는 JAVA 용라이브러리이기때문에라이브러리를사용하기위해서는 JDK가필요하다. JAVA 는 Oracle이소유하고있으므로 Oracle 홈페이지로이동하여다운로드받을수있다. http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 주소로접속하여 JDK 설치파일을다운로드한후설치한다. 6

그림 8. JDK 다운로드웹페이지 7

2.2 Californium 라이브러리가져오기 Californium 라이브러리를사용하기위해서는 Californium (Cf) Core 라이브러리를다운로드하여야한다. 해당라이브러리는 californium-core 라이브러리파일과 element-connector 라이브러리파일로구성되어있으며, californium-core 라이브러리파일은 http://mvnrepository.org/artifact/org.eclipse.californium/californium-core/2.0.0-m2 로이동하여다운로드할수있으며, element-connector 라이브러리파일은 http://mvnrepository.org/artifact/org.eclipse.californium/element-connector/2.0.0-m2 로이동하면다운로드할수있다. 그림 9. Californium library 다운로드웹페이지 2.3 CoAP Observe 예제가져오기 CoAP 라이브러리 Californium을이용한예제를살펴보자. Eclipse를이용하여프로젝트를 Import 한후실행시켜본다. 예제는 http://protocol.knu.ac.kr 에방문하면다운로드받을수있다. 다운로드한파일의압축을푼후해당디렉터리를 Workspace로하여이클립스를실행한다. 그후아래그림 10의절차를따라하여프로젝트를 import 한다. 8

그림 10. 프로젝트가져오기절차 2.4 CoAP Observe 예제테스트 앞서다운로드한폴더안의 export 폴더로이동한뒤파일 > 명령프롬프트열기를눌러 해당디렉터리에서 CMD 창을연다. 가장먼저브로커역할을하는서버를실행시켜야한다. coap_server.jar 를아래의명령어와함께 CoAP Observe Server 예제를실행할수있다. 9

1) CMD 를실행합니다. 2) coap_server.jar 를실행합니다. à java jar coap_server.jar coap_server 실행 그림 11. coap_server.jar 실행화면 이제위와같이두개의 CMD 창을더실행시킨뒤한개는 coap_sub.jar 를실행하고한개 는 coap_pub.jar 를수행하여 subscriber 가 publisher 가전송한메시지를잘수신하는지를확 인해보자. 1) CMD 를실행합니다. 2) coap_sub.jar 를실행합니다. à java jar coap_sub.jar localhost topic coap_sub.jar 실행 10

그림 12. coap_sub.jar 실행화면 Topic 과함께서버로메시지를전송한다. 1) CMD 를실행합니다. 2) coap_pub.jar 를실행합니다. à java jar coap_pub.jar localhost topic Hello world coap_pub.jar 실행 그림 13. coap_pub.jar 실행화면 11

coap_pub.jar 실행후다시 coap_sub.jar 실행화면을확인하면그림 14 와같이 publisher 가전달한메시지가잘전달되었음을확인할수있다. 그림 14. 메시지수신화면 12