Slijede razlike između dviju inačica stranice.
| Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
| racfor_wiki:mrezna_forenzika:mqtt_protokol [2020/01/09 19:15] kvesligaj [Sažetak] | racfor_wiki:mrezna_forenzika:mqtt_protokol [2024/12/05 12:24] (trenutno) | ||
|---|---|---|---|
| Redak 1: | Redak 1: | ||
| ====== MQTT protokol ====== | ====== MQTT protokol ====== | ||
| - | |||
| ===== Sažetak ===== | ===== Sažetak ===== | ||
| - | Živimo u vremenu kada nastojimo sve uređaje povezati na internet i integrirati u jednu cjelinu koju je onda lagano kontrolirati od bilo gdje na svijetu. Kako bi se to moglo postići treba međusobno povezati razne uređaje, a tu do izražaja dolazi MQTT (//Message Queue Telemtry | + | Živimo u vremenu kada nastojimo sve uređaje povezati na internet i integrirati u jednu cjelinu koju je onda lagano kontrolirati od bilo gdje na svijetu. Kako bi se to moglo postići treba međusobno povezati razne uređaje, a tu do izražaja dolazi MQTT (//Message Queue Telemetry | 
| - | Keywords: **MQTT**, **Internet of Things**, | + | Keywords: **MQTT**, **Internet of Things** | 
| ===== Uvod ===== | ===== Uvod ===== | ||
| - | Napretkom tehnologije svijet teži tome da se svi uređaji u nečijem posjedu međusobno povežu na internet kako bi se omogućila kontrola i nadzor svih tih uređaja od bilo gdje na svijetu, to je osnovna ideja iza tzv. //Internet of Things//. Kod takvih se mreža javlja potreba za komunikacijom između uređaja koja je u pravilu bežična, a dimenzije čim manje zbog čega je svako iole kompliciranije rješenje teško izvedivo. Upravo radi takvih situacija je osmišljen MQTT (//MQ Telemetry Transport// | + | Napretkom tehnologije svijet teži tome da se svi uređaji u nečijem posjedu međusobno povežu na internet kako bi se omogućila kontrola i nadzor svih tih uređaja od bilo gdje na svijetu, to je osnovna ideja iza tzv. //Internet of Things//. Kod takvih se mreža javlja potreba za komunikacijom između uređaja koja je u pravilu bežična, a dimenzije čim manje zbog čega je svako iole kompliciranije rješenje teško izvedivo. Upravo radi takvih situacija je osmišljen MQTT (//MQ Telemetry Transport// | 
| Redak 34: | Redak 33: | ||
| Također je moguće koristiti gotove i javno dostupne MQTT brokere od kojih se informacije o nekima od njih nalaze na sljedećim web stranicama: [[http:// | Također je moguće koristiti gotove i javno dostupne MQTT brokere od kojih se informacije o nekima od njih nalaze na sljedećim web stranicama: [[http:// | ||
| - | |||
| - | \\ | ||
| - | |||
| ===== Osnovni koncepti ===== | ===== Osnovni koncepti ===== | ||
| Redak 59: | Redak 55: | ||
| Ova funkcija omogućava da klijent napiše poruku koja će biti objavljena (broker će objaviti) u predviđenu temu ukoliko se dogodi nenadani prekid veze. Ova mogućnost je veoma korisna jer je moguće obavijestiti korisnika o prestanku rada čvora što se zna dosta često dogoditi. | Ova funkcija omogućava da klijent napiše poruku koja će biti objavljena (broker će objaviti) u predviđenu temu ukoliko se dogodi nenadani prekid veze. Ova mogućnost je veoma korisna jer je moguće obavijestiti korisnika o prestanku rada čvora što se zna dosta često dogoditi. | ||
| - | |||
| - | \\ | ||
| - | |||
| ===== Struktura MQTT paketa ===== | ===== Struktura MQTT paketa ===== | ||
| Redak 90: | Redak 83: | ||
| |UNSUBSCRIBE|10|klijent → broker|zahtjev za otkazivanje pretplate| | |UNSUBSCRIBE|10|klijent → broker|zahtjev za otkazivanje pretplate| | ||
| |UNSUBACK|11|broker → klijent|potvrda za otkazivanje pretplate| | |UNSUBACK|11|broker → klijent|potvrda za otkazivanje pretplate| | ||
| - | | \\ PINGREQ|12|klijent → broker|zahtjev za odaziv| | + | | PINGREQ|12|klijent → broker|zahtjev za odaziv| | 
| |PINGRESP|13|broker → klijent|odgovor na odaziv| | |PINGRESP|13|broker → klijent|odgovor na odaziv| | ||
| |DISCONNECT|14|klijent → broker|klijent prekida vezu| | |DISCONNECT|14|klijent → broker|klijent prekida vezu| | ||
| Redak 96: | Redak 89: | ||
| ==== ==== | ==== ==== | ||
| + | |||
| + | \\ | ||
| + | |||
| ==== Varijabilno zaglavlje ==== | ==== Varijabilno zaglavlje ==== | ||
| Redak 107: | Redak 103: | ||
| * naziv teme | * naziv teme | ||
| - | === Specifične zastavice | + | === Specifične zastavice === | 
| * zastavica čiste sesije - broker mora pohraniti pretplate klijenta | * zastavica čiste sesije - broker mora pohraniti pretplate klijenta | ||
| Redak 115: | Redak 111: | ||
| * zastavica za korisničko ime i lozinku - znači da su korisničko ime i lozinka uključeni u sadržaju (// | * zastavica za korisničko ime i lozinku - znači da su korisničko ime i lozinka uključeni u sadržaju (// | ||
| - | ==== Sadržaj (  Payload | + | ==== Sadržaj ( Payload ) ==== | 
| - | Samo neki MQTT paketi sadrže sadržaj. Znamo da očito sadržaj sadrži PUBLISH tip poruke u kojem se nalazi sam sadržaj koji klijent želi objaviti u neku temu. Osim njega, sadržaj sadrži i CONNECT paket kojemu se u sadržaju mogu nalaziti: jedinstveni ID, tema oporkuke, poruka oporuke, korisničko ime i lozinka. Također sadržaj ima i SUBSCRIBE poruka koja na taj način prenosi teme na koje se želi klijent pretplatiti i QoS kojim želi komunicirati sa brokerom. | + | Samo neki MQTT paketi sadrže sadržaj. Znamo da očito sadržaj sadrži PUBLISH tip poruke u kojem se nalazi sam sadržaj koji klijent želi objaviti u neku temu. Osim njega, sadržaj sadrži i CONNECT paket kojemu se u sadržaju mogu nalaziti: jedinstveni ID, tema oporuke, poruka oporuke, korisničko ime i lozinka. Također sadržaj ima i SUBSCRIBE poruka koja na taj način prenosi teme na koje se želi klijent pretplatiti i QoS kojim želi komunicirati sa brokerom. | 
| - | + | ||
| - | \\ | + | |
| Redak 130: | Redak 124: | ||
| Takvom zaštitom se štite poruke i unatoč npr. //Man in the middle //napada podaci štite jer nitko bez ključa ne može pročitati podatke tj. sigurnost ovisi o samoj sigurnosti TLS/SSL protokola. | Takvom zaštitom se štite poruke i unatoč npr. //Man in the middle //napada podaci štite jer nitko bez ključa ne može pročitati podatke tj. sigurnost ovisi o samoj sigurnosti TLS/SSL protokola. | ||
| + | ===== Izvori ===== | ||
| - | ===== Chapter 5 ===== | + | [1] [[https:// | 
| - | Uredi | + | [2] [[http:// | 
| - | Uredi | + | [3] [[http:// | 
| - | ===== Chapter 6 ===== | + | [4] [[http:// | 
| - | Uredi | + | [5] [[https:// | 
| - | Uredi | + | [6] [[https:// | 
| + | |||
| + | \\ | ||