0% au considerat acest document util (0 voturi)
22 vizualizări27 pagini

0 Lab 05

Documentul prezintă noțiuni teoretice și exemple practice despre CRC-32 și adresarea IP, inclusiv clase de adrese, subnetting și calculul adreselor subrețelelor. De asemenea, conține referințe la implementări Java și Python ale acestor concepte și la simularea rețelelor cu Riverbed Modeler.

Încărcat de

Sorin Zubere
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
22 vizualizări27 pagini

0 Lab 05

Documentul prezintă noțiuni teoretice și exemple practice despre CRC-32 și adresarea IP, inclusiv clase de adrese, subnetting și calculul adreselor subrețelelor. De asemenea, conține referințe la implementări Java și Python ale acestor concepte și la simularea rețelelor cu Riverbed Modeler.

Încărcat de

Sorin Zubere
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

Retele de calculatoare – Informatica anul 3 (2019-2020)

Note de Laborator Specializare: Informatica anul 3


Retele de calculatoare Contact:
retelecdsd@[Link]
[Link]

Motto: “Gandeste inainte sa vorbesti. Citeste inainte sa gandesti.”


Frances Ann Lebowitz
Laborator 5
1. Obiective:
 PDU - Verificarea integritatii folosind CRC-32 - Aplicatii Java / Python pentru calculul sumei
de verificare.
 Adresarea IP: Subnetting - calculul adreselor IP ale subretelelor, domeniilor de adrese IP
alocate hosturilor, adreselor IP de broadcast ale subretelelor; Aplicatii Java / Python.
 Studiu de caz: Planificarea unei retele (utilizatori/servicii/hosturi) - Aplicatie Riverbed
Modeler Academic Edition – mediu de simulare a retelelor de calculatoare (Varianta:
OMNeT++ Network Simulation Framework [Link] )
 Aplicatii de retea in Pyton

2. Consideratii teoretice (Partea practica – pag.9; Tema – pag.21)


2.1. PDU - Verificarea integritatii folosind CRC-32
 PDU – Protocol Data Unit
 CRC = Cyclic Redundance Code – contine restul sumei de verificare ciclica a redundantei
(suma ciclica de control) calculat polinomial prin CRC-32. Secventa CRC (FCS – Frame Check
Sequence) este datã de restul împãrtirii acestui polinom la un polinom generator primitiv
standard.
 Standardul IEEE 802 foloseste urmãtorul polinom generator primitiv:
CRC32 = X32 + X26 + X25 + X22 + X16 + X12 + X11 + X10 + X8 + X7 + X5 + X4 + X2 + X + 1.
Observatie (recapitulare!):
Fie f(x) = fnxn + fn−1 xn−1 + ....... + f1x + f0, cu fn si f0 nenuli. Considerand coeficientii
polinomului in Z2 (pot fi doar 0 sau 1!), un polinom f(x) este primitiv daca este:
a. ireductibil: nu exista nici un polinom de grad nenul si mai mic de n care sa fie divizor al lui
f(x)
b. daca α este o radacina a lui f(x) (f(α) = 0) atunci cel mai mic intreg p pentru care αi = αi+p
este p = 2n − 1 = 2 grad(f) − 1.
Notatii: SLE = Statia de Lucru Emitatoare; SLD = Statia de Lucru Destinatie
SLD primeste frame-ul, face propriul calcul CRC-32 si compara valoarea calculata cu cea aflata in
campul CRC din pachet (valoare calculata la emisie de SLE), concluzionand daca frame-ul a sosit
intact. In caz de alterare, informatia este distrusa bit cu bit, cerandu-se retransmiterea la nivelul
protocoalelor de pe nivelurile OSI superioare.

2.2. Exemplu ([Link]


Message (ASCII) CRC-32 (Hexa)
Computer Networks 0xB07330AE
Computer networks 0x490552F8

1
Retele de calculatoare – Informatica anul 3 (2019-2020)
2.3. CRC-32 (2_CRC_Error [Link]; 3_CRC_exercises.pdf)
Valorile CRC-32 reprezinta o modalitate foarte eficienta de verificare a integritatii datelor.
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]

Exemplu (Anexa 3 – pag.33): Verificarea integritatii unui fisier. Pentru a detecta daca un fisier a fost
corupt in cadrul procesului de transmisie, emitatorul calculeaza o semnatura digitala pe care o trimite
impreuna cu fisierul. Destinatarul calculeaza si el semnatura fisierului, si daca aceasta se potriveste cu
valoarea calculata de emitator, atunci fisierul nu a suferit modificari. CRC inseamna Cyclic
Redundancy Check iar 32 indica faptul ca suma de verificare este pe 32 de biti. Probabilitatea ca doua
fisiere sa aiba aceiasi suma de verificare este de 1 la 232 = 4.294967E+09. Din acest motiv CRC-32
poate fi folosit si pentru a identifica fisiere duplicat. CRC-ul se bazeaza pe operatia de impartire intr-un
inel comutativ, numit inelul polinoamelor peste intregii modulo 2, adica polioamele care au coeficientii
doar de un bit. Orice sir de biti poate fi vazut ca fiind coeficientii unui astfel de polinom , iar pentru a
afla codul CRC asociat se imparte polinomul cu un alt polinom, iar coeficentii polinomului rest sunt
chiar bitii ce reprezinta codul CRC.
Exercitiu (recapitulare):

Algoritm:
1. Se genereaza tabela CRC-32 folosind un polinom specific.
2. Se foloseste o functie de calcul CRC care executa un XOR intre un octet din datele care trebuie
verificate si valoarea curenta CRC, obtinandu-se astfel o noua valoare CRC.
3. Algoritmul CRC citeste primul octet din datele ce urmeaza sa fie verificate si apeleaza functia CRC
care intoarce valoarea CRC pentru octetul respectiv. Se apeleaza apoi functia CRC cu urmatorul octet
si valoarea CRC calculata anterior. Dupa al doilea apel, valoarea CRC reprezinta suma de verificare
pentru primii doi octeti. Se apeleaza functia CRC pana cand toti octetii din fisier au fost procesati.
Ultima valoare pentru CRC este suma de verificare pentru datele initiale.

2
Retele de calculatoare – Informatica anul 3 (2019-2020)
Metoda “hardware” de calcul pentru CRC foloseste operatii pe biti. Ca o alternativa la calculul
sumei de verificare bit cu bit, se poate utiliza o tabela cu valori precalculate care permite efectuarea a 8
operatii pe biti simultan. Pentru CRC-32, tabela este constituita din 256 de elemente de tip Double
Word (4 octeti). Un DWORD poate fi reprezentat ca un intreg pe 32 de biti cu sau fara semn (in
implementarea Java se poate folosi tipul int).
 Un anumit CRC este definit prin polinomul folosit pentru calcularea lui. Pentru a calcula un
CRC pe n biti este necesar un polinom de gradul n de forma xn + ... + 1. Acesta este reprezentat
pe n+1 biti, dar cum termenul xn este implicit se iau in considerare doar ultimii n biti. De obicei
coeficientii polinomului se reprezinta hexazecimal, astfel pentru standardul CRC-16,
x16+x15+x2+1, va fi reprezentat in hexazecimal ca 0x8005.
 Cel mai intalnit CRC este CRC-32, fiind folosit printre altele de Ethernet, FDDI (Fiber
Distributed Data Interface), PKZIP, WinZip si PNG (Portable Network Graphics). Polinomul
lui poate fi scris ca fiind 0x04C11DB7. Mai jos este lista cu cele mai folosite CRC-uri si
polinomele lor asociate:

 CRC-ul este util in detectarea erorilor, dar nu si pentru verificarea integritatii datelor deoarece
cunoscandu-se polinomul folosit datele pot fi intentionat modifcate astfel incat CRC-ul sa
ramana neschimbat !!!!!!!!!!!. Pentru integritate: MD5...MD6; SHA
CRC-32 - Implementare
1. XOR intre primul octet de date si octetul mai putin semnificativ al valorii CRC pentru a obtine un
index.
2. Deplasare la dreapta fara semn cu 8 biti a valorii CRC.
3. XOR intre valoarea CRC si valoarea TabelaCRC[index]
4. Se repeta pasii de la 1 la 3 pentru toti octetii
2.4. Clase de adrese IPv4
2.4.1. Adresa IP este exprimata pe 32 biţi (în versiunea IPv4) / 128 biti in versiunea IpV6 si conţine
suficiente informaţii pentru a identifica în mod unic o reţea sau o gazdă aparţinând unei reţele. Toate
dispozitivele si protocoalele de pe nivelul retea - modelul OSI. / nivelul Internet – modelul TCP/IP
folosesc adrese IP. Formatul adresei corespunde notatiei cu punct zecimal. Aceasta notatie imparte o
adresa IP in 4 campuri de cate 8 biti fiecare, si specifica valoarea fiecarui camp ca un numar zecimal.
Campurile sunt separate prin puncte. Formate: in zecimal (cu punct zecimal); binar.

Fig 4.1 : Conversia unei adrese IP in formatul zecimal cu punct


3
Retele de calculatoare – Informatica anul 3 (2019-2020)
Notatie cu punct Notatie Binara
[Link] 11011001 10010001 00101011 00001100
[Link] 11000000 10101000 00000000 00000001
[Link] 00001010 00000010 00000001 01111011
Fig 4.2 : Exemple de adrese IP
 adresă IP conţine un câmp care identifică reţeaua sau subreţeaua la care este ataşată gazda
identificată de către respectiva adresă şi un câmp care identifică în mod unic fiecare gazdă din
reţea. Numărul de biţi folosiţi pentru identificarea reţelei (câmpul NetId) şi numărul de biţi
folosiţi pentru identificarea host-ului (câmpul HostId) depind de clasa adresei (pentru classfull),
si nu depind de clasa, pentru classless.
 Există cinci clase de adrese: A, B, C, D şi E, dintre care numai primele trei sunt disponibile
pentru adresarea reţelelor standard. Adresele de clasă D sunt rezervate pentru adresarea la nivel
de grupuri (tip multicast) în timp ce adresele de clasă E sunt rezervate pentru scopuri
experimentale (nefolosite pentru a adresa gazde sau grupuri multicast).

Următorul tabel rezumă caracteristicile fiecărei clase de adrese:

NetId HostId Nr. de host-uri


Clasa Primul Octet Intervalul de adrese Nr. de reţele
(octeţi) (octeţi) /reţea
128
A 0xxxxxxx [Link]-[Link] 1 3 16.777.214
(2 rezervate)
B 10xxxxxx [Link]-[Link] 2 2 16.384 65.534
C 110xxxxx [Link]-[Link] 3 1 2.097.152 254
D 1110xxxx [Link]-[Link] - - - -
E 1111xxxx [Link]-[Link] - - - -
Fig 4.3 Caracteristicile claselor de adrese IP v4

2.4.2. Adrese IP speciale

Orice adresã al cãrei prim octet este 127 este o adresã de buclã, folositã la diagnosticare si testare. Un
mesaj transmis unei adrese IP al cãrei prim octet are valoarea 127 este returnat expeditorului. 255 este
un octet ce indicã o difuzare în reteaua localã (broadcast) – expedierea multiplã a unui mesaj. Primul
octet nu poate avea o valoare mai mare decât 223. Celelalte adrese sunt rezervate pentru anunturi în
retele si pentru scopuri [Link] octet al unui identificator de gazdã nu poate fi 0 sau 255.
Adrese private: [Link]–[Link] [Link] /8
[Link]–[Link] [Link] /12
[Link]–[Link] [Link] /16
Obs: [Link] to [Link]* (65,536 possible IP addresses) [Link] /16
* The range, 169.254.x.x, is a special IP address range that is reserved for devices to self-assign an
address. You generally do not manually assign addresses in this range.
2.4.3. Masca de subretea
Este o machetã de biti ce defineste portiunea din adresa IP ce reprezintã NetID. În plus, masca de
subretea permite subalocarea adresei de retea (subnetting). Subalocarea înseamnã împãrtirea unei
adrese IP în sensul folosirii acesteia în mai multe retele mai mici. Formatul mãstii de subretea
corespunde unei zone continue de 1 (NetID) si unei zone continue de 0 (HostID), cu reprezentarea in
zecimal, pe campuri de 8 biti. Exemplu: [Link] scrisa si /19. Posibile valori ale unui octet al
mastii de subretea:
4
Retele de calculatoare – Informatica anul 3 (2019-2020)
Binar Zecimal
0000.0000 0
1000.0000 128
1100.0000 192
1110.0000 224
1111.0000 240
1111.1000 248
1111.1100 252
1111.1110 254
1111.1111 255

Măştile de reţea predefinite, corespunzătoare claselor de adrese A,B si C sunt prezentate în


tabelul următor.

Clasă A Clasă B Clasă C


[Link] /8 [Link] /16 [Link] /24

[Link]. Folosirea mãstii de subretea


Plecând de la o adresã IP ce apartine uneia din clasele A, B si C, exprimatã binar, se realizeazã un “si”
logic la nivel de bit cu masca de subretea folositã, exprimatã tot binar. Alegerea mãstii de
subretea se face din considerentul obtinerii numarului dorit de subretele, pentru fiecare din
acestea permitându-se un numãr de hosturi cerut de datele de proiectare.

Exemplu (AND pentru bitii de pe aceeasi pozitie):

Adr. Host:[Link] in format binar 11001101 01100101 00110111 01011011


mascã: [Link] in format binar 11111111 11111111 11111111 11100000

[Link]  11001101 01100101 00110111 01000000


Rezultă că adresa [Link] aparţine subreţelei [Link]
5
Retele de calculatoare – Informatica anul 3 (2019-2020)
Pentru cei trei biti „imprumutati” (nrbi=3) din partea de HOST ID putem construi 23=8 subretele, cu
urmatoarele valori posibile: 000–111.

Cele 8 subretele desemnate de masca de subretea [Link] vor fi asociate urmatoarelor


domenii de valori ale celui de-al 4-lea octet din adresa IP:

Subretea 0 000_00001 – 000_11110 1 – 30


Subretea 1 001_00001 – 001_11110 33 – 62 AND 0 1
Subretea 2 010_00001 – 010_11110 65 – 94 0 0 0
Subretea 3 001_00001 – 001_11110 97 – 156 1 0 1
Subretea 4 100_00001 – 100_11110 129 – 158
Subretea 5 101_00001 – 101_11110 161 – 190
Subretea 6 110_00001 – 110_11110 193 – 222
Subretea 7 111_00001 – 111_11110 225 – 254

Concluzie: Folosind formatul 224 pentru masca de subretea, practic, împrumutãm 3 biti din câmpul
hostid în scopul realizãrii subalocãrii adresei IP (de clasã C) pentru un numãr de 8 subretele cerute.
Pentru fiecare din subretelele prezentate, avem un numar de 25-2 = 30 de adrese IP pentru hosturi.
IP ANDbit SM => Network Address; IP Orbit Not(SM) => Broadcast Address

[Link]. Evaluarea “gradului” de utilizare a unei adrese de clasã C


Adresã clasa C: Netid (24 biti) + Hostid (8 biti) = NT hosturi.
Mascã de subretea /26  NS (Numãr subretele disponibile) = 22 = 4 si NH (Numãr hosturi pe fiecare
subretea) = 26-2 = 62.
NS  NH
Grad de utilizare =
NT
[Link]. Metode Java pentru lucrul cu clase de adrese (exemple)
[Link].1. Metoda care intoarce clasa unei adrese IP
public static char getClass(InetAddress ia) {
byte[] address = [Link]( );

int firstByte = address[0];


if ((firstByte & 0x80) == 0) return 'A';
else if ((firstByte & 0xC0) == 0x80) return 'B';
else if ((firstByte & 0xE0) == 0xC0) return 'C';
else if ((firstByte & 0xF0) == 0xE0) return 'D';
else if ((firstByte & 0xF8) == 0xF0) return 'E';
else return 'F';
}
[Link].2. Metoda pentru conversia unei adrese IP salvata sub forma unui tablou de bytes in
format cu punct zecimal.

int unsignedByte = signedByte < 0 ? signedByte + 256 :signedByte;

[Link]. Operatori pe biti in limbajul Java


&(AND) 0 1 |(OR) 0 1 ^(XOR) 0 1
0 1
0 0 0 0 0 1 0 0 1 ~(NOT)
1 0
1 0 1 1 1 1 1 1 0

6
Retele de calculatoare – Informatica anul 3 (2019-2020)
Operatorii de deplasare ( << , >> si >>>) se definesc astfel:
 a << b = a * 2b
 a >> b = a / 2b.
 a >>> b este egala cu valoarea lui a deplasata la dreapta cu b pozitii prin completarea la stanga
cu zerouri
2.5. Riverbed Modeler Academic Edition
Ovservatie: (Lab_1 + Lab_2 + Lab_3 + Lab_4 si toate celelalte materiale, prezente la
[Link] …[Link])
Riverbed Modeler Academic Edition (versiune actuala a Opnet-ului - Optimized Network
Application and Network Performance) – mediu de simulare a retelelor de calculatoare - furnizează
software de management pentru aplicaţii şi reţele, care oferă soluţii pentru:
o Planificarea capacităţii reţelelor,
o Modelare şi simulare pentru reţele şi aplicaţii
o Managementul configurării reţelelor
o Managementul performanţelor aplicaţiilor
Varianta “programare” C++: OMNeT++ Network Simulation Framework, [Link]

Riverbed oferă o versiune academică (Modeler Academic Edition) - include modele standard pentru
protocoale şi echipamentele disponibile în tehnologia IT (disponibile, dupa instalare, în subdirectoare).
Etapele de lucru avute în vedere:

Etapele de lucru pentru Modeler Academic Edition pentru simularea şi analiza unei reţele
Obs: O statistica este o caracteristica numerica a unui esantion (Anexa 3, Lab_03)
 Statistica este stiinta colectarii, clasificarii, prezentarii, interpretarii datelor numerice si a folosirii
acestora pentru a formula concluzii si a lua decizii.
 Statistica descriptiva (Descriptive Statistics) se ocupa cu colectarea, clasificarea si prezentarea
datelor numerice.
 Statistica inferentiala (Inferential Statistics) se ocupa cu interpretarea datelor oferite de statistica
descriptiva si cu folosirea acestora pentru a formula concluzii si lua decizii.
Configure/Run DES Dialog Box (Simple) The Configure/Run DES dialog box lets you
configure and run a discrete event simulation for the current scenario. The simple version of the
dialog box, (shown in the following figure), which appears when the DES configuration mode is
set to “simple”, presents a reduced set of controls to simplify configuration and execution of
discrete event simulations. Only single simulation runs are supported.

7
Retele de calculatoare – Informatica anul 3 (2019-2020)

The simple Configure/Run DES dialog box has two pages of controls. These controls are
organized by type and can be selected by clicking the corresponding tab. The following table lists
the controls in this dialog box.

Element Description
Duration field—Sets the duration of the simulation. Specify units with the pull-down
menu following this field. This value sets the “duration” simulation preference.
Basic controls
Values per statistic field—Sets the maximum number of values collected for each
statistic. This value sets the “num_collect_values” simulation preference.
Use this page to define the values of global simulation attributes.
Global
This page is similar to the Global Attributes page—Used to define the values of
Attributes
global simulation attributes for the simulation. seen in Detailed mode, except that you
page
cannot set multiple values for an attribute or automatically reset the default value.
Use this page to select Statistic reports and Service Level Agreement (SLA) reports
for the simulation. Reports are predefined sets of statistic probes.
Reports page
This page is identical to the Configure/Run DES Dialog Box (Detailed)—Report
Controls seen in Detailed mode.
Detailed… button—Switches temporarily to detailed mode and the detailed
Configure/Run DES dialog box, as described in Configure/Run DES Dialog Box
(Detailed). (This button does not change the des.configuration_mode preference.)
Run button—Saves the current settings, closes the dialog box, and runs the
Dialog box
simulation. Running a simulation from here opens the Simulation Execution Dialog
controls
Box.
Cancel button—Closes the dialog box without saving any changed settings.
Apply button—Saves the current settings and keeps the dialog box open.
Help button—Opens a help file for the dialog box.

8
Retele de calculatoare – Informatica anul 3 (2019-2020)
3. Partea practica (tema – pag.22 !!!!!)
RECAPITULARE: 2_CRC_Error [Link]; 3_CRC_exercises.pdf
3.1. Program Java ce permite calculul CRC-32 pentru un sir de caractere introdus de la tastatura
(se poate folosi fisierul 6_Lab_05_CRC_table.pdf). Challenge: Aplicatie Python

Anexa 4: The Programming Process !

Indicatii:

9
Retele de calculatoare – Informatica anul 3 (2019-2020)

10
Retele de calculatoare – Informatica anul 3 (2019-2020)

3.2. Program pentru calculul sumei de verificare pentru un fisier. Se utilizeaza clasa
[Link].CRC32; Challenge: Aplicatie Python
Indicatii:

11
Retele de calculatoare – Informatica anul 3 (2019-2020)
3.3. Realizati un program care sa ofere utilizatorului urmatoarale optiuni:
 salvarea unui text intr-un fisier impreuna cu suma de verificare CRC-32 corespunzatoare,
verificarea integritatii unui fisier pe baza valorii CRC-32. Challenge: Aplicatie Python
Anexa 4: The Programming Process!
Indicatii:

12
Retele de calculatoare – Informatica anul 3 (2019-2020)
3.4. Exercitii Subnetting (Subalocarea unei adrese IP)
3.4.1. O organizatie a primit adresa de retea [Link]/24 si are nevoie de sase subretele. Cea mai
mare dintre aceste subretele trebuie sa contina 25 de host-uri. Definiti masca de subretea
corespunzatoare si completati Tabelul de adrese IP (determinati adresele subretelelor, adresele
hosturilor, adresele de broadcast pentru toate subretelele obtinute) si Tabelul de adresare IP
(adresele interfetelor ruterelor (alocate descrescator, incepand cu ultima valoare!), adresele
gateway-urilor retelelor conectate la rutere, a (n+3)-a adresa a hostului corespunzatoare
apartenentei la reteaua n)

Tabelul de adrese IP:


Nr SR Adresa SR Interval adrese hosturi Adresa broadcast SR

Tabelul de adresare IP:


Retea 0 Retea 1 Retea 2 Retea 3 Retea 4 Retea 5
Router A
(interfata)
Router B
(interfata
Gateway
Adresa
hostului
(n+3), cu
n=nr. retea

13
Retele de calculatoare – Informatica anul 3 (2019-2020)
3.4.2. O organizatie a primit adresa de retea [Link]/18 si are nevoie de 12 subretele. Cea mai mare
dintre aceste subretele trebuie sa contina 102 host-uri. Definiti masca de subretea corespunzatoare
ramanerii in rezerva a unor subretele cu un numar cat mai mare de hosturi si determinati adresele
subretelelor precum si adresele gazdelor din subreteaua 2. Calculati adresele de broadcast pentru
fiecare din subretelele obtinute.

3.4.3. O organizatie a primit adresa de retea [Link]/16 si trebuie sa defineasca subretele care sa
suporte fiecare maxim 60 de gazde. Definiti masca de subretea corespunzatoare si determinati adresele
subretelelor precum si adresele gazdelor din subreteaua 3. Calculati adresele de broadcast pentru
fiecare subretea.

3.4.4. Se da adresa de retea [Link]/24. Cati biti trebuie imprumutati din campul hostid pentru a
permite definirea unor subretele care sa suporte minim 20 de gazde? Care este numarul maxim de
gazde care poate fi suportat de fiecare subretea? Care este numarul maxim de subretele care poate fi
definit? Determinati subretelele si exprimati adresele IP in format binar si in formatul cu punct
zecimal. Care este domeniul de adrese IP folosit de subreteaua 6? Care este adresa de broadcast pentru
subreteaua 6?

3.5. Realizati o aplicatie Java pentru subnetting. Adresa IP si masca de subretea sunt preluate de
la tastatura. Programul trebuie sa afiseze:

[Link] din care face parte adresa.


[Link] de biti pentru campul hostid, respectiv campul netid.
[Link] subretelei din care face parte adresa IP.
[Link] de subretea pentru clasa de adrese din care face parte adresa IP.
[Link] de subretele posibile in reteaua specificata.
[Link] de gazde pentru fiecare subretea in parte.
[Link] host-urilor pentru fiecare subretea in parte, de exemplu:
Subretea [Link] , Adrese Hosturi [Link] - [Link], Adresa Broadcast Subretea
[Link] de broadcast a retelei
[Link] de utilizare al adresei IP
[Link] trebuie sa salveze toate datele intr-un fisier.

Challenge: Aplicatie Python

Indicatii:
Aplicatie care testeaza validitatea unei adresa IP si afiseaza clasa din care face parte si adresa in format
binar.

14
Retele de calculatoare – Informatica anul 3 (2019-2020)

15
Retele de calculatoare – Informatica anul 3 (2019-2020)

3.6. Planificarea (ca etapa a proiectarii) unei retele cu un numar diferit de


utilizatori, hosturi, servicii. Se va parcurge integral materialul
Network_Design_Modeler.pdf (Indicatie: [Link] )

 Cursantii sunt incurajati sa foloseasca materialul de mai jos intr-un mod constructiv,
astfel incat sa evalueze caracteristicile legaturilor fizice si a dispozitivelor de retea folosite
(click dreapta, view link/node description), a modelelor de retea precum si elementele de
baza privind simularea sistemelor cu evenimente discrete analizate; rezultatele obtinute
grafic vor fi analizate si interpretate in contextul cerintelor prezentate in sectiunea Lab
Report.
Obiectiv: Parcurgerea etapelor de baza privind planificarea unei retele, tinand cont de utilizatori,
servicii, hosturi, localizarea hosturilor. Indicatie: Network_Design_Modeler.pdf

ATENTIE:
 Cursantii sunt incurajati sa foloseasca materialul de mai sus intr-un mod constructiv,
astfel incat sa evalueze caracteristicile legaturilor fizice si a dispozitivelor de retea folosite
(click dreapta, view link/node description), a modelelor de retea precum si elementele de
baza privind simularea sistemelor cu evenimente discrete analizate; rezultatele obtinute
grafic vor fi analizate si interpretate in contextul cerintelor prezentate in sectiunea Lab
Report.
Exemplu: 4_Intro_Modeler.pdf, pag.7

16
Retele de calculatoare – Informatica anul 3 (2019-2020)
 Se vor identifica meniurile si sub-meniurile de mai jos, in contextul utilizarii ulterioare a acestor
informatii.

17
Retele de calculatoare – Informatica anul 3 (2019-2020)

 Pe baza informatiilor privid adresarea IP pentru fiecare nod in parte, se va


completa Tabelul de adrese IP, conform modelului de la pag 14, punctul
3.4.1.

18
Retele de calculatoare – Informatica anul 3 (2019-2020)
3.7. Aplicatii de retea in Pyton
3.7.1. Recapitulare (Lab_02, Lab_03)
 Python_intro
 Programare_Python
 Byte-of-python
 pyshark – pachet Python care permite analiza PDU-urilor folosind decodarea Wireshark
[Link]: Afisarea adreselor IP sursa si destinatie corespunzatoare
pachetelor din fisierul wireshark [Link]
Indicatii:
print_ip.py

print_ip:

Output:

19
Retele de calculatoare – Informatica anul 3 (2019-2020)
3.7.3 Aplicatie python:Afisarea adreselor IP sursa / destinatie filtrate cu
ip ca data de intrare, corespunzatoare pachetelor din fisierul wireshark
[Link]

Exemple:
Input: ip sursa = [Link] Input: ip destinatie = [Link]
Output: Output:

Pentru aplicatiile 3.7.2 si 3.7.3:


a. Documentarea solutiilor (pyshark, etc)
b. Challenge: Interfata grafica
Recomandare: Qt Designer , cu Designer din Anaconda prompt). [Link]
first-gui-app-with-python-and-pyqt/, [Link]
using-pyqt5-designer-tool-ajskrd09n, [Link]

Anexa 4: The Programming Process !!!

Observatii TEMA!!!!!

DE ANALIZAT readme-ul readme_mod_work_dir.pdf (si un numai!... de exemplu si


readme_lab_modeler.pdf) de la adresa [Link]

Observatii
1. Atentie (Modeler) – Proiectul creat se salveaza implicit in:
C:\Users\student(NUME user)\op_model\NUME_PROIECT
NUME_PROIECT contine proiectul modeler propriu-zis

VARIANTA
se arhiveaza intreg folderul Folder creat mai jos…el contine proiectul opnet propriu-zis
 In directorul ....\Studenti\Info3\Nume_Prenume se creează directorul (pentru punctul
3.5) \L5_3.6_Nume_Prenume folosind:
o File → New → Folder
 Se lansează în execuţie Modeler
20
Retele de calculatoare – Informatica anul 3 (2019-2020)
 Se selectează directorul în care vor fi plasate fişierele proiectului.
o File → Model Files →Add Model Directory
o Se selectează directorul în care se va lucra (în acest director vor fi salvate fişierele
proiectului curent)
o Se arhiveaza L5_3.6_Nume_Prenume

Atentie (Modeler Academic Edition) – se foloseste


readme_mod_work_dir.pdf (este prezent in arhiva Lab_01)
pentru a identifica folderul op_models in care se salveaza default proiectul Modeler.

2. Atentie (Modeler) : Click dreapta pe “obiect” (ex. Router)...”Judec, deci exist!”

…..similar omnet++….. ([Link]


4. Tema:
 Toate punctele din sectiunea 3 “partea practica” se vor relua de catre cursanti, folosind etapele de
lucru indicate. Rezultatele experimentale:
 L5_nume+prenume_Modeler (folder) - contine proiectul Modeler/Omnet++(3.6) si
L5_nume+prenume_Modeler.doc (document .doc): rezultatele experimentale: comentarii
insotite de capturi corespunzatoare proiectului Modeler/ Omnet++ (3.6) pasi intermediari
importanti/topologia fizica, rezultate/capturi pentru View node description si View link

21
Retele de calculatoare – Informatica anul 3 (2019-2020)
description (obs.2 anterioara), exercitiile rezolvate, raspunsuri la intrebari, rezultate
finale, observatii finale)
 L5_nume+prenume_java : folder cu fisierele Java pentru fiecare aplicatie (fisierul sursa
.java, fisierul .bat, insotite de un [Link] pentru particularitati de rulare + snipping
tool) - 3.1, 3.2, 3.3, 3.5 (Challenge: Versiuni Python).
 L5_nume+prenume_IP: folder cu rezolvarile (.doc/ .png) ale exercitiilor 3.4.
 L5_nume+prenume_Python (folder) – cu subfloderele 3.7.2 si 3.7.3 (fiecare din acestea
contine scripturile .py si document .doc (snipping tool) pentru aplicatiile Python, conform
temelor indicate la aplicatiile de la punctul 3.7).

Se vor arhiva cu numele L5_nume+prenume_info3.rar. ARHIVA se va trimite prin e-mail


(VARIANTA: [Link] ) la adresa retelecdsd@[Link] precizandu-se la
subject: L5_nume+prenume_info3, pana pe data de 7 noiembrie 2019, ora 08.00 a.m. (Atentie,
gmail nu “prea vrea” .rar in .rar [Link]
file-extension-blocked/).
Cursantii sunt incurajati sa analizeze si sa comenteze rezultatele obtinute, studiind si materialele
(ACTUALIZATE AICI: [Link] !) indicate in bibliografie si anexe. (+ Recapitulare
Lab_01, Lab_02, Lab_03, Lab_04 ....)

DE ANALIZAT readme-ul readme_mod_work_dir.pdf (si un numai!... de exemplu si


readme_lab_modeler.pdf) de la adresa [Link]
Observatie: Studentii dornici de afirmare....pot opta sa foloseasca pe langa Modeler (sau ca
varianta), framework-ul Omnet++ [Link]/ , cu pastrarea scenariilor pentru
aplicatie, descrise in laborator. Se acorda ”bonusuri! ...SUBSTANTIALE!)

ATENTIE (pregatire testul grila!!!): 2_CRC_Error [Link]; 3_CRC_exercises.pdf;


Subnetting; VLSM

Obs:
Punctaj maxim (Data trimiterii temei)
<= 07.11. 2019 11.11. 2019 15.11.2019 19.11.2019
100 pct 80 pct 60 pct 50 pct

Sursa: [Link]
22
Retele de calculatoare – Informatica anul 3 (2019-2020)
How to send an e-mail
[Link]
[Link] “As a security measure to prevent potential
viruses, Gmail doesn't allow you to send or receive executable files (such as files ending in .exe).”
[Link]
[Link]
[Link]
Bibliografie
Lab_01, Lab_02, Lab_03, Lab_04, TL_01 ....
[Link]
efg’ Mathematics, [Link]
Java API, [Link]
Java Tutorial, Writing Your Own Filtered Streams [Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
Modeler Tutorials
[Link]
[Link]
[Link]
[Link]
 Install Riverved Modeler 17 5 Windows 10, 8 1, 8 and 7
([Link] )
 Install Riverbed Modeler ([Link]
 How to activate riverbed modeler 17.5 ([Link]
 How to solve invalid activation of Opnet Modeler 17.5
([Link] )
 Riverbed Modeler 17.5 Tutorial - Switched Lan
([Link] )
 6-Virtual LAN (VLAN) configuration in OPNET Riverbed
([Link]
 Riverbed Modeler Configuracion VLAN
([Link]
 Ethernet (lab_04)
 Riverbed Opnet 17.5 Tutorial - The Ethernet network
([Link] )
 6-Virtual LAN (VLAN) configuration in OPNET Riverbed
([Link]
 Riverbed Modeler Tutorial 3 Configuracion VLAN
([Link]

[Link]
23
Retele de calculatoare – Informatica anul 3 (2019-2020)

Anexa 1 :
Atentie ! Pentru aplicatiile Java, la fiecare laborator (n) va fi creat un proiect in NetBeans
(ex: Ln_info3) , care va fi salvat in directorul personal – F:\info3\<nume student>.
1. Crearea unui proiect nou
Pentru a crea un proiect nou selectam File -> New Project. Se va deschide o fereastra cu
tipurile de proiecte pentru care se ofera suport. Se va alege General -> Java Application
si se apasa Next.

Se va deschide o fereastra in care trebuie introduse numele si locatia noului proiect. Se deselecteaza
caseta CreateMainClass, si se apasa Finish. Se va oberva in fereastra Projects noul
proiect creat, care contine: un director pentru fisierele sursa, un director pentru fisierele test si doua
directoare cu alte informatii utilizate in proiect.

2. Crearea claselor
Pentru a crea o noua clasa, se va selecta New -> New File. Se va deschide o fereastra cu mai
multe tipuri de aplicatii.

Functie de tipul de clasa necesar, se alege optiunea si se apasa Next. Se introduce numele noii
clase create, se selecteaza proiectul in cadrul caruia se creaza clasa (din lista Projects) si se
apasa Finish. Se va observa faptul ca numele clasei este adaugat in directorul cu fisiere sursa din
fereastra Projects.

3. Compilarea si rularea unui program Java


Se deschide clasa ce trebuie compilata, alegand-o din fereastra Projects, directorul Source
Packages. Pentru compilare:
- Se selecteaza Build -> Compile nume_clasa.java ( sau se apasa F9)
- Se executa click dreapta pe clasa selectata, si se selecteaza Compile File

Se observa in fereastra Output, situata in partea inferioara a interfetei NetBeans, rezultatul


compilarii programului: erorile (daca sunt) sau mesajul BUILD SUCCESSFUL.

In ultimul caz, se va selecta Run -> Run Main Projects (daca se doreste lansarea in
executie a intregului proiect) sau Run File (daca se doreste doar rularea clasei respective).
Rularea clasei se face si prin comanda Run File din meniul pop-up afisat la executarea de click
dreapta pe clasa selectata.

4. Rularea unui program Java impreuna cu o lista de argumente pentru metoda main()
Se selecteaza din fereastra Projects proiectul care contine clasa ce trebuie rulata. Se face
click dreapta, si se alege optiunea Properties.

Se alege categoria Run, si apoi numele clasei principale din proiect (clasa se poate selecta
utilizand butonul Browse). Se introduc argumentele metodei principale in campul Arguments. Se
apasa Finish.

24
Retele de calculatoare – Informatica anul 3 (2019-2020)
How do I run a Java program using a .bat file in Windows?
[Link]

Step 1: Create java file what you want to execute and place that file in some location. For example I am
creating [Link] in my desktop.

1. public class Test {


2. public static void main(String[] args) {
3. [Link]("Hello World");
4. }
5. }

Step 2: Create batch file and write following snippet and then save the file with some name. Here I am
using [Link] and saved in my desktop.

1. @ECHO OFF
2. set CLASSPATH=.
3. javac [Link]
4. java Test
5. pause

Step 3 : Run the [Link] file then your java program automatically compiled and run. Batch file
automatically opens the command prompt.

That’s it. Happy coding..

Anexa 2
2.1. Checksums (Sursa: [Link]
Several network protocols use checksums to ensure data integrity.

Tip!
Applying checksums as described here is also known as redundancy checking.
What are checksums for?

25
Retele de calculatoare – Informatica anul 3 (2019-2020)
Checksums are used to ensure the integrity of data portions for data transmission or storage. A checksum is basically a
calculated summary of such a data portion. Network data transmissions often produce errors, such as toggled, missing or
duplicated bits. As a result, the data received might not be identical to the data transmitted, which is obviously a bad
thing.
Because of these transmission errors, network protocols very often use checksums to detect such errors. The transmitter will
calculate a checksum of the data and transmits the data together with the checksum. The receiver will calculate the
checksum of the received data with the same algorithm as the transmitter. If the received and calculated checksums don't
match a transmission error has occurred.
Some checksum algorithms are able to recover (simple) errors by calculating where the expected error must be and
repairing it. If there are errors that cannot be recovered, the receiving side throws away the packet. Depending on the
network protocol, this data loss is simply ignored or the sending side needs to detect this loss somehow and retransmits the
required packet(s).
Using a checksum drastically reduces the number of undetected transmission errors. However, the usual checksum
algorithms cannot guarantee an error detection of 100%, so a very small number of transmission errors may remain
undetected.
There are several different kinds of checksum algorithms; an example of an often used checksum algorithm is CRC32. The
checksum algorithm actually chosen for a specific network protocol will depend on the expected error rate of the network
medium, the importance of error detection, the processor load to perform the calculation, the performance needed and many
other things. Further information about checksums can be found at: [Link]

2.2. Wireshark checksum validation


Wireshark will validate the checksums of several protocols, e.g.: IP, TCP, UDP, ... It will do the same calculation as a
"normal receiver" would do, and shows the checksum fields in the packet details with a comment, e.g.: [correct], [invalid,
must be 0x12345678] or alike.
Checksum validation can be switched off for various protocols in the Wireshark protocol preferences, e.g. to (very slightly)
increase performance. If the checksum validation is enabled and it detected an invalid checksum, features like packet
reassembling won't be processed. This is avoided as incorrect connection data could "confuse" the internal database.

7.8.2. Checksum offloading


The checksum calculation might be done by the network driver, protocol driver or even in hardware. For example: The
Ethernet transmitting hardware calculates the Ethernet CRC32 checksum and the receiving hardware validates this
checksum. If the received checksum is wrong Wireshark won't even see the packet, as the Ethernet hardware internally
throws away the packet. Higher level checksums are "traditionally" calculated by the protocol implementation and the
completed packet is then handed over to the hardware.
Recent network hardware can perform advanced features such as IP checksum calculation, also known as checksum
offloading. The network driver won't calculate the checksum itself but will simply hand over an empty (zero or garbage
filled) checksum field to the hardware.
Note!
Checksum offloading often causes confusion as the network packets to be transmitted are handed over to Wireshark before
the checksums are actually calculated. Wireshark gets these "empty" checksums and displays them as invalid, even though
the packets will contain valid checksums when they leave the network hardware later.
Checksum offloading can be confusing and having a lot of [invalid] messages on the screen can be quite annoying. As
mentioned above, invalid checksums may lead to unreassembled packets, making the analysis of the packet data much
harder. You can do two things to avoid this checksum offloading problem:
• Turn off the checksum offloading in the network driver, if this option is available.
• Turn off checksum validation of the specific protocol in the Wireshark preferences.

Anexa 3: Testarea unui program de tip Checksum verifier


Link util: [Link]

26
Retele de calculatoare – Informatica anul 3 (2019-2020)
Anexa 4: The Programming Process
1. Identify the Problem - What Are You Trying To Do?
o Requirements
o Specification
2. Design a Solution - How Is It Going To Be Done?
3. Write the Program - Teaching the Computer
o Code
o Compile
o Debug
4. Check the Solution - Testing it Understands You

27

S-ar putea să vă placă și