User Tools

Site Tools


proiecte:wireless-mac

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
proiecte:wireless-mac [2014/01/31 00:17]
adrian.ciobanu [Wireless MAC]
proiecte:wireless-mac [2014/02/07 10:47] (current)
codrin.ciubotariu [Rulare si rezultate]
Line 18: Line 18:
  
  
-===== Implementare si simulare teoretica =====+===== Implementare si simulare teoretica [1]=====
  
-Base-station-ului (nodul cu indicele 0) va da un mesaj initial de Broadcast. Toti senzorii retin numarul de hop-uri până la base-station si next-hop-ul pana la base-station. Pentru a minimiza sansele ca mesajul de broadcast să fie pierdut, fiecare nod care primeste un mesaj de broadcast (prima oară) va transmite in urmatoarele doua frame-uri cate un broadcast.+Base-station-ului (nodul cu indicele 0) va da un mesaj initial de Broadcast. Toti senzorii retin numarul de hop-uri pana la base-station si next-hop-ul pana la base-station. Pentru a minimiza sansele ca mesajul de broadcast să fie pierdut, fiecare nod care primeste un mesaj de broadcast (prima oară) va transmite in urmatoarele doua frame-uri cate un broadcast. **Stabilirea "topologiei" de rutare**, pentru fiecare nod se face in aceasta faza initiala.
  
-Orice pachet este directionat inspre base-station.+In interiorul retelei, comunicarea se va face din aproape in aproape, dar va avea ca punct final nodul 0, **orice pachet este directionat inspre base-station.**
          
-Pentru a transmite un pachet, un nod va trimite mai intai un scurt pachet RTS (care contine destinatia hop-ului curent). Trimiterea acestui pachet se face cu contention period, nodul va astepta un interval random marginit de un sfert din perioada activa (deci între 0 si ACTIVE_PERIOD/4) inainte de a trimite, si se abtine daca a fost transmis intre timp alt pachet RTS.+Pentru a transmite un pachet, un nod va trimite mai intai un scurt pachet **RTS** [2] (care contine destinatia hop-ului curent). Trimiterea acestui pachet se face cu contention period, nodul va astepta un interval marginit de un sfert din perioada activa (deci între 0 si ACTIVE_PERIOD/4) inainte de a trimite, si se abtine daca a fost transmis intre timp alt pachet RTS. Nodul care este adresat ca next hop va raspunde cu un mesaj **CTS**. Pachetul poate fi transmis in acea perioada activa imediat dupa receptionarea CTS.
  
-Nodul care este adresat ca next hop va raspunde cu un mesaj CTS. 
  
-Pachetul poate fi transmis in acea perioada activa imediat dupa receptionarea CTS.+===== Rulare si rezultate =====
  
 +Pentru fiecare nod, **un ciclu dureaza 20 de secunde**. In acest timp, nodul va face receptie si trimitere, dupa caz, iar in momentul in care si-a incheiat activitatea intra in sleep pana la termianrea cuantei de 20 de secunde, cand "se trezeste" pentru a incepe un nou ciclu. La transmiterea mesajului, contention period este de 5 secunde.
  
-===== Rulare si rezultate ===== 
  
-Pentru fiecare nod, un ciclu dureaza 20 de secunde. In acest timp, nodul va face receptie si trimitere, dupa caz, iar in momentul in care si-a incheiat activitatea intra in sleep pana la termianrea cuantei de 20 de secunde, cand "se trezeste" pentru a incepe un nou ciclu. La transmiterea mesajului, contention period este de 5 secunde.+== Testul 1 == 
 +Topologia contine doua noduri
  
 +Node          Time   Event
 +------------------------------------------------------------------------------
 +    0:00:00.000762  ----> 00.00.00.00.7A.04.0D.FF.68.AC  0.319 ms
 +    0:00:00.000796  <==== 00.00.00.00.7A.04.0D.FF.68.AC  0.319 ms
  
 +
 +== Testul 2 ==
 +Topologia contine sase noduri
 +
 +Node          Time   Event
 +------------------------------------------------------------------------------
 +    0:00:00.000882  ----> 00.00.00.00.7A.07.0D.FF.00.00.00.6A.D9  0.416 ms
 +    0:00:00.000916  <==== 00.00.00.00.7A.07.0D.FF.00.00.00.6A.D9  0.416 ms
 +    0:00:00.000916  <==== 00.00.00.00.7A.07.0D.FF.00.00.00.6A.D9  0.416 ms
 +    0:00:00.102397  ----> 00.00.00.00.7A.07.0D.FF.01.00.01.4D.C8  0.416 ms
 +    0:00:00.202771  ----> 00.00.00.00.7A.07.0D.FF.02.00.01.14.98  0.416 ms
 +    0:00:00.203306  ----> 00.00.00.00.7A.07.0D.FF.01.00.01.4D.C8  0.416 ms
 +    0:00:00.404054  ----> 00.00.00.00.7A.07.0D.FF.02.00.01.14.98  0.416 ms
 +    0:00:00.102432  <==== 00.00.00.00.7A.07.0D.FF.01.00.01.4D.C8  0.416 ms
 +    0:00:00.102432  <==== 00.00.00.00.7A.07.0D.FF.01.00.01.4D.C8  0.416 ms
 +    0:00:00.404672  ----> 00.00.00.00.7A.07.0D.FF.03.00.02.13.CB  0.416 ms
 +    0:00:00.505044  ----> 00.00.00.00.7A.07.0D.FF.04.00.02.96.5B  0.416 ms
 +    0:00:00.706335  ----> 00.00.00.00.7A.07.0D.FF.03.00.02.13.CB  0.416 ms
 +    0:00:00.907079  ----> 00.00.00.00.7A.07.0D.FF.04.00.02.96.5B  0.416 ms
 +    0:00:00.505080  <==== 00.00.00.00.7A.07.0D.FF.04.00.02.96.5B  0.416 ms
 +    0:00:01.008073  ----> 00.00.00.00.7A.07.0D.FF.05.00.03.B1.4A  0.416 ms
 +    0:00:01.510491  ----> 00.00.00.00.7A.07.0D.FF.05.00.03.B1.4A  0.416 ms
 +
 +In continuare vom descrie un frame de mai sus. Vom lua ca referinta frame-ul nr 4 (00.00.00.00.7A.07.0D.FF.01.00.01.4D.C8):
 +  * 7A.07 (2 octeti) - lungimea frame-ului;
 +  * 0D (1 octet) - Magic payload, numarul 13;
 +  * FF (1 octet) - Adresa destinatie (MAC) a frame-ului; FF reprezinta adresa broadcast;
 +  * 01 (1 octet) - Adresa sursa (MAC) a frame-ului;
 +  * 00 (1 octet) - tipul pachetului encapsulat. Acesta este un pachet numit "DISCOVERY" de catre noi, si are valoarea 0;
 +  * 01 (1 octet) - Numarul de hopuri pe care il are nodul sursa pana la nodul base station; Informatie specifica pachetului DISCOVERY
 +  * 4D.C8 (2 octeti) - CRC;
 +
 +===== Informatii aditionale =====
 +== Anexa 1 - structuri de date ==
 +* tipurile de mesaje si structurile lor
 +<file>
 +typedef enum {
 +DISCOVERY = 0,
 +RTS,
 +CTS,
 +NORMAL
 +}packet_type;
 +
 +typedef struct {
 +uint8_t hop_nr; /* number of hops from the sender
 +of the packet to node 0 */
 +}discovery_packet;
 +
 +typedef struct {
 +uint8_t request; // must be 1 - request;
 +}rts_packet;
 +
 +typedef struct {
 +uint8_t response; // 1 - ack; 0 - nack
 +}cts_packet;
 +
 +typedef struct {
 +uint8_t val;
 +}normal_packet;
 +</file>
 +
 +* componenta unui mesaj
 +<file>
 +typedef struct {
 +uint8_t destination_node; /* receiver of the packet */
 +uint8_t source_node; /* transmitter of the packet */
 +packet_type type; /* type of the next packet */
 +//uint8_t data_size; /* nr of bytes for data */
 +void * data; /* pointer to data_size bytes of data */
 +}Frame_t;
 +</file>
 +
 +* tabela de rutare pentru fiecare nod (directia catre nodul 0) 
 +<file>
 +typedef struct {
 +int next_hop;
 +int hop_count;
 +}route_table;
 +</file>
 ===== Bibliografie ===== ===== Bibliografie =====
  
-* http://elf.cs.pub.ro/wsn/wiki/lab3 +[1] http://elf.cs.pub.ro/wsn/wiki/lab3 
-* http://en.wikipedia.org/wiki/IEEE_802.11_RTS/CTS+[2] http://en.wikipedia.org/wiki/IEEE_802.11_RTS/CTS 
proiecte/wireless-mac.1391120222.txt.gz · Last modified: 2014/01/31 00:17 by adrian.ciobanu