Implementarea Protocolului de Rutare Leach Pentru Retele de Senzori
LUCRARE DE LICENȚĂ
Implementarea protocolului de rutare LEACH pentru rețele de senzori.
Contents
CAPITOLUL I
INTRODUCERE
CAPITOLUL II
RETELE DE SENZORI WIRELESS
2.1 DEFINIȚII GENERALE
2.2 PROTOCOALE DE REȚEA
2.2.1 RUTAREA DE TIP RESOURCE-AWARE
2.2.2 RUTAREA DE TIP DATA-CENTRIC
2.2.3 RUTAREA GEOGRAFICA
2.2.4. AGREGAREA DATELOR ÎN MODELELE DE TIP CLUSTERING
2.2.5 FOLOSIREA BAZELOR DE DATE DISTRIBUITE
2.3 CONTROLUL TOPOLOGIILOR
2.3.1 GEOGRAPHIC ADAPTIVE FIDELITY (GAF)
2.3.2 SPAN
2.3.3 ADAPTIVE SELF-CONfiGURING SENSOR NETWORKS TOPOLOGIES (ASCENT)
2.3.4 ENERGY-AWARE DATA CENTRIC ROUTING (EAD)
2.4 PROTOCOLS FOR QOS MANAGEMENT
2.4.1 TRANSPORT LAYER
2.4.2 ASIGURAREA MEDIULUI RETELELOR
2.5 TIMPUL DE SINCRONIZARE SI PROTOCOALELE DE LOCALIZARE
2.5.1 TIMPUL DE SINCRONIZARE
2.5.2 LOCALIZAREA SENZORILOR
CAPITOLUL III
LEACH (Low energy adaptive cluster hierarchy) 22
3.1 DEFINITII GENERALE
3.2 VIAȚA UNEI RETELE DE SENZORI
3.3 PRINCIPII DE FUNCȚIONARE
3.3.1 FAZA DE INIȚIERE
3.3.2 FAZA FORMARII CLUSTERELOR
3.3.3 PLANIFICAREA TRANSMISIILOR DE DATE
3.3.4 TRANSMISIA DE DATE
3.3.5 CLUSTERE MULTIPLE
3.3.6 CLUSTER IERARHIC
3.4 ÎMBUNĂTĂȚIRI ALE PROTOCOLULUI LEACH
3.4.2 OPTIMIZAREA PRAGULUI
3.4.1 ALEGEREA NODULUI POTRIVIT PENTRU A FI CLUSTER HEAD
3.5 ATACURI ASUPRA LEACH
3.6 MODELE DE SECURITATE LEACH
3.6.1 F-LEACH
3.6.2 SLEACH
3.6.3. R.SRINATH
3.6.4. NHRPA
3.6.5 SEC-LEACH
3.6.6 SS-LEACH
3.6.7 RLEACH
CAPITOLUL IV
SIMULAREA RETELELOR WIRELESS FOLOSIND PROTOCOLUL LEACH
4.1 PROGRAMAREA C# FOLOSIND EVENIMENTE
4.1.1 DECLANSAREA EVENIMENTELOR
4.1.2 CAPTAREA EVENIMENTELOR
4.1.3 PARAMETRII EVENIMENTELOR
4.1.4 ȘTERGEREA EVENIMENTELOR
4.2 PROGRAMAREA C# CU FIRE DE EXECUȚIE
4.3 APLICAȚIA PENTRU SIMULAREA PROTOCOLUI LEACH
CONCLUZII
BIBLIOGRAFIE
CAPITOLUL I
INTRODUCERE
Având in vedere progresul tehnologic in achiziția si procesarea informațiilor, rețelele de senzori wireless au utilizare larga in aplicații de domeniul militar, al mediului, fabricării, explorării spațiului, etc. Rețelele de senzori wireless pot fi descrise ca un sistem autonom, contând mulți senzori, denumiți noduri, care comunica intre ei cu unde radio. Noduri pot conlucra in monitorizarea in timp real a informațiilor provenite din diverse medii si transferul acestor informații către o stație baza. Nu este nevoie de un suport pe baza de fir, si oferă o instalare rapida, durata de viată.
O rețea de senzori wireless include, de cele mai multe ori, noduri senzori, noduri sink si noduri de administrare. Un număr mare de noduri senzori sunt instalate in zona de monitorizat, fiind considerata o rețea prin modul ei de a se auto-organiza. Datele percepute de senzori sunt transmise de la nod la nod, folosind un protocol de rutare, eventual ajungând la nodurile de management prin fir sau prin rețeaua wireless. Energia, abilitatea de a semnala un proces, capacitatea de stocare si capacitatea de comunicare a nodurile este foarte limitata. Unul din principalele aspecte ale rețelelor de senzori este sa folosească energia eficient. Algoritmi de tip cluster au o utilizarea a energiei mult mai buna fata de algoritmii de rutare non-cluster.
Principalul mecanism a rutării cluster este de a folosi mecanismul de agregare a informațiilor in cluster head pentru a reduce dimensiunile transmisiilor de date, si implicit, reduce disipării energiei in comunicații si a atinge telul de reducere consumului de energie global in rețea. In cadrul algoritmilor de rutare de tip cluster, LEACH (Low-energy adaptive clustering hierarchy) este bine cunoscut, deoarece este simplu si eficient. LEACH împarte întreaga rețea in mai multe clustere si funcționarea rețelei se divide in mai multe runde. In fiecare runde, nodurile din un cluster lupta pentru a fi promovate ca cluster head, in funcție de niște criterii predefinite. In protocolul LEACH, toate nodurile rețelei au aceeași probabilitatea de a ajunge cluster head, ceea ce face ca rețeaua sa consume energia într-un mod balansat si de a prelungi viața rețelei.
Lucrarea este structura in următoarele capitole:
Capitolul II prezinta noțiuni generale legate de rețele de senzori wireless. Un scurt istoric al protocoalelor de comunicații in rețele de senzori, controlul topologiilor, QoS Management si mecanisme de sincronizare.
Capitolul III prezinta definiții generale ale protocolului LEACH, principiile de funcționare, de la faza de inutilizare, când este ales cluster head-ul atunci când respectivul nod generează un număr aleatoriu intre 0 si 1, mai mic decât pragul, pana la faza de rulaj, când fiecare nod din rețea transmite datele senzoriale către cluster head, care le agregă si le trimite către baza. De asemenea sunt prezentate câteva aspecte pentru îmbunătățirea protocolului.
Capitolul IV prezinta câteva aspecte in programarea C# si principalele concepte in dezvoltarea aplicației ce simulează comportamentul protocolului LEACH într-o rețea de senzori wireless.
CAPITOLUL II
RETELE DE SENZORI WIRELESS
2.1 Definiții generale
Mediile inteligente reprezintă următorul pas în sistemele de comunicare pentru clădiri, industrie și sistemele de transport. Ca orice organism conștient, mediile inteligente, se bazează în mod special pe datelor colectate de senzori, primite de la o multitudine de tipuri de receptori, instalați în locații distribuite. Ele au nevoie de informațiile despre mediul înconjurător dar și de la funcțiile definite intern; similar ca și sistemele biologice care au nevoie de stimuli o data din receptorii externi dar și din receptorii interni.
Principalele avantaje ale rețelelor ierarhice sunt:
Detectarea senzoriala;
Monitorizarea și colectarea datelor;
Evaluarea informațiilor;
Afișarea unui format inteligibil;
Procesul de luare a deciziilor și a alarmelor.
Informațiile necesare mediilor inteligente sunt primite prin folosirea rețelelor wireless distribuite de senzori, care sunt responsabile de recepția datelor. În acest sens au fost deschise proiecte sponsorizate de DARPA SENSIT, programe militare și NSF.
Prima etapa și una dintre cele mai importante, de altfel, este identificarea cerințelor rețelei. De-a lungul anilor, se poate constata o schimbare majora în ceea ce privește rolul unei rețele și perspectiva pe care organizațiile o au asupra importanței acesteia. Cu ani în urmă, rețeaua reprezenta, pentru orice organizație, un activ ce ajuta la creșterea productivității și, în același timp, la reducerea costurilor operaționale. Evoluția în timp a rețelei și beneficiilor aduse de aceasta a dus ca, in prezent, aceasta sa fie indispensabila în orice entitate, acestea fiind dependente de infrastructura informatica pentru a funcționa și a-și derula activitățile.
Rețelele wireless de senzori sunt rețele formate dintr-un număr mare de noduri, alimentate de la baterii cu putere limitata, având o capacitate redusa de stocare de date, procesare și transmitere de informații. Nodurile percep și transmit datele către un centru de procesare, numit stație baza. Având în vedere ca aceasta transmisie și recepție consuma energie mult mai mare decât procesarea datelor, a fost necesara crearea de noi tipuri de protocoale și aplicații pentru aceste tipuri de rețele care sa prelungească durata de viața a senzorilor. În general aplicațiile folosite în activitatea zilnica au o tendință de eterogenitate decât de omogenitate.
Protocoalele de comunicații trebuie concepute pentru a avea toleranta la erori atunci când unul dintre senzori este considerat mort și pentru a reduce consumul energiei individuale. Mai mult, considerând banda wireless limitata, care trebuie împărțita de toți senzorii din rețea, protocoalele de comunicații sa știe sa distribuie local transferul de date pentru a reduce banda pentru fiecare senzor in parte.
Datele recepționate de la senzori rețelei trebuie transmise către un punct central, unde utilizatorul poate analiza informațiile. În aceasta perspectiva, vom considera o rețea de senzori care îndeplinește următoarele presupuneri:
Punctul central este considerat fix și amplasat la distanta considerabila fata de senzori;
Toate nodurile rețelei sunt omogeni și cu o limitare de energie alocata.
În aceste condiții, este considerat scumpa comunicarea intre nodurile senzoriale si punctul central și se presupune ca nu exista nici un nod care sa aibă energie nelimitata, prin care sa treacă datele.
Rețelele de senzori vor transmite prea multe informații pentru a fi percepute si înțelese pentru utilizatorul final. Prin urmare, trebuie concepute metode automate de combinare și agregare a datelor într-un set restrâns inteligibil. Pentru a preveni încărcările excesive de informații este necesara agregarea datelor. Clasificarea peste datele agregate este sarcina unui utilizator. Ambele metode de agregare și clasificare sunt specifice pentru fiecare aplicație în parte. Câștigul de energie poate fi atins atunci când cele doua metode sunt folosite în punctul central, asta însemnând o reducere a informațiilor transmise și a energiei consumate de senzori.
2.2 Protocoale de rețea
Atunci când implementam protocoale pentru rețele wireless de senzori trebuie considerate mai mulți factori de impact. Cel mai important, din cauza limitărilor de energie, deciziile de rutare trebuie în funcție de energia disponibila în fiecare senzor individual al rețelei. Mai mult rețelele de senzori se comporta diferit fata de alte rețele ad-hoc, unde comunicațiile se desfășoară între evenimente și baza, fata de senzori individuali și baza.
Nodurile de sincronizare construiesc o privire de ansamblu a senzorilor decât informațiile primite de la senzorii individuali. Din aceasta cauza comunicația in rețele de senzori este definita ca o agregare de date, diferita de agregare de adrese, mai mult agregarea datelor se poate face local decât trimiterea ei către baza. Aceste trăsături unice ale rețelelor de senzori au implicații in definirea rețelelor de comunicații si necesita implementarea de protocoalelor pentru rutarea datelor. De obicei senzorii au stocați locația geografica pentru a evalua obiectiv datele percepute. Aceasta localizare poate fi folosita in rețeaua de comunicații pentru rutarea datelor.
2.2.1 Rutarea de tip Resource-Aware
Resursele sunt extrem de limitate in rețelele wireless de senzori, este necesar sa definim cum se pot folosi cel mai eficient la toate nivelele ale protocoalelor. Au fost dezvoltate diferite abordări care au considerat resursele energetice ale senzorilor pentru rutarea pachetelor de date. Inițial au fost construite protocoale ce țineau cont doar resursele de energie ale senzorilor individuali, ulterior au fost incluși si senzorii care transmit informații legate de resursele detectate.
2.2.2 Rutarea de tip Data-Centric
Rețelele de senzori sunt fundamenta diferite fata de rețele ad-hoc legat de datele care se transmit. Pentru rețelele ad-hoc informațiile trimise de un nod independent este importat, în rețelele de senzori este canalizat pe datele agregate, sau mai exact informațiile din datele transmise. În acest sens a fost dezvoltat un nou model pentru astfel de rețele și anume rutarea de tip data-centric. Acesta denotă o mai puțina importanța nodurile, mai exact senzorii, fata de informațiile conținute în datele transmise de noduri. În acest sens, căutările se fac în datele agregate și nu în cele transmise de un nod particular.
Folosind acest tip de rutare au fost dezvoltate mai multe protocoale, dintre care trebuie menționate: SPIN (Sensor Protocol for Information via Negotiation), Directed Diffusion, Rumor Routing.
2.2.3 Rutarea geografica
De multe ori, rețelele de senzori necesita ca anumite informații să fie transmise către o anumita regiune din rețea. Abordarea naturala pentru acest tip de transmitere este sa folosească transmiterea geografica, care reduce dimensiunile extra pachetelor pentru rutare, deoarece rutele se generează dinamic, și are nevoie de o bucata micaea datelor.
2.2.1 Rutarea de tip Resource-Aware
Resursele sunt extrem de limitate in rețelele wireless de senzori, este necesar sa definim cum se pot folosi cel mai eficient la toate nivelele ale protocoalelor. Au fost dezvoltate diferite abordări care au considerat resursele energetice ale senzorilor pentru rutarea pachetelor de date. Inițial au fost construite protocoale ce țineau cont doar resursele de energie ale senzorilor individuali, ulterior au fost incluși si senzorii care transmit informații legate de resursele detectate.
2.2.2 Rutarea de tip Data-Centric
Rețelele de senzori sunt fundamenta diferite fata de rețele ad-hoc legat de datele care se transmit. Pentru rețelele ad-hoc informațiile trimise de un nod independent este importat, în rețelele de senzori este canalizat pe datele agregate, sau mai exact informațiile din datele transmise. În acest sens a fost dezvoltat un nou model pentru astfel de rețele și anume rutarea de tip data-centric. Acesta denotă o mai puțina importanța nodurile, mai exact senzorii, fata de informațiile conținute în datele transmise de noduri. În acest sens, căutările se fac în datele agregate și nu în cele transmise de un nod particular.
Folosind acest tip de rutare au fost dezvoltate mai multe protocoale, dintre care trebuie menționate: SPIN (Sensor Protocol for Information via Negotiation), Directed Diffusion, Rumor Routing.
2.2.3 Rutarea geografica
De multe ori, rețelele de senzori necesita ca anumite informații să fie transmise către o anumita regiune din rețea. Abordarea naturala pentru acest tip de transmitere este sa folosească transmiterea geografica, care reduce dimensiunile extra pachetelor pentru rutare, deoarece rutele se generează dinamic, și are nevoie de o bucata mica de memorie pentru a salva datele pentru rutare comparativ cu protocoalele pentru rețelele ad-hoc. Mai mult, rutarea geografica poate folosi tehnici geografice de stocare a datelor, cum ar fi Geografic Hash Tables (GHT) [3].
Următoarele protocoale folosesc rutarea geografica: Greedy Perimeter Stateless Routing (GPRS), Trajectory Based Forwarding (TBF), etc.
2.2.4. Agregarea datelor în modelele de tip clustering
Deoarece rețelele de senzori folosesc un număr mare de noduri, stabilitatea protocolului sta la baza criteriilor pentru dezvoltarea acestor tipuri de protocoale. În cazul în care senzorii sunt coordonați direct de stația de baza ar rezulta un tampon extra în comunicare, întârzieri de coordonare și complexitatea comunicării ar deveni factori importanți în performanța sistemului. Clustering-ul a fost propus de dezvoltatori pentru a grupa senzori, de obicei în regiuni geografice, pentru a forma un cluster, care este la rândul sau coordonat de un nod de tip cluster (cluster head). Mentenanța acestor rețele poate fi realizata folosind o metoda stabilită sau una dinamica (adaptata). Prima metoda menționată apartenența fiecărui cluster nu se schimba în timp, în cea dinamica, nodurile pot migra în timp intre clustere-le definite.
Asocierea de tip cluster oferă o arhitectura pentru administrarea resurselor. Va susține multe trăsături importante într-un cluster, cum ar fi canale de acces pentru membrii rețelei, și a clusterelor, separarea rutărilor și a datelor pentru a evita interferențe intre clustere. Mai mult, distribuie administrarea de la stația de baza către nodurile cluster (cluster head), și oferă o interfață pentru agregarea datelor, decizii locale și optimizarea consumului de energie.
Protocoalele care adopta acest tip de comunicarea sunt: LEACH (Low Energy Adaptive Clustering Hierarchy), HEED (Hybrid Energy-Efficient Distributed Clustering).
2.2.5 Folosirea bazelor de date distribuite
Rețelele de senzori pot fi echivalate cu sisteme distribuite de baze de date, in acest sens câteva arhitecturi sincronizează aplicațiile cu rețeaua de senzori folosind un limbaj de tip SQL. Deoarece aceste arhitecturi sunt distribuite pe suprafețe foarte mari, trebuie ținut cont, foarte strict. in eficientizarea transferul de date si optimizarea cererilor către sursele de informații, adică bazele de date.
In aceste tipuri de arhitecturi, trebuie menționate următoarele tipuri de servicii: Tiny AGregation (TAG) Service, TinyDB/ACQP, Geografic Hash Tables.
2.3 Controlul topologiilor
In urma studiilor făcute legate de tipul transmițătoarelor din structura unui senzor, au descoperit ca cel mai mare consum de energie este efectuat in perioada de așteptare din comunicare. Afara de cazul când comunicarea in rețea este sincronizata spre o risipire neglijabila, protocoalele MAC avansate nu pot elimina complet aceasta risipire de energie. Totuși, deoarece rețelele de senzori sunt caracterizate de desfășurare densa de senzori, nu este necesar ca transmițătoarele senzorilor sa rămână pornite totul timpul astfel incit rețeaua sa fie in permanenta acoperita. Protocoalele din topologiile generale încearcă sa mențină un număr
minim de noduri vecine astfel incit sa nu apară momente de aglomerare, topologiile ad-hoc reușesc sa obțină o reducere de energie consumata alegând rolul de router pentru destule noduri pentru a tine rețeaua in funcționare. Mai exact, rolul acestor protocoale este sa mențină o rețea in funcționare, atunci când majoritatea nodurilor din rețea nu comunica cu exteriorul. O mica parte din aceste protocoale au fost, inițial, concepute sa deservească rețelele ad-hoc, o marte parte din ele sunt foarte potrivite si pentru rețelele de senzori.
2.3.1 Geographic Adaptive Fidelity (GAF)
GAF este protocol de control al topologiilor care a fost conceput inițial pentru a fi folosit in rețelele ad-hoc. Acest protocol împarte rețeaua într-o matrice virtuala si selectează doar un singur nod pentru fiecare celula, a matricei, sa funcționeze ca router de informații. Atâta timp cat celulele sunt destul de mici, majoritatea nodurilor din rețea, in afara de cele de la periferie, vor avea noduri vecine în toate direcțiile și rețeaua va fi interconectata deplin. Nodurile se vor inițializa in starea de descoperire și vor primi mesajele de la celelalte noduri din aceeași celula. Dacă unul din ele va fi desemnat ca si router, acel nod va intra in starea de adormire pentru a-și conserva energia. El va trece automat intre stările de așteptare in starea de descoperire. Pe măsura ce densitatea de noduri într-o rețea, care implementează GAF, creste numărul nodurilor active pe celula rămâne constant, dar creste numărul de noduri dintr-o celula proporțional. Ca și concluzie, acest protocol permite rețelei sa fie operațională aproximativ egala ca timp cu densitatea ei.
2.3.2 Span
Span este protocol de control al topologiilor ce permite nodurilor care nu sunt implicate in comunicare sa rămână in starea dor mantă pentru perioada de timp mărite. In Span, anumite noduri se auto-asignează ca fiind „coordonatoare”. Aceste noduri formează principalele metode de comunicare in rețea, astfel incit sa acopere potențialul comunicării in rețea. Period, nodurile care nu sunt de coordonatoare decât daca vor devenii un nod coordonator. Criteriul pentru aceasta tranziție este daca distanta minima intre orice doua noduri vecine este mai mare de trei pași. Pentru a evita situația in care prea multe noduri decid in același timp sa devina coordonatoare au fost implementate timpi de întârziere in mesajele de anunțare a coordonatorilor. Acești timpi au rolul de a permite nodurilor cu cea mai mare energie rămasa si a nodurilor ce permit o buna conectivitate in rețea sa aibă ce mai mare șansa de a fi coordonatoare. Pentru a asigura balansul energiei consumate in rețea, nodurile coordonatoare pot renunța la rol daca nodurile vecine pot permite funcționarea rețelei.
2.3.3 Adaptive Self-Configuring sEnsor Networks Topologies (ASCENT)
ASCENT funcționează similar cu Span, adică câteva noduri sunt desemnate sa rămână active ca si rutere, celelalte noduri rămân in starea adormita pentru a conserva energia. In acest protocol, decizia de a deveni router activ nu este baza doar pe numărul de noduri apropriate, dar si pe observarea pachetelor pierdute din rețea, oferindu-i capacitatea de a avea o comunicație stabila in detrimentul energiei consumate. Nodurile din rețelei, ce folosesc protocolul ASCENT, pornesc inițial in starea de testare, când participa activ in comunicarea in rețea, descoperă nodurile vecine, observa pierderile de pachete din rețea si transmit mesajul de „Descoperirea împrejurimilor”. Bazat pe aceste observații si mesaje, nodul poate decide daca este folositor rețelei si va deveni activ permanent pentru comunicații. Daca nodul decide sa rămână activ, trece in starea pasiva, in care aduna aceleași informații ca si in starea de testarea (si toate mesajele de tip ajutor de la nodurile vecine care au probleme cu comunicarea), dar nu participa activ la rutarea datelor. Din aceasta stare, nodul poate trece in starea de testare daca informațiile adunate de la vecini indica o calitate slaba de comunicare, sau pot intra in stare de adormire, întrerupând orice comunicare pentru a conserva energia. Nodul, periodic, trece din starea de adormire pentru comunicare, in starea pasiva.
2.3.4 Energy-Aware Data Centric Routing (EAD)
EAD este un algoritm care construiește o rețea de comunicare minima intre senzorii rețelei, prioritizând nodurile astfel incit nodurile cu cea mai mare energie reziduala sa fie, cel mai probabil, aleși ca noduri non-frunze. Pentru a stabili un arbore pentru comunicare, mesajele de control conținând tipurile nodurile comunicante, nivelul din arbore, părinți si energia reziduala sunt transmise in rețea de către baza. In timpul stabilirii arborelui, nodurile care nu a fost alocate asculta mesajele de control. Daca un astfel de nod primește un mesaj de la un nod non-frunza, el devine automat un nod frunza si se pregătește sa trimită mesajul prin care anunță acest lucru, atunci când canalul de comunicare este liber. Similar, daca un nod primește mesaj de la un nod de tip frunza, el devine un nod non-frunza si trimite un mesaj de anunțare, când canalul de comunicare este liber. Pentru a asigura ca nodurile cu cea mai mare energie reziduala pot trece mai des in rolul de noduri cu disipare ridica de energie, timpi de relaxare trebuie sa fie funcții descrescătoare are energiei reziduale ramase. De asemenea, cel mai mic timp de relaxare Tv1 trebuie sa fie mai mare decât cea mai mare valoare a Tv2, astfel incit numărul de noduri de tipul non-frunza sa fie ținut la minim. Daca la un moment dat, un nod frunza primește un mesaj de la un nod vecin, de tipul non-frunza, ca a ajuns un nod părinte vecin, devine automat un nod non-frunza si trimite un mesaj de anunț. Dea lungul timpului, toate nodurile interconectate din rețea vor deveni si noduri frunza si nodurile non-frunza si nodurile non-frunza din compoziția rețelei vor deveni aproximarea unui set dominant minim, cu cele mai mari conexiuni cu nodurile care au cea mai mare energie rămasă.
2.4 Protocols for QoS Management
Posibil unul din cele mai importante aspecte ale rețelelor wireless de senzori este modul în care Calitatea Serviciilor (QoS) este definita. În general întârzierile și banda alocate sunt considerate cele mai importante aspecte ale QoS în rețelele wireless și wired ad-hoc, noile specificații pentru rețelele de senzori wireless sunt longevitatea rețelei. Din cauza redundantei și a importantei datelor transmise de senzori, QoS trebuie definit folosind ca importanta conținutul și impactul datelor transmise. Mai exact, aplicațiile au nevoie de un număr redus, important, unice de informații decât cu un număr mare de informații redundante. Astfel, este important sa folosească un control pentru a evita aglomerările în cazul în care siguranța datelor din rețea sa nu fie reduse datorită pachetelor pierdute, acel control poate fi mai sporit prin reducerea datelor transmise de noduri, până la o reducere totala. Mai mult, neținând cont de aglomerări, este necesar sa reducă dimensiunea comunicațiilor din rețea pentru a prelungii viața rețelei, deoarece nodurile au energia limitata.
2.4.1 Transport layer
Protocoalele de transport sunt folosite în majoritatea rețelelor wired și wireless ca metode pentru a oferii servicii de tip recuperarea pierderilor (loss recovery), controlul congestiei și fragmentarea pachetelor. Atâta timp cât protocoalele, ex: TCP, pot fi supradimensionate și multe din abilitățile nivelului de transport nu sunt necesare pentru aplicațiile ce folosesc rețelele de senzori wireless, o mica parte poate le poate fi benefică.
2.4.1.1 Pump Slowly Fetch Quickly (PSFQ)
Acest protocol a fost conceput pentru a permite distribuirea codului de reprogramare de la baza către senzorii rețelei. PSFQ asigura o exactitate în baza hop-by-hop, fata de alte protocoale de transport end-to-end. Atunci când este nevoie de un noi cod distribuit, este fragmentat și trimis printr-un mecanism de pompare, care injectează pachetele în rețea (având un timp de spațiere de cel puțin Tmin). La un nod de relocare, TTL este scăzut și mesajul este retransmis, după alegerea unui timp de întârziere din intervalul [Tmin, Tmax], atâta timp cit datele salvate local nu indica o bucla de pachete. Pentru a preveni o suprapunere excesiva de difuzare în rețele dense, pachetul este scos din tamponul de transmitere dacă nodul a primit acest pachet de patru ori. Aceste întârzieri impuse au fost introduse pentru a nu interfera cu operațiunile normale a rețelei (comunicarea senzori – baza) și pentru a grăbi procesul de recuperare fără a necesita un tampon mare pentru comunicare la nodurile de transmitere. De îndată ce un nod detectează un pachet care a fost primit în afara secvenței, începe operațiunea, agresiva, de primire a pachetelor pierdute. PSFQ presupune ca pachetele pierdute în rețea sunt cauzate de calitate slaba de comunicare fata de aglomerările de pachete. Din aceasta cauza, recuperarea agresiva a pachetelor nu va agrava orice aglomerare de pachete existenta.
2.4.1.2 Event-to-Sink Reliable Transport (ESRT)
Protocolul ESRT a fost conceput ca o soluție a problemei din lucrările lui Tilak [4]. Protocolul atinge o eficiența a energie consumate solicitând nodurilor sa trimită suficient de puține informații pentru a furniza aplicației informațiile necesare pentru a funcționa, și conține mecanisme pentru a detecta și atenua aglomerările de pachete. Din punct de vedere a modului de transmitere a informațiilor, nodurile pot fi categorisite ca:
Fără aglomerări, siguranța mica (No congestion, low reliability) (NO,LR);
Regimul de funcționare optim (The optimal operation region) (OOR);
Fără aglomerări, siguranța înaltă (No congestion, high reliability) (NO,HR);
Cu aglomerări, siguranța înaltă (Congestion, high reliability) (C,HR);
Cu aglomerări, siguranța mica (Congestion, low reliability) (C,LR).
În ESRT, baza trimite periodic o rata de raportare revizuita către senzori, încercând sa selecteze o frecventa de transmisiuni pentru a muta reteaua în „regimul de funcționare optim” (OOR).
2.4.2 Asigurarea mediului retelelor
Protocoalele tradiționale de control al transportului (cum este ESRT) definesc siguranța rețelei ca număr total de pachete pe care baza le primește într-un interval de timp. Însă, în multe aplicații, acest lucru este o aproximare grosolana a fidelității datelor care au fost agregate. Pentru a măsura cu adevărat fidelitatea, este adeseori necesar să fie verificate originea și conținutul pachetelor primite. Este un lucru important în rețele ca senzorii sa poată știi daca regiunea sau subregiunea geografica este complet acoperită. Pentru acest lucru a fost definita acoperirea K, mai exact fiecare locație din rețea să fie monitorizata astfel încât să fie activi doar un număr K de senzori, restul oprindu-se pentru a conserva energia.
2.4.2.1 Probing Environment and Adaptive Sleeping (PEAS)
Acest protocol a fost dezvoltat pentru a oferii o acoperire constinenta și robusta în cazul în care nodurile au probleme și se dezactiveaza neasteptat [50]. Nodurile pornesc în starea oprita, din care trec periodic în starea de sondare. În aeasta stare, senzorii transmit pachete de sondaj, la care nodurile vecine răspund într-un timp prealocat dacă se afla în distanța transmisa. Dacă nu este primit nici un răspuns, atunci senzorul devine activ; altfel se reîntoarce în starea dezactivata. Distanța transmisa este aleasa pentru a satisface distantelor minime impuse de distantele de transmitire și de primire. Rata de sondare a acestui protocol este adapativa și este ajustata pentru a obtine un balans intre energie salvată și robustete. Mai exact, o rata mica poate însemna un timp lung de recuperare a comunicatiilor în cazul în care unele noduri se defecteaza neastepta. Pe de alta parte, o rata mare poate duce la pierderi mari de energie. Cel mai indicat, rata pentru fiecare nod individual în parte sa crească atunci când numărul de noduri moarte crește, astfel încât timpul de recuperare a retelei sa rămână constant.
2.4.2.2 Schema individuala de planificare a nodurilor
Intr-o astfel de schema, un nod masoara reduntanta nodurilor vecine ca o reuniune de sectoare și unghiuri disponibile ale nodurilor vecine situate în raza nodului. În cazul în care rezultatul acoperă total regiunea nodului, acesta decide să se închidă temporar. Mai trebuie precizat ca exista o redundanta aditionala intre senzori și ca acest model este simplificat astfel încât sa nu existe lipsa de reduntata nesteptata. La începutul fiecarei runde, exista un timp scurt în care nodurile schimba informații legate de locația fiecăruia și decid dacă urmează sa treacă în starea de așteptare pentru o perioada predefinita. Nu poate apare situația în care zonele toate nodurile se dezactivează deoarece fiecare nod verifica și a doua oara dacă sunt eligibile de a intra în starea de așteptare.
2.4.2.3 Protocolul de configurare a acoperiri (Coverage Configuration protocol CCP)
Protocolul expune o regula stricta pentru a oferii o aoperire K [52]. La început, fiecare nod descopera toate punctele de interesectie intre zonele de acoperire ale nodurilor vecine și marginile zonelor ce urmează a fi acoperite de rețea. Regula impusa de acest protocol impune ca un nod sa intre în starea de așteptare doar dacă zona are o acoperire de tip K.
2.4.2.4 Acoperirea senzorilor conectati (Connected Sensor Cover)
Acest algoritm ofera un control comun al topologiei și o soluție pentru modul de detectare. Scopul este sa găsească un set minim de senzori și de noduri pentru rutare astfel încât orice pachet sa poate fi transmis și procesat în orice zona geografica. Initial este ales un senzor la întâmplare, urmând ca să se activeze sensori folsoind algoritmul greedy. La fiecare pas al acestui algoritm, toți senzorii care acoperă excesiv zona, care este deja deservita de senzori activi, sunt considerati candidați potentiali și este calculata cel mai scurt drum către senzorii care sunt în reteaua activa. Pentru fiecare dintre acești senzori potentiali, sunt calculati parametrii bazati pe numărul de zone unice în care senzorul le-ar putea adauga acoperirii retelei și numărul de noduri pe drumul calculat anterior. Senzorul cu parametrii cei mai buni și nodurile incluse în drum sunt selectate pentru a intra în reteaua de noduri activa. Acest proces continua până când toată zona necesara este acoperită total. Algoritmul a fost extins ca sa țină cont de nodurile considerate moarte.
2.5 Timpul de sincronizare si protocoalele de localizare
Unul din beneficiile retelelor wireless de senzori este diversitatea tipurilor de senzori, permitand aplicatiilor sa urmareasca dispozitive și este masurata locația și viteza atunci când se mișca în zona retelei. Pentru acest lucru aplicatiile au nevoie de doua lucruri importante: localizare și timpul de sincronizare. Aceste astpecte pot fi oferite de un sistem GPS instalat pe dispozitiv, dar este un cost mult mai scăzut financiar să fie înlocuit cu o rețea wireless de senzori. Însă poziția absolută și informațiile legate de timp nu sunt adeseori necesari pentru retele de senzori, deoarece informații relative sunt, deseori, de ajuns. În cazul în care informațiile absolute sunt necesare, este de ajuns să se folosească câteva noduri cu energie mare pentru a fi folosite ca puncte de referinta. Asfel, au fost dezvoltate alogritmi, cu cost redus de energie, care permit senzorilor sa aprecieze relativ informațiile legate de locatie și timp.
2.5.1 Timpul de sincronizare
Pentru a permite aplicațiilor sa urmărească dispozitive, rețelele de senzori au nevoie de un timp de sincronizare, mult mai bine definit decât metodele de sincronizare oferite de Network Time Protocol (NTP) [54]. Însă, constrângerile de energie ale senzorilor, necesita o eficientizare a sincronizării, dar în același timp limitând transmiterea de informații suplimentare. Următorii algoritmi oferă aceste informații și limitări: algoritmul lui Romer, Reference Broadcast Syncronization (RBS).
2.5.2 Localizarea senzorilor
Mulți algoritmi de localizare pentru retelele de senzori necesita ca nodurile sa descopere pozitionarea relativa a acestora fata de nodurile vecine ale retelei. Obtinerea acestor informații este oferita de modulul radio și este cea mai importanța piesa în algoritmii de localizare. Atunci când informațiile legate de distanța sunt cunoscute, sunt folosite relații geometrice pentru a obtine topologia locala, care este ulteriora difuzata în rețea, oferand un serviciu de localizare global. Aceasta metoda este folosită și în sistem de pozitionare global (GPS) [58].
Se paote folosi puterea semnalului primit (Received Signal Strength Indicator) pentru a deduce distantele intre noduri. Însă, aceasta metoda este foarte susceptibila la erori, mai ales în sistemele cu propagare multipla și efectele de zgomot. Time of Arrival (ToA), care este folosit în sistemul GPS, este alta metoda ce poate fi folosită; însă, ceasurile interne senzorilor nu pot rezolva timpii de intarziere pentru a deduce distantele estimate în erorarea permisa. Time Difference of Arrival (TdoA) este o metoda mult mai practica pentru estimarea distantelor. Cu acest sistem, un semnal radio este transmis simultan cu o unda ultrasonica. Diferența de timp la primirea celor 2 semnale poate fi interpretata ca distanța. La senzorii care au matrici de antene, Angle of Arrival (AoA) poate fi folosit pentru a estima direcția primirii semnalelor. În astfel de retele, triangularea este folosită pentru estimarea locatiei.
CAPITOLUL III
LEACH (Low energy adaptive cluster hierarchy)
3.1 Definitii generale
Vom analiza un tip de protocol, denumit LEACH (Low Energy Adaptive Clustering Hierarchy), care este un sistem omogen si vom demonstra impactul eterogenității in disiparea energie nodurilor pentru a prelungi viața rețelelor wireless de senzori.
Protocolul LEACH este unul din protocol-urile de tip rutare grup în rețelele wireless de senzori. Avantajul protocol-ului este ca fiecare nod are probabilitatea egala de a deveni conducătorul grupului, ceea ce face ca energia consumata de fiecare nod sa fie egala. In LEACH timpul este împărțit in runde, iar in fiecare runda toate nodurile pot deveni conducătorul grupului in funcție de un criteriu foarte bine definit. Aceasta lucrare se va adresa in a defini durata de timp pentru fiecare runda, a prelungi durata de viața a rețelei și a mari viteza de transfer a informațiilor, mai exact capacitatea datelor trimise spre baza de recepție.
LEACH aduna informațiile de la senzorii și le transmite agregat către baza. LEACH folosește următorul algoritm de grupare (clustering) Unele noduri se auto-promoveaza ca fiind noduri de tip cluster-head. Aceste noduri aduna informațiile de la nodurile aflate în grup (cluster) și transfera datele agregate către baza. Având în vedere ca aceasta transmitere către baza folosește energie multă, nodurile se rotesc în a fi cluster-head dea lungul vieții relelei. Acesta rotatie conduce la balanța a energiei consumate de către noduri și la o funcționarea mai lunga în timp a retelei de senzori.
Pentru a defini o retea de senzori consideram urmatoarele:
baza este considerata la mare distanta si imobila;
nodurile retelei sint omogeni si au rezerve limitate de energie;
toate nodurile pot transmite informatii catre baza;
nodurile nu stiu unde sint plasate
canal simetric de transmitere a informatiilor
cluster-heads fac compresia datelor
Energia pentru transmiterea informatiilor de la un nod1 la un nod2 este aceeasi pentru transmiterea de la nod2 la nod3. Cluster-head aduna n (numărul de noduri din cluster) mesaje, le comprima și le transmite către baza.
Metoda de funcționarea a protocolului LEACH este împărțită în runde. Fiecare runda este formata din o faza de pornire și o faza de functionre. În faza de pregătire sunt selectati nodurile de tip cluster-head și clusterele sunt definite. În faza de funcționare, datele sunt transmise către baza.
Nodurile cluster-head sunt alese la intimplare. Pentru ca un nod să fie ales ca fiind cluster-head, fiecare nod genereaza un numar la intimplare intre 0 și 1, dacă numărul este mai mic decât un prag T(n), nodul devine cluster-head pentru runda curenta. Pragul este stabiliti ca:
T(n) = P / (1 – P*(R mod (1/P))) T aparține G
T(n) = 0 T nu aparține G
unde P este probabilitatea de cluster-head, r este numărul rundei curente, iar G este mulțimea nodurilor care nu au fost cluster-heads în ultimele 1/P runde. Acest algoritm asigura ca fiecare nod poate deveni cluster-head o singura data în durata a 1/P runde.
Analizand o singura runda în LEACH a fost observat ca alegerea aleatoare a nodurilor de tip cluster-head nu va conduce la un cosnum minim de energie, deoarece nodurile cluster-head pot fi situate la marginea zonei acoperite sau doua noduri pot fi situate în apropiere. În aceste situații nodurile trebuie sa transmita informațiile pe distante lungi, însă, considerand și rundele următoare, putem presupune ca alegerea unor noduri mai favorabile poate duce mai târziu la alegerea unor noduri nefavorabile, deoarece LEACH încearcă sa distribuie consumul energiei peste toate nodurile retelei.
3.2 Viața unei retele de senzori
Viata unei retele este definita prin serviciile oferite de aceasta. In acest sens, exista trei concepte pentru calculul vietii unei retele. In unele cazuri este necesar ca toate nodurile sa ramana active pentru cea mai lunga perioada, deoarece calitatea retelei scade cu fiecare nod considerat mort. Aceste scenarii sunt folosite pentru retele de supraveghere sau detectare a incendiilor. Parametrul First Node Dies (FND) indica o valoare estimata a acestui eveniment pentru o configuratie a retelei. Mai mult, senzorii pot fi pozitionati aproape unul de altul, masurand aceleași informații, astfel încât pierderea unui senzor nu diminueaza calitatea serviciilor retelei oferite. A fost definit și Half of the Nodes Alive (HNA) care estimeaza jumătatea vieții retelei. Ultimul introdus este Last Node Dies (LND) care estimeaza o perioada de viața completă a unui retele.
Pentru un algoritm cluster-based, adică LEACH, LND nu este atât de important deoarece este necesar mai mult de un nod activ pentru algoritmul de transmitere a datelor.
3.3 Principii de funcționare
Principiile protocolului LEACH sunt de a diviza modul de funcționare în runde, fiecare runda are urmatoarii pași:
faza de initiere, atunci când sunt organizate clusterele;
faza de rulare, atunci când sunt trimise datele către baza.
Pentru a reduce la minim overhead-ul, cea dea doua faza durează mult mai fata de prima faza.
3.3.1 Faza de inițiere
În prima faza, atunci când sunt create clusterele, fiecare nod decide dacă urmează să se autopromoveze ca și cluster head pentru runda curenta. Acest lucru se bazează pe procentul prestabilit pentru numărul de cluster heads al retelei și numărul de ori un nod poate fi cluster head în funcționarea rețelei. Pentru a fi promovat ca și cluster head un nod n genereaz un număr aleator intre 0 și 1, dacă numărul este mai mic decât un prag T(n), respectivul nod devine cluster head pentru runda care urmează. Pragul este calculat ca:
T(n) = P / (1 – P*(R mod (1/P))) T aparține G
T(n) = 0 T nu aparține G
unde P este procentul definit pentru cluster heads, r este numărul rundei curente și G este setul de noduri care nu au fost cluster heads în ultimele 1/p runde. Folosind acest prag, fiecare nod poate fi cluster head în 1/P runde. În prima runda (r=0), fiecare nod are probabilitatea P de a fi cluster head. Ca urmare aceste noduri nu mai pot fi promovate ca și cluster heads pentru următoarele 1/P runde. În acest fel probabilitatea ca nodurile ramase să fie cluster heads trebuie mărita, deoarece rămân, cu timpul, un număr mai mic de noduri disponibile din mulțimea G. După 1/P -1 runde, formula pragului are valoarea 1 pentru nodurile ramase, iar după 1/P runde, toate nodurile pot fi eligibile în a fi cluster heads. Îmbunătățiri ulterioare ale acestui algoritm vor tine cont de pragul energiei disponibile pentru a facilita promovarea nodurile cu cea mai mare energie reziduala rămasă. Vom presupune ca toate nodurile încep cu aceeași energie stocata și faptul ca fiecare cluster head va consuma aceeași energie pentru transmiterea datelor.
Fiecare cluster head promovat, pentru runda curenta, va trimite un mesaj de anunț pentru restul de noduri. Pentru acest „cluster-head-advertisement” se folosește protocolul CSMA MAC, și toate nodurile transmit mesajul folosind aproximativ același nivel energetic. Nodurile ramase trebuie sa mențină antenele pornite în aceasta faza pentru a primi informațiile legate de momentul ulterior al transmiterii datelor. Alegerea cluster headului se bazează pe puterea semnalului primit de la fiecare cluster head.
3.3.2 Faza formarii clusterelor
După ce fiecare nod a decis la ce cluster head să se aboneze, trebuie sa îl informeze ca va fi parte din cluster, folosind protocolul CSMA MAC. În aceasta faza, toate cluster heads trebuie sa poate primi informațiile nodurilor din fiecare cluster asociat.
3.3.3 Planificarea transmisiilor de date
Fiecare cluster head primește informații de la nodurile care vor adera la cluster. Bazându-se pe numărul de noduri din cluster, cluster head generează o planificare TDMA, transmițând informațiile înapoi pentru fiecare nod individual al clusterului.
3.3.4 Transmisia de date
O data ce clusterele sunt formate și planificarea TDMA este stabilită, transmiterea datelor poate începe. Presupunând ca nodurile au întotdeauna date de trimis, ele vor fi transmise în timpul alocat în planificare stabilit. Aceasta transmisie folosește o parte minima de energie (bazat pe puterea semnalului primit înainte de la cluster head). Echipamentul de transmisie poate fi închis pentru fiecare nod care nu este cluster head, pentru a minimiza disiparea energiei pentru aceste noduri. În schimb, cluster head trebuie sa aibă echipamentul de transmisie pornit pe perioada întregii runde, pentru a primi toate informațiile de la nodurile rețelei. Atunci când toate datele sunt primite, cluster head-ul comprima datele pentru a fi transmise pe un singur semnal de transmisie. Având în vedere ca baza poate fi la o distanța mare fata de poziția cluster head-ului, aceasta transmisie poate fi costisitoare în energie.
Aceasta este faza de rulare pentru rețelele LEACH. După un timp, prestabilit apriori, runda următoare începe, unde fiecare nod poate decide să fie promovat ca și cluster head, urmând algoritmul descris mai sus.
3.3.5 Clustere multiple
Principiile de funcționare, prezentate pana acum, descriu comunicarea intre nodurile unui cluster, însă radioul este un mediu pentru difuzare. Astfel, transmisiile intre nodurile unui cluster pot afecta (si astfel bruia) comunicațiile intre clusterele vecine.
Ca exemplu în figura de mai jos, transmisia nodului A către B bruiază orice transmisie din partea nodului C
Pentru a reduce acest tip de interferenta, fiecare cluster transmit informațiile folosind un alt cod CDMA. În acest fel, nodul care devine cluster head, alege la întâmplare un cod dintr-o lista predefinita si transmite acest codul către toate nodurile clusterului. Prin aceasta metoda toate transmisiile venite de la clusterele vecine nu perturbează buna funcționare a clusterului.
O alegere eficiența a canalului de funcționare este o problemă dificila, chiar și atunci când exista un control extern care ar putea ajuta la alegere. În schimb folosind codurile CDMA, deși nu este cea mai eficiența metoda de transmitere, rezolva problema accesului multiplu printr-o maniera distribuita.
3.3.6 Cluster ierarhic
Prezentarea protocolului LEACH descris până acum poate fi extins pentru a forma clustere ierarhice. În acest caz, fiecare nod cluster head comunica cu un nod denumit „super cluster head” până când ajunge la nodul poziționat cel mai sus ierarhic; acest nod fiind responsabil cu transmiterea datelor agregate către baza. Pentru rețele mari, aceasta structura ierarhica poate aduce îmbunătățiri mari în consumul de energie.
3.4 Îmbunătățiri ale protocolului LEACH
3.4.2 Optimizarea pragului
Formula matematica pentru calcului pragului de a fi selectat ca și cluster head nu tine cont de energia reziduala rămasă în nod. O alta metoda de a îmbunătății protocolul LEACH este în modificarea formulei pentru a tine cont de energia rămasă:
T(n) = P * (1 – P * (r mod (1/P))) * Ecur/E0,
unde Ecur este energia rămasă, E0 este energia inițială. Aceasta modificare va tine cont de energia curenta rămasă și va creste probabilitatea ca un nod cu energie multă sa devină cluster-head. Apare totuși o problemă, atunci când energie rămasă este mica, pragul T(n) devine mic și probabilitatea ca un nod sa genereze un număr aleator mai mic decât acest prag va tinde către zero. În acest fel numărul de cluster-headuri din rețea se va diminua, iar cele selectate în timpul funcționarii protocolului vor consuma energie sporita și în acest fel va fi afectată viața rețelei wireless. [8]
3.4.1 Alegerea nodului potrivit pentru a fi cluster head
În mod normal, nodurile din cluster selectează cluster headul optim și funcționează în clusterul aferent, apoi comunica cu baza folosind cluster headul ca și releu. Pentru a optimiza alegerea cluster headului și diminuarea energiei consumate de acesta, algoritmul tine cont de distanța intre nod și baza, compara aceasta distanța cu distanța dintre nod și cluster head; în cazul în care prima distanța este mai mica (cea fata de baza) atunci datele vor fi transmise direct către baza; altfel, cluster headurile a căror distanța până la nod este mai mica decât distanța până la baza vor fi considerate ca și cluster head posibile. [8]
3.5 Atacuri asupra LEACH
Protocolul LEACH este foarte dificil de fi atacat, comparând cu protocoalele convenționale. În aceste protocoalele convenționale, nodurile în jurul bazei sunt mult mai probabil de fi compromise, în timp ce pentru LEACH, cluster head este singurul nod care poate comunica direct cu baza. Locația cluster headului poate fi oriunde în rețea, indiferente de ce baza este vorba. Mai mult cluster headul este în permanenta schimbat aleator. Astfel, pentru a detecta un cluster head este practic imposibil.
Deoarece este protocol pe baza de cluster, care se bazează pe cluster head în agregarea și transmiterea datelor către baza, atacurile asupra cluster headurilor sunt foarte dăunătoare. Dacă un nod adversar este ales ca și cluster head, atunci ar putea facilita atacuri de tipul Sybil, HELLO flood attack și selective forwarding. Nodul intrus poate transmite informații false către nodurile rețelei și, de aceea, fiecare nod îl va alege ca cluster head. Poate selecta ce informație transmite baze, ce informație modifica sau o ignora.
Securizarea datelor este o metoda buna pentru a mari securitatea rețelei. Aceste scenarii presupun ca un nod interacționează cu un număr relativ fix de vecini, iar vecinii sunt descoperiți la scurt timp după ce a fost pus în producție. Însă, clusterele în LEACH se formează dinamic, aleator, care modifica interacțiunea nodurilor intre ele și necesită ca fiecare nod să fie gata să se alipească unui cluster head la un moment în timp [8]. Având în vedere ca rețelele de senzori wireless sunt compuse din senzori cu putere limitata de calcul și cu memorie de dimensiuni neglijabile, ele nu pot incorpora aceste sisteme de securitate.
3.6 Modele de securitate LEACH
3.6.1 F-LEACH
L. B. Oliveria [9] a propus o variație a protocolului LEACH, F-LEACH, un protocol pentru securizarea comunicațiilor nod cu nod într-o rețea de tip LEACH. A folosit o schema a distribuției unei cheie, folosind criptografie simetrica, pentru a mari securitatea LEACH. FLEACH oferă siguranța, integritatea și corectitudinea comunicării intre noduri, dar este vulnerabil la atac de tip node capture.
3.6.2 SLEACH
Acesta este prima versiunea modifica a protocolului LEACH, care introduce securitatea la rețelele wireless de senzori ce folosesc protocoale de tip cluster. SLEACH oferă un nivel de securitate peste LEACH folosind blocuri SPINS (Security Protocol for Sensor Network), metode cu cheie simetrice și MAC (Message Authentication Code). SLEACH oferă protecția împotriva selective forwarding, sinkhole și HELLO flooding attacks. Previne nodurile intruși sa trimită date false către cluster heads, și la rândul lor, cluster heads sa trimită informații eronate către baza. Însă nu poate preveni aglomerarea mesajelor în intervalele de timp prestabilite, mai exact DOS (denial of service), sau pur și simplu în scăderea mesajelor captate de cluster head. Aceasta versiune este folosită doar pentru a preveni atacurile din exterior.
3.6.3. R.Srinath
Este bazat pe protocolul LEACH, denumit Authentication Condentiality cluster
based secure routing protocol [10]. folosește cheie publica (în semnătura digitala) și cheie privata pentru criptografie. Acest protocol oferă protecția împotriva nodurilor intruși sau a nodurilor compromise. Din cauza cerințelor ridicate pentru calcule (mai exact, criptografia), nu este un protocol bun pentru rețelele de senzori wireless.
3.6.4. NHRPA
Protocolul LEACH poate adopta tehnologie de rutare intre noduri în funcție de distanța intre nod și baza, densitatea nodurilor și gradul de energie reziduala rămasă. NHRPA comparat cu DD (Directe Diusion), LEACH și PEGASIS în termeni de consum al energiei, latenta pachetelor și a securității în prezenta nodurilor compromise, arata ca noua metoda de rutare este mai eficiența pentru retele de senzori wireless. Nu folosește criptografia în protocolul de rutare, astfel ca mărirea pachetelor este redusa. Dar evita doar situația nodurilor compromise.
3.6.5 Sec-LEACH
Sec-LEACH oferă o soluție eficiența în securizarea comunicațiilor în LEACH. Folosește o cheie aleatoare, pre-distribuita și TESLA pentru WSN cu formarea dinamica a clusterelor. Sec-LEACH oferă autenticitate, integritate, confidențialitate a comunicațiilor. [11]
3.6.6 SS-LEACH
Di Wu a definit un protocol cu securitate ierarhica, denumit SS-LEACH, care este versiunea securizata a protocolului LEACH. SS-LEACH îmbunătățește metoda în alegerea cluster heads și formează o ruta dinamica mulți-pas pentru comunicarea intre cluster heads și baza, astfel diminuând consumul de energie și mărirea vieții rețelei. Folosește o cheie, pre-distribuita și o tehnica de auto-localizare pentru a securiza protocolul LEACH. Nu permite apariția nodului compromis și păstrează secretul pachetelor transmise. De asemenea previne selective forwarding, HELLO flooding și Sybil attack. [12]
3.6.7 RLEACH
O alta soluție securizata pentru protocolul LEACH este RLEACH. Problema nodului orfan apare ca o neconcordanta intre chei, problema ce a este eliminata în acest protocol folosind o schema mai bune de perechi chei. RLEACH folosește un legătura de singura direct, cu criptografie simetrica și asimetrica pentru a oferi securitate. El rezista cel mai bine tuturor tipurilor de atacuri, printre care selective forwarding, HELLO flooding și Sybil attack.[13]
CAPITOLUL IV
SIMULAREA RETELELOR WIRELESS FOLOSIND PROTOCOLUL LEACH
4.1 Programarea C# folosind evenimente
In programele “tradiționale” (mai exact limbajele procedurale), programul decide ce cod este executat si când este executat. Când pornești un astfel de program, prima linie din cod este rulata, codul continuând să fie executat pe o cale predeterminata. În unele cazuri, codul poate fi reluat (condiție while, for) sau poate sari la un alt pas (goto). Ca și exemplu, programul poate aștepta ca utilizatorul sa introducă de la tastatura un text, diferit fata de programele ce rulează sub Windows, unde utilizatorul poate interacționa cu diferite părți ale interfeței.
Limbajul de programare C# (c sharp) oferă model de programare folosind evenimente. Aplicațiile dezvoltate cu acest model nu sunt constrânse la a fi aplicații procedurale. În locul unei abordări de sus în jos (top-down), programele cu evenimente au logica aplicației plasata ca răspuns la evenimente. Nu exista o ordina prestabilita pentru rularea evenimentelor, utilizatorul are control complet a supra codului scris și executat prin declanșarea unor evenimente specifice, apăsarea unui buton de exemplu. Un eveniment, împreuna cu codul conținut, este denumit o procedura de tip eveniment.
4.1.1 Declansarea evenimentelor
Evenimentele sunt tipuri speciale, mai exact o metoda prin care obiectele semnalează modificări de stare, care pot fi utile clienților ale respectivului obiect. Evenimentele sunt declanșate prin interacțiunea utilizatorului cu interfața aplicației și, în general, nu sunt declanșate de sistemul de operare.
Un eveniment poate fi declanșat prin următoarele patru metode:
• Utilizatorul interacționează cu interfața aplicației;
• Obiectele pot declanșa, la rândul lor, evenimente;
• Sistemul de operare poate declanșa evenimente;
• Dezvoltatorul poate declanșa evenimente, atunci când dorește.
4.1.2 Captarea evenimentelor
Fiecare obiect/control care este folosit pentru a interacționa cu utilizatorul are un set predefinit de evenimente. Atunci când accesăm evenimentele unui control, evenimentul principal este folosit, Click pentru butoane, TextChanged pentru textbox:
private void picText_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
Este metoda prin care se declara un eveniment. Aceasta este un enunț, care definește structura event handler. De observat ca numele metodei conține numele obiectului, o liniuța și numele evenimentului. În paranteze sunt prezentate parametrii procedurii.
4.1.3 Parametrii evenimentelor
Așa cum am menționat innainte, intre parantezele declaratiei unui eveniment se afla parametrii. Un parametru este o variabila create și asignata o valoarea de către C#. Ei sunt folosiți pentru a prelua, uneori și pentru a seta, informații relevante în eveniment. Aceste informații pot conține un numar, text, un alt obiect, câteodată nimic. În exemplul de mai sus, evenimentul MouseDown are doi parametrii. Atunci când evenimentul are loc, C# declara și asigneaza valori acestor parametrii pentru a fi folosiți, o singura data, la executarea codului din eveniment; data viitoare când evneimentul este declanșat, poate conține valori diferite. Dezvoltatorul folosești valorile din parametrii pentru a lua decizii asupra operatiilor oferite.
Primul parametru, sender, conține o referinta la controlul care a declanșat evenimentul. Este recomandat să fie folosit acest parametru decât să fie folosit o referinta la control direct, deoarece dacă numele controlului se schimba sa nu fie necesara rescrierea codului existent. Mai mult, folosind acest parametru, codul devine portabil, se poate duplica comportamentul (copy/paste) în alte locuri ale programului, iar comportamentul codului va rămâne neschimbat.
Al doilea parametru e conține informații relevante asupra evenimentului. El fiind declarat dintr-un obiect predefinit în C#: System.Windows.Form.MouseEvents.
4.1.4 Ștergerea evenimentelor
Ștergerea evenimentelor necesita mai mult decât ștergerea metodei implementate. Atunci când este abonat un eveniment, C# creează automat o procedura și pozitioneaza cursorul asupra ei. Totuși, C# mai face un alta modificare ascunsă, se aboneaza la evenimentul controlului prin procedura creeata mai devreme. Acest lucuru este adaugat în codul ascuns al respectivului obiect principal (Form/Control). Atunci când este ștearsă metoda evenimentului, C# nu sterge automat și abonarea, în general apar erori la compilare.
4.2 Programarea C# cu fire de execuție
Fiecare aplicație ruleaza cu cel puțin un fir de execuție. Ce este mai exact? Un fir de execuție este doar un proces separat. Acest procest defineste un set de instrucțiuni, fiecare set executind o linie de cod. Deoarece pasii sunt secventiali, fiecare pas se desfășoară într-un anumit timp. Timpul pentru a termina o serie de pași este suma fiecarui pas în parte.
Pentru o buna perioada de timp, majoritatea aplicatiilor au folosit un singur fir de execuție. Asta înseamnă ca nu se putea evalua un calcul A până când calculul B nu se termina. Un program începea la primul pas, executa secvential pasul 2, 3, 4… până ajungea la pasul n, care însemna terminarea aplicației. O aplicație cu multiple fire de execuție poate procesa simultan mai multe functionalitati/calcule. Teoretic, se poate executa un pas pe primul fir, în timp ce al doilea pas se executa pe un alt fir de execuție, și așa mai departe. Dacă toți pasii ar dura același timp, ipotetic, durata de execuție a aplicației se poate reduce la 1/n fata de o aplicație secventiatala. Din păcate nu toate aplicatiile pot fi de acest tip, din cauza ca de cele mai multe ori informațiile pentru pasul 2 depind de rezultatul pasului 1.
Un exemplu elocvent ca rularea multiplor fire de execuție este corpul uman. Fiecare organ intern (inima, plamanii, ficatul, etc) sunt implicatii în procese, care ruleaza simultan. Dacă procesele ar fi secventiale cel mai probabil ar fi fatal pentru om.
Aplicațiile cu fire de execuție sunt folosite, adeseori, atunci când se dorește ca rularea să fie eficiența. Presupunând ca aplicația Windows Forms conține o metoda care ruleaza repetitiv și timpul de execuție ar fi mai mare de o secunda, atunci interfata cu utilizatorul va întârzia în a răspunde comenzilor. Dacă aceasta metoda ar calcula formule complexe, interfata nu ar funcționa de loc. Acest comportament denotă executia metodei într-un fir de execuție separat. Un alt scenariu în care firele de execuție sunt necesare este pentru sisteme de mesagerie. Dacă sunt primite multiple mesaje simultan, ele trebuie salvate în timp ce firul prinicipal ruleaza și le distribuie la destinatii.
Dacă fiecare proces din aplicație s-ar exclude reciproc, nici un proces sa nu depinda de altul, atunci aplicația se poate dezvolta ușor și apar puține probleme. Însă, dacă procesele trebuie sa citească și sa scrie în memoria calculatorului folosită de alte procese, atunci apar problemele. Într-o aplicație cu multiple fire de execuție, dacă doua fire pot modifica în același timp aceeasy variabila, aplicația nu va funcționa corect. Pentru acest lucru este nevoie de metode prin care accesul la memoria comuna să fie partajata, astfel încât când un fir de execuție altereaza, celelalte sa rămână blocate până când primul fir termina procesul.
Aceasta activitate, denumita blocarea firelor sau sincronizarea firelor, permite controlul firelor de execuție din aplicația dezvoltata. În C#, blocam o anumita parte a memoriei (de obicei o instanța a unui obiect) și nu permitem unui alt fir de execuție sa o folosească până când primul fir de execuție, și cel care blochează, nu a terminat de folosit acel obiect.
Cea mai buna metoda de a evita suprapunerea firelor de execuție este să fie scris cod tread-safe. Exista câteva metode pentru a obtine acest lucru. Primul este sa pui cât mai puțin la comun memoria. Atita timp cât într-un fir de execuție se instantieaza un obiect nou și alt fir de execuție se instantiaza un același obiect, obiectle sunt thread-safe, atât timp cât nu contin variabile statice. Cele doua instante folosesc memorie diferita pentru variabilele personale, în așa fel încât nu se folosesc de memorie comuna. Dacă exista variabile statice în obiect, sau o parte din obiect este folosit de alte fire de execuție, trebuie găsită o metoda de a bloca accesul la memorie în timp ce un fir de execuție îl folosește.
Metoda prin care obținem acest lucru se numese locking, C# permita blocarea execuției codului folosind clasa Monitor sau cuvintul cheie lock { }. (Cuvânt cheie lock implementeaza de fapt clasa Monitor într-un block try-finally).
O alta metoda prin care putem obtine thread-safe în C# este folosirea clasei AutoResetEvent. Aceasta clasa expune doua metode importante, Set și WaitOne, prin care se blochează sau se continua executia unui fir de execuție. Atunci cind AutoResetEvent este initializat cu false, programul se va opri la linia de cod care apeleaza WaitOne, urmind să fie executat de îndată ce este apelata metoda Set de pe același obiect AutoResetEvent. Data viitoare când metoda WaitOne este apelata, el va automat deblocat, astfel încât programul va aștepta la linia de cod în care este executata metoda WaitOne. Se poate folosi acest mecanism de „stop și declansare” pentru a bloca executia unui fir de execuție până când alt fir de execuție îl poate debloca pe primul folosind metoda Set.
4.3 Aplicația pentru simularea protocolui LEACH
Pentru a simula functionarea protocolului LEACH, am propus o aplicatie care sa urmeze pasii principali ai protocolului.
Vom considera urmatoarele:
• Toate nodurile pot transmite pentru a ajunge la baza
• Fiecare nod are puterea de procesare pentru a implementa protocolul MAC
• Nodurile au întotdeauna date sa trimita
• Toate nodurile încep cu același nivel energetic, presupunând ca transmiterea de informații ca și Cluster head consuma aproximativ aceeași energie pentru fiecare nod în parte.
O soluție liniara pentru algoritm este:
– faza de initiere:
CN => r
IF r < T(N) then, CH = CN else , goto step1
CH => G: id(CH), join_adv
A(i) → CH(j): id(A(i)), id(CH(j)), join_req
CH(j) → A(i): id(CH(j)), < t(i), id(A(i)) >
– faza de rulare
A(i) → CH(j): id(A(i)), id(CH(j)), info
CH → BS: id(CH), id(BS), aggr_info
Unde:
CN: nodul candidat sa devină cluster-head;
R: număr generat aleator intre 0 și 1
T(n): pragul
CH: cluster head
G: toate nodurile rețelei
Id: număr de identificare
join_adv: anunț pentru intrare în cluster
A: nod normal
join_req: mesaj pentru intrare în cluster
T: timpul
=> broadcast
→ unicast
Am considerat fiecare nod fiind reprezentat printr-un textbox, care poate avea trei stări, este inactiv, transmite informații sau este ales cluster head. Pentru a simula in funcționarea independenta a nodurilor, fiecare nod rulează sub un fir de execuție independent de celelalte.
La începutul aplicației, pentru fiecare textbox este pornit un thread ce va simula comportamentul unui senzor, pentru cele doua faze, faza de început și faza de rulare.
Comunicarea cu interfața (forma) este realizata evenimente chemate asincron:
private void OnMessageReceived(object sender, MessageEventArgs e) {
if (this.InvokeRequired) {
this.BeginInvoke((MethodInvoker)delegate {
OnMessageReceived(sender, e);
});
return;
}
//Codul de executat.
}
Deoarece, Control.BeginInvoke executa delegatul invocat asincron pe firul de execuție în care a fost definit controlul. Diferența fata de Control.Invoke, este ca BeginInvoke posteaza un mesaj cozii de mesaje și codul continua să fie executat de unde a rămas, în shimb de Invoke așteaptă până când mesajul este procesat, mai exact aștepta ca delegatul sa fie executat pe firul de execuție al controlului.
Prima faza este faza de inițializare, atunci când fiecare nod generează un număr aleator intre 0 și 1 și îl compara cu pragul stabil și calculat la fiecare runda:
private double Threshold {
get {
return _Information.HasBeenClusterHead ? 0 : P / (1 – P * (RoundNumber % (1 / P)));
}
}
În cazul în care sunt mai multe noduri care au generat un numar sub limita pragului, se alege ultimul nod care a anunțat acest lucru, care este ales ca fiind cluster-head.
case MessageType.ClusterHeadAnnounce:
if (_Information.Id != e.Information.NodeId && _Information.LastmessageAnnounceTime != DateTime.MinValue) {
if (_Information.LastmessageAnnounceTime.Subtract(e.Information.AnnounceTime).Ticks < 0) {
_Information.IsClusterhead = false;
}
}
Break;
Comunicarea intre noduri de face pe baza de evenimente, chemate la rindul asincron prin delegati:
private void SendMessage(MessageInformation mi) {
if (OnMessageSend != null) {
var eventListeners = OnMessageSend.GetInvocationList();
for (int index = 0; index < eventListeners.Count(); index++) {
var methodToInvoke = (EventHandler<MessageEventArgs>)eventListeners[index];
methodToInvoke.BeginInvoke(this, new MessageEventArgs(mi), EndAsyncEvent, null);
}
}
}
private void EndAsyncEvent(IAsyncResult iar) {
var ar = (System.Runtime.Remoting.Messaging.AsyncResult)iar;
var invokedMethod = (EventHandler<MessageEventArgs>)ar.AsyncDelegate;
try {
invokedMethod.EndInvoke(iar);
}
catch {
}
}
După stabilirea cluster-headului, toate nodurile retelei trimit un mesaj de informare, asteptind din partea cluster-headului timpul în care se vor transmite datele senzoriale scanate:
case MessageType.ClusterHeadSelected:
if (_Information.Id != e.Information.NodeId) {
SendMessage(new MessageInformation() {
MessageType = MessageType.NodeAnnounce,
AnnounceTime = DateTime.Now,
NodeId = _Information.Id,
RoundNumber = RoundNumber,
Senzor = _Information.TextBox
});
}
Break;
Thread-ul cluster-headului este blocat folosind un AutoResetEvent, un timp suficient ca toate nodurile retelei sa poată transmite informațiile către cluster-head.
resetEventWaitForAnswers.WaitOne(1500 * (ReceivedMessages.Count + 3));
Urmând ca după ce acest timp expira cluster-headul sa agrege toate informațiile primite și sa le transmite bazei.
Pentru sincronizarea tuturor firelor de execuție, am folosit un alt AutoResetEvent, care blochează execuția firului până când cluster-headul trimite mesajul de sfârșit de runda.
Procesul se reia cu generare unui număr aleator și verificarea fata de pragul stabilit și calculat pentru fiecare runda.
O problema importanta în acest timp de rezolvare a fost generarea de numere aleatorii diferite de pe fire de execuție care rulează, aproximativ, simultan. De cele mai multe ori, cel puțin doua fire de execuție generau același număr aleatorie, făcând dificil controlul asupra alegerii cluster-headului. Ca o soluție imediata, am folosit un lock pe un obiect și seed diferit pentru instantierea clasei Random, rezultând cam 90% de numere generate în sens pozitiv, diferite și având relevanta în alegerea programului.
CONCLUZII
Rețele wireless de senzori oferă un spectru larg pentru concepte ce pot fi aplicate pentru a aborda un întreg set divers de aplicații. Rețelele de senzori pot conține numeroase tipuri de senzori cum ar fi: magnetic, termic, vizual, seismologic, infraroșu, radar, etc, care pot monitoriza numeroase condiții exterioare. Rețele au părți practice în monitorizarea locațiilor, al mișcării sau a unor evenimente critice:
Monitorizarea zonelor are o aplicabilitate mare pentru rețele de senzori wireless. Ea este folosită în zonele geografice în care se dorește monitorizarea activații fizice.
Monitorizarea mediului exterior este folosită pentru a detecta zonele critice cum ar fi incendierea pădurilor, parametrii de funcționare a serelor, detecția alunecărilor de teren, poluarea mediului, inundații, etc.
Aplicații de sănătate care oferă interfețe de funcționare pentru persoanele cu handicap, monitorizarea pacienților, diagnosticare, administrarea medicamentelor în spitale, până la monitorizarea mișcărilor și proceselor interne pentru insecte de mici dimensiuni.
Aplicații industriale unde se verifica buna funcționare a roboților industriali, zone inaccesibile omului, cum ar fi mașini rotative, zone biologice și cu grad mare de risc.
În aceasta lucrare, am descris protocolul LEACH, un protocol prin rutare de tip cluster, care minimizează consumul individual al energie pentru fiecare nod, distribuind sarcina de a transmite informații către baza la multe noduri în timpul funcționarii lui. LEACH este superior celorlalte protocoale, deoarece presupune ca nodurile rețelei să se ofere voluntare pentru a fi promovate ca și cluster head. La momente diferite în timp, fiecare nod poate avea sarcina de a primi datele transmise de la celelalte noduri din cluster, de a le agrega și a transmite datele agregate către baza de recepție. Mai mult nodurile nu vor trebuie sa știe unul de altul pentru ca acest protocol, LEACH, sa poată sa funcționeze. Distribuind consumul de energie în nodurile rețelei este folositor pentru a reduce disiparea energie, din punct de vedere global, și a pentru a mari viața unui rețele wireless.
Bibliografie
J.F. Kurose & K.W. Ross, Computer Networking: A Top-Down Approach, 4th Edition, Addison-Wesley (2007).
A.S. Tanenbaum, Retele de calculatoare, Ed. Biblos (2003).
S. Ratnasamy and B. Karp. GHT: A geographic hash table for data-centric storage. In Proceedings of the First ACM International Workshop on Wireless Sensor Networks and Applications (WSNA), 2002.
R.A.Roseline and Dr.P.Sumathi, Energy Efficient Routing Protocol and Algorithms for Wireless Sensor Networks-A Survey. Global Journal of Computer Science and Technology, vol.11, December 2011.
Heinzelman W, Chandrakasan A, Balakrishnan H. Energy Efficient Communication Protocol for Wireless Microsensor Networks. In Proceedings of the 33rd Hawaii International Conference on System Sciences. Maui: IEEE Computer Society, 2000, Vol.2: 3005-3014.
Estrin D, Govindan R, Heidemann J, Kumar S. Next century challenges: Scalable coordinate in sensor network. In Proceedings of the 5th ACM/IEEE International Conference on Mobile Computing and Networking. Seattle: IEEE Computer Society, 1999, 263~270.
Qian Liao, Hao Zhu, An Energy Balanced Clustering Algorithm Based on LEACH Protocol , School of Information Engineering, Zhengzhou Univesity, Zhengzhou, China
S.Zhu, S.Setia, S.Jajodia, LEAP:efcient security mechanisms for large scale distributed sensor networks,10thACM Conference on Computer and Communication Security,
M. Bern R. Dahab L. B. Oliveira, H. C. Wong and A. A. F. Loureiro. Secleach -a random key distribution solution for securing clustered sensor networks. In Fifth 36IEEE International Symposium on Network Computing and Applications,
V. Reddy R. Srinath and R. Srinivasan. Ac: Cluster based secure routing protocol for wsn. In Third International Conference on Networking and Services,Washington, DC, USA, 2007.
M. A. Vilaa H. C. Wong M. Bern R. Dahab L. B. Oliveira, A. Ferreira and A. A. F. Loureiro. Secleach-on the security of clustered sensor networks, December 2007.
G. Hu D. Wu and G. Ni. Research and improve on secure routing protocols in wireless sensor networks. In 4th IEEE International Conference on Circuits and Systems for Communications (ICCSC 2008).
Wang K. Zhang and C. Wang. A secure routing protocol for cluster-based wireless sensor networks using group key management. In 4th IEEE International conference on Wireless Communications, Networking and Mobile Computin
Bibliografie
J.F. Kurose & K.W. Ross, Computer Networking: A Top-Down Approach, 4th Edition, Addison-Wesley (2007).
A.S. Tanenbaum, Retele de calculatoare, Ed. Biblos (2003).
S. Ratnasamy and B. Karp. GHT: A geographic hash table for data-centric storage. In Proceedings of the First ACM International Workshop on Wireless Sensor Networks and Applications (WSNA), 2002.
R.A.Roseline and Dr.P.Sumathi, Energy Efficient Routing Protocol and Algorithms for Wireless Sensor Networks-A Survey. Global Journal of Computer Science and Technology, vol.11, December 2011.
Heinzelman W, Chandrakasan A, Balakrishnan H. Energy Efficient Communication Protocol for Wireless Microsensor Networks. In Proceedings of the 33rd Hawaii International Conference on System Sciences. Maui: IEEE Computer Society, 2000, Vol.2: 3005-3014.
Estrin D, Govindan R, Heidemann J, Kumar S. Next century challenges: Scalable coordinate in sensor network. In Proceedings of the 5th ACM/IEEE International Conference on Mobile Computing and Networking. Seattle: IEEE Computer Society, 1999, 263~270.
Qian Liao, Hao Zhu, An Energy Balanced Clustering Algorithm Based on LEACH Protocol , School of Information Engineering, Zhengzhou Univesity, Zhengzhou, China
S.Zhu, S.Setia, S.Jajodia, LEAP:efcient security mechanisms for large scale distributed sensor networks,10thACM Conference on Computer and Communication Security,
M. Bern R. Dahab L. B. Oliveira, H. C. Wong and A. A. F. Loureiro. Secleach -a random key distribution solution for securing clustered sensor networks. In Fifth 36IEEE International Symposium on Network Computing and Applications,
V. Reddy R. Srinath and R. Srinivasan. Ac: Cluster based secure routing protocol for wsn. In Third International Conference on Networking and Services,Washington, DC, USA, 2007.
M. A. Vilaa H. C. Wong M. Bern R. Dahab L. B. Oliveira, A. Ferreira and A. A. F. Loureiro. Secleach-on the security of clustered sensor networks, December 2007.
G. Hu D. Wu and G. Ni. Research and improve on secure routing protocols in wireless sensor networks. In 4th IEEE International Conference on Circuits and Systems for Communications (ICCSC 2008).
Wang K. Zhang and C. Wang. A secure routing protocol for cluster-based wireless sensor networks using group key management. In 4th IEEE International conference on Wireless Communications, Networking and Mobile Computin
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Implementarea Protocolului de Rutare Leach Pentru Retele de Senzori (ID: 149864)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
