1
ALMA MATER STUDIORUM - UNIVERSITÀ DI BOLOGNA
CAMPUS DI CESENA
SCUOLA DI INGEGNERIA E ARCHITETTURA
CORSO DI LAUREA IN INGEGNERIA ELETTRONICA, INFORMATICA
E TELECOMUNICAZIONI-Ambito ElettronicoTelecomunicazioni
TITOLO DELL’ELABORATO
Comunicazione tra dispositivi IoT e Cloud tramite protocollo MQTT
Elaborato in
Applicazioni e Tecniche di Telecomunicazioni
Relatore
Presentato da
Walter Cerroni Fabrizio Rinaldini
Anno Accademico 2015/16
2
INDICE
1 INTERNET OF THINGS. L’Internet delle Cose 3
2 Obiettivi della Tesi 12
3 Perché il Protocollo MQTT 14
4 Struttura di messaggi MQTT 17
5 Comunicazione tra dispositivi mediante Protocollo MQTT e 39
relativa analisi dei pacchetti
6 Soluzioni Preconfigurate per Dispositivi IoT 56
7 Confronto tra MQTT e HTTP 58
8 Conclusioni 63
3
1-INTERNET OF THINGS. L’Internet delle Cose
Co n Int e rne t o f T h ings, ab b re viat o sp e sso co n l’acro n imo IoT , ch e in it a lian o vie n e t r ado tt o co me In t er n et d e lle Co se, st ia m o ad ind icare lo sce n ario in cu i n o n so n o so lam en te le p e rson e in grad o d i con n et te rsi a lla Re t e G lob ale m e d ia nt e p a rt ico lari d ispo sit ivi, co me Co m p ut e r, Sm artp hon e o T ab le t; m a so n o gli o gget t i st e ssi, d i u so p iù co m une tu tt i i gio rn i, d i re tt ament e co n nessi all’u so d i Int e rn e t .
Il t e r m in e è st at o con iat o d all’in ge gn e r e in gle se Ke vin A sht on pe r d e scrive re u n sist e m a in cu i il m o n do f isico è con ne sso ad int e rne t m ed iant e d e i sen so ri. Gli o gge tt i, in q u e sto m o do , avr an no un a p r op ria d ispo siz ion e all’in te rn o de lla re t e , ch e gli p erm e tt e r à d i e sse r e vist i sia d a lo ro st e ssi, che d a gli alt ri o gget t i, ch e d a gli ut e nt i, u no d e gli sco p i d e ll’Int e rne t o f T h in gs è qu e llo in fatt i, di
cre a re un a re p lica vir t u ale de l m on do re ale in cu i vivia m o .
N o n e sis t e un a p art ico la re t ip o lo gia d i co se ch e p o sson o o no n p o sso no en t r are a f a r p art e d e l mo nd o Io T , a se con d a de lle ne ce ssit à e d e l co n t e st o in cu i
ab b iamo b iso gn o d i o p e r are , po ssiam o im p le m en t a re svariat e so lu z io n i p e r co n n et t er e , e qu indi r e nd e r e visib ile n el m o nd o virt u ale , ciò ch e ci int e re ssa , l’im p o rt a nt e è fo rn ire all’o gget to du e car at te rist iche : co me p rim o req u isit o u n in d iriz z o IP (Int e rn et P ro t o co l) in mo d o d a ave re un a co llo caz io ne ne lla re t e e co m e se co nd a, la possib ilit à d i co mu n icar e se nz a b iso gno ch e sia l’e sse re
u m an o a d irgli d i f ar lo . S e r iu scia m o a far e in m od o che il no st ro o gge tt o ab b ia q u e st e d u e caratt e rist ich e , allo ra e sso d ive nt e rà il ca nd id at o id e ale p er
4
Figura 1-Rappresentazione Astratta di un Sistema Internet of Things [1.a]
Se co n d o un a p re visio n e d e lla Gar tn e r , so cie t à le a d e r m on d iale n ella rice rca e l’a n alisi n e l camp o d e ll’Inf o rm at io n T e ch n o lo gy, il n u m e ro d i o gget t i co nn e ssi in circo laz io n e n el 2 0 1 7 raggiu n ge rà q uo t a 8 ,3 miliard i, un au ment o d el 3 1 % risp e tt o a l 20 1 6 , p er a rrivar e a q u ot a 20 ,4 m iliard i d i u n it à n e l 2 0 20 ;
rim an en d o n e l 2 01 7 la spe sa glob a le in t e r m ina li Io T e se rviz i co nn e ssi sa rà d i cir ca 2 m ila m iliard i, t ut to q u e st o ci f a cap ire d i qu ant o l’ind u st ria
d e ll’inf o rm az ion e sia p r op e n sa a svilu pp ar si in qu e sto set to re . [ 1 .b ]
Co m e d et to in pre ced e nz a con le o pp o rtu n e cara tt e rist ich e o gn i o gget to p o t rà q u ind i ent rare a far p art e de lla ret e , que st o sign if ica ch e l’In t ern et of Th in gs p o t r à t ro va re ap p licaz io ne in tu tt i i se tto ri de lla n o st ra vit a, ve d iam o d i cit a rn e alcu n i e se m p i p e r ch iar irne m e glio i con ce t t i.
La D o mo t ica , ch e è la scie n z a ch e si o ccu p a d e lle te cn o lo gie vo lt e al f in e d i m iglio ra re la qu alit à d e lla vit a all’int e rno d e lla no st ra a b it az io ne , il cu i no m e n asce app un t o d all’u n ion e d e lla p aro la D o m u s (ca sa in lat ino ) e Ro bo t ica , è u n o d e i p rin cip ali sce n ari ap p licat ivi d e ll’Io T . Fin o a p o co t em p o f a in f at t i, un im p ia nt o d i d o m ot ica n e ce ssita va d i un a sp e cif ica cen t ralin a su b ord in a t a a l co n t r o llo d e lle p art i ad e sso co lle gat o , q u ind i p ot e va risu lta re co m p le sso ge st ire u n nu m e ro ele vat o d i d e vic e . Ora, f o rt un a tam e nt e , si t ro van o in co m m e r cio d isp o sit ivi e d e le tt r od o m e st ici già in gra d o d i con n et t ersi ad
5
in t e rn et , qu e st o sign if ica che po ssiam o co n t ro llare a d ist anz a la m aggio r p a rt e d e gli o gget ti p re se nt i all’in t er n o d e lla no st r a ab it az ion e .
Figura 2-Rappresentazione Astratta di un Impianto di Domotica IoT [2.a]
È già st at o lan ciat o su l m e rcat o , ad e se m p io , u n t e rm o st ato int e lligen t e i n grad o d i an alizz are le p re visio n i d e l t e mp o ed in b ase a qu est o rego lare la t e m pe ra tu r a in casa p e r un co mfo r t ideale , in p iù , e ssen do co n n e sso , pu ò e sse r e qu ind i con t ro llat o a d ist an z a. Po ssiam o qu ind i at t iva rlo tra m ite sm ar t ph o ne co n un co m an d o m anu ale o f ar sì ch e lu i si acco rga de l no st ro im m in e nt e arrivo a casa q u an d o il G PS d e l n o st ro t e lef o no su p e ra un a d ist anz a m in im a p re stab ilit a .
Figura 3-Termostato Intelligente [3.a]
T u tt o q ue st o n o n è lim it ato al t e rmo st ato , se m pre graz ie a l GP S d e l no st ro sm ar t ph o ne è p o ssib ile “f are svo lge r e u n a q u a lsia si a z io n e a casa n o st ra” , ad
6
e se m p io p o ssiamo fa re aprire il no st r o can ce llo au t o m at ico m e nt re st iam o p er arr iva re .
Figura 4-Componenti di un Impianto per il Controllo di un Cancello Automatico [4.a]
in ca m po d i do m o t ica so n o già t ant issimi in co mm e rcio gli e le t t ro d o me st ici f o r n it i d i u n a co n nessio n e in t er n et , il ca so p iù co mu n e so no le sm art t v, m a t u tt o qu e st o vale an ch e p er fo r n i, lavasto viglie e la vat rici, qu e st ’u lt ime ad e se m p io , t ram it e il t e lef o n o, son o in grad o d i e sse re con t ro lla t e d a re m ot o e d i in f o r ma rci in b ase ai cicli d i la vaggio .
7
Usce n d o d a lla d o mot ica e p ro se gu e nd o co n l’analisi d i alt ri ca m p i, l’Int e rn e t o f T h in gs vie n e ut ilizz at o p e r r int raccia re bam b in i e d an imali do m e st ici. Un p a io d i sca r p e co n GP S int e grato e r e lat iva ap p lica z io n e su llo sma rt ph o ne , son o in gr ad o d i mo n it o rare i m o vim en t i d i un ba m b in o ed e vit a re di p e rd e rlo d i vist a .
Figura 6-Scarpe da Bambino con GPS Integrato [6.a]
La st e ssa co sa vale an ch e p e r co lla ri p er a n im ali do m e st ici, so p rat tu tt o can i e ga t t i, d ot a t i d i sch ed a S IM e GP S in m od o che ch i li in d o ssa p o ssa e sse re rit r o vat o d ai loro p ad r o n i.
Figura 7-Collare GPS per Animali Domestici [7.a]
M o lto cu r io si an ch e i var i u t iliz z i in camp o m ed ico . N e l ca so in cui, pe r alcun i p az ien t i la n o n assun z ion e d i u n a m e d icin a po t r e b be risu lt are m o lt o risch io sa p e r la lo ro salut e , so n o in f ase d i svilu pp o d e lle p illo le con te n e nt i u n
t r asm e tt it o re in grad o d i in via re u n se gn ale su un d isp o sit ivo re m ot o u n a vo lta raggiu nt o lo sto m aco d i ch i le assu me , in qu e sto m od o l’avve n ut a
so m m in i st raz ion e pu ò e sse re ve r if ica t a d al m ed ico , d al p az ie n t e st e sso o d a i su o i f a m ilia ri.
8
Se m p re in ca m p o me d ico , in sp e cif ich e situ az ioni d o ve è f o nd a m en t ale il cont ro llo d e lle co n d iz io n i d i u na perso n a, p e n sia mo a d e se mp io ad un in d ividu o d iab et ico ch e d e ve co st an te m e nt e m o nit o rare il p ro p rio live llo d i glice m ia n e l sa n gu e , n asco no de i d isp o sit ivi d a a pp licare su l corp o d e l p az ien te in grado d i e ff e tt u ar e con int ervalli d i t e mp o p re st ab ili le an a lisi n e ce ssa rie e d i in viare in t emp o re ale i risu lt at i a ch i “ in d o ssa" il m on it or o a ch i p e r lu i.
In a lcu n i casi è il d isp o sit ivo st e sso ch e si o ccu p a d i rist ab ilire la st a b ilit à d e i p ar am et ri.
Figura 9-Dispositivi Medici Wireless Impiantabili [9.a]
Sva r ia t i i d ispo sit ivi Io T che po sso n o e sse re in st a llat i su lle n o st re aut o mo b ili. A l f in e d i r ealizz are q u e llo ch e gli stu d iosi d i t e cn o lo gia d e ll’ in f o rmaz ion e ch ia m a n o Sm art City, la n o st r a a u to p ot r à r ice ve re in f o rm az io n i rigu a rd o a l t r aff ico e a lla viab ilit à, aiu t an d o ci a sceglie r e i p e rc o rsi p iù rap id i o le zo n e Figura 8-Pillole Ingeribili con RadioTrasmettitore [8.a]
9
d o ve si t ro va p iù p ar ch e ggio , d ’alt ro can t o l’aut o m ob ile st essa p o trà
co m u n icar e alla cit tà d o ve si tr o va in mo d o ch e i se m a fo ri si re go lin o in b a se a l f lu sso d i via ggiat o ri; tu tt o q u e st o p ot rà n ot e vo lm en te rid u rre l’inq u in a m en t o e gli sp re ch i d i carb uran t e .
Figura 10-Gestione Parcheggi Smart City [10.a] Figura 11-Gestione Traffico Smart City [11.a]
Le st e sse case d i p ro d uz io ne d i au t o mob ili si st a nn o p re o ccu p a nd o d i in se rire a b o rdo de i p ro pri pro d o tt i, d e i se n so ri ch e le te n gon o in fo rm at e su llo st ato d e i ve ico li, p e r mon it orar e i con su m i e ve rif icar e se n e ce ssit a no d i m a nu t en z io n e .
Figura 12-Rappresentazione Astratta di un'Automobile in grado di comunicare col mondo esterno [12.a]
P e r sin o l’a grico lt u ra p ot r à u suf r u ire dell’in t ern et d e lle co se , a pp o sit i se n so r i vo lt i a l co nt ro llo d elle co nd iz ion i d i cam p i e se rre , saranno in grad o a n alizz a re
10
i live lli d i umid it à, te mp e r at u r a e t ut to q u e llo ch e è n e ce ssario pe r il n at u ra le svilu p p o d i un a co ltu r a.
Figura 13-Esempio di Internet of Things applicato al Settore dell'Agricoltura [13.a]
Op p u re lun gh i co ndo t t i o gasd o tt i im p ie gat i p e r il trasp o rto d i so st an z e sar an n o d ot at i dispo sit ivi ch e po st i t r a lo ro a d ista nz a stra te gica p ot ra nn o an a lizz a r e lo st ato de lla st ru tt u r a e ce r care d i p re ve d e re e ve n tu a li gu ast i.
11
L’u n ico p un t o a sf avo re de ll’Io T è il f at to ch e vivere in u n mo n d o
co m p le t am e nt e conn e sso p u ò ra pp r e sen t ar e un a m in a ccia p e r la n o st ra p riva cy e d au m e nt a re la p rese n z a d i att acch i sgra d e vo li d a p art e d i t e rz i. Spe ria m o ch e ve n ga n o a pp o rt at e so lu z ion i a qu e st i p ro b le m i il prim a p o ssib ile .
12
2-Obiettivi della Tesi
D o p o qu e st a p re se nt az ion e ch e si o ccu pa d i f o rn ire u no sguard o d i in sie m e su l m o n do de ll’Int e rne t d e lle Co se , p o ssia mo f in alm en t e add e ntra rci n e lla p art e p iù t e cn ica e p rat ica d e lla qu e st io n e . Af f in ch é avven ga u n a co m u n icaz ion e t r a d isp o sit ivi, qu e st i do vran n o e sse re do t at i d i op p o rt un e comp o n en t i h ard wa re e imp le m en t az ion i soft war e pe r p o r tar e a t e rm ine u n a co rre tta t r a sm ission e , o gn i sin go lo “ in granaggio ” vo lto al fu nz io n am en t o d i tu tt o il sist e m a n e ce ssit a d i un a p ro get t az ione e d i u n o stu d io ind ivid u ale . Qu e st a Te si si co n cen t ra su lla p ar t e rigu ar d an t e i p r o to co lli d i r et e , ch e n o n so no alt ro ch e le re go le e le co n ve n z io n i risp et tat e d u r an t e la t ra sm issio n e , al f in e d i o tte n e re un co rret to d ia lo go t ra d ispo sit ivi , in p ar t ico la re su i p r ot o co lli d e llo st ra t o ap p licaz io ne (q u e st o co n cet to sarà r ip re so n e l d et t aglio n e l ca p it o lo su cce ssivo ). In u n m o n do do ve l’in vio d i d at i è so g get to ad un a sp e sa , n o n so lo a live llo d i
in f o r ma z ion e , ma sop r att ut t o a live llo mo n e tar io , lo sco po de l n o st ro la vo ro è q u e llo d i o ccu p arci d i un d e te rmin at o pro t o co llo , ch iam at o M QT T , st u dia re le p ar t i d i u na co mun icaz io n e t r a d isp o sit ivi ch e lo im p le m e n tan o e ve rif ica re se ve ra m e nt e p u ò f arci r isp ar miare b it r ispe t to ad a ltri p ro to co lli co n co rre nt i . P er p rim a co sa, n e l p ro ssimo cap it o lo ch iar ir e m o m e glio il co mp it o d e i p ro t o co lli di re t e e spie gh ere mo p e r ch é il p r o to co llo M QT T risu lt a m o lt o sf ru t t at o in ca mp o Io T . U n a vo lt a f att o ciò sar à ne ce ssario st u d iar e la st ru tt u ra d e l p rot o co llo st e sso , graz ie al do cu me nt o ch e r ip o rt a lo st an d ard M QT T , ci sarà po ssib ile id e nt if ica re la co mpo siz io ne d e i var i m essaggi M QT T e ricono sce rli in un a e ve n tu a le t rasmissio n e (Cap it o lo 4 ). Nel Ca p it olo 5 ef f et tu ere m o u n a
co m u n icaz io n e M QTT t ra un P C e u n t able t e co n l’u so d i un a n a liz z at o re d i p ro to co llo , u n p ro gram ma il cui la vo ro è q ue llo d i con t ro lla re il t raff ico d at i su lle p o rte d i ret e de l n o st r o co m pu t e r , p ot r e mm o no t a re la re aliz z az io ne p ra t ica d e lle co no sce n z e acqu isit e n e i ca p it o li p re ce d en t i e co m p ren d ere m e glio le varie f asi e re go le d i un a t ra sm issio n e M QT T . P rose gu e nd o , n e l Cap it o lo 6 , al so lo sco p o d i rice rca, so no st at e an aliz z at e a lcu n e p iatt afo rm e p re co nf igu r at e n at e p e r la ge st io ne d i disp o sit ivi IoT e n e so n o st a te rip o rt a t e le var ie ca r at te rist ich e . In f in e , n e l Cap it o lo 7 , si p a sse rà al co n f ron to , graz ie
13
se m p r e a ll’u so d i u n an aliz z at o re d i ret e, t ra u na tra sm ission e con p ro to co llo M QT T e un a t rasm issio n e con p ro to co llo HT T P , u sat o con il m e to d o d i rich ie st a P OST , la sce lt a d e l pr o t o co llo co n co rr e nt e è d at a d a l f att o ch e an ch e HTT P -P o st è un a so lu z ion e mo lt o u sat a n e ll’In t erne t of T h in gs. N e ll’u lt im o cap i t o lo
rip o rt e r e mo le co n clu sio n i e f are mo il pu n to d e lla sit u az ione rigu a rd o al la vo ro svo lt o in q u e st o d o cu me nt o , sp e ran d o di co n fe rm are i risu ltat i at t e si.
14
3-Perchè il Protocollo MQTT
Ora ch e ab b iamo u na co n o sce nz a d i t ut to ciò ch e rigua rd a l’In t e rn e t o f Th in gs ve d ia m o d i sp ie gare p e rché vien e d a t a ta n t a im p ort an z a a l P ro t o collo M QT T . Co m e d et to ne l cap it o lo p re ced e nt e o gnu n o d e i n o st ri d isp osit ivi sarà con n e sso ad in t e rn et , il q u ale h a u n a st ru tt u r a cosid d et t a a strat i, o live lli, n e ce ssa ria p e r u n a co rret t a comu n icaz io n e .
Figura 16-Architettura a Strati di Internet
Il live llo d i u n d e vice è in gr ad o d i co mu n ica re co n i live lli o m o lo gh i d i alt ri d e vice s gr a z ie ai p ro t o co lli d i r e te , ch e st ab iliscon o le re gole e le co n ven z io n i d e l d ia lo go (co me en u n ciat o n e l cap ito lo p re ced en t e ) . Uno d e i p ro to co lli p iù u sat i p e r le co mu n icaz io n i allo st r at o App licaz ion e è il f am osissim o HT T P ( Hyp e rT e xt T ran s f e r P ro t o col ) pe r fe tt o p e r lo sca m b io d i inf o rm az io n i su l we b vist o ch e è imp le men t at o su un ’arch it ett u ra clie nt / se rve r . Ad e se mp io q u an do vo gliamo co n su lt are u n a p agin a we b, il clie n t e se gu e un a rich ie st a, il se rve r re st itu isc e un a rispo st a , il fu nz io n am e nt o d e l t ut to è a cco m p a gn at o d a u n co n sist e nt e scamb io d i in fo r maz io n i t ra il clie n t ed il se rve r.
N e l m on do n e ll’Int ern e t o f Th in gs p e rò , d o ve so n o i d isp o sit ivi a co mu n ica re t r a lor o , il p ro t o co llo ht tp iniz ia a m o st ra re le p rime de b o lez z e , p e r il f a tt o ch e
15
lo sca m b io d i d at i t ra d ue macch in e è in ge n e re co mp o st o da u n lim it a t o
n u m e ro d i b it e qu in d i si risch ia ch e le in f o rmaz ion i n e ce ssarie pe r cre a re u n a co n n e ssion e sian o maggio ri de l m e ssa ggio st e sso; in p iù n on è p o ssibile
st a b ilir e un a co mu nicaz io n e d a o ne -t o -m an y, o vve ro d a uno a mo lt i.
E n t ra qu ind i in gio co il Pr o to co llo M QTT ( M e ssa ge Qu eu e T e le m et ry T ran sp ort ), p e n sat o circa 1 5 an n i f a, p e r le co mu nicaz io n i M 2M , o vve ro M a ch in e t o M a ch ine , h a in iz iat o a gu ad agn ar e p o po lar it à so lam e nt e o ra p e r vi a
d e ll’e sp lo sio ne de l m e r ca t o Io T . Ra pp r ese n t a u n va lid issimo so st itu to d e l P ro t o collo HT T P in ap p licaz io n i M 2M , vist o ch e in ge ne re , pe r qu e sto tip o d i co m u n icaz io n i si ut iliz z a il met od o d i r ich ie st a P OST d e l P ro t o co llo HT T P . Un gr an d e va nt aggio è d at o d al f at to ch e il P rot o co llo M QT T , al p o st o d e l mo d e llo clie n t / se rve r d e l l’HT T P , ad ot t a un m e ccan ism o d i p ub b licazio n e e
so t t o scriz io ne ( p ublish / sub scrib e ) e scam b ia i m e ssaggi t ra m it e u n a pp o sito Br o ke r o Hub . Ogn i d e vice si sot to scrive app un t o a d e te rm in at i argo m en t i d et t i t o p ics, i m itt en t i inve ce p ub b lican o , q uin d i in via no , il co n te n ut o d e i m e ssaggi acco m p a gn at i d a un t op ic, i l b ro ke r , che si tro va f isica m e nt e al ce nt ro d e lla co m u n icaz io n e , si occu p a d i co n se gn are il m e ssa ggio so la me n t e ai d e vice s so t t o scr it t i al t o p ic in qu e st io n e .
Gr a z ie a qu e sto me ccan ismo un a co mu n icaz io n e o ne -t o - m any risu lt a se m p licissim a.
16
Figura 17-Meccanismo Publish-Subscribe [16.a]
L’alt r o p un to d i fo rza d e l p r o t o co llo M QT T st a n el fa tt o che è co m p o st o d a d ive r si t ip i d i me ssaggi, i co sidd e tt i T ype M e ssa ge . Ogn un o d i e ssi sarà
d e d icat o ad u n t ipo d i op e r az io ne d ive rsa, co m e ad e se m p io l’in st au rarsi d i u na co n n e ssion e , il sub scrib e , il p ub lish o la d isco nn e ssio ne , p ossiam o qu ind i
risp ar m ia re d ei b it in u t ili e in viar e su lla re te so lo qu e llo che ci f a co m od o e a ch i vo gliamo n o i. È an ch e p o ssib ile a ll’in t e rn o d e i t ip i di me ssaggio se lez io n are la q ua lit à, e q u in d i il n u me ro d e i r in vii, d e l d a t o ch e vo gliam o t ra sme tt e re . L’u n ica p icco lissima d iff ico ltà st a n e l imp ar are la f u n z ion e e la st ru tt u ra d i o gn i d ive r so T yp e M e ssage p e r an alizz ar e in d e tt a glio u n a co m un icaz ion e con il p ro to co llo M QT T .
17
4-Struttura dei messaggi MQTT
Le im m a gin i ed i con t en ut i d i qu e sto cap it o lo son o st a t i p re si d alla d o cu men t az ion e d e llo S t an d ard M QT T v3 .1 .1 [ 2 .b ]
La f o r ma gen e rale de i p a cch et t i è d ata d a:
Figura 18-Struttura Generale Type Message
FIXED HEADER :
18
M QT T Con t ro l P acket ind ica con un valor e d a 0 a 15 il t ip o di p a cch et t o ch e st ia mo u sand o :
19
I b it d i f la g in ve ce , co m e ind icat o i n f igu ra, varian o a se co nd a de l p a cch e tt o ch e st iamo u san do
Figura 21-Valori Bit di Flag
D a l se con d o b yte in p o i il F ixe d He ad e r in d ica la Re m a in in g Le n gth , o vve ro la lu n ghe zz a in Byt e ch e r iman e d e l p acche t to , in clu si i d ati de l V a riab le He ad e r e d e l Pa ylo ad (la Re main in g Le n gth n on in clu d e se st e ssa). È co d if ica t a u san d o u n o sch e m a a lun ghe z z a var iab ile che sfru tt a u n b yt e p er valo ri f in o a 12 7 . I va lo r i m a ggio ri so no co sì co d if ica t i: i 7 b it m en o sign if ica t ivi d i o gn i b yt e co d if ica no il valo re , m e nt re il b it p iù sign if icat ivo se gn a la se ci so no b yt e
se gu e nt i. Qu in d i o gn i sin golo b yt e cod if ica 1 28 valo ri p iù un b it d i con t in u it à . Il m assim o nu me ro d i b yt e n e lla Re main ing Le n gth è 4 .
20
Figura 22-Gestione dei Valori Remaining Length
V ARIA BLE HE AD E R:
Il co n t en ut o d e l V ariab le He ad e r varia a se co n d a de l t ip o d i p acch e tt o che st ia mo u sand o , in se gu it o lo an aliz z er em o p er o gn i sin go lo caso . N e i p a cch et t i P UBLISH ( se Qo S> 0 ), P UBACK, P UBRE C, P UBRE L, P UBC OM P , S UBS CRI BE ,
SUBACK, UN S UBSCRI BE e UN S UBACK n el V a riab le He ad er risie d e u n Nu m e ro d i Id e n tif ica z io n e d e i P a cch e tt i ( P acke t Id e nt if ier ).
N e i casi d i SUBS CRIBE , UN S UBS CRIBE e P UBLISH ( se Qo S> 0 ), o gn i vo lt a che il Clie n t , in via u n o d i q u e st i tip i d i p acch et t o d e ve a sse gn argli u n nu m e ro n on u sat o d i P a cke t Id e nt if ie r ( e sclu sivam en t e d ive rso d a ze ro ). Se ri - in via un p ar t ico la re t ip o d i pacch e t t o, il P acke t Id e nt if ier a sse gnat o p o t rà e sse re riu t iliz z at o so lament e q u an d o il Clien t rice ve rà d a p a rt e d e l S e rve r u n a
co n f e rm a d i avve nut a r icez io ne de l p acch e t to , a lt rim en t i è co st re tt o ad u sa re il n u m e ro d i ide nt if icaz io ne se gue nt e . Lo st e sso vale se il p rimo ad in via re è il Se rve r .
I p a cch e tt i P UBA CK, P UBRE C e P UBRE L de vo n o con te n e re il P a cke t Id en t if ie r re la t ivo a l P UBLIS H ad e sso asso ciat o . Lo st e sso vale SUBACK e UN SUBACK. Qu e st o con ce tt o sarà ch iar ito me glio in se gu it o , qu a nd o p a rle re m o d i Qualit à d e l Serviz io .
Il Se rve r ed il Clie nt asse gn a no Pa cke t Id e nt if ier ind ipe nd en t e me nt e l’u n o d all’a lt ro , p u ò su cce d e re ch e lo st e sso n u m e ro viaggi in d ue co m un ica z ion i d ive r se
21
Figura 23-Esempio di Assegnazione dello stesso Packet Identifier in due comunicazioni diverse
P AY LOAD :
il P a ylo ad è la p art e f in ale d i u n p a cch et t o e d è p re sen te s olo n e i CON N E CT , SUBS CRI BE , S UBACK e UN S UBSCRIBE . N ei P UBLISH è l’App licat io n M e ssa ge ed è f a co lt at ivo .
22
T I PI DI PA C CHET TO MQ T T ( C O NT RO L PA C K E T T YPE S )
CON N E CT :
ap p en a vien e st ab ilit a la co n ne ssio n e de l N et wo rk il p rim o m e ssaggio in viat o d al Clie nt verso il Se rve r de ve e ssere d i t ipo CON NE CT . Il Clie n t pu ò in via re il m e ssa ggio CON N E CT su lla re t e e sclu sivam e n te un a vo lt a, il Se rve r in t e rp ret a u n se co n d o CON N E CT co m e un a vio laz ion e d i p ro to co llo e d isco n n et te il Clie nt .
La Fixe d He ad e r d e l CON N E CT h a la cla ssica f o rm a:
Figura 24-Fixed Header Connect
La Re m a in in g Len gth co nt ien e il valo r e 1 0 Byt e d o vut o al Va riab le He a d e r p iù il va lo r e in Byt e d e l Paylo a d
La V a riab le He ad e r co n t ien e q u e st i camp i:
P ro t o col N ame - 6 Byt e , in d ica il no m e de l p ro t o co llo , M QT T scrit t o in UT F -8
P ro t o col Le ve l - 1 Byte , ind ica il live llo d i re visio ne de l p ro toco llo , n el ca so d e l 3 .1 .1 è 4
Co n n e ct Fla gs - 1 Byte , co nt ie ne un n u me r o di p aram et ri relat ivi a l
co m p o rta m e nt o d e lla co n ne ssio n e e alla p re se nz a d i alcu n i camp i d e l P aylo a d
23
Figura 25-Parametri Connect Flags
Cle a n S e ssion = se 0 il S e rver de ve rip ren d e re la Se ssio ne co n il Clie nt
asso cia t o ( graz ie al Clie n t Id en t if ie r ). S e la Se ssio n e n on esist e de ve cre arn e u n a. D o po e sse rsi d isco n n e ssi, il Clie nt e il S erve r, d e vo no sa lva re la Se ssio n e . D o p o la d isco nn e ssio n e d i u n a S e ssio ne il Se rver de ve salvare p rim a i m e ssa ggi co n qu a lità Qo S1 e Qo s2 ch e co rrisp ond o n o ad un a sot to scr iz io ne ch e il Clien t ave va al m o me nt o de lla ch iu su r a. P o t reb b e su cce d e ch e salvi a n ch e i Qo S0 ch e ap p a rt e n go n o allo st e sso cr it e rio
se 1 il Clien t e il Se r ve r d e vo n o abb and o n are Se ssion e p re ce d e nt e e in iz ia rne u n a n uo va
Will Fla g = 1 se vie ne acce tt at a la r ich iest a di co nn e ssion e allo ra il Will M e ssa ge d e ve e sser e salvat o su l Se r ve r e asso cia t o alla co nn e ssio ne del n e t wo rk. Il Will Me ssage d e ve e sse re pu bb lica t o q u an d o la co nn e ssion e d el n e t wo rk è su cce ssivame n te ch iu sa, salvo ch e il Wi ll Me ssage sia st at o can ce llato d al Se rve r do p o aver r ice vut o un p a cche t to D ISCON N E CT . Will Qo S e Will Re t ain sar an n o u sati d al Serve r e d i camp i Will T o p ic e Will Me ssage so n o p re sen t i n el P aylo a d
Se 0 Will Qo S e Will Re t a in de vo no va le re 0 e Will T op ic e Will M e ssa ge no n son o p re se nt i ne l P ayloa d . Il Will Me ssage n o n sarà p ub b lica t o alla f in e d e lla co n n e ssion e . Il Will Qo S p ot r à va ler e so lo 0
Will Qo S = se Will Flag vale 1 pu ò e sse re 0 1 2 ( n o 3 )
Will Re t a in = se 0 il S e r ve r de ve p ub b licare Will M e ssage com e m e ssaggio n on m an t en ut o , se 1 il Will M e ssage è mant e nu t o
24
Use r N a me Flag = se 0 l’Use r N ame no n è p r e se nt e n e l P a ylo ad e P asswo rd F la g d e ve e ssere 0 . Se 1 n e l Pa ylo ad è p r e s en t e il ca m po Use r Nam e
Ke e p Alive - 2 Byt e , è il te mp o e spr e sso in se co nd i che in t e rco rre t ra il m o m en to in cu i il Clie nt f in isce la t r asm issio ne d i u n Con t ro l P acke t e l’in iz io de ll’in vio d e l p r o ssim o
P aylo a d :
co n t ien e u n o o p iù camp i p re f issat i, la lo r o p re sen z a è le gat a al valo re d e i f la g n e l V ar ia b le He ade r. I camp i, in o rd ine d i a pp a riz io ne son o :
Clie n t Id e nt if ie r, h a la d imen sio ne d i una st r in ga co d if ica t a UT F - 8 , id e nt if ica il Clie n t al Se rver. Ogn i Clie nt con n e sso ha u n un ico Ide nt if ier
Will T op ic , p re se nt e se Will Flag è im p ost a t o a 1 , è grand e co m e un a strin ga UT F - 8
Will M e ssage , p re sen t e se il Will Flag vale 1 , d ef in isce il m essaggio d i ap p licaz io n e ( App lica t io n M e ssage ) pub b lica to dal Will T op ic. La su a
d im e n sio n e è d at a da 2 Byt e , d o ve è in d icat a la lu n gh e zz a de l m e ssaggio ch e se gu e , so mmat i ai Byt e de l me ssa ggio ve ro e p ro p rio
Use r N a me , ab ilit ato d a Use r N am e Flag= 1 è u n a st rin ga UT F - 8 u sa t a d a l S e r ver p e r l’au te nt icaz ion e e la aut o r iz z az io ne
P asswo rd , co lle gat a all’Use r N am e o ccup a 2 Byt e , in cu i è esp re ssa la lu n gh ez z a d e lla p asswo rd , so mmat i a i Byt e d e lla passwo r d st e ssa
25 CON N ACK:
il CON N ACK è il p acch e t to in viat o d al Se r ve r in rispo st a a l p a cch e tt o CONN E CT. Il p rim o p a cch et to in viat o d al S e r ve r D EV E e sse re un CON NACK.
Fixe d He a de r:
la Fixe d He ad e r si pr e se n ta ne lla f o r m a classica co n un a Rem a in in g Le n gt h d i va lo r e 2 .
V a r ia b le He a d er:
SP Se ssion P re se nt = se il S e rve r a cce t ta u n a co nn e ssion e co n Cle an Se ssion se t t at o a 1 , il Server d e ve impo st ar e a 0 sia SP ch e il Ret u rn Co d e .
Se l a con n e ssion e acce t t at a h a Cle a n Sessio n u gu a le a 0 allo ra il va lo re d i SP d ip en d e d a l f at to che il Ser ve r ab b ia già salvat o u na Se ssione d i u n Clie nt ID già p re sen te , se la Se ssio n e e r a st at a già st a ta sa lva ta a llo ra S P sa rà 1 , alt r im en t i 0 . Il Ret ur n Co d e sarà se m p re 0 .
Re t u r n Co de = n e l caso d i u na co nn e ssio n e accet t at a avrà valo re 0 a lt rim en t i assu m e r à i valo ri come ind icat o n e lla tab e lla se gu e nt e
26
Figura 26-Struttura Variable Header Connack e Return Code
P aylo a d :
il ca m p o P a ylo ad non è p re sen te in qu est o t ip o d i p a cch et to
P UBLISH:
q u e st o è il p acch e tto ch e t r asp o r ta l’ Ap p licat io n M e ssa ge
Fixe d He a de r:
n e lla Fixed He ad e r assu mo n o mo lt a imp o rt an z a i b it 3 2 1 0 d e l p rim o Byt e , la Re m a in in g Le n gt h no n h a u n valo re f issat o , ma d ip en d e d al co n te n ut o d e l
27 p acch e tt o
Figura 27-Fixed Header Publish
D UP D u p lica t e D e live ry o f a P UBLISH Con t r o l P a cke t = se 0 sign if ica che è la p rim a o cca sion e si pro va ad in via re un m e ssaggio d i qu e st o t ipo , alt rim en t i va le 1
Qo s Le ve l = in dica il live llo d i q u a lit à p er il t r asp o rt o d e ll’Ap p licat io n M e ssa ge
Figura 28-Bit Livelli di Qualità
Re t a in = se u gu ale ad 1 il S e r ve r ( o il Clie n t se il P UBLISH è in via t o d a l S e rve r ) d e ve salva r e l’Ap p licat io n M e ssage e la su a Qu alit à in m od o ch e p o ssa n o e sse re t r asm e ssi a i fu tu ri su b scr ib ers. Se il S e rve r in via u n p acch ett o d i q u e st o t ipo a d u n Clien t , Re t ain d eve vale re 1 se il m e ssa ggio è in via t o com e risu lt a to d i un a n u o va so tt o scriz ione f at t a d al Clie nt , me n t re de ve va le re 0 se co rrisp on de ad u n a so tt o scriz ion e già st abilit a
28 V a r ia b le He a d er:
co n t ien e i se gu en t i camp i, T op ic Na m e e P acke t Id e nt if ie r. Il T o p ic N a m e ind ica l’a rgo m e nt o ch e rigu ar d a i d at i d e l P aylo ad , me nt re il P a cke t ID è p re sen te s o lo in p acche tt i co n QoS d ive rso d a 0 , vist o ch e q u e st i ca si co mp o rt an o u n rit o r no d i d at i verso ch i h a in viat o il p acch e tt o . N e lla t ab e lla è in d ica t o un e se m p io d i V a r ia b le He a d er de l P UBLIS H
Figura 29-Esempio di Variable Header Publish
P aylo a d :
è qu i ch e r isied e l'Ap p licat io n M e ssage . N on è co n side ra t a u n a vio la z ion e d i p ro to co llo in viare un P UBLISH co n P a ylo ad con t en en t e z ero Byt e
29 P UBACK:
q u e st o p a cch e tt o è la r isp o st a che ci si asp e tt a d a u n d a u n P UBLISH co n Qo S = 1 ( co n se gn at o alme no un a vo lt a ).
Fixe d He a de r:
id e nt ico a lla fo rma classica co n Re m ainin g Le n gt h d i va lo re 2
V a r ia b le He a d er:
è d i 2 Byt e e con t ien e il P acke t Id e nt if ie r d el p a cche tt o d i cu i d ob b ia mo co n f e rm are l’arrivo
P aylo a d :
n o n p r e se n te
Figura 30-Esempio di Comunicazione Client-Server con QoS1
P UBRE C P u b lish Re ce ive d P UBRE L P u b lish Re lease P UBCOM P P ub lish Co mp let e :
q u e st i tr e p acch e tt i co m p on go no in siem e a l P UBLISH u n scam b io co mp let o d i Qo s2 . Su b it o d op o la r ice z ion e d i u n P UBLIS H il d e st in at ario in via u n P UBRE C
30
co n t en e te il P acke t Id e n tif ie r d el p acche t to int e re ssat o , che qu and o vien e rice vu t o a b ilit a il mit t en t e all’in vio d i un P UBRE C. Lo sca m bio si co n clu d e co n
u n P UBCOM P rice vut o d al mit te nt e .
Figura 31-Esempio di Comunicazione Client-Server con Qos2
Fixe d He a de r:
il p r im o Byt e camb ia co n il t ip o d i p a cch e tt o , la Re m ain in g Le n gth è se m p re u gu a le a 2
V a r ia b le He a d er:
co m p o st a d a 2 Byt e co n t en e nt i il P acke t Id e nt if ie r d e l p a cche t to in qu e st io n e
P aylo a d :
n o n p r e se n te
SUBS CRI BE :
in via t o d al Clie nt al Se rve r pe r cr e are un a o p iù sot t o scriz io n i. Ogn i
so t t o scriz io ne re gist r a l’in t e re sse d i u n Clie n t ve rso u no o p iù T o p ics. Il Se rve r in vie rà i p a cch et t i PUBLISH ad o gn i Clien t ch e co rrisp o nd e alle so tt o scriz io n i. N e l SUBSCRIBE è anch e sp e cif icat a la qu alit à m assim a con cu i il Serve r d e ve in via re gli App licat io n M e ssage s al Clien t .
31 Fix e d He ade r:
re la t ivo a l p acch e tto co n u n a Re m a in ing Le n gth d i 2 Byt e , p e r la V ariab le He a d e r, sommat i alla lu n gh ez z a d e l P a ylo ad
V a r ia b le He a d er:
co n t ien e il P acke t Id e nt if ier
P aylo a d :
q u i si t ro va n o un a list a d i f ilt ri T o p ic (co d if icat i in UT F -8 ) ch e in d icano i var i T o p ics ch e il Clien t vu o le sot to scr ive re e un b yt e che in d ica la Qu a lit à con cu i f a rlo . D e ve con te n er e almen o u n f ilt r o , alt r im en t i u n P a ylo ad vu ot o è visto co m e un a vio laz ion e d i p r ot o co llo .
Qu i so tt o è in d icato l’e se mp io d e lla so tt o sc riz ion e d e i se gue n t i T op ics
32 E d e cco co me vien e co d if icato il P aylo ad
Figura 33-Esempio di Codifica di un Payload del Pacchetto Subscribe
I b it d a l 7 al 2 d e l Re q u e st e d Qo S Byt e so n o f issa t i a 0 p erch é n o n u sat i in q u e st a ve rsion e d e l p r o to co llo e rise r vat i pe r u si fu tu ri
SUBACK:
Qu an d o il Se rve r rice ve un pacch e tt o SUBSCRI BE d e ve rispo n d ere con un SUBACK ch e abb ia lo st e sso P acke t Id en t ifie r d e l S UBSCRIBE d i cu i vo glio
co n f e rm a . Al S erve r è pe rm e sso l’in vio d i p acche tt i P UBLISH ch e co rrisp o nd o no alla so tt o scriz io n e an ch e p r ima an ch e prim a d i in viare un SUBACK. La rice z io ne d a p ar t e d el S e rver d i f ilt r i T op ic già sot t o scr it t i com p o rt a il rim p iaz zo d e lla ve cch ia so tt o scriz ion e con la n uo va, i f ilt r i To p ic sa ran no ide n t ici m a po t rà
33
camb ia re al massimo la q u alit à. Il SUBACK co n t ien e n e l P a ylo a d u n co d ice d i rit o rn o ( Ret u rn Code ) p er o gn i filt r o p re se n te ne l S UBS CRIBE n e l q u ale . Il Se rve r po t re bb e gara n t ir e un a Qualit à in f e r io re a qu e lla rich ie st a.
Fixe d He a de r:
d i fo r ma to st and ard co n Re main in g Le ngt h in d ican t e la lu ngh e zz a d e lla V aria ble He a d e r (2 Byt e ) p iù la lun ghe z za de l p aylo ad
V a r ia b le He a d er:
co n t ien e il P acke t Id e nt if ier de l SUBS CRIBE ch e vo g lio con fe rm a re
P aylo a d :
co n t ien e u n a list a di Re t u rn Cod e s che co r risp o nd on o a lla co n f e rm a de i filt ri T o p ics. L’o rd in e d ei Re t u rn Co de s d e ve risp e tt are q ue llo d e i T o p ic Filt e rs n e l p acch e tt o S UBSCRIBE . I co d ici o lt r e a con f e r mare il su cce sso d e i f ilt ri in d ican o co n qu a le Qu alit à so n o st at i acce tt at i
Figura 34-Payload Suback
I co d ici d iversi d a qu e st i so n o r ise r vat i e N ON D EV ON O e sse re u sat i
UN SUBS CRIBE :
in via t o so lo d al Clien t q u an do vu ole cance llar e un To p ic. D uale al SUBSCRIB E , n e p r e se nt a la ste ssa f o rma camb ian do so lt a nt o :
34 - il p rimo Byt e d e lla Fixe d He ad e r
- i Byt e Re qu e st ed Qo S n e l P aylo ad non so no p re sen t i UN SUBA CK:
d i co n se gu en z a d uale al SUBACK, ind ica la co n fe rm a d i u n UN SUBSCRIBE . Se il Se rve r can ce lla un a S o t to scriz i on e , d e ve f e r m are i nu o vi m essa ggi d i co n se gn a al Clie nt e co mp let ar e la con se gn a d i me ssaggi Qo s> 0 ch e a ve va già in iz iat o a in via re . Il Se rve r d eve r isp on d ere con UN SUBACK a n ch e ad u n UN SUBSCRIBE ch e no n can ce lla n essu n To p ic. Al co n tra rio de l SUBACK p re se n t a u n P a ylo ad vu o t o .
P IN GRE Q P in g Re q ue st :
è in viat o d al Clien t al Se rve r e p u ò e sser e u sat o p e r:
- a vve rt ir e il Se rve r ch e il Clien t è vivo , q u and o n on è n e ce ssario l’in vio d i a ltr i p acch e tt i
- r ich ie de r e con fe rma ch e il S e rve r è vivo - ve r if ica r e ch e l a con n e ssion e d i re t e sia viva
Fixe d He a de r:
Figura 35-Fixed Header Pingreq
V a r ia b le He a d er e Paylo ad :
35 P IN GRE SP Pin g Re spo n se :
in via t o d al S e rve r al Clie n t in risp o st a ad un P IN RE Q, ind ica ch e il S e rve r è vivo
Fixe d He a de r:
Figura 36-Fixed Header Pingresp
V a r ia b le He a d er e Paylo ad :
n on pre se nt i
D IS CON N E CT :
è il Con t ro l P acke t fin ale in via to d al Clie n t al Serve r. Ind ica ch e il Clie nt si è d isco n ne sso co rret ta me n te . Do p o il suo in vio il Clie nt d e ve :
- ch iud e re la Ne t wo rk Co n n e ct io n
- n on in viar e p iù p acch e t t i su q ue lla N etwo r k Co n n e ct ion
Il Se rve r d e ve :
- e lim in are o gn i Will M e ssage a sso ciat o a q ue lla con n e ssione se nz a p ub b lica r lo ( ve d i par t e re lat iva al Will F lag )
36 Fixe d He a de r:
Figura 37-Fixed Header Disconnect
V a r ia b le He a d er e Paylo ad :
37
E S E M P I D I F LUS SO DI M E S SA GGI PE R LIVE LLI D I QUALIT A’ [ 17.a ] :
Figura 38-Qos 0 At most once delivery
38
39
5-Comunicazione tra dispositivi mediante Protocollo MQTT e
relativa analisi dei pacchetti
Ora p o ssia m o p ro ced e r e con la cr e azio ne d i u na co m un icaz io n e co n p rot o co llo M QT T t ra u n p c ed u n t ab le t e d an aliz zarn e il co nt e nu to dei p a c ch et t i.
P e r p ro ce de re ci se rve in nan zi tu tt o u n b r o ke r, f o rt u na t a men t e so n o a n o stra d isp o siz io ne de i b roke r gr at u it i d ispo n ib ili in r et e e d in st alla b ili sul no st ro p c, d o p o a lcun e p ro ve la n o st ra sce lt a è cad u ta su M o sq u it t o, u n Hub Op e n So ur ce ch e imp le men t a la ve r sio n e v3 .1 e v3 .1 .1 d e l p ro t o co llo M QT T .
Figura 41-Mosquitto Logo [18.a]
P o i dal lat o d e l t ab le t ab b iamo u sat o l’ap p licaz io n e gra tu ita M yM QT T pe r An d r o id ch e è in grad o d i fo r n ir ci un a con so le d a re m o to in cu i so tt o scrive re t o p ic, p ub b licare me ssaggi e sta b ilir e un a co nn e ssion e con e ve n tu a li Bro ke r sia all’in t ern o d e lla no st ra r et e p rivat a che all’e st e rn o .
40
Figura 42-MyMQTT App Logo [19.a]
In f in e su lla no st ra m acch in a è n e ce ssario un an alizz ato re d i p ro to co llo , t rat t asi d i un sof t ware in grad o d i le gger e t ut t o il tr aff ico da t i p assa n t e in e nt ra mb e le d ir e z io n i su lla re te d e l n o st ro co mp ut er. Ab b iam o sce lt o Wire sh a r k un
p ro gra m m a mo lt o po t e nt e ch e ci p e rmet t e d i su dd ivid ere il t ra ff ico p e r p ro to co lli d ive rsi e d i analizz ar e la str ut t ur a d i un p a cch e tto f in o a l sin go lo b yt e .
41
Ad e sso che è tu tt o in st allat o p o s siam o co m in cia re . Già all’avvio d e lla n o st ra m acch in a Lin u x, il Br o ke r M o sq u it to dovr e b b e att ivarsi in au t o m at ico , p e r ve rif ica r e ch e sia così la n ciamo il co m and o n et st a t - a n ch e ci p e rme tt e d i ve rif ica r e lo stat o de lle co nn e ssion i su l co m p u te r. Se ve d iam o ch e la p o rta 1 8 8 3 , ch e è q u e lla st and ar d p e r il t r af f ico M QT T , è in stat o d i LIST EN a llora M o squ itt o f un z ion a
Figura 44-Esecuzione comando netstat -an
Gr a z ie a l co mand o ba se d e l b ro ke r mo squ i t to _ su b p o ssia m o so t t o scrive re un d is p o sit ivo ad un t op ic, n e l no st ro caso p e r e vid e nz ia re l’imp o rt an z a d i a var e t o p ics d ive rsi cree re mo du e f in e st re term in ale co n d u e to pics d if fe ren t i in m o d o d a simu lare du e d isp o sit ivi su lla st e ssa ret e m a con d ive rse
so t t o scriz io n i.
I co m a n d i mo sq u i tto _ su b -d -t to p i csu b1 e mo sq ui t to _ su b -d - t t op i csu b 2 in d ica no r ispe tt ivame n te la so tt o scr iz io n e al t op i c su b 1 e to p i csu b 2 d e i du e d e vice s. Il to p ic va in se r ito do p o - t m ent re - d in d ica ch e vogliam o ab ilit a re il d e bu g de i m e ssaggi
42
Figura 45-Sottoscrizione da PC a topicsub1 e topicsub2
D a l lat o d e l t able t ef f et tu iamo la con n essio n e a l b ro ke r in se re nd o l’in d iriz zo IP d i do ve si t ro va, in q u e st o ca so q ue llo d e l n o st ro co mp ut er
43
Figura 46-Connessione al Broker da Tablet
A co n ne ssio n e st ab ilit a in viamo d al t ab le t il m e ssaggio p ri mo i n vi o d a t a bl et a
p c a ll’a r go m en to top i csu b 1
Figura 47-Esecuzione di un Publish dall'Apllicazione
E n ot ia m o ch e rice ve r à il me ssaggio so la m e n te il t e r m in ale so t t o scrit t o a
44
Figura 48-Ricezione di un messaggio inerente a topicsub1
Gr a z ie a ll’a n aliz z at or e d i p ro t o co llo è po ssib ile ved e re ch e il co n te nu t o d e l m e ssa ggio Pu b lish risp e cch ia la co n fo r maz io ne re la t iva allo st a n d ard M QT T e so p r a tt ut to la z on a in cu i si t ro va il m e ssaggio d a t rasp o rtare e la su a
45
46 Rip e t ia m o la co sa pe r il se con do to p ic
Figura 50-Esecuzione del secondo Publish dall'Applicazione
47
Figura 52-Struttura del secondo messaggio Publish analizzata con Wireshark
P ro ce d ia mo co n la ve rif ica con t r ar ia, que st a vo lt a sa rà il t ab le t a sot to scrive r si a u n to p ic ch iamat o p ro v a p ub
48 E il p c pu b b lich e rà gr az ie al co man d o
mo sq u i t t o _p u b - d - t p ro v a p ub - m i n vi o _p c_ t a b l et
il me ssa ggio i n vio _ pc_ t a b l et al t op ic p ro va p u b
Figura 54-Invio di un Publish da PC a tablet
ve d ia m o ch e l’ap p lica z io n e su l t ab le t ha rice vu to il m e ssaggio
49 E r e lat iva a nalisi de i p acch et t i
50
51
Figura 58-Struttura del pacchetto Publish da PC a tablet analizzata con Wireshark
In co n clu sion e , p e r co mp le te zz a rip o rt iam o an ch e l’an a lisi d e i p a cch e tt i P in greq , P in gre sp e D isco n ne ct , ved iamo co m e il co nt e nu to risp et t a a l l a p e r fe z ion e lo st andard
52
53
54
55
D a no t a re du ran t e l’an alisi d i pr o to co llo ch e i du e in d iriz z i IP ch e si scam b ian o co n t inu am en te il cam p o d i S ou r ce e De st in at io n , so no 19 2 .16 8 .1 .7 0 ch e co me in d ica to al mo men to d e lle con n e ssion e a d u n Bro ke r d a t ab le t è l’in d irizz o d e l n o st r o p c e 19 2 .1 68.1 .6 8 ch e è l’in d irizzo IP d e l t a b le t
56
6-Soluzioni Preconfigurate per Dispositivi IoT
A sco p o d i r ice rca so n o st ate an aliz z ate alcu n e p iat t af o rme sp e cif ich e , f orn it e d alle p rin cip ali az ien d e d e l se tt o r e , de dicat e alla co nn e ssion e d i d isp o sit ivi n e ll ’a mb it o d e ll’In te r n et of Th in gs in un amb ie nt e p re con f igu ra t o . All ’int e rn o d i e sse si t ro van o gli Hu b p en sat i p e r la co n n e ssion e d e i d isp o sit ivi, n e
rip o rt ia m o le carat te r ist ich e d e i du e p iù co m un i.
M icr o so ft A Z URE [ 3 .b ] :
l’Hu b Io T d i Azu re su p po rt a in m o do n at ivo la co m un icaz ion e t ra i p rot o co lli AM QP , M QT T e HT TP / 1 ; n e l caso d i pr ot o co lli n o n sup p o rt at i è p re se n te u n ga t e wa y p e r son aliz zab ile . Pe r q u an t o rigu ar d a l’im p le m e ntaz io ne de l
p ro to co llo M QT T v3.1 .1 n ot iamo :
- Qo S 2 n on è su pp o rt a t o . Qu and o u n Clie n t in via u n P UBLISH co n Qo S 2 , l’Hub Io T ch iud e la co nn essio n e d i r et e . Quand o u n Clien t in via un S UBSCRIBE co n Qo S 2 , l’Hub IoT co nce d e il live llo Qo S 1 m assim o n e l p a cche t to SUBACK
- n on sup p ort a Re t ain e d M e ssage , se u n Clie n t p ub b lica u n m e ssaggio co n Re t a in Fla g u gu ale a 1 il Bro ke r no n re nd e p e r sist en te il m essaggio d i
m an t en imen t o (se si u t ilizz a l’ap p licaz io n e b a ck - e nd d isp on ib ile in Azu re allo ra il me ssa ggio le viene p a ssat o )
- e sist on o già d isp o nib ili pe r i d isp o sit ivi Clie n t , d e gli SD K (So f t ware D e ve lop m e nt Kit ) che su pp o rt ano il p r oto co llo M QTT . Qu e st i SD K p e r imp o st az ion e p red ef in it a si con n et to n o a un Hub con il f la g Cle a n Se ssio n u gu a le a 0 e u n a QoS 1 p e r lo s ca m b io di m e ssaggi co n il Bro ke r
57 AWS Io T [4 .b ] :
è la p ia tt afo rma p e r Io T d i Am az on Web S e r vice , t ra i su o i vari co m p on en t i t r o viamo il M e ssage Br o ke r co n le ca ratt e r ist ich e e le n cate d i se gu it o . Su pp o rt a l’u so d e l p rot o co llo M QT T p e r e se gu ire P UBLIS H e SUBSCRIB E , l’u so d e l HT T P S p e r il P UBLISH e il pro t o co llo M QTT su We b So cke t . Con ce nt ra nd o ci so lo su l p ro to co llo M QT T , ch e è qu e llo ch e ci int e r e ssa ma ggio rm ent e n o t iam o q u e st e sp e cif ich e:
- Qo S 0 sign if ica ch e il m e ssaggio sar à inviat o 0 o p iù vo lte (in ve ce d i al m assim o 1 ). Il me ssaggio p ot r eb b e e sser e in viat o p iù d i un a vo lt a , in q ue st o caso p ot r e bb e ave r e u n P a cke t ID d iff e re n t e e d i con se gue nz a il D UP ( D up lica t e D e live r y of a P UBLIS H ) n o n a tt ivo .
- n on sup p ort a P UBLISH e S UBS CRIBE co n Qo S 2 e d i con se gu e nz a n o n in via P UBACK o S UBACK qu an do richie st a
- q u an do si risp on d e ad u n a rich ie st a d i co n n e ssion e con u n CON N ACK, il f la g ch e ind ica di rip re nd e r e u n a se ssion e pr e ce d e nt e , p ot reb be ave re u n valo re sb a glia t o se d u e Clie n t si co nn et t on o co n lo st e sso ID co n te m p o ran e am en te
- d op o u n S UBSCRIBE p uò e sse rci r it ard o t r a il m o m en to in cu i il Bro ke r in via u n SUBACK e il mo me nto ch e il Clie nt in iz ia a rice ve re nu o vi messaggi
- n on sup p ort a Re t ain e d M e ssage , se ven go n o r ich ie s t i, la co n n e ssion e si ch iu de
- q u an do un Clien t si co n ne tt e al Br o ke r co n un ID già in u so d a un a lt ro Clie nt , vie n e in via t o un CON N ACK ad en t r am b i e d il Clie nt al m o m en t o co n ne sso ve rrà d isco n ne sso
- n on sup p ort a se ssio n i p e r siste nt i, se il Clie n t in via un m e ssa ggio co n Cle an Se ssio n u gu ale a 0 , il Clie n t ve rr à d isco nn e sso
- in ra re o cca sio n i il Br o ke r p ot r e bb e r inviar e lo st e sso P UBLISH co n un d ive r so ID p a cke t
58
7-Confronto tra MQTT e HTTP
V e rif ich ia m o se ve rame n te la sp e sa in Byt e è in f e rio re m o st ra nd o q u i so tt o l’in vio d e l me ssaggio He llo Wo rld con ent r am b i i P ro to co lli e co n sid era nd o p e r e n t r amb i i casi, an ch e d e ll’in vio d i alcun i se gm en t i n on re lat ivi a llo st rat o Ap p lica tivo ma n e ces sa ri p e r la Con n e ssio n e d i Ret e
HT T P , co n met o do Po st :
in qu e sta analisi ci h a aiu t at o l’u so d e ll’an a lizz ato re d i p roto co lli Wire Sh a rk e il se gu en t e d iagramma a lla p agin a[ 5 .b]
Figura 63-Three Ways Handshake
Qu e st i p rim i t re mes sa ggi so n o f on d ame n t a li p er ap rire u na co n ne ssio n e T CP e ve n go n o ch iamat i Th re e Ways Ha n d sh ake , o ccu p ano in to tale 2 18 Byt e
59
Figura 64-Invio del Messaggio HelloWorld con metodo di richiesta Post
Ad e sso vien e in viato i l me ssaggio He lloWo rld che vale 1 0 Byt e co m e si pu ò ve d e r e n e lla case lla Co n te n t – Le n gt h . A q ue st i b yt e aggiun giam o u n He ad e r h t tp p e r il me ssaggio P o st di 55 5 Byt e , p iù 6 6 Byt e d i He ade r d e gli st rat i in f e r io r i. In t ot ale ab b iamo qu ind i 63 1 Byt e
Figura 65-Conferma di avvenuta ricezione
D u e m e ssa ggi d i co nf e rm a, il prim o a live llo T CP d i 6 6 Byt e e d il se co nd o h tt p d i 77 6 Byt e (3 6 0 Hea d e r 4 1 6 Co nt e nt - Len gt h )
Figura 66-Conferma TCP del Client
60
Figura 67-Scambio di messaggi Client-Server per chiusura connessione TCP
E d in f in e la ch iu su ra d e lla co nn e ssio ne T CP d i 4 me ssa ggi da 6 6 = 26 4 Byt e
61 M QT T :
co m e p a rt en z a p e r lo svilu pp o d i q ue st o st ud io ci siam o in izialm e nt e ap p o ggiat i ad u n vide o tro vat o in r et e [6.b ]
P e r l’an a lisi se gu e nte co n side r iam o il caso in cu i il T op ic sia “ Sa m p le T op ic” , il Clie n t ID o ccup i 23 Byt e e Qo S = 0
Figura 68-Three Ways Handshake
T h r e e Wa ys Hand shake d i ap e rt u r a T CP 2 1 8 Byt e
MQTT CONNECT
(
105 Byte TCP (ACK)(
66 Byte MQTT CONNACK(
70 Byte TCP (ACK)(
66 Byte MQTT SUBSCRIBE(
84 Byte TCP (ACK)(
66 Byte MQTT SUBACK(
71 Byte TCP (ACK) ( 66 Byte MQTT PUBLISH(
91 Byte TCP (ACK)(
66 Byte62 MQTT DISCONNECT
(
68 Bytep o i u n a co mp let a com u n icaz io n e M QTT co n le r isp et t ive con f e rme n e llo st rat o T CP
Figura 69-Chiusura connessione TCP
E d in f in e la n e ce ssar ia ch iu su ra d i con ne ssio n e T CP d i 26 4 Byt e
Il P ro to co llo M QT T h a imp ie ga to qu ind i 1 3 01 Byt e
D IF FE RE N Z E RISCON T RAT E :
u san do il P rot o co llo M QT T , n on o st an te la q u an tit à d e i m e ssaggi t ra sm e ssi sia m aggio re , ab b iamo r isp ar miat o 72 0 Byte risp et to a l P rot o co llo HT TP Po st , ciò è d o vut o a lle rid o tt e d ime n sio n i d e l su o He ad e r. La n o st ra an a lisi po i, si lim it a all’in vio d i u n sin go lo m e ssaggio a p p licat ivo , q u ind i è f acile im m a gin a re il gu a d agno ch e si p u ò o tt e ne re con u n n um e r o m a ggio re d i Ap p licat io n M e ssa ge s.
63
8-Conclusioni
D o p o l’at t en t a an alisi e se gu it a in qu e sto scr it to , p o ssia m o a f f e rm a re con ce r t e zz a che , al mome n to , il p rot o co llo M QT T rapp re sen t a u n ’ot t im a sce lt a se u sat o p e r imp le ment are co mu n icaz io ni M 2 M . Co me n o t at o n e l cap it o lo
p re ce d en te il p rot oco llo M QT T è in grad o d i limit are il n um e ro d e i b yt e t r asm e ssi r isp e tt o al p r ot o co llo HT T P , usat o con m et od o P OST , in p iù
l’a rch it et tu ra p ub lish / sub scrib e e le varie t ip o lo gie d i T yp e M e ssage son o in gr ad o d i f o rnire alla co mu n icaz ion e u n a m o d u larit à ra ram ent e ot te n ib ile con u n ’a r ch it et tu ra richie st a/ r isp o st a . Lo stu d io , p o i, d i un a com u n icaz io n e t ra d isp o sit ivi Io T (Cap it o lo 4 ) h a f at to risalt a re , o lt re ai p re gi d e tt i p rim a, l’im p o rt a nz a d i po t er ge st ir e co n m o lt a se m p licit à l’in vio d i m e ssaggi o n e to -m an y. T ut t i risu lt at i ch e sp e r ava-m o d i ot t en e r e a l l’in iz io d ella T e si, so n o st at i co n f e rm at i e in se riti in u n co nt e st o r e a le gr az ie al la vo ro d i an a lisi e
64
Bibliografia
[ 1 .a ] An d ro id ian i. htt p :/ / www.an d r o id ian i.co m / n e ws/ st e ve -wo z n ia k - e - la - b u bb le -p ha se - de llint e rne t -o f- th in gs -2 43 1 9 5
[ 2 .a ] D igit a lic h tt p: // www.d igit alic.it / wp / te cn o lo gia/ int e rne t - of -t h in gs - en t r o- il- 2 0 18 - sa r a- p iu -d iffu sa - de gli - sm a rt ph on e / 97 6 02
[ 3 .a ] Syste ms Int e grat io n ht tp :/ / www.s yst e m sin te grat io n .it/ d o m ot ica -h o m e-au t o ma t ion - iot -b e llo - m a - co me - si-u sa - i l- t e rmo st at o /
[ 4 .a ] Sga rt h tt p s:/ /www .sgar t .it / IT / e let t ro/ ape rtu ra cen cello iot co nt ro llat o -via - wi - f i- e sp 8 26 6 /po st
[ 5 .a ] jif f yj o sep h ht tp : / / www.jif f yjo se ph.co m / h o m e/ h a ckin g a n o rd in a ry -wa sh in g - ma ch in e -t o- io t- d e vice
[ 6 .a ] Te cn o lo gia3 6 0 h t tp :/ / te cn o lo gia3 60 .it / tikim o - sca rp e- gp s/ [ 7 .a ] P e t P o in te r h ttp s: / / www.p e t po int er .ch / it /
[ 8 .a ] Th e High - Te ch S o cie t y ht tp s: // th e high t e ch so ciet y.co m /in ge st ib le me d ica l -se n so r /
[ 9 .a ] Th e D iss h tt p :// t he d issnb a .co m / 201 4 / 10 / 31 / e xch an ging b lo od f o r -p ro f it s/
[ 1 0 .a ] E n e llakt iko s ht t p: / / www.e n allakt iko s.gr / kg1 2 e l_ e n erge ia.h t m l [ 1 1 .a ] S ma r t Cit ie s Wo r ld h tt p s:/ / sm artcit ie swo rld .n et /n e ws/ n e ws/ sm a rt -t r aff ic - co u ld - save- 42 - b illio n -m a n -h ou r s- a n nu a lly - 65 3
[ 1 2 .a ] Lin ke d in h tt ps: / / www.lin ke d in .co m / p u lse / wo rld t omo rro w n avee n -n e llo r e
[ 1 3 .a ] In st ru ct ab le s h t tp :/ / www.in st r u ctab le s.co m / ta g/ t yp e -id / ?so r t= n on e &q = rem o t e + mo n it o rin g
[ 1 4 .a ] Lin ke d in h tt ps: / / www.lin ke d in .co m / p u lse / ho w m qt tb a se d ib m io tf -u n ive r se - ch a n ge - tomo r ro w - ad it ya - o m
[ 1 5 .a ] In sight s Samsu n g h tt p s:/ / in sigh t s.sam su n g.co m / 20 1 5/0 6 / 10 / se cu rin g t h e int e rne t o f th ings risks t o b e ne f it s/ t he r isks and ad van t age s o f th e -in t e rn et - of -t h -in gs - io t /
[ 1 6 .a ] J a xe nt e r h tt ps: / / jaxe nt e r.d e / sm art h o me in act io n m it op e nh ab un d -m q tt - 20 1 08
65
[ 1 7 .a ] P ro gramm in g wit h re aso n h tt p: / /p r o gr am m in gwit h reaso n .co m / a rt icle - m q tt - i n- de p th .ht ml
[ 1 8 .a ] M o sq u it t o htt p s: // mo sq u it t o .o rg / [ 1 9 .a ]Go o gle P la y
h t tp s: // p lay.go o gle .co m/ st o re/ app s/d e ta ils?id = a t .t rip wire .m q tt .clie n t [ 2 0 .a ] Wir e sh ark h ttp s: / / www.wire sh a rk.o rg/
[ 1 .b ] Ke y4 Biz h tt p s:/ / www.ke y4 b iz .it / iot 84 m ilia rd i d i o gge t t i co nn e ssi ne l -2 0 1 7- i n- a u men to - del - 3 1 /1 8 04 8 6/
[ 2 .b ] S t an d ard Oasis M QT T v3 . 1 .1 h tt p :// d o cs.o a sis
-o p e n .-or g/ mqt t/ mqtt / v3 .1 .1/ csp r d 02 / mq t t - v3 .1 .1 - csp rd 02 .h t m l [ 3 .b ] M icro sof t A zu re ht tp s: / / www.az u re io t su it e .co m /
[ 4 .b ] Ama zo n We b Se r vice
h t tp :/ / do cs.aws.am az o n .co m/ io t/ late st/ d e ve lop e rgu id e/ iot - d g.p df [ 5 .b ] E ve nt h elix
h t tp s: // www.e ve n t he lix.co m/ Re alt im eMa n t r a/ N et wo rkin g/ HT T P _ Po st .pd f [ 6 .b ] Y ou T ub e h tt p s: / / www.yo u t u b e .com / wat ch ?v= 7 9b MMT 7 RP q Y