SILIKON-logo

SILICON LABS UG103.11 Thread Fundamentals Software

SILICON-LABS-UG103-11-Thread-Fundamentals-Software-product-image

Specifikacije:

  • Naziv proizvoda: Thread Fundamentals
  • Proizvođač: Silicon Labs
  • Protokol: Thread
  • Verzija: Rev. 1.6
  • Protokol bežičnog umrežavanja: Mrežno umrežavanje
  • Podržani standardi: IEEE, IETF

Informacije o proizvodu

Thread Fundamentals je siguran, bežični mesh mrežni protokol koji je razvio Silicon Labs. Podržava IPv6 adrese, jeftino premošćavanje sa drugim IP mrežama i optimizovan je za rad sa malom potrošnjom energije i baterijama. Protokol je dizajniran za Connected Home i komercijalne aplikacije gdje je poželjno umrežavanje zasnovano na IP-u.

Uputstva za upotrebu

  1. Uvod u osnove niti:
    Thread je siguran, bežični mesh mrežni protokol koji je izgrađen na postojećim IEEE i IETF standardima. Omogućava komunikaciju između uređaja u Connected Home i komercijalnim aplikacijama.
  2. Implementacija OpenThread:
    OpenThread, prenosiva implementacija Thread protokola, nudi pouzdanu, sigurnu i bežičnu komunikaciju između uređaja male energije za kućne i komercijalne zgrade. Silicon Labs pruža protokol baziran na OpenThread-u prilagođen za rad sa njihovim hardverom, dostupan na GitHubu i kao dio Simplicity Studio 5 SDK.
  3. Članstvo u grupi teme:
    Pridruživanje Thread grupi omogućava pristup sertifikaciji proizvoda i promoviše upotrebu uređaja sa podrškom za Thread. Nasljedne verzije Specifikacije niti su najavljene sa programima certifikacije 2022. godine.

FAQ:

  • P: Kako mogu preuzeti najnoviju specifikaciju niti?
    O: Najnovija specifikacija niti se može preuzeti podnošenjem zahtjeva u grupi tema website at https://www.threadgroup.org/ThreadSpec.
  • P: Šta je glavni advantage korištenja Thread-a u IoT uređajima?
    O: Thread pruža siguran, bežični mesh mrežni protokol koji podržava rad male energije i komunikaciju između uređaja, povećavajući stope usvajanja i prihvaćanje korisnika za IoT uređaje.

UG103.11: Osnove niti

  • Ovaj dokument uključuje kratku pozadinu o nastanku
  • Thread, pruža tehnologiju prekoview, i opisuje neke ključne karakteristike Thread-a koje treba uzeti u obzir prilikom implementacije Thread rješenja.
  • Serija Fundamentals kompanije Silicon Labs pokriva teme koje bi projektni menadžeri, dizajneri aplikacija i programeri trebali razumjeti prije početka rada na ugrađenom mrežnom rješenju koristeći
  • Čipovi Silicon Labs, mrežni stekovi kao što su EmberZNet PRO ili Silicon Labs Bluetooth® i povezani razvojni alati. Dokumenti se mogu koristiti kao početno mjesto za svakoga kome je potreban uvod u razvoj aplikacija za bežično umrežavanje ili ko je novi u razvojnom okruženju Silicon Labs.

KLJUČNE TAČKE

  • Uvodi Thread i pruža tehnologiju prekoview.
  • Opisuje neke od ključnih elemenata Thread-a, uključujući njegov IP stack, topologiju mreže, usmjeravanje i mrežno povezivanje, pridruživanje mreži, upravljanje, trajne podatke, sigurnost, granični ruter, puštanje u rad uređaja i sloj aplikacije.
  • Sadrži ažuriranja za Thread Specification 1.3.0.
  • Uključuje sljedeće korake za rad s ponudom Silicon Labs OpenThread.

Uvod

  1. Silicijumske laboratorije i internet stvari
    • Internet protokol verzija 4 (IPv4) definisan je 1981. godine u RFC 791, DARPA specifikacija protokola Internet programa. (“RFC” je skraćenica za “Zahtjev za komentare.”) Koristeći 32-bitno (4-bajtno) adresiranje, IPv4 je obezbijedio 232 jedinstvene adrese za uređaje na internetu, ukupno približno 4.3 milijarde adresa. Međutim, kako je broj korisnika i uređaja eksponencijalno rastao, bilo je jasno da će broj IPv4 adresa biti iscrpljen i da postoji potreba za novom verzijom IP-a. Otuda razvoj IPv6 1990-ih i njegova namjera da zamijeni IPv4. Sa 128-bitnim (16-bajtnim) adresiranjem, IPv6 dozvoljava 2128 adresa, više od 7.9×1028 adresa od IPv4 (http://en.wikipedia.org/wiki/IPv6).
    • Izazov za kompanije u embedded industriji kao što je Silicon Labs je da se pozabave ovom tehnološkom migracijom i, što je još važnije, zahtjevima kupaca dok se krećemo u stalno povezan svijet uređaja u kućnom i poslovnom prostoru, što se često naziva internet stvari (IoT). Na visokom nivou, ciljevi IoT-a za Silicon Labs su:
    • Povežite sve uređaje u kućnom i poslovnom prostoru uz najbolje umrežavanje u klasi, bilo sa Zigbee PRO, Thread, Blue-tooth ili drugim novim standardima.
    • Iskoristite stručnost kompanije u energetski prihvatljivim mikrokontrolerima.
    • Poboljšajte uspostavljene čipove male snage, miješanog signala.
    • Omogućite jeftino premošćavanje postojećih Ethernet i Wi-Fi uređaja.
    • Omogućite usluge u oblaku i povezivanje sa pametnim telefonima i tabletima koji će promovirati jednostavnost korištenja i zajedničko korisničko iskustvo za korisnike.
      Postizanje svih ovih ciljeva povećat će stopu usvajanja i prihvaćanje korisnika za IoT uređaje.
  2. Thread Group
    • Grupa tema (https://www.threadgroup.org/) pokrenuta je 15. jula 2014. Silicon Labs je bila osnivačka kompanija zajedno sa šest drugih kompanija. Thread Group je grupa za edukaciju o tržištu koja nudi certifikaciju proizvoda i promoviše upotrebu Thread-omogućenih proizvoda od uređaja do uređaja (D2D) i od stroja do stroja (M2M). Članstvo u grupi tema je otvoreno.
    • Specifikacija teme 1.1 može se preuzeti nakon podnošenja zahtjeva ovdje: https://www.threadgroup.org/ThreadSpec. Nasljedne verzije Thread Specifikacije, 1.2 i 1.3.0, također su najavljene sa programima sertifikacije u 2022. Najnovija 1.4-nacrt specifikacije Thread dostupna je samo članovima Thread-a.
  3. Šta je Thread?
    Thread je siguran, bežični mesh mrežni protokol. Thread stack je otvoreni standard koji je izgrađen na kolekciji postojećih standarda Instituta za inženjere elektronike i elektronike (IEEE) i Internet Engineering Task Force (IETF), a ne na potpuno novom standardu (pogledajte sljedeću sliku).SILICON-LABS-UG103-11-Thread-Osnove-Softver- (1)
  4. Opće karakteristike niti
    • Thread stack podržava IPv6 adrese i pruža jeftino premošćavanje sa drugim IP mrežama i optimizovan je za rad sa malom potrošnjom/baterijom i bežičnu komunikaciju između uređaja. Thread stack je dizajniran posebno za Connected Home i komercijalne aplikacije gdje je poželjno umrežavanje zasnovano na IP-u i gdje se na steku mogu koristiti različiti slojevi aplikacije.
    • Ovo su opšte karakteristike Thread steka:
    • Jednostavna mrežna instalacija, pokretanje i rad: Thread stack podržava nekoliko mrežnih topologija. Instalacija je jednostavna pomoću pametnog telefona, tableta ili računara. Instalacijski kodovi proizvoda se koriste kako bi se osiguralo da se samo ovlašteni uređaji mogu pridružiti mreži. Jednostavni protokoli za formiranje i spajanje mreža omogućavaju sistemima da se sami konfigurišu i poprave probleme rutiranja kako se pojave.
    • Sigurno: uređaji se ne pridružuju mreži osim ako nisu ovlašteni i sve komunikacije su šifrirane i sigurne. Sigurnost je osigurana na mrežnom sloju i može biti na sloju aplikacije. Sve Thread mreže su šifrirane pomoću šeme za autentifikaciju iz ere pametnog telefona i enkripcije Advanced Encryption Standard (AES). Sigurnost koja se koristi u Thread mrežama je jača od ostalih bežičnih standarda koje je Thread Group ocijenila.
    • Male i velike kućne mreže: Kućne mreže variraju od nekoliko do stotina uređaja. Mrežni sloj je dizajniran da optimizira rad mreže na osnovu očekivane upotrebe.
    • Velike komercijalne mreže: Za veće komercijalne instalacije, jedna Thread mreža nije dovoljna da pokrije sve zahtjeve aplikacija, sistema i mreže. Model Thread Domain omogućava skalabilnost za do 10,000 Thread uređaja u jednoj implementaciji, koristeći kombinaciju različitih tehnologija povezivanja (Thread, Ethernet, Wi-Fi, itd.).
    • Dvosmjerno otkrivanje usluga i povezivanje: Multicast i emitiranje su neefikasni na bežičnim mesh mrežama. Za komunikaciju van mreže, Thread pruža registar usluga u kojem uređaji mogu registrirati svoje prisustvo i usluge, a klijenti mogu koristiti jednostrane upite da otkriju registrirane usluge.
    • Domet: Tipični uređaji pružaju dovoljan domet da pokriju normalan dom. Lako dostupni dizajni sa snagom ampLifiers značajno proširuju opseg. Distribuirani prošireni spektar se koristi na fizičkom sloju (PHY) kako bi bio otporniji na smetnje. Za komercijalne instalacije, model Thread Domain dozvoljava višestrukim Thread mrežama da komuniciraju jedna s drugom preko kičme, čime se proširuje raspon da pokrije mnoge mesh podmreže.
    • Nema jedne tačke kvara: Thread stack je dizajniran da obezbedi sigurne i pouzdane operacije čak i sa kvarom ili gubitkom pojedinačnih uređaja. Thread uređaji također mogu uključiti veze zasnovane na IPv6 kao što su Wi-Fi i Ethernet u topologiju kako bi se smanjila vjerovatnoća višestrukih Thread particija. Na ovaj način, oni mogu iskoristiti veću propusnost, kapacitet kanala i pokrivenost tih infrastrukturnih veza, dok i dalje podržavaju uređaje male snage.
    • Mala snaga: uređaji efikasno komuniciraju kako bi pružili poboljšano korisničko iskustvo sa godinama očekivanog vijeka trajanja pod normalnim uvjetima baterije. Uređaji obično mogu raditi nekoliko godina na AA baterijama koristeći odgovarajuće radne cikluse.
    • Isplativo: kompatibilni skupovi čipova i softverski paketi od više proizvođača imaju cijenu za masovnu primenu i dizajnirani su od temelja da imaju izuzetno nisku potrošnju energije.
  5.  OpenThread
    • OpenThread koji je objavio Google je implementacija Thread® otvorenog koda. Google je izdao OpenThread kako bi tehnologiju mrežnog rada koja se koristi u Google Nest proizvodima učinio širom dostupnom programerima, kako bi ubrzao razvoj proizvoda za povezane kuće i poslovne zgrade.
    • Sa slojem apstrakcije uske platforme i malim memorijskim otiskom, OpenThread je vrlo prenosiv. Podržava i sistem na čipu (SoC) i radio koprocesor (RCP) dizajn.
    • OpenThread definira pouzdan, siguran i male snage bežični komunikacioni protokol između uređaja i uređaja zasnovan na IPv6 za aplikacije u kućnim i komercijalnim zgradama. Implementira sve karakteristike definisane u specifikaciji niti 1.1.1, specifikaciji niti 1.2, specifikaciji niti 1.3.0 i nacrtu specifikacije niti 1.4 (od objavljivanja ovog dokumenta).
    • Silicon Labs je implementirao OpenThread baziran protokol prilagođen za rad sa Silicon Labs hardverom. Ovaj protokol je dostupan na GitHubu, kao i kao komplet za razvoj softvera (SDK) instaliran sa Simplicity Studio 5. SDK je potpuno testirani snimak Gi-tHub izvora. Podržava širi raspon hardvera nego GitHub verzija, i uključuje dokumentaciju i example aplikacije nisu dostupne na GitHubu.

Thread Technology Overview

  1. IEEE 802.15.4
    • IEEE 802.15.4-2006 specifikacija je standard za bežičnu komunikaciju koji definiše bežične slojeve kontrole pristupa srednjem (MAC) i fizičke (PHY) koje rade na 250 kbps u opsegu 2.4 GHz, sa mapom puta za opsege ispod GHz (IEEE 802.15.4. 2006-802.15.4 Specifikacija). Dizajniran sa malom potrošnjom na umu, XNUMX je pogodan za aplikacije koje obično uključuju veliki broj čvorova.
    • 802.15.4 MAC sloj se koristi za osnovno rukovanje porukama i kontrolu zagušenja. Ovaj MAC sloj uključuje Carrier Sense Multiple Access (CSMA) mehanizam za uređaje da slušaju čist kanal, kao i sloj veze za rukovanje ponovnim pokušajima i potvrdom poruka za pouzdanu komunikaciju između susjednih uređaja. Šifrovanje MAC sloja se koristi za poruke zasnovane na ključevima koje su uspostavili i konfigurisali viši slojevi softverskog steka. Mrežni sloj se nadovezuje na ove temeljne mehanizme za pružanje pouzdane komunikacije s kraja na kraj u mreži.
    • Počevši od Thread Specifikacije 1.2, implementirano je nekoliko optimizacija iz IEEE 802.15.4-2015 specifikacije kako bi Thread mreže bile robusnije, osjetljivije i skalabilnije:
    • Unapređeni okvir na čekanju: Poboljšava trajanje baterije i odziv uređaja uspavanog kraja (SED), smanjenjem broja poruka koje SED može poslati bežičnim putem. Svaki paket podataka koji stigne od SED-a (ne samo zahtjevi za podacima) može se potvrditi uz prisustvo nadolazećih podataka na čekanju.
    • Poboljšani Keepalive: Smanjuje količinu saobraćaja potrebnog za održavanje veze između SED-a i roditelja tretiranjem bilo koje poruke podataka kao mrežnog prijenosa za održavanje aktivacije.
    • Koordinirani SampLED slušanje (CSL): Ova karakteristika specifikacije IEEE 802.15.4-2015 omogućava bolju sinhronizaciju između SED-a i roditelja planiranjem sinhronizovanih perioda slanja/prijema bez periodičnih zahteva za podacima. Ovo omogućava uređaje male snage koji imaju nisko kašnjenje veze i mrežu sa manjom šansom za koliziju poruka.
    • Poboljšano ispitivanje ACK-a: Ova karakteristika specifikacije IEEE 802.15.4-2015 omogućava inicijatoru granularnu kontrolu nad upitima metrike veze uz uštedu energije ponovnim korištenjem redovnih obrazaca prometa podataka umjesto zasebnih probnih poruka.
  2. Mrežna arhitektura niti
    1. Rezidencijalna arhitektura
      Korisnici komuniciraju sa rezidencijalnom Thread mrežom sa svog vlastitog uređaja (pametnog telefona, tableta ili računara) putem Wi-Fi mreže na svojoj kućnoj mreži (HAN) ili koristeći aplikaciju zasnovanu na oblaku. Sljedeća slika ilustruje ključne tipove uređaja u Thread mrežnoj arhitekturi.SILICON-LABS-UG103-11-Thread-Osnove-Softver- (2)

Slika 2.1. Mrežna arhitektura niti
Sljedeći tipovi uređaja uključeni su u Thread mrežu, počevši od Wi-Fi mreže:

  • Granični ruteri obezbeđuju povezivanje sa 802.15.4 mreže na susedne mreže na drugim fizičkim slojevima (Wi-Fi, Ethernet, itd.). Granični ruteri pružaju usluge za uređaje unutar 802.15.4 mreže, uključujući usluge rutiranja i otkrivanje usluga za operacije van mreže. Može postojati jedan ili više graničnih rutera u Thread mreži.
  • Leader, u mrežnoj particiji Thread, upravlja registrom dodijeljenih ID-ova rutera i prihvata zahtjeve krajnjih uređaja koji ispunjavaju uslove za ruter (REED) da postanu ruteri. Leader odlučuje koji bi trebali biti ruteri, a Leader, kao i svi ruteri u Thread mreži, također može imati djecu na kraju uređaja. Lider takođe dodeljuje i upravlja adresama rutera koristeći CoAP (Constrained Appli-cation Protocol). Međutim, sve informacije sadržane u Leader-u prisutne su u drugim usmjerivačima niti. Dakle, ako Leader ne uspije ili izgubi vezu sa Thread mrežom, bira se drugi Thread Router, koji preuzima dužnost Lidera bez intervencije korisnika.
  • Thread Routeri pružaju usluge usmjeravanja mrežnim uređajima. Thread Routeri također pružaju usluge spajanja i sigurnosti za uređaje koji pokušavaju da se pridruže mreži. Thread Routeri nisu dizajnirani za spavanje i mogu smanjiti svoju funkcionalnost i postati REED.
  • REED-ovi mogu postati Thread Router ili Leader, ali ne nužno i Border Router koji ima posebna svojstva, kao što su višestruka sučelja. Zbog topologije mreže ili drugih uslova, REED uređaji se ne ponašaju kao ruteri. REED uređaji ne prenose poruke niti pružaju usluge pridruživanja ili sigurnosti za druge uređaje u mreži. Mreža upravlja i promovira uređaje koji ispunjavaju uslove za ruter ruterima ako je potrebno, bez interakcije korisnika.
  • Krajnji uređaji koji ne ispunjavaju uslove za ruter mogu biti ili FED (potpuni krajnji uređaji) ili MED (minimalni krajnji uređaji). MED ne moraju eksplicitno da se sinhronizuju sa svojim roditeljem da bi komunicirali.
  • Sleepy end uređaji (SED) komuniciraju samo preko svog roditelja Thread Routera i ne mogu prenositi poruke za druge uređaje.
  • Sinhronizovani krajnji uređaji za spavanje (SSED) su klasa Sleepy End uređaja koji koriste CSL iz IEEE 802.15.4-2015 za održavanje sinhronizovanog rasporeda sa roditeljem, izbegavajući upotrebu redovnih zahteva za podacima.

Komercijalna arhitektura
Thread Commercial model uzima ključne tipove uređaja za stambenu mrežu i dodaje nove koncepte. Korisnici komuniciraju sa komercijalnom mrežom putem uređaja (pametnih telefona, tableta ili računara) putem Wi-Fi mreže ili preko svoje poslovne mreže. Sljedeća slika ilustruje topologiju komercijalne mreže.SILICON-LABS-UG103-11-Thread-Osnove-Softver- (3)

Slika 2.2. Topologija komercijalne mreže

Koncepti su:

  • Model Thread Domain podržava besprijekornu integraciju višestrukih Thread mreža kao i besprijekorno sučelje s mrežama koje nisu Thread IPv6. Glavna prednost domene niti je ta što su uređaji u određenoj mjeri fleksibilni da se pridruže bilo kojoj dostupnoj Thread mreži konfiguriranoj sa zajedničkom domenom niti, što smanjuje potrebu za ručnim planiranjem mreže ili skupim ručnim rekonfiguracijama kada se veličina mreže ili količina podataka skaliraju gore.
  • Backbone Border Routeri (BBR) su klasa graničnih rutera u komercijalnom prostoru koji olakšavaju sinhronizaciju domene niti za više segmenata mreže i omogućavaju širenje višestrukog prijenosa velikog obima u i iz svake pojedinačne mreže u Thread Do-main. Mreža Thread koja je dio veće domene mora imati najmanje jedan “primarni” BBR i može imati više “sekundarnih” BBR-ova za redundantnost bez greške. BBR-ovi komuniciraju jedni s drugima preko kičme koja povezuje sve Thread mreže.
  • Backbone Link je ne-Thread IPv6 veza na koju se BBR povezuje koristeći eksterni interfejs koji se koristi za implementaciju Thread Backbone Link Protocol (TBLP) za sinhronizaciju sa drugim BBR-ovima.
  • Nitski uređaji u komercijalnoj implementaciji su konfigurisani pomoću domena niti i jedinstvenih adresa domena (DUA). DUA uređaja se nikada ne mijenja tokom njegovog životnog vijeka nakon što je dio domene Thread. Ovo olakšava migraciju kroz različite Thread mreže u jednoj domeni i osigurava da odgovarajući BBR-ovi olakšavaju rutiranje kroz više Thread mreža.

Ovi koncepti su ilustrirani na sljedećoj slici: SILICON-LABS-UG103-11-Thread-Osnove-Softver- (4)

Slika 2.3. Model domene niti
Nema jedne tačke kvara

  • Thread stack je dizajniran da nema ni jednu tačku kvara. Iako postoji niz uređaja u sistemu koji obavljaju posebne funkcije, Thread je dizajniran tako da se mogu zamijeniti bez uticaja na tekući rad mreže ili uređaja. Za nprampDakle, krajnji uređaj uspavanog zahtijeva roditelja za komunikaciju, tako da ovaj roditelj predstavlja jednu tačku kvara za njegovu komunikaciju. Međutim, krajnji uređaj uspavanog može i hoće odabrati drugog roditelja ako njegov roditelj nije dostupan. Ovaj prijelaz ne bi trebao biti vidljiv korisniku.
    Iako je sistem dizajniran da nema pojedinačne tačke kvara, pod određenim topologijama će postojati pojedinačni uređaji koji nemaju mogućnosti rezervnog kopiranja. Za nprample, u sistemu sa jednom granicom
  • Ruter, ako granični ruter izgubi napajanje, ne postoji način da se prebacite na alternativni granični ruter. U ovom scenariju mora se izvršiti rekonfiguracija graničnog rutera.
  • Počevši od Thread Specification 1.3.0, granični usmjerivači koji dijele infrastrukturnu vezu mogu olakšati ni jednu tačku kvara na drugom mediju (kao što je Wi-Fi ili Ethernet) koristeći Thread
  • Radio Enkapsulaciona veza (TREL). Sa ovom funkcijom, smanjuje se vjerovatnoća formiranja particija niti preko veza.

Osnove IP steka

  1. Addressing
    • Uređaji u Thread steku podržavaju arhitekturu IPv6 adresiranja kako je definisano u RFC 4291 (https://tools.ietf.org/html/rfc4291: IP verzija 6 Arhitektura adresiranja). Uređaji podržavaju Unique
    • Lokalna adresa (ULA), jedinstvena adresa domene (DUA) u modelu domene Thread i jedna ili više globalnih jednostrukih adresa (GUA) na osnovu njihovih dostupnih resursa.
    • Bitovi visokog reda IPv6 adrese određuju mrežu, a ostali određuju određene adrese u toj mreži. Dakle, sve adrese u jednoj mreži imaju isti prvi N bitova. One prve
    • N bitova se nazivaju “prefiks”. “/64” označava da je ovo adresa sa 64-bitnim prefiksom. Uređaj koji pokreće mrežu bira prefiks /64 koji se zatim koristi u cijeloj mreži. Prefiks je ULA (https://tools.ietf.org/html/rfc4193: Jedinstvene lokalne IPv6 Unicast adrese). Mreža također može imati jedan ili više graničnih rutera od kojih svaki može imati ili ne mora imati /64 koji se onda može koristiti za generiranje ULA ili GUA. Uređaj u mreži koristi svoju adresu EUI-64 (64-bitni prošireni jedinstveni identifikator) da izvede svoj identifikator interfejsa kako je definisano u Odjeljku 6 RFC 4944 (https://tools.ietf.org/html/rfc4944: Prijenos IPv6 paketa preko IEEE 802.15.4 mreža). Uređaj će podržavati lokalnu IPv6 adresu veze konfigurisanu iz EUI-64 čvora kao identifikator interfejsa sa dobro poznatim lokalnim prefiksom veze FE80::0/64 kako je definisano u RFC 4862 (https://tools.ietf.org/html/rfc4862: Autokonfiguracija IPv6 adrese bez stanja) i RFC 4944.
    • Uređaji također podržavaju odgovarajuće multicast adrese. Ovo uključuje višestruko slanje svih čvorova lokalnog povezivanja, višestruko emitiranje lokalnog svih rutera, višestruko emitiranje pojedinačnih čvorova i mrežno lokalno multicast. Uz prisustvo graničnog rutera okosnice u modelu domene, uređaji također mogu podržati višestruke adrese većeg opsega ako se registruju za njih.
    • Svakom uređaju koji se pridružuje mreži dodijeljena je 2-bajtna kratka adresa prema IEEE 802.15.4-2006 specifikaciji. Za rutere, ova adresa se dodjeljuje korištenjem visokih bitova u polju adrese.
    • Djeci se tada dodjeljuje kratka adresa koristeći roditeljske visoke bitove i odgovarajuće niže bitove za njihovu adresu. Ovo omogućava bilo kojem drugom uređaju u mreži da razumije djetetovu lokaciju usmjeravanja korištenjem visokih bitova njegovog adresnog polja.
  2. 6LoWPAN
    • 6LoWPAN je skraćenica za “IPv6 preko bežičnih ličnih mreža male snage”. Glavni cilj 6LoWPAN je slanje i primanje IPv6 paketa preko 802.15.4 linkova. Pritom se mora prilagoditi maksimalnoj veličini okvira 802.15.4 koja se šalje putem zraka. U Ethernet vezama, paket veličine IPv6 Maximum Transmission Unit (MTU) (1280 bajtova) može se lako poslati kao jedan okvir preko veze. U slučaju 802.15.4, 6LoWPAN djeluje kao adaptacijski sloj između IPv6 mrežnog sloja i sloja veze 802.15.4. To rješava problem prijenosa IPv6
    • MTU fragmentacijom IPv6 paketa kod pošiljaoca i ponovnim sastavljanjem kod primaoca.
      6LoWPAN također pruža mehanizam kompresije koji smanjuje veličine IPv6 zaglavlja koji se šalju putem zraka i na taj način smanjuje opterećenje prijenosa. Što se manje bitova šalje zrakom, to manje energije troši uređaj. Thread u potpunosti koristi ove mehanizme za efikasan prijenos paketa preko 802.15.4 mreže. RFC 4944 (https://tools.ietf.org/html/rfc4944) i RFC 6282 (https://tools.ietf.org/html/rfc6282) detaljno opisati metode kojima se postižu fragmentacija i kompresija zaglavlja.
  3. Prosljeđivanje sloja veze
    Još jedna važna karakteristika sloja 6LoWPAN je prosljeđivanje paketa sloja veze. Ovo obezbeđuje veoma efikasan mehanizam sa niskim opterećenjem za prosleđivanje paketa sa više skokova u mesh mreži. Thread koristi rutiranje IP sloja sa prosljeđivanjem paketa sloja veze.
    Thread koristi prosljeđivanje sloja veze za prosljeđivanje paketa na osnovu IP tablice rutiranja. Da bi se to postiglo, 6LoWPAN mesh header se koristi u svakom paketu sa više skokova (pogledajte sljedeću sliku). SILICON-LABS-UG103-11-Thread-Osnove-Softver- (5)
    • Slika 3.1. Format zaglavlja mreže
    • U Thread-u, sloj 6LoWPAN ispunjava informacije zaglavlja mreže sa 16-bitnom kratkom adresom začetnika i 16-bitnom izvornom adresom krajnjeg odredišta. Predajnik traži 16-bitnu kratku adresu sljedećeg skoka u tablici rutiranja, a zatim šalje okvir 6LoWPAN na 16-bitnu kratku adresu sljedećeg skoka kao odredište. Uređaj sljedećeg skoka prima paket, traži sljedeći skok u
    • Tabela rutiranja / Tabela susjeda, smanjuje broj skokova u 6LoWPAN Mesh zaglavlju, a zatim šalje paket sljedećem skoku ili krajnjoj odredišnoj 16-bitnoj kratkoj adresi kao odredište.
    • 6LoWPAN Enkapsulacija
      6LoWPAN paketi su konstruisani na istom principu kao i IPv6 paketi i sadrže naslagana zaglavlja za svaku dodatnu funkcionalnost. Svakom zaglavlju 6LoWPAN prethodi vrijednost otpreme koja identificira tip zaglavlja (pogledajte sljedeću sliku).
  4. 6LoWPAN Enkapsulacija
    6LoWPAN paketi su konstruisani na istom principu kao i IPv6 paketi i sadrže naslagana zaglavlja za svaku dodatnu funkcionalnost. Svakom zaglavlju 6LoWPAN prethodi vrijednost otpreme koja identificira tip zaglavlja (pogledajte sljedeću sliku). SILICON-LABS-UG103-11-Thread-Osnove-Softver- (6)
    Slika 3.2. Opšti format 6LoWPAN paketa
    Thread koristi sljedeće tipove 6LoWPAN zaglavlja:
    • Mesh Header (koristi se za prosljeđivanje sloja veze)
    • Fragmentation Header (koristi se za fragmentaciju IPv6 paketa u nekoliko 6LoWPAN paketa)
    • Kompresija zaglavlja Zaglavlje (koristi se za kompresiju IPv6 zaglavlja)
    • Specifikacija 6LoWPAN nalaže da ako je prisutno više od jednog zaglavlja, ono se mora pojaviti gore navedenim redoslijedom. Sljedeće su npramp6 LoWPAN paketa poslanih zračnim putem.
    • Na sljedećoj slici, 6LoWPAN korisni teret se sastoji od komprimovanog IPv6 zaglavlja i ostatka IPv6 korisnog opterećenja. SILICON-LABS-UG103-11-Thread-Osnove-Softver- (7)
    • Slika 3.3. 6LoWPAN paket koji sadrži IPv6 korisni teret sa komprimiranim IPv6 zaglavljem
    • Na sljedećoj slici, 6LoWPAN korisni teret sadrži IPv6 zaglavlje i dio IPv6 korisnog opterećenja. SILICON-LABS-UG103-11-Thread-Osnove-Softver- (8)
    • Slika 3.4. 6LoWPAN paket koji sadrži zaglavlje mreže, zaglavlje fragmentacije i kompresijsko zaglavlje Ostatak korisnog opterećenja će se prenijeti u narednim paketima prema formatu na sljedećoj slici. SILICON-LABS-UG103-11-Thread-Osnove-Softver- (9)
    • Slika 3.5. 6LoWPAN Naknadni fragment
  5. ICMP
    Thread uređaji podržavaju protokol Internet Control Message Protocol verzija 6 (ICMPv6) protokol kao što je definirano u RFC 4443, Internet Control Message Protocol (ICMPv6) za specifikaciju Internet Protocol Version 6 (IPv6). Oni također podržavaju eho zahtjev i eho odgovor poruke.
  6. UDP
    Thread stek podržava korisnika Datagram protokol (UDP) kako je definirano u RFC 768, korisnik Datagram Protocol.
  7. TCP
    Thread stek podržava varijantu protokola kontrole transporta (TCP) pod nazivom “TCPlp” (TCP Low Power) (Pogledajte usenix-NSDI20). Uređaj kompatibilan s niti implementira uloge TCP inicijatora i slušatelja kako je opisano u:
    • RFC 793, Protokol kontrole prijenosa
    • RFC 1122, Zahtjevi za internet hostove
    • Specifikacija niti 1.3.0 i novije: Postojeće TCP implementacije obično nisu podešene da rade optimalno preko bežičnih mesh mreža i sa ograničenim veličinama okvira 802.15.4. Stoga, specifikacija definira one elemente i vrijednosti parametara potrebne za efikasnu implementaciju TCP-a preko mreža niti (pogledajte Specifikacija niti 1.3.0, odjeljak 6.2 TCP).
  8. SRP
    • Protokol registracije usluge (SRP) kako je definiran u Protokolu registracije usluge za DNS-bazirano otkrivanje usluga koristi se na Thread uređajima počevši od Thread Specification 1.3.0. Mora postojati servisni registar, koji održava granični ruter. SRP klijenti na mesh mreži mogu se registrovati da nude različite usluge. SRP server prihvata upite za otkrivanje zasnovane na DNS-u i dodatno nudi kriptografiju javnog ključa radi sigurnosti, zajedno sa drugim manjim poboljšanjima za bolju podršku ograničenim klijentima.

Mrežna topologija

  1. Mrežna adresa i uređaji
    • Thread stack podržava punu mesh povezanost između svih rutera u mreži. Stvarna topologija je zasnovana na broju rutera u mreži. Ako postoji samo jedan ruter, tada mreža formira zvijezdu. Ako postoji više od jednog rutera, mreža se automatski formira (pogledajte 2.2 Arhitektura mreže niti).
  2. Mesh Networks
    • Ugrađene mesh mreže čine radio sisteme pouzdanijim dozvoljavajući radijima da prenose poruke za druge radio uređaje. Za nprampAko čvor ne može poslati poruku direktno drugom čvoru, ugrađena mesh mreža prenosi poruku kroz jedan ili više posredničkih čvorova. Kao što je objašnjeno u odjeljku 5.3 Rutiranje, svi čvorovi rutera u Thread steku održavaju rute i međusobno povezivanje tako da se mreža stalno održava i povezuje. Postoji ograničenje od 64 adrese rutera u Thread mreži, ali ne mogu se sve koristiti odjednom. Ovo omogućava vrijeme za ponovno korištenje adresa izbrisanih uređaja.
    • U mesh mreži, krajnji uređaji za spavanje ili uređaji koji ispunjavaju uslove za ruter ne usmjeravaju za druge uređaje. Ovi uređaji šalju poruke roditelju koji je ruter. Ovaj roditelj ruter upravlja operacijama usmjeravanja za svoje podređene uređaje.

Usmjeravanje i mrežno povezivanje

Thread mreža ima do 32 aktivna rutera koji koriste rutiranje sljedećeg skoka za poruke na osnovu tablice usmjeravanja. Tabelu usmjeravanja održava Thread stek kako bi se osiguralo da svi ruteri imaju konekciju i ažurne putanje za bilo koji drugi ruter u mreži. Svi ruteri razmjenjuju sa drugim ruterima svoje troškove rutiranja do drugih rutera u mreži u komprimiranom formatu koristeći Mesh Link Establishment (MLE).

  1.  MLE poruke
    • Mesh Link Uspostavljanje (MLE) poruke se koriste za uspostavljanje i konfigurisanje sigurnih radio veza, otkrivanje susjednih uređaja i održavanje troškova rutiranja između uređaja u mreži. MLE radi ispod sloja rutiranja i koristi lokalnu jednosmjernu vezu i višestruko slanje između rutera.
    • MLE poruke se koriste za identifikaciju, konfiguraciju i sigurne veze sa susjednim uređajima kako se topologija i fizičko okruženje mijenjaju. MLE se također koristi za distribuciju konfiguracijskih vrijednosti koje se dijele preko mreže kao što su kanal i ID mreže lične mreže (PAN). Ove poruke se mogu proslijediti jednostavnim floodom kako je specificirano od strane MPL (https://tools.ietf.org/html/draft-ietf-roll-trickle-mcast-11: Multicast protokol za mreže male snage i gubitaka (MPL)).
    • MLE poruke također osiguravaju da se asimetrični troškovi veze uzimaju u obzir prilikom uspostavljanja troškova rutiranja između dva uređaja. Asimetrični troškovi veze su uobičajeni u 802.15.4 mrežama. Da bi se osiguralo da je dvosmjerna razmjena poruka pouzdana, važno je uzeti u obzir troškove dvosmjerne veze.
  2. Otkrivanje i popravak rute
    • Otkrivanje rute na zahtjev se obično koristi u 802.15.4 mrežama male snage. Međutim, otkrivanje rute na zahtjev je skupo u smislu mrežnog opterećenja i propusnosti jer uređaji emituju zahtjeve za otkrivanje rute kroz mrežu. U Thread steku, svi ruteri razmjenjuju MLE pakete sa jednim skokom koji sadrže informacije o troškovima sa svim ostalim ruterima u mreži. Svi ruteri imaju ažurirane informacije o troškovima putanje do bilo kojeg drugog rutera u mreži, tako da otkrivanje rute na zahtjev nije potrebno. Ako ruta više nije upotrebljiva, ruteri mogu odabrati sljedeću najprikladniju rutu do odredišta.
    • Usmjeravanje na podređene uređaje se vrši gledanjem visokih bitova adrese djeteta kako bi se odredila adresa roditeljskog rutera. Jednom kada uređaj zna roditeljski ruter, on zna informacije o cijeni putanje i informacije o rutiranju sljedećeg skoka za taj uređaj.
    • Kako se mijenja cijena rute ili topologija mreže, promjene se šire kroz mrežu koristeći MLE poruke jednog skoka. Troškovi rutiranja su zasnovani na kvaliteti dvosmjerne veze između dva uređaja. Kvalitet veze u svakom smjeru zasniva se na margini veze na dolaznim porukama sa susjednog uređaja. Ovaj indikator jačine primljenog signala (RSSI) preslikava se na kvalitet veze od 0 do 3. Vrijednost 0 znači nepoznatu cijenu.
    • Kada ruter primi novu MLE poruku od susjeda, ili već ima unos tablice susjeda za uređaj ili je jedan dodat. MLE poruka sadrži dolazni trošak od susjeda, tako da se to ažurira u tablici susjeda rutera. MLE poruka također sadrži ažurirane informacije o rutiranju za druge rutere koje se ažuriraju u tabeli usmjeravanja.
    • Broj aktivnih rutera ograničen je na količinu informacija o rutiranju i troškovima koje mogu biti sadržane u jednom 802.15.4 paketu. Ovo ograničenje je trenutno 32 rutera.
  3. Routing
    • Uređaji koriste normalno IP rutiranje za prosljeđivanje paketa. Tabela usmjeravanja je popunjena mrežnim adresama i odgovarajućim sljedećim skokom.
    • Vektorsko rutiranje udaljenosti koristi se za dobivanje ruta do adresa koje su na lokalnoj mreži. Prilikom rutiranja na lokalnoj mreži, gornjih šest bitova ove 16-bitne adrese definira odredište rutera.
    • Ovaj roditelj usmjeravanja je tada odgovoran za prosljeđivanje do konačnog odredišta na osnovu ostatka 16-bitne adrese.
    • Za rutiranje van mreže, granični ruter obavještava vođu rutera o određenim prefiksima koje opslužuje i distribuira ove informacije kao mrežne podatke unutar MLE paketa. Mrežni podaci uključuju podatke o prefiksu, koji je sam prefiks, 6LoWPAN kontekst, granične usmjerivače i automatsku konfiguraciju adrese bez stanja (SLAAC) ili DHCPv6 server za taj prefiks. Ako uređaj treba da konfiguriše adresu koristeći taj prefiks, on kontaktira odgovarajući SLAAC ili DHCP server za ovu adresu. Mrežni podaci takođe uključuju listu servera za rutiranje koji su 16-bitne adrese podrazumevanih graničnih rutera.
    • Dodatno, u komercijalnom prostoru sa modelom domene niti, granični ruter okosnice obavještava vođu rutera o jedinstvenom prefiksu domene koji služi, kako bi naznačio da je ova mreža dio veće domene niti. Mrežni podaci za ovo uključuju podatke o prefiksu, 6LoWPAN kontekst i granični ruter ALOC. Za ovaj skup prefiksa nisu postavljene SLAAC ili DHCPv6 zastavice, međutim dodjela adrese slijedi model bez stanja. Pored toga, postoje i servisni i serverski TLV-ovi koji ukazuju na mogućnost "kičmene" usluge ovog graničnog rutera. Mogućnost otkrivanja duplikata adrese preko okosnice postoji za svaki uređaj koji registruje svoju jedinstvenu adresu domene (DUA) sa BBR-om. DUA uređaja se nikada ne mijenja tokom njegovog životnog vijeka nakon što je dio domene Thread.
    • Ovo olakšava migraciju kroz različite Thread mreže u jednoj domeni i osigurava da odgovarajući BBR-ovi olakšavaju rutiranje kroz više Thread mreža. Preko okosnice se koriste standardne IPv6 tehnologije rutiranja kao što su IPv6 Neighbor Discovery (NS/NA prema RFC 4861) i Multicast Listener Discovery (MLDv2 prema RFC 3810).
    • Leader je određen da prati kako uređaji koji ispunjavaju uslove za ruter postaju ruteri ili dozvoljavaju ruterima da se prebace na uređaje koji ispunjavaju uslove za ruter. Ovaj Leader takođe dodeljuje i upravlja adresama rutera koristeći CoAP. Međutim, sve informacije sadržane u ovom Leader-u se također periodično oglašavaju drugim ruterima. Ako Lider ode iz mreže, bira se drugi ruter koji preuzima ulogu Lidera bez intervencije korisnika.
    • Granični ruteri su odgovorni za rukovanje 6LoWPAN kompresijom ili proširenjem i adresiranje na uređaje van mreže. Backbone Border Routeri su odgovorni za rukovanje MPL-om sa IP-in-IP enkapsulacijom i dekapsulacijom za veći opseg multicasta koji ulazi i izlazi iz mreže.
    • Za više informacija o graničnim usmjerivačima, pogledajte AN1256: Upotreba Silicon Labs RCP-a sa OpenThread graničnim ruterom.
  4. Ponovni pokušaji i potvrde
    • Dok se UDP poruke koriste u Thread steku, potrebna je pouzdana isporuka poruka i kompletirana pomoću ovih laganih mehanizama:
    • Ponovni pokušaji na nivou MAC-a – svaki uređaj koristi MAC potvrde od sljedećeg skoka i ponovo će pokušati poruku na MAC sloju ako MAC ACK poruka nije primljena.
    • Ponovni pokušaji sloja aplikacije – sloj aplikacije može odrediti da li je pouzdanost poruke kritičan parametar. Ako je tako, može se koristiti end-to-end protokol za potvrdu i ponovni pokušaj, kao što su CoAP ponovni pokušaji.

Pridruživanje i rad mreže

Nit dozvoljava dvije metode spajanja:

  • Dijelite informacije o puštanju u rad direktno s uređajem koristeći metodu izvan opsega. Ovo omogućava usmjeravanje uređaja na odgovarajuću mrežu koristeći ove informacije.
  • Uspostavite sesiju puštanja u rad između uređaja koji se spaja i aplikacije za puštanje u rad na pametnom telefonu, tabletu ili web.
  • Za komercijalnu mrežu s modelom domene niti, proces autonomnog upisa bez intervencije korisnika koji daje operativne certifikate za spojeve nakon provjere autentičnosti specificiran je u Thread Specification 1.2. Operativni certifikat kodira informacije o domeni za uređaj i omogućava sigurnu nabavku mrežnog glavnog ključa. Ovaj model zahtijeva matičar ili
  • Thread Registrar Interface (TRI) na okosnom graničnom ruteru i olakšava komunikaciju sa vanjskim autoritetom (MASA) koristeći ANIMA/BRSKI/EST protokole. Mreža koja podržava ovaj model puštanja u rad naziva se CCM mreža.
  • Za više informacija o puštanju u rad Thread mreže, pogledajte odjeljak 11. Puštanje u rad uređaja.
  • Često korištena 802.15.4 metoda spajanja sa zastavicom za pridruživanje dozvole u korisnom učitavanju beacona ne koristi se u mrežama Thread. Ova metoda se najčešće koristi za spajanje tipke na tipku gdje nema korisničkog sučelja ili vanpojasni kanala na uređaje. Ova metoda ima problema s upravljanjem uređajem u situacijama kada je dostupno više mreža i može predstavljati sigurnosni rizik.
  • U Thread mrežama, svo spajanje inicira korisnik. Nakon pridruživanja, dovršava se sigurnosna provjera autentičnosti na razini aplikacije pomoću uređaja za puštanje u rad. Ova sigurnosna provjera autentičnosti razmatra se u odjeljku 9. Sigurnost.
  • Uređaji se pridružuju mreži kao krajnji uređaj za spavanje, krajnji uređaj (MED ili FED) ili REED. Tek nakon što se REED pridruži i nauči konfiguraciju mreže može potencijalno zatražiti da postane a

Thread Router. Nakon pridruživanja, uređaju se daje 16-bitna kratka adresa zasnovana na njegovom roditelju. Ako uređaj koji ispunjava uslove za ruter postane Thread Router, Lider mu dodeljuje adresu rutera. Detekcija duplih adresa za Thread Routere je osigurana centralizovanim mehanizmom distribucije adresa rutera koji se nalazi na Leader-u. Roditelj je odgovoran za izbjegavanje dupliranja adresa za host uređaje jer im dodjeljuje adrese nakon pridruživanja.

  1. Network Discovery
    • Otkrivanje mreže koristi uređaj koji se pridružuje da odredi koje su 802.15.4 mreže unutar radio dometa. Uređaj skenira sve kanale, izdaje MLE zahtjev za otkrivanje na svakom kanalu i čeka odgovore na MLE otkrivanje. Odgovor za otkrivanje 802.15.4 MLE sadrži korisni teret sa mrežnim parametrima, uključujući identifikator mrežnog skupa usluga (SSID), prošireni PAN ID i druge vrijednosti koje pokazuju da li mreža prihvata nove članove i podržava li izvorno puštanje u rad.
    • Otkrivanje mreže nije potrebno ako je uređaj pušten u rad na mreži jer poznaje kanal i prošireni PAN ID za mrežu. Ovi uređaji se zatim priključuju na mrežu koristeći priloženi materijal za puštanje u rad.
  2. MLE podaci
    • Jednom kada se uređaj priključi na mrežu, potrebne su mu razne informacije da bi učestvovao u mreži. MLE pruža usluge za uređaj da pošalje unicast na susjedni uređaj kako bi zatražio mrežne parametre i ažurirao troškove veze susjedima. Kada se novi uređaj pridruži, on također provodi izazovni odgovor za postavljanje brojača sigurnosnih okvira kao što je objašnjeno u odjeljku 9. Sigurnost.
    • Svi uređaji podržavaju prijenos i prijem poruka o konfiguraciji MLE veze. Ovo uključuje poruke "zahtjev za povezivanje", "prihvatanje veze" i "prihvatanje veze i zahtjev".
    • MLE razmjena se koristi za konfiguriranje ili razmjenu sljedećih informacija:
    • 16-bitna kratka i 64-bitna EUI 64 duga adresa susjednih uređaja
    • Informacije o mogućnostima uređaja, uključujući da li je krajnji uređaj u stanju mirovanja i ciklus mirovanja uređaja
    • Susjedska veza košta ako je Thread Router
    • Sigurnosni materijal i brojači okvira između uređaja
    • Troškovi usmjeravanja na sve druge Thread Routere u mreži
    • Prikupljanje i distribucija metrike veze o različitim vrijednostima konfiguracije veze
    • Napomena: MLE poruke su šifrovane osim tokom početnih operacija pokretanja čvora kada novi uređaj nije dobio sigurnosni materijal.
  3.  CoAP
    Protokol ograničene aplikacije (CoAP) kako je definirano u RFC 7252 (https://tools.ietf.org/html/rfc7252: Constrained Application Proto-col (CoAP)) je specijalizovani transportni protokol za upotrebu sa ograničenim čvorovima i mrežama male snage. CoAP pruža model interakcije zahtjev/odgovor između krajnjih tačaka aplikacije, podržava ugrađeno otkrivanje usluga i resursa i uključuje ključne koncepte web kao što su URLs. CoAP se koristi u Thread-u za konfiguriranje mrežnih lokalnih adresa i multicast adresa koje zahtijevaju uređaji. Dodatno, CoAP se također koristi za upravljačke poruke kao što su dobivanje i postavljanje dijagnostičkih informacija i drugih mrežnih podataka na aktivnim Thread ruterima.
  4. DHCPv6
    DHCPv6 kako je definirano u RFC 3315 koristi se kao klijent-server protokol za upravljanje konfiguracijom uređaja unutar mreže. DHCPv6 koristi UDP za traženje podataka od DHCP servera (https://www.ietf.org/rfc/rfc3315.txt: Protokol za dinamičku konfiguraciju hosta za IPv6 (DHCPv6)).
    DHCPv6 usluga se koristi za konfiguraciju:
    • Mrežne adrese
    • Multicast adrese koje zahtijevaju uređaji
    • Pošto se kratke adrese dodeljuju sa servera pomoću DHCPv6, otkrivanje duplih adresa nije potrebno. DHCPv6 takođe koriste granični ruteri koji dodeljuju adrese na osnovu prefiksa koji daju.
  5. SLAAC
    SLAAC (Autokonfiguracija adrese bez stanja) kako je definirano u RFC 4862 (https://tools.ietf.org/html/rfc4862: IPv6 Automatska konfiguracija adrese bez stanja) je metoda u kojoj granični ruter dodjeljuje prefiks, a zatim ruter izvodi posljednja 64 bita njegove adrese. Mehanizam autokonfiguracije IPv6 bez stanja ne zahtijeva ručnu konfiguraciju hostova, minimalnu (ako postoji) konfiguraciju rutera i nikakve dodatne servere. Mehanizam bez stanja omogućava hostu da generiše sopstvene adrese koristeći kombinaciju lokalno dostupnih informacija i informacija koje oglašavaju ruteri.
  6. SRP
    Protokol registracije usluge (SRP) kako je definiran u Protokolu registracije usluge za DNS-bazirano otkrivanje usluga koristi se na Thread uređajima počevši od Thread Specification 1.3.0. Mora postojati servisni registar, koji održava granični ruter. SRP klijenti na mesh mreži mogu se registrovati da nude različite usluge. SRP server prihvata upite za otkrivanje zasnovane na DNS-u i dodatno nudi kriptografiju javnog ključa radi sigurnosti, zajedno sa drugim manjim poboljšanjima za bolju podršku ograničenim klijentima.

Menadžment

  1. ICMP
    Svi uređaji podržavaju Internet Control Message Protocol za IPv6 (ICMPv6) poruke o greškama, kao i eho zahtjev i eho odgovor.
  2. Upravljanje uređajima
    Sloj aplikacije na uređaju ima pristup skupu informacija o upravljanju i dijagnostici uređaja koje se mogu koristiti lokalno ili prikupljati i slati drugim uređajima za upravljanje.
    Na 802.15.4 PHY i MAC slojevima, uređaj pruža sljedeće informacije sloju upravljanja:
    • EUI 64 adresa
    • 16-bitna kratka adresa
    •  Informacije o mogućnostima
    • PAN ID
    • Paketi poslani i primljeni
    • Okteti poslati i primljeni
    • Paketi ispušteni prilikom slanja ili prijema
    • Sigurnosne greške
    • Broj MAC ponovnih pokušaja
  3. Upravljanje mrežom
    Mrežni sloj na uređaju također pruža informacije o upravljanju i dijagnostici koje se mogu koristiti lokalno ili poslati drugim uređajima za upravljanje. Mrežni sloj obezbeđuje listu IPv6 adresa, tabelu suseda i dece i tabelu rutiranja.

Trajni podaci

Uređaji koji rade na terenu mogu se slučajno ili namjerno resetirati iz raznih razloga. Uređaji koji su resetirani moraju ponovo pokrenuti mrežne operacije bez intervencije korisnika. Da bi se ovo uspješno obavilo, nepromjenjiva pohrana mora pohraniti sljedeće informacije:

  • Informacije o mreži (kao što je PAN ID)
  • Sigurnosni materijal
  • Adresiranje informacija iz mreže za formiranje IPv6 adresa za uređaje

$Security

  • Mreže sa nitima su bežične mreže koje je potrebno zaštititi od bežičnih (OTA) napada. Oni su također povezani na internet i stoga moraju biti zaštićeni od internet napada. Mnoge aplikacije koje se razvijaju za Thread služit će širokom spektru upotreba koje zahtijevaju duge periode rada bez nadzora i nisku potrošnju energije. Kao rezultat toga, sigurnost Thread mreža je kritična.
  • Thread koristi ključ za cijelu mrežu koji se koristi na sloju pristupa medijima (MAC) za šifriranje. Ovaj ključ se koristi za standardnu ​​IEEE 802.15.4-2006 autentifikaciju i šifriranje. IEEE 802.15.4-2006 sigurnost štiti Thread mrežu od napada preko zraka koji potiču izvan mreže. Kompromitacija bilo kojeg pojedinačnog čvora može potencijalno otkriti ključ za cijelu mrežu. Kao rezultat toga, to obično nije jedini oblik sigurnosti koji se koristi unutar Thread mreže. Svaki čvor u Thread mreži razmjenjuje brojače okvira sa svojim susjedima putem MLE rukovanja. Ovi brojači okvira pomažu u zaštiti od napada ponavljanja. (Za više informacija o MLE-u, pogledajte specifikaciju niti.) Thread dozvoljava aplikaciji da koristi bilo koji internet sigurnosni protokol za komunikaciju od kraja do kraja.
  • Čvorovi zamagljuju i svoje mrežne IP adresne interfejse i svoje MAC proširene ID-ove nasumično ih birajući. Zaliha EUI64 dodeljena čvoru se koristi kao izvorna adresa samo tokom početne faze pridruživanja. Jednom kada se čvor pridruži mreži, čvor koristi kao izvor ili adresu zasnovanu na svom dvobajtnom ID-u čvora, ili jednu od njegovih nasumičnih adresa navedenih gore. EUI64 se ne koristi kao izvorna adresa kada se čvor pridruži mreži.

Upravljanje mrežom također mora biti sigurno. Aplikacija za upravljanje mrežom Thread može se pokrenuti na bilo kojem uređaju koji je povezan na internet. Ako taj uređaj sam nije član Thread mreže, prvo mora uspostaviti siguran Datagram Transport Layer Security (DTLS) veza sa Thread Border Routerom. Svaka Thread mreža ima pristupnu frazu za upravljanje koja se koristi za uspostavljanje ove veze. Nakon što je aplikacija za upravljanje povezana na Thread mrežu, novi uređaji se mogu dodati u mrežu.

  1. 802.15.4 Sigurnost
    • Specifikacija IEEE 802.15.4-2006 opisuje bežične protokole i protokole za pristup medijima za PAN-ove i HAN-ove. Ovi protokoli su namijenjeni za implementaciju na namjenskim radio uređajima poput onih dostupnih od Silicon Labsa. IEEE 802.15.4-2006 podržava različite aplikacije, od kojih su mnoge sigurnosno osjetljive. Za nprampRazmotrite slučaj aplikacije alarmnog sistema koja prati zauzetost zgrade. Ako mreža nije sigurna i uljez dobije pristup mreži, poruke se mogu emitirati kako bi se stvorio lažni alarm, modificirao postojeći alarm ili utišao legitimni alarm. Svaka od ovih situacija predstavlja značajne rizike za stanare zgrade.
    • Mnoge aplikacije zahtijevaju povjerljivost, a većini je potrebna i zaštita integriteta. 802-15.4-2006 rješava ove zahtjeve koristeći sigurnosni protokol sloja veze sa četiri osnovne sigurnosne usluge:
    • Kontrola pristupa
    • Integritet poruke
    • Povjerljivost poruke
    • Zaštita od ponavljanja
    • Zaštita od ponavljanja koju pruža IEEE 802.15.4-2006 je samo djelomična. Thread pruža dodatnu sigurnost korištenjem MLE rukovanja između čvorova o kojima smo gore govorili kako bi se završila zaštita ponovnog reprodukcije.
  2. Sigurno upravljanje mrežom
    Upravljanje mrežom također mora biti sigurno. Aplikacija za upravljanje mrežom Thread može se pokrenuti na bilo kojem uređaju koji je povezan na internet. Postoje dva dijela sigurnosti:
    • Sigurnost preko zraka o kojoj se brine 802.15.4. Thread implementira 802.15.4-2006 nivo 5 sigurnosti.
    • CCM mreže: Ako uređaj sam nije član CCM mreže, on mora uspostaviti vezu s graničnim ruterom okosnice kako bi dobio svoj operativni certifikat da bi se uspostavio kao dio Thread domene.
    • Mreže koje nisu CCM: Internet sigurnost: Ako uređaj sam nije član Thread mreže, prvo mora uspostaviti sigurnu Data-gram Transit Layer Security (DTLS) vezu sa Thread Border Routerom. Svaka Thread mreža ima pristupnu frazu za upravljanje koja se koristi za uspostavljanje sigurnih veza između vanjskih upravljačkih uređaja i graničnih rutera. Nakon što je aplikacija za upravljanje povezana na Thread mrežu, novi uređaji se mogu dodati u mrežu.

Granični usmjerivač

  • Thread Border Router je uređaj koji povezuje Thread bežičnu mrežu s drugim IP-baziranim mrežama (kao što su Wi-Fi ili Ethernet) u vanjskom svijetu putem lokalne kućne ili poslovne mreže. Za razliku od gateway-a u drugim bežičnim rješenjima, potpuno je transparentan za transportne i aplikacijske protokole koji se nalaze iznad mrežnog sloja. Kao rezultat toga, aplikacije mogu bezbedno komunicirati od kraja do kraja bez ikakvog prevođenja sloja aplikacije.
  • Granični usmjerivač niti minimalno podržava sljedeće funkcije:
    • IP konekcija s kraja na kraj putem rutiranja između Thread uređaja i drugih vanjskih IP mreža.
    • Puštanje u rad vanjskog navoja (nprample, mobilni telefon) za autentifikaciju i pridruživanje Thread uređaja Thread mreži.

U mreži može postojati više graničnih rutera, eliminirajući "jednu tačku kvara" u slučaju da jedan od njih pokvari. Border Router omogućava svakom Thread uređaju da se direktno poveže na globalne usluge u oblaku, kada mreže preduzeća pokreću IPv6 i IPv4, ili samo IPv4.

  1.  Funkcije graničnog rutera za komunikaciju van mreže
    • Thread se može odmah implementirati u trenutnim radnim situacijama, prije djelomičnog ili potpunog prelaska na IPv6, a Thread omogućava povratnu kompatibilnost IPv4 koristeći mrežnu adresu
    • Prevod (NAT). NAT64 prevodi IPv6 pakete u IPv4, a NAT64 prevodi IPv4 pakete u IPv6. Thread Border Router može funkcionisati kao IPv4 host na širokoj mreži (WAN), sposoban da dobije IPv4 interfejs i adresu rutera. Može dobiti adresu koristeći DHCP iz skupa IPv4 adresa. Thread Border Router takođe može implementirati Port Control Protocol (PCP) da kontroliše kako se dolazni IPv4 paketi prevode i prosleđuju i podržava statičke mapiranje. Većinom prevoda IPv4 u IPv6 (i obrnuto) može se rukovati Thread
    • Border Router, sa minimalnim promjenama koje su potrebne na postojećoj mreži.
      Dodatno, Thread Border Routeri podržavaju dvosmjernu IPv6 povezanost sa IPv6 susednim otkrivanjem, reklamama rutera, otkrivanjem višestrukog prenosa i prosleđivanjem paketa.
  2. Thread over Infrastructure
    • Mreže niti se automatski organiziraju u zasebne mrežne particije niti kada nema veze između dva ili više skupova uređaja. Particije niti dozvoljavaju uređajima da održavaju komunikaciju sa drugim uređajima na istoj particiji niti, ali ne i sa uređajima niti na drugim particijama.
    • Thread over Infrastructure omogućava Thread uređajima da inkorporiraju tehnologije veze zasnovane na IP-u (nprample, Wi-Fi i Ethernet) u topologiju Thread. Ove dodatne Thread veze u odnosu na druge tehnologije veza smanjuju vjerovatnoću pojavljivanja više particija mreže Thread, dok je kompatibilnost unatrag sa postojećim Thread 1.1 i 1.2 uređajima zagarantovana. Ove prednosti se postižu za bilo koju topologiju mreže koja uključuje najmanje dva granična rutera povezana preko zajedničke susjedne infrastrukturne veze.
    • Za više informacija pogledajte Specifikacija niti 1.3.0 (ili Nacrt specifikacije niti 1.4), Poglavlje 15 (Thread over Infrastructure).
  3. OpenThread Border Router
    OpenThread-ova implementacija graničnog rutera naziva se OpenThread granični ruter (OTBR). Podržava mesh interfejs koristeći RCP model. Silicon Labs pruža implementaciju (podržanu na Raspberry Pi) i izvorni kod kao dio Silicon Labs GSDK. Za više informacija pogledajte AN1256: Korištenje Silicon Labs RCP-a sa OpenThread Border Routerom.
    Dokumentacija o postavci i arhitekturi OTBR-a dostupna je na adresi https://openthread.io/guides/border-router.

Puštanje u rad uređaja

Thread uređaji se puštaju u rad na Thread mrežama na različite načine kako je opisano u sljedećim pododjeljcima.

  1. Tradicionalno puštanje u rad navoja
    • Za puštanje u rad mreže manjih mreža (Thread Specification 1.1.1 ili novija), instalateri mogu koristiti aplikaciju za puštanje u rad Thread koja se pruža kao besplatan resurs za Android i iOS uređaje. Ova aplikacija se može koristiti za jednostavno dodavanje novih uređaja na mrežu ili rekonfiguraciju postojećih uređaja.
    • Thread koristi Mesh Commissioning Protocol (MeshCoP) za sigurnu autentifikaciju, puštanje u rad i pridruživanje novih, nepouzdanih radio uređaja u mesh mrežu. Mreže niti se sastoje od autonomne samokonfigurirajuće mreže uređaja sa IEEE 802.15.4 sučeljima i sigurnosnim slojem na nivou veze koji zahtijeva da svaki uređaj u mreži posjeduje trenutni, zajednički tajni glavni ključ.
    • Proces puštanja u rad počinje kada kandidat za povjerenika, obično mobilni telefon povezan putem WiFi mreže, otkrije Thread mrežu preko jednog od svojih graničnih rutera. Granični usmjerivači oglašavaju svoju dostupnost povjerenicima koristeći bilo koju lokaciju usluge koja je odgovarajuća. Mehanizam otkrivanja mora omogućiti kandidatu za povjerenika i komunikacijsku stazu i ime mreže, jer se ime mreže kasnije koristi kao kriptografska sol za uspostavljanje sesije za puštanje u rad.
    • Kandidat za povjerenika, nakon što je otkrio Thread mrežu od interesa, sigurno se povezuje s njom koristeći vjerodajnicu za puštanje u rad (pristupnu frazu koju je izabrao čovjek za upotrebu u autentifikaciji). Korak provjere autentičnosti povjerenika uspostavlja sigurnu vezu klijent/server utičnice između kandidata za povjerenika i graničnog rutera preko DTLS-a. Ova sigurna sesija je poznata kao sesija za puštanje u rad. Sesija puštanja u rad koristi dodijeljeni broj UDP porta oglašen tokom faze otkrivanja. Ova luka je poznata kao Komisarska luka. Akreditiv koji se koristi za uspostavljanje sesije za puštanje u rad je poznat kao Pre-Shared Key za komesara (PSKc).
    • Kandidat za poverenika zatim registruje svoj identitet kod svog graničnog rutera. Vođa odgovara ili prihvata ili odbija graničnog rutera kao održivog špeditera komesaru.
    • Nakon prihvatanja, Lider ažurira svoje interno stanje kako bi pratio aktivnog Poverenika, a Granični Router zatim šalje poruku potvrde kandidatu za Poverenika obaveštavajući uređaj da je sada Poverenik.
    • Kada postoji ovlašteni povjerenik povezan s Thread Network-om, postaje moguće pridružiti se prihvatljivim Thread Devices. Oni su poznati kao Joiners prije nego što postanu dio
    • Mreža niti. Stolar prvo stvara DTLS vezu sa komesarom radi razmjene materijala za puštanje u rad. Zatim koristi materijal za puštanje u rad za spajanje na Thread mrežu. Čvor se smatra dijelom mreže tek nakon što se ova dva koraka završe. Tada može učestvovati u procesu pridruživanja budućih čvorova. Svi ovi koraci potvrđuju da se ispravan uređaj pridružio ispravnoj Thread mreži i da je sama Thread mreža sigurna od bežičnih i internetskih napada. Za više informacija o protokolu za puštanje u rad mreže, pogledajte specifikaciju niti.
  2. Poboljšano puštanje u rad s komercijalnim proširenjima u niti 1.2
    • Specifikacija teme 1.2 i njene komercijalne ekstenzije sada dozvoljavaju mreže mnogo većeg obima, kao što su one potrebne u poslovnim zgradama, javnim zgradama, hotelima ili drugim vrstama industrijskih ili komercijalnih zgrada. Zbog bolje podrške podmreže, Thread Specification 1.2 lakše omogućava hiljade uređaja u jednoj implementaciji, koji se mogu konfigurisati ručno, autonomno i putem naprednih funkcija daljinskog puštanja u rad.
    • Komercijalne ekstenzije u Thread 1.2 omogućavaju provjeru autentičnosti velikih razmjera, pridruživanje mreži, roaming podmreže i rad zasnovan na pouzdanim identitetima u domeni preduzeća. Da bi omogućio pouzdanu autentifikaciju uređaja i verifikaciju informacija o autorizaciji, instalater sistema može postaviti Enterprise Certificate Authority da pojednostavi postavljanje mreže velikih razmjera. Ovo omogućava instalateru da postavi i održava mrežu bez direktnog pristupa pojedinačnim uređajima i bez ikakve direktne interakcije sa ovim uređajima, pomoću automatizovanog procesa upisa koji se zove Autonomna registracija. Za razliku od Thread 1.1, gdje se uparivanje lozinke uređaja koristi za autentifikaciju, komercijalne ekstenzije u Thread 1.2 će podržavati skalabilniji oblik provjere autentičnosti zasnovan na certifikatima. Mreža preduzeća može imati jednu ili više domena niti i svaka domena niti može se podesiti da integriše više mreža niti.

Sloj aplikacije

Thread je bežični mesh mrežni stog koji je odgovoran za usmjeravanje poruka između različitih uređaja u Thread mreži opisanoj u odjeljku 2.2 Arhitektura Thread mreže. Sljedeća slika ilustruje slojeve u Thread protokolu.
SILICON-LABS-UG103-11-Thread-Osnove-Softver- (10)

Slika 12.1. Slojevi protokola niti

  • Standardna definicija sloja aplikacije je „sloj apstrakcije koji specificira zajedničke protokole i metode interfejsa koje koriste domaćini u komunikacijskoj mreži“ (https://en.wikipedia.org/wiki/Application_layer). Jednostavnije rečeno, sloj aplikacije je „jezik uređaja“, na primjerample, kako prekidač razgovara sa sijalicom. Koristeći ove definicije, sloj aplikacije ne postoji u Thread. Korisnici grade sloj aplikacije na osnovu mogućnosti u Thread steku i sopstvenih zahteva. Iako Thread ne isporučuje sloj aplikacije, on pruža osnovne aplikacijske usluge:
  • UDP poruka
    UDP nudi način slanja poruka koristeći 16-bitni broj porta i IPv6 adresu. UDP je jednostavniji protokol od TCP-a i ima manje opterećenje veze (nprampUDP ne implementira poruke o održavanju života). Kao rezultat toga, UDP omogućava brži i veći protok poruka i smanjuje ukupni budžet aplikacije. UDP takođe ima manji kodni prostor od TCP-a, što ostavlja više dostupnog fleša na čipu za prilagođene aplikacije.
  • Multicast poruke
    Thread pruža mogućnost emitiranja poruka, odnosno slanja iste poruke na više čvorova na Thread mreži. Multicast omogućava ugrađeni način za razgovor sa susjednim čvorovima, ruterima i cijelom Thread mrežom sa standardnim IPv6 adresama.
  • Aplikacioni slojevi koji koriste IP usluge
    Thread dozvoljava korištenje slojeva aplikacije kao što su UDP i CoAP kako bi se omogućilo uređajima da komuniciraju interaktivno preko Interneta. Ne-IP slojevi aplikacije će zahtijevati određene adaptacije za rad na Thread-u. (Pogledajte RFC 7252 za ​​više informacija o CoAP-u.)
    • Silicon Labs OpenThread SDK uključuje sljedeće sample aplikacije koje su takođe dostupne iz OpenThread GitHub repozitorija:• ot-cli-ftd
    • ot-cli-mtd
    • ot-rcp (koristi se zajedno sa OpenThread Border Routerom)
  • Ove aplikacije se mogu koristiti za demonstriranje karakteristika Thread mreže. Pored toga, Silicon Labs OpenThread SDK takođe pruža uspavane krajnje uređajeample app (sleepy-demo-ftd i sleepy-demo-mtd), koja pokazuje kako koristiti funkcije Silicon Labs power managera za kreiranje uređaja niske potrošnje. Konačno, ot-ble-dmp sample aplikacija pokazuje kako napraviti dinamičku multiprotokolsku aplikaciju koristeći OpenThread i Bluetooth stack Silicon Labs. Pogledajte QSG170: OpenThread Quick-Start Guide za više informacija o radu sa exampiz aplikacija u Simplicity Studio 5.

Sledeći koraci

  • Silicon Labs OpenThread SDK uključuje certificirani OpenThread mrežni stog i sample aplikacije koje pokazuju osnovno ponašanje mreže i aplikacije. Kupci se ohrabruju da koriste uključene sample aplikacija za upoznavanje sa Thread-om općenito, a posebno sa ponudom Silicon Labs-a. Svaka od aplikacija pokazuje kako se uređaji formiraju i pridružuju mrežama, kao i kako se poruke šalju i primaju. Aplikacije su dostupne za korištenje nakon učitavanja Simplicity Studio 5 i Silicon Labs OpenThread SDK. Simplicity Studio 5 uključuje podršku za kreiranje aplikacija (Project Configurator) i dekodiranje poruka mreže i sloja aplikacije (Network Analyzer) u Thread-u koje pružaju dodatni uvid u rad Thread mreža. Za više informacija pogledajte QSG170: OpenThread Vodič za brzi početak.
  • Za više informacija o OpenThread Border Routerima pogledajte AN1256: Upotreba Silicon Labs RCP-a sa OpenThread Border Rout-erom. Za više informacija o razvoju Thread 1.3.0 sample aplikacije vidi AN1372: Konfiguriranje OpenThread aplikacija za Thread 1.3. SILICON-LABS-UG103-11-Thread-Osnove-Softver- (11)SILICON-LABS-UG103-11-Thread-Osnove-Softver- (1)

Odricanje od odgovornosti

  • Silicon Labs namjerava kupcima pružiti najnoviju, tačnu i detaljnu dokumentaciju o svim perifernim uređajima i modulima dostupnim za implementatore sistema i softvera koji koriste ili namjeravaju koristiti Silicon Labs proizvode. Podaci o karakteristikama, dostupni moduli i periferni uređaji, veličine memorije i memorijske adrese odnose se na svaki određeni uređaj, a navedeni „tipični“ parametri mogu varirati i variraju u različitim aplikacijama. Aplikacija exampsve opisane ovdje služe samo u ilustrativne svrhe. Silicon Labs zadržava pravo izmjene informacija o proizvodu, specifikacija i opisa bez daljnje najave i ne daje jamstva za tačnost ili potpunost uključenih informacija. Bez prethodne najave, Silicon Labs može ažurirati firmver proizvoda tokom proizvodnog procesa iz sigurnosnih ili pouzdanih razloga. Takve promjene neće promijeniti specifikacije ili performanse proizvoda. Silicon Labs neće snositi odgovornost za posledice korišćenja informacija navedenih u ovom dokumentu. Ovaj dokument ne podrazumijeva niti izričito daje bilo kakvu licencu za projektovanje ili proizvodnju bilo kakvih integrisanih kola. Proizvodi nisu dizajnirani ili odobreni za upotrebu u okviru bilo kojeg FDA Class III uređaja, aplikacija za koje je potrebno odobrenje FDA prije tržišta ili sistema za održavanje života bez posebne pismene saglasnosti
  • Silicon Labs. “Sistem za održavanje života” je svaki proizvod ili sistem namijenjen za podršku ili održavanje života i/ili zdravlja, za koji se, ako ne uspije, razumno očekivati ​​da će rezultirati značajnim ozljedama ili smrću. Proizvodi Silicon Labsa nisu dizajnirani niti odobreni za vojnu primjenu. Proizvodi Silicon Labs se ni pod kojim okolnostima neće koristiti u oružju za masovno uništenje uključujući (ali ne ograničavajući se na) nuklearno, biološko ili hemijsko oružje, ili projektile koji mogu isporučiti takvo oružje. Silicon Labs se odriče svih izričitih i implicitnih garancija i neće biti odgovoran za bilo kakve povrede ili štete povezane sa upotrebom proizvoda Silicon Labs u takvim neovlašćenim aplikacijama. Napomena: Ovaj sadržaj može sadržavati uvredljivu terminologiju koja je sada zastarjela. Silicon Labs zamjenjuje ove termine inkluzivnim jezikom gdje god je to moguće. Za više informacija posjetite www.silabs.com/about-us/inclusive-lexicon-project

Trademark Information

  • Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs® i logotip Silicon Labs®, Bluegiga®, Bluegiga Logo®, EFM®, EFM32®, EFR, Ember®, Energy Micro, Energy Micro logo i njihove kombinacije , “svjetski energetski najprihvatljiviji mikrokontroleri”, Redpine Signals®, WiSeConnect, n-Link, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, Gecko OS, Gecko OS Studio, Precision32®, Simplicity Studio®, Telegesis, the Telegesis Logo®, USBXpress®, Zentri, logotip Zentri i Zentri DMS, Z-Wave® i drugi su zaštitni znaci ili registrovani zaštitni znakovi
  • Silicon Labs. ARM, CORTEX, Cortex-M3 i THUMB su zaštitni znaci ili registrovani zaštitni znaci kompanije ARM Holdings. Keil je registrovani zaštitni znak kompanije ARM Limited. Wi-Fi je registrovani zaštitni znak kompanije
  • Wi-Fi Alliance. Svi ostali proizvodi ili nazivi robnih marki koji se ovdje spominju su zaštitni znakovi njihovih odgovarajućih vlasnika.
    • Silicon Laboratories Inc. 400 West Cesar Chavez Austin, TX 78701 SAD
    • www.silabs.com

Dokumenti / Resursi

SILICON LABS UG103.11 Thread Fundamentals Software [pdf] Korisnički priručnik
UG103.11 Softver za osnove teme, UG103.11, softver za osnove niti, softver za osnove, softver

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *