• Lab Seminar: Flexible Unicast-Based Group Communication for CoAP-Enabled Devices

    Paper: click

    Presentation: [ppt][2]

    CoAP 등장배경

    사물인터넷은 다양한 기기가 서로 연결되는 네트워크이다. 거기에는 컴퓨터와 스마트폰처럼 높은 처리용량과 메모리를 가지고 있는 노드도 있지만 센서와 같은 작은 메모리와 낮은 처리 성능을 가진 노드들도 인터넷에 연결된다. 인터넷 표준 단체인 IETF(Internet Engineering Task Force)에서는, 다양한 기기가 인터넷에 연결될 것을 예상하여 IPv6, 6LowPAN 등 표준활동을 진행해 왔으며, 최근에는 6LoWPAN, CORE, ROLL, LWIG 워킹그룹 등이 저전력, 소형 장치에 들어가는 표준을 개발하고있다. 그 중 CORE(Constrained RESTful Environments) 워킹그룹에서는, 메모리, 에너지, 성능 등에 제약이 있는 M2M 환경을 위한 웹 기반 프로토콜인 CoAP(Constrained Application Protocol) 이라는 프로토콜을 만들고 있다.

    CoAP란?

    CoAP 프로토콜은 저전력, 고손실 네트워크 및 소용량,소형 노드에 사용될 수 있는 특수한 웹 전송 프로토콜이다. RESTful 사상을 따르고 있기 때문에, 기존의 HTTP 웹 프로토콜과도 쉽게 변환 및 연동이 될 수 있다. CoAP은 기본적으로 UDP와 같은 데이터그램 방식의 트랜스포트 계층 위에서 비동기적으로 전송되는 것을 다룬다. 따라서 신뢰성 있는 전달을 위한 재전송 및 타이머 관리를 옵션으로 포함하고 있다. 보안을 위해서 UDP 계층과 CoAP 계층 사이에 DTLS(Datagram Transport Layer Security) 계층이 사용될 수 있다CoAP은 확인형(confirmable), 비확인형(non-confirmable), 승인(acknowledgement), 리셋(reset)의 4가지 메시지 타입을 정의하고 있다. CoAP 메시지는 요청(request)과 응답(response)의 상호작용으로 전달된다.

    RESTful이란

    REST는 Representational State Transfer(표현 가능한 상태 전송)의 줄임말 이며, 웹과 같은 분산 시스템을 위한 소프트웨어 아키텍처의 한 종류임. HTTP 위에 별도의 계층 없이, HTTP의 GET, PUT, POST, DELETE의 메소드를 사용하여 데이터를 교환함. 데이터의 식별, 즉 리소스의 구조는 URL을 통해표현됨. 단순하면서도 다양한 기능을 제공하여 손쉽게 서비스를 개발할 수 있음.

    CoAP Message Format

    CoAP 메시지 포맷 CoAP의 메시지포멧으로는 다음과 같이 고정된 메시지 헤더와 토큰. 옵 션, 페이로드로 구성되어 있다. 고정된 헤더의 2비트 V는 버전, T는 메시 지 {확인형(CON).비확인형(NON),승인(ACK),리셋(RST) }로 구성되어 있 으며, TKL은 토큰필드 길이를 나타낸다. Code는 클래스 {요청(0).성공적 인 응답(2), 클라이언트 에러 응답(4). 서버 에러 응답(5))로 3비트로 구성 되어 있으며 5비트는(GET,POST,PUT,DELETE) 메소드로 구성 되어 있 다. 메시지 ID는 각각의 트랜잭션을 의미하며 Token의 경우 요청/응답 메 시지를 확인 하는 필드이다. Figure2 Figure2 Figure2

    Blockwise Transfer

    기본적인 CoAP는 payloads가 작은 경우에 매우 효율적으로 잘 동작되어 진다. 그러나 payloads가 큰 경우에는, payloads를 조작할 필요가 잇다. 이를 위해서 Blockwise Transfer 에서는 Block Option 1 Block Option 2 등을 정의하여 블록 단위로 페이로드를 전송할 수 있게 한다. 블록 옵션 1은 요청 메시지 에페이로드를 보내는 경우에 사용되며, 블록 옵션 2는 응답 메시지에 페이로드를 포함하는 경우에 사용된다. 블록 전송 문서에서는 요청 시 블록의 크기를 제한하는 경우, 전송 중 블록 크기를 변경하는 경우, 블록 1을 사용하여 PUT과 같은 요청 메시지에 블록 단위로 페이로드를 전송하는 방법, 블록 1과 블록 2를 혼합하여 사용하는 방법, Observe와 블록 2를 혼합하여 사용하는 방법 등에 대해 다루고 있으며, 전체 페이로드의 크기를 나타내는 사이즈 1, 사이트 2옵션을 추가로 정의하였다.

    Group communication Requirements

    CoAP-based group communication 은 근본적인 프로토콜로서 CoAP를 사용하는 device들의 resource들을 다루는 method 이다. 이런 resource들의 group은 entity라고 불리고, resource들을 entity members라 부른다. entity를 두가지 타입으로 나눌 수 있다. – Homogeneous Entity :(URI path,method, content-type, block-size,observe 등) 공통의 property들의 집합을 공유하는 멤버들이 있는 entity
    – Heterogeneous Entity : 모든 멤버들이 공통된 property들을 공유하지않는 entity

    CoAP group communication을 위한 필요조건
    • Flexibility
    • Light-Weight
    • Use of Standards
    • Performance
    • Validation and Error Handling
    • Reliability
    • Ease of Group Manipulation
    • Expressiveness/Control
    • Security

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

%d 블로거가 이것을 좋아합니다: