ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Chapter 6
    전공 - IT/졸업작품 2023. 8. 1. 17:41

     

    영어 원문을 한글로 해석하여 정리한 글이므로 정확하지 않은 정보를 포함할 수 있음

     

     목차 

    1. Contiki-NG의 네트워킹

    2. COOJA를 사용한 네트워크 시뮬레이션

    3. IPv6 네트워킹

    4. Contiki-NG의 라우팅

    5. IPv6 멀티캐스트

    6. Contiki-NG NullNet

    7. 6LoWPAN 네트워크 작업

    8. Contiki-NG용 RESTful 서버 구축

     

     

     

     1. Contiki-NG의 네트워킹 

    Contiki-NG는 기존 OSI 스택을 사용하여 netstack이라는 Contiki-NG 네트워크 프로토콜 스택을 구현하여 노드 간에 통신한다

     

     Contiki‑NG netstack은 위와 같이 4개의 계층을 구현한다

     

    Contiki‑NG/os/net/ 폴더에서 네트워크 관련 라이브러리를 확인할 수 있다

     

    네트워크 계층


    Contiki‑NG는 ipv6 스택에 의존한다
    현재 네트워크 계층에는 상위 ipv6 계층과 하위 적응 계층의 두 하위 계층이 있다
    하위계층은 TSCH와 함께 IEEE 802.15.4 상단에서 실행된다

     

    라우팅은 rfc 표준인 6550을 채택한 rpl(routing protocol for low power and lossy networks)를 적용한다
    rpl은 루트노드 또는 ap(access point)에서 라우팅 그래프를 개발한다

     

    Dodag (Destination  Oriented  Directed  Acyclic  Graph)

    라우팅 그래프가 순환 그래프와 같은 형태를 가지고 있고 루트 노드로부터 만들어진다면 Dodag 라고 한다

     

    contiki-ng의 rpl라우팅은 상향, 하향, any-to-any 로 3가지 트래픽 방향을 지원한다

    또한 contiki-ng의 nullnet 라이브러리를 사용하여 상위 계층에서 하위 계층으로 패킷 테스트를 할 수 있다

     

    MAC 계층


    MAC 계층은 패킷 트래픽의 충돌을 처리하고 트래픽이 있는 경우 백오프를 적용하도록 설계되었다

    contiki-ng는 mac 계층 구현을 위해 CSMA/CA(Carrier Sense Multiple Access with Collision avoidance)를 적용한다

     

    CSMA/CA 알고리즘에서 모트는 패킷을 보내기 전에 매체를 감지한다
    다른 모트가 패킷을 보내는 경우 모트는 rdc 계층에 따라 특정 값으로 백오프를 적용한다

    매체가 비어 있으면 mote는 네트워크 계층에서 준비한 패킷을 보낸다

     

    drc 레이어


    Contiki ‑ NG는 저전력 청취 원칙에 기반한 ContikiMAC 프로토콜을 지원한다
    ContikiMAC은 IEEE 802.15.4e‑2012 수정안의 MAC 계층의 일부인 TSCH(Time Slotted Channel Hopping)를 사용한다

     

    라디오 레이어

    무선 계층은 Contiki ‑ NG NETSTACK에서 가장 낮은 계층이다
    무선 계층은 Contiki ‑ NG mote의 무선 모듈에 의해 처리되고 대부분의 무선 계층은 IEEE 802.15.4 프로토콜 메커니즘에서 작동한다

     

     

     2. COOJA를 사용한 네트워크 시뮬레이션 

     

    new simulation 클릭

     

    My simulation 생성

     

    생성 완료

     

    sky mote 클릭

     

    udp-server.c 파일 선택후 컴파일

     

    모트 번호 및 위치 구성하기

     

    1번 모트 생성 완료

     

    서버말고 client 모트 파일 선택한 뒤 컴파일하고 생성하기

     

    5개 생성

     

    총 6개 생성 완료

    시뮬레이션 시작

     

    4번은 거리가 너무 멀어서 선택해서 위치를 옮겨주기로 했다

     

    위와 같이 선택 후 옮기면 범위가 표시된다

     

    위치를 옮기고 다시하니 정상적으로 작동한다

     

     

     

     3. IPv6 네트워킹 

    IPv6(인터넷 프로토콜 버전 6)은 현재 프로토콜인 IP 버전 4(IPv4)를 대체하도록 설계된 인터넷의
    차세대 프로토콜이다

    192.168.0.2는 ipv4이고 2021:db8:ffff:1:201:02ff:fe03:0415는 ipv6이다

    네트워크에서 IPv4, IPv6 또는 둘 다를 사용하는지 테스트하려면 브라우저를 사용해야 한다
    (http://test-ipv6.com)

    Contiki‑NG는  기본적으로  IPv6  네트워크에서  작동할  수  있다

     

     

     

     4. Contiki-NG의 라우팅 

    라우팅은  네트워크를  통해  소스에서  대상으로  패킷을  이동하는  프로세스이다
     이  프로세스는  일반적으로  라우터  및  컴퓨터와  같은  전용  네트워크  장치에서  수행된다

     

    기본 라우팅

     

    A에서 D로 패킷을 보내는 여러 경로 옵션을 보여준다
    ABD, AD 및 ACD의 세 가지 경로 옵션 중 하나를 선택할 수 있다

    비용이 가장 적게 드는 최적의 경로를 선택할 수 있고 라우팅 알고리즘을 수행하려는 경우 배터리 사용량은 비용 매개변수 중 하나일 수 있다

     

    단일 홉 및 다중 홉 네트워킹


    패킷이 소스에서 최종 목적지로 전송될 때 여러 네트워크 장치를 통과할 것이다


    홉은 패킷이 최종 목적지에 도달하기 위해 거쳐야 하는 다양한 네트워크 장치를 설명하는 데 사용되는 용어이다

    아래 그림에서 단일 홉 네트워크는 AD 경로이고 EF는 다중 홉 네트워크이다

     

    Contiki ‑ NG 플랫폼은 단일 홉 및 다중 홉 네트워크를 모두 지원한다

     

     

     

     5. IPv6 멀티캐스트 

    데이터 통신에는 유닛 캐스트, 브로드캐스트 및 멀티캐스트의 세 가지 모델이 있다
    유니 캐스터는 정보 조각이 한 지점에서 다른 지점으로 전송되는 통신을 의미한다

    브로드캐스트는 정보 조각이 한 지점에서 다른 모든 지점으로 전송되는 통신 모델이다
    한 명의 발신자가 있다면 연결된 모든 수신자에게 정보가 전송되고 수신자가 없을 수도 있다

    멀티캐스트는 정보 조각이 하나 이상의 지점에서 다른 지점 집합으로 전송되는 통신을 의미한다
    발신자가 한 명 이상 있을 수 있고 정보는 여러 수신자에게 전달된다

     

    멀티캐스트와 브로드캐스트의 주요 차이점은 수신자에게 옵트인 옵션을 제공한다는 것이다
    데이터를 수신하려는 수신자는 발신자에 대한 액세스 권한을 얻기 위해 등록해야 한다

    Contiki ‑ NG 프로젝트에서 IPv6 멀티캐스트로 작업하려면 프로젝트에 멀티캐스트 모듈을 추가해야 한다

     

     

     

     6. Contiki-NG NullNet 

    Contiki ‑ NG 네트워크 스택 계층 사이에서 패킷을 조사하려는 경우 NullNet을 사용할 수 있다

     

     COOJA  애플리케이션에서  nullnet‑broadcast.csc  및  nullnet‑unicast.csc  파일을  선택하고 실행하면 위와 같이 된다

     

     

     

     7. 6LoWPAN 네트워크 작업 

    6LoWPAN은 IPv6 over Low ‑ Power Wireless Personal Area Networks의 약어이다

    6LoWPAN은 WSN 모트가 통신할 수 있도록 하는 데 사용되는 네트워크 표준이고
    인터넷 네트워크와 같은 외부 네트워크와 6LoWPAN은 IPv6를 모든 모트의 ID로 사용한다

     

    WSN 네트워크는 모든 통신에 IPv6를 적용한다
    6LoWPAN 라우터는 내부 및 외부 네트워크 간의 통신을 담당하고 6LoWPAN 라우터는 모트 및 기타의 모든 주소를 기록한다

    6LoWPAN 라우터에 연결된 네트워크 장치가 외부인 경우 서버와 같은 시스템이 WSN 네트워크의 WSN 모트 중 하나로 메시지를 보내면 6LoWPAN 라우터가 메시지를 모트로 전달하고 그렇지 않으면 6LoWPAN이 요청자에게 실패를 알린다

    6LoWPAN은 데이터 링크 계층에서 작동한다

     

    Contiki ‑ NG에서 6LoWPAN 네트워크 구현


    Contiki ‑ NG는 6LoWPAN 라우터 역할을 하는 RPL 보더 라우터를 통해 6LoWPAN 네트워크 스택
    을 구현한다

    RPL  보더  라우터를  컴퓨터나  Raspberry  Pi  또는  모든  네트워크  장치에  배치할  수  있다

    기본적으로  RPL  경계  라우터에는  fd00::1/64의  IPv6  주소가  있다

     

     

     

     8. Contiki-NG용 RESTful 서버 구축 

      Contiki‑NG  모트는  리소스가  제한되어  있기  때문에  많은  요청을  처리할  수  없다
     이  문제를  해결하기  위해  미들웨어  서버(예:  RESTful  서버)를  구현할  수  있다

     

    RESTful 서버는 Apache, nginx 및 IIS와 같은 검증된 웹 서버 위에서 실행될 수 있다

    6LoWPAN 라우터를 통한 RESTful 서버, 센서 데이터를 사용하려는 클라이언트는 WebSocket
    을 통해 RESTful 서버에 대한 연결을 열어야 한다

    클라이언트 시스템은 WebSocket API와 함께 HTML5를 사용하여 구현된다

    센서 데이터는 HTML5 애플리케이션에서 시각화되고 WebSense RESTful 서버는 Node.js를 적용한다

     

    준비


    먼저 두 개의 원격 장치가 있어야 한다
    하나의 모트는 6LoWPAN 라우터에 사용되고 나머지는 WebSense 노드 구현에 적용된다

    RESTful 서버는 Node.js를 사용하므로 컴퓨터에 Node.js 런타임을 설치해야 한다

     

     

     

     

     

     

    WebSense 프로젝트를 구현

    센서 데이터를 시각화를 시뮬레이션하기 위해 컴퓨터와 서버 시스템은 네트워크에 연결되어 있어야 한다

     

     

    728x90

    '전공 - IT > 졸업작품' 카테고리의 다른 글

    강화학습 - Unity, Anaconda, ml-agents 환경설정 - 1  (0) 2023.09.16
    Contiki 2.7 - VMWare 에 설치하기, 저장공간 확보  (0) 2023.08.22
    Chapter 5  (0) 2023.07.31
    Ubuntu(22.04) - Contiki 설치하기  (0) 2023.07.29
    Chapter 4  (0) 2023.07.24
Designed by Tistory.