Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.

Razlike

Slijede razlike između dviju inačica stranice.

Poveznica na ovu usporedbu

Starije izmjene na obje strane Starija izmjena
Novija izmjena
Starija izmjena
racfor_wiki:coap_protkol [2021/01/13 01:48]
agauta dodano
racfor_wiki:coap_protkol [2023/06/19 18:17] (trenutno)
Redak 4: Redak 4:
 ===== Sažetak ===== ===== Sažetak =====
  
-**Ključne riječi:**+Kod izgradnje sustava koji sadrži različite senzore i aktuatore koji moraju međusobno komunicirati u svrhu obavljanja zadataka, izbor protokola je važan korak. U slučaju potrebe za što jednostavnijom komunikacijom zbog male potrošnje slabih performansi uređaja koji se koriste CoAP je dobar izbor. Sigurnost same komunikacije je jedan od nedostataka ovog protokola te ako je ona važna ne preporučuje ga se koristiti. 
 + 
 +Keywordscoap, protocol, iot, internet, of, things 
  
 ===== Uvod ===== ===== Uvod =====
  
-U zadnjih 10 godina možemo se sve češće susresti s pojmom Internet Stvari. Uređaji koje svakodnevno koristimo postaju "pametniji" povezivanjem na internet, te počinju pružati korisniku puno širi spektar mogućnosti. Iako postoje razni protokoli za komunikaciju između uređaja i poslužitelja, s potpuno različitim mogućnostima i karakteristikama u posljednje vrijeme počinje se sve češće koristiti CoAP.+U zadnjih 10 godina možemo se sve češće susresti s pojmom Internet Stvari. Uređaji koje svakodnevno koristimo postaju "pametniji" povezivanjem na internet, te počinju pružati korisniku puno širi spektar mogućnosti [1]. Iako postoje razni protokoli za komunikaciju između uređaja i poslužitelja, s potpuno različitim mogućnostima i karakteristikama u posljednje vrijeme počinje se sve češće koristiti CoAP.
  
 CoAP (//Constrained Application Protocol//) zasniva se na klijent-poslužitelj modelu komunikacije. Temelji se na REST-u (//Representational state transfer//) te se resursi identificiraju pomoću URI-ja. Za pristup resursima koristi se asinkroni mehanizam te za samu razmjenu podataka UDP protokol s dodatnim slojem za retransmisiju podataka u slučaju da je došlo do gubljenja istih. CoAP (//Constrained Application Protocol//) zasniva se na klijent-poslužitelj modelu komunikacije. Temelji se na REST-u (//Representational state transfer//) te se resursi identificiraju pomoću URI-ja. Za pristup resursima koristi se asinkroni mehanizam te za samu razmjenu podataka UDP protokol s dodatnim slojem za retransmisiju podataka u slučaju da je došlo do gubljenja istih.
Redak 16: Redak 18:
 ==== Model klijent-poslužitelj ==== ==== Model klijent-poslužitelj ====
  
-CoAP se zasniva na komunikacijskom modelu klijent-poslužitelj. Model se sastoji od dva entiteta, klijenta i poslužitelja. Klijent šalje zahtjeve poslužitelju nakon čega dobiva odgovor odmah ili naknadno, ovisno o načinu na koji su se zatražili podaci. Odgovor od strane poslužitelja može biti sadržan u jednoj ili više poruka, ovisno o vrsti zahtjeva i frekvenciji kojom se mijenjaju vrijednosti traženih resursa.+CoAP se zasniva na komunikacijskom modelu klijent-poslužitelj. Model se sastoji od dva entiteta, klijenta i poslužitelja. Klijent šalje zahtjeve poslužitelju nakon čega dobiva odgovor odmah ili naknadno, ovisno o načinu na koji su se zatražili podaci. Odgovor od strane poslužitelja može biti sadržan u jednoj ili više poruka, ovisno o vrsti zahtjeva i frekvenciji kojom se mijenjaju vrijednosti traženih resursa [2].
  
-{{:racfor_wiki:k-p.png?700|}}+{{:racfor_wiki:k-p.png?500|}}
  
 ==== Vrste CoAP poruka ==== ==== Vrste CoAP poruka ====
  
-Postoje četiri različita tipa poruka koje CoAP implementira.+Postoje četiri različita tipa poruka koje CoAP implementira [3].
  
   * //Confirmable// poruka (CON)   * //Confirmable// poruka (CON)
Redak 28: Redak 30:
  
   * //Non-Confirmable// poruka (NON)   * //Non-Confirmable// poruka (NON)
-    * Poruka koja ne zahtjeva potvrdu nakon primitka.+    * Poruka koja ne zahtijeva potvrdu nakon primitka.
  
   * //Acknowledgement// poruka (ACK)   * //Acknowledgement// poruka (ACK)
Redak 39: Redak 41:
 ==== Metode CoAP-a ==== ==== Metode CoAP-a ====
  
-CoAP implementira četiri osnovne HTTP metode.+CoAP implementira četiri osnovne HTTP metode [3].
  
   * GET   * GET
Redak 50: Redak 52:
  
   * PUT   * PUT
-    * Metoda zahtjeva da resurs koji odgovara URI-ju danom unutar zahtjeva promjeni sa reprezentacijom resursa koji se također nalazi unutar zahtjeva.+    * Metoda zahtjeva da resurs koji odgovara URI-ju danom unutar zahtjeva promjeni reprezentacijom resursa koji se također nalazi unutar zahtjeva.
     * Metoda nije sigurna ali je idempotentna.     * Metoda nije sigurna ali je idempotentna.
  
Redak 58: Redak 60:
  
  
-==== URI schema za pristup resursima ====+==== URI shema za pristup resursima ====
  
 Unutar CoAP protokola svaki resurs ima svoj URI. On se definira na sljedeći način: Unutar CoAP protokola svaki resurs ima svoj URI. On se definira na sljedeći način:
Redak 78: Redak 80:
 Sadržaj svakog okvira CoAP poruke definiran je u standardu [[https://tools.ietf.org/html/rfc7252|RFC 7252.]]  Sadržaj svakog okvira CoAP poruke definiran je u standardu [[https://tools.ietf.org/html/rfc7252|RFC 7252.]] 
  
-{{:racfor_wiki:okvir.png?700|}}+{{:racfor_wiki:okvir.png?500|}}
  
 Dijelova okvira su: Dijelova okvira su:
Redak 112: Redak 114:
 ===== Primjer CoAP poruka ===== ===== Primjer CoAP poruka =====
  
-==== Confirmable request (CON) ====+==== Confirmable zahtjev (CON) ====
  
 Nakon slanja poruke očekuje se odgovor. U slučaju da se odgovor ne primi, poruka se ponovno šalje. Nakon slanja poruke očekuje se odgovor. U slučaju da se odgovor ne primi, poruka se ponovno šalje.
  
-{{:racfor_wiki:coapcon.png?400|}}+{{:racfor_wiki:coapcon.png?350|}}
  
-==== Non-Confirmable request (NON) ====+==== Non-Confirmable zahtjev (NON) ====
  
 Nakon slanja poruke ne očekuje se odgovor. Nakon slanja poruke ne očekuje se odgovor.
  
-{{:racfor_wiki:coapnon.png?400|}}+{{:racfor_wiki:coapnon.png?350|}}
  
 ==== Opservacija ==== ==== Opservacija ====
  
-U slučaju da želimo konstantno primati podatke kao što su npr. očitanja senzora, možemo koristiti mehanizam opservacije. U odgovoru (ACK) se prenose očitanja, a sljedeći odgovori se šalju bez ponovnih zahtjeva sve dok ne dobijemo poruku za otkazivanje pretplate.+U slučaju da želimo konstantno primati podatke kao što su npr. očitanja senzora, možemo koristiti mehanizam opservacije. U odgovoru (ACK) se prenose očitanja, a sljedeći odgovori se šalju bez ponovnih zahtjeva sve dok ne dobijemo poruku za otkazivanje pretplate [3]. 
 + 
 +{{:racfor_wiki:observ.png?350|}} 
 + 
 +===== Sigurnost ===== 
 + 
 +==== CoAP-DTLS ==== 
 + 
 +CoAP koristi DTLS (//Datagram Transport Layer Security//) protokol koji se izvršava iznad UDP protokola za omogućavanje sigurne komunikacije između poslužitelja i klijenta. DTLS pruža mogućnosti autentikacije, osiguravanja valjanosti podataka, povjerljivosti te automatskog upravljanja sigurnosnim ključevima [4].  
 + 
 +CoAP definira četiri sigurnosna stanja: 
 +  * NoSec 
 +    * Jedino stanje koje nije sigurno. Paketi se šalju koristeći običan UDP, a ne DTLS. 
 + 
 +  * PreSharedKey 
 +    * Sadrži listu već generiranih ključeva. Svaki od ključa također sadrži još jednu listu u kojoj su zapisani svi čvorovi za koje je taj ključ valjan. 
 + 
 +  * RawPublicKey 
 +    * Koristi se asimetričan par ključeva s kojima se može potvrditi komunikacija između čvorova. 
 + 
 +  * //Certificate// 
 +    * Koriste se X509 certifikati 
 +    * Svaki certifikat sadrži javni ključ i digitalni potpis 
 +    * Javni ključ je dio para javnog i privatnog ključa 
 +    * Digitalni potpis je enkodiran hash 
 + 
 +{{:racfor_wiki:coapsig.png?350|}} 
 + 
 +Ako usporedimo komunikaciju između klijenta i poslužitelja kada se koristi DTLS možemo vidjeti da je potreban puno veći broj poruka koje se moraju razmijeniti prije nego se uopće mogu podaci početi razmjenjivati. Kako većinu uređaja koji koriste CoAP protokol imaju male energetske mogućnosti, ovakva razmjena podataka često može dovesti do prebrze potrošnje baterije.  
 + 
 +===== Zaključak ===== 
 + 
 +CoAP je jednostavan protokol koji omogućuje komunikaciju između vrlo slabih uređaja na efikasan način. Iako je sigurnost implementirana u samom protokolu, ona i dalje nije na vrlo viskom nivou što može stvarati probleme ako se radi o povjerljivim podacima. U slučaju da je sigurnost podataka vrlo važna stavka nekog sustava preporučuje se korištenje drugih, kompleksnijih protokola kao što je MQTT. 
 + 
 +===== Literatura ===== 
 +[1] [[https://www.fer.unizg.hr/_download/repository/IoT-2020_01.pdf|Općenito o Internetu stvari, osnovni pojmovi, arhitektura i područja primjene, 2020.]] 
 + 
 +[2] [[https://www.fer.unizg.hr/_download/repository/IoT-2020_06.pdf|Aplikacijski sloj: MQTT, CoAP, 2020.]] 
 + 
 +[3] [[https://tools.ietf.org/html/rfc7252|RFC 7252.]]
  
-{{:racfor_wiki:observ.png?400|}}+[4] [[https://ieeexplore.ieee.org/document/8728533|An Overview of Security in CoAP: Attack and Analysis]]
racfor_wiki/coap_protkol.1610498930.txt.gz · Zadnja izmjena: 2023/06/19 18:14 (vanjsko uređivanje)
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0