170 likes | 514 Views
UNIVERSITATEA “Transilvania” din Braşov. Aplicaţii Multicast în Automatică. Facultatea de Inginerie Electric ă şi Ştiinţa Calculatoarelor Specializarea: Automatic ă şi Informatic ă Aplicat ă. Student: Laurian – Mugurel LAMBĂ Îndrumător: Şef lucr. dr. ing. Robert DEMETER.
E N D
UNIVERSITATEA “Transilvania” din Braşov Aplicaţii Multicast în Automatică Facultatea de Inginerie Electrică şi Ştiinţa Calculatoarelor Specializarea: Automatică şi Informatică Aplicată Student: Laurian – Mugurel LAMBĂ Îndrumător: Şef lucr. dr. ing. Robert DEMETER
Introducere • Prezentarea de faţă are în vedere descrierea metodei de transmitere a informaţiilor folosind metoda multicast şi aplicabilitatea ei în domeniul automaticii. • Noţiunea de multicast nu este ceva nou, însă implementarea acestei tehnologii abia începe să prindă contur. • Când avem nevoie să transmitem o cantitate mare de informaţii, multicast este cea mai bună soluţie. Deşi, se foloseşte mai mult pentru transmiterea de conţinut multimedia (fluxuri de date audio-video), transmiterea informaţiilor prin metoda multicast se poate folosi cu succes şi în domenii precum automatica, servicii de meteorologie, piața bursieră,etc.
Introducere • În inginerie, ne confruntăm des cu necesitatea de a livra date, preluate de la automate sau alte dispozitive, către centre specializate în prelucrarea acestora, sau către clienţi ce au nevoie de aceste informaţii. • Folosind multicast pentru realizarea acestor necesităţi, pe lângă faptul că vom putea transmite aceste date selectiv, adică numai acelor receptori care vor le primească, se va evita şi congestionarea reţelei dacă datele sunt foarte mari din punct de vedere cantitativ.
Distributia Multipunct • Trimiterea datelor la mai mulţi utilizatori • Servicii de acest gen sunt: • - Unicasting – transmiterea datelor pe canale separate pentru fiecare utilizator (legături de tip unu-la-unu) – exemplu: http, ftp, smtp. • - Broadcasting – se transmit aceleaşi date la un grup specific de utilizatori (chiar dacă aceştia vor sau nu să primească datele) – exemplu: televiziunea prin cablu. • - Anycasting – setarea unei conexiuni de comunicare la cea mai apropiată sursa, sau cea mai potrivită. • - Multicasting – procesul de transmitere şi recepţionare a datelor utilizând canalele distribuite.
Distributia Multipunct Distribuţia datelor folosind Multicasting
Rutarea Datelor Multicast • Există două metode cheie ( algoritmi de rutare) pe care routerele le folosesc pentru a determina unde să trimită pachetele: • - Distance Vector Routing • - Link State Routing • Pentru multicast sunt definite mai multe protocoale de rutare a datelor, însă cele mai des folosite, având în vedere că majoritatea reţelelor au la baza IPv4 sunt: • - IGMP (Internet Group Management Protocol) • - DVMRP (Distance Vector Multicast Routing Protocol)
Adresarea in Multicast • Datagramele IP Multicast suntcaracterizare de adresele IP de clasa D:
Adresarea in Multicast • TTL (Time to Live) – câmp din header-ul IP cu dublă semnificaţie: • - controlează timpul de viaţă al datagramelor • - are rolul de prag Grupurile Multicast – sunt definite de adresele Multicast la care sunt trimise datele
Adresarea in Multicast Adresarea grupurilor Multicast
Programarea Multicast - Aplicatie • La baza programării folosind tehnologia Multicast se află Windows Sockets şi protocolul UDP (User Datagram Protocol). • Există două funcţii de bază pentru programarea cu multicast: getsockopt( ) şi setsockopt( ). • Aceste funcţii primesc ca parametri structuri ce definesc adresa multicast a grupului, adresa interfeţei pe care se primesc datele multicast şi parametri ce specifică dacă un client vrea să se aboneze sau vrea să părăsească grupul multicast - IP_ADD_MEMBERSHIP respectiv IP_DROP_MEMBERSHIP.
Programarea Multicast - Aplicatie • Alte două funcţii importante sunt cele pentru trimiterea şi recepţionarea datagramelor : sendto( ) //trimitere datagrame recvfrom( ); //recepţionare datagrame • Ambele funcţii primesc ca parametrii: bufferul de tip string în care se stochează datagramele ce trebuie trimise, mărimea acestui buffer şi adresa de destinaţie.
Structurarea Pachetelor de Date • Datele care ce sunt trimise folosind aplicaţia acestei lucrări reprezintă valori sinus calculate pentru o amplitudine dată. for (i=0;i<50;i++) { sinus_buff[i]=sin((float)i/3.1415)*ampl; } • Aceste date au fost structurate in câmpuri clar definite folosind limbajul XML. <Date> <Amplitudine> 32.979877 <sinus1> 10.321736 </sinus1> <sinus2> 19.606400 </sinus2> <sinus3> 26.921123 </sinus3> . . . </Amplitudine> </Date>
Structurarea Pachetelor de Date • Modul în care am aplicat structurarea datagramelor este următorul: • - valorile sinus generate pentru o anumită amplitudine sunt citite şi stocate într-un fişier, de tip XML, fiecărui câmp, definit de fişierul respectiv, fiindu-i atribuită o valoare din cele citite după cum s-a putut observa anterior. • - datele astfel structurate sunt trimise printr-un mesaj multicast la client care le citeşte, le stochează la rândul lui pe disc, şi decodează apoi structura XML, citind valorile care îl interesează și afişându-le totodată pe ecran.
Structurarea Pachetelor de Date • Pentru manipularea fişierelor de tip XML în C/C++ a fost nevoie de folosirea unui parser XML (CMarkup) pus la dispoziţie de firma “FirstObjective Software”. • Urmărind toţi aceşti paşi de transmitere şi recepţionare a datelor, se poate spune multicast îşi poate găsi uşor aplicabilitate într-un laborator în care se lucrează mai ales cu date generate în timp real, o aplicaţie multicast fiind capabilă să preia aceste date şi să le transmită către receptori cu o întârziere minimă. • Una dintre caracteristicile tehnologiei multicast este că ne interesează datagramele doar în momentul în care acestea au fost primite. O dată ce un nou flux de date a fost trimis, anteriorul nu mai prezintă importanţă prea mare.
Concluzii • Multicast este astfel o tehnologie foarte folositoare în sistemele de comunicaţie a datelor. Celmai important aspect esteacela cădatelesunttrimise o singură datăpentru toți clienții și astfel se folosesc mai eficient resursele rețelei. • Un alt aspect este acela că datele sunt ușor de manevrat, chiar și în cantități mari. • Unul dintre dezavantaje este acela ca metoda multicast folosește protocolul UDP care prin construcția sa nu garanteaza livrarea datelor către clienți. • Dezavantajul cel mai mare este că deocamdată nu toate dispozitivele de reţea permit traficul multicast, lucru pentru care aceasta tehnologie nu are o dezvoltare foarte mare în rețelele de comunicație a datelor.