Toate punctele din sectiunea 3 partea practica se vor relua de catre cursanti, folosind etapele de [605119]

Retele de calculatoare – MI anul 3 (2018 -2019)
1
Note de Laborator Specializare : MI anul 3
Retele de calculatoare Contact:
retelecdsd @gmail.com
http://www.cdsd.ro

Motto: “Gandeste inainte sa vorbesti. Citeste inainte sa gandesti.”
Frances Ann Lebowitz
Laborator 5
1. Obiective:
 Frame -ul Ethernet II – Campul FCS/ Calculul CRC -32 – Aplicatii Java pentru calcu lul sumelor
de verificare CRC -32; Aplicatii Python pentru calculul sumelor de ver ificare
 Clase de adrese IP. Sub netting. Aplicatie Java pentru subnetting – calculul adreselor IP ale
subretelelor, domeniilor de adrese IP alocate hosturilor, adreselor IP de broadcast ale subretelelor.
 Studi u 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 http://www.omnetpp.org/ )

2. Consideratii teoreti ce Obs: Partea practica – pag. 10; Tema – pag.22
2.1. ETHERNET II (vs. IEEE 802.3)
Metoda de acces : CSMA / CD – Carrier Sense Multiple Access / Collision Detection (Sesizarea
purtatoarei, Acces multiplu, Detec tarea coliziunilor);
 Sesizarea purtãtoarei (Ca rrier Sense) – fiecare statie care doreste sã initieze o transmisie de
date trebuie mai întâi sã " asculte " magistrala pentru a verifica dacã este ocupatã; acest principiu
este denumit " ascultã înainte de a vorbi " (listen before talking);
 Accesul multiplu ( Multiple Access) – fiecare statie care a detectat cã magistrala este liberã
poate sã initieze o transmisie; dacã douã sau mai multe statii încep sã transmitã simultan atunci,
datoritã faptului cã timpul de propagare a semnalului nu este nul, va apãrea o co liziune; aceasta
va afecta toate semnalele de date si transmisia va fi compromisã.
 Detectarea coliziunii (Collision Detection) – fiecare statie care transmite date poate detecta
coliziunile deoarece statiile ascultã linia în timpul transmisiei; principiul este denumit "ascultã
în timp ce vorbesti" (listen while talking).
2.2. IEEE 802.3
Denumire
camp P SFD AD AS Length /
Type D PAD CRC
Nr. Octeti 7 1 6 6 2 0÷1500 ! 4

Retele de calculatoare – MI anul 3 (2018 -2019)
2
a. P = preambul – 7 octeti de forma 10101010
b. SFD = Start Frame Delimiter – 1 octet d e forma 10101011
Obs: P (Ethernet II) = (P+SFD ) IEEE802.3
c. AD = Adresa de Destinatie (MAC)
d. AS = Adresa Sursa (MAC)
e. L(IEEE802.3) = lungimea (pe 2 octeti) – exprima lungimea campului D
Type (Ethernet) = contine 2 octeti ce identifica tipul protocolului de niv el superior care a emis
sau vrea sa rece ptioneze frame -ul.
f. D = date – Variaza intre 0 si 1500 octeti cu observatia ca daca are lungimea mai mica de 46 de
octeti atunci PAD -ul este utilizat pentru a completa lungimea frame -ului pana la o dimensiune
minima a cceptabila.
g. PAD = camp tampon de lungime variabila mai mare sau egala cu 0
h. CRC/FCS (Frame Check Sequence) – 4 octeti

Obs Frame -ul de la Ethernet are dimensiunea intre 64 si 1518 octeti (fara P) cu o dimensiune minima a
campului D de 46 de octeti. La IEEE 802.3 dimensiunea frame -ului (fara P si SPD ) este aceeasi. In
plus la 802.3 este permis ca aplicatia sau un nivel superior de protocol sa trimita o zona de date D mai
mica de 46 octeti, deoarece frame -ul este completat automat in PAD pe subnivelul MAC. La Ethernet
frame -urile care sunt prea mici sunt considerate erori

 CRC = Cyclic Redundance Code – contine restul sumei de verificare ciclica a redundantei
(suma ciclica de control) calculat polinomial prin CRC -32. Secvent a CRC (FCS – Frame Check
Sequence) es te 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 f n si f 0 nenuli. Considerand coeficientii
polinomului in Z 2 (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 lu i
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.

Notatie : SLE = Statia de Lucru Emitatoare; SLD = Statia de Lucru Destinatie

Obs: SLD primeste frame -ul, face propriu l 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, info rmatia este distrusa bit cu bit, cerandu -se retransmiterea la niv elul
protocoalelor de pe nivelurile OSI superioare.

2.3. CRC -32 (2_CRC_Error detection.pdf ; 3_CRC_exercises.pdf )
Valorile CRC -32 reprezinta o modalitate foarte eficienta de ve rificare a integritatii datelor.
http://en.wikipedia.org/wiki/Cyclic_redundancy_check
http://www34.brinkster.com/dizzyk/crc32. asp

Retele de calculatoare – MI anul 3 (2018 -2019)
3
http://www.createwindow.com/programming/crc32/crcfile.htm
http://webnet77.com/cgi -bin/helpers/crc.pl
http://www.softpedia.com/get/Others/Miscellaneous/CRC32 -Calculator.shtml
http://www.wikiera.net/EthernetCRC -readytouseexample.html
http://www.wireshark.org/docs/wsug_html_chunked/ChAdvChecksums.html

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 ac est 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 ur matorul 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.

Retele de calculatoare – MI anul 3 (2018 -2019)
4
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 bit i 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 pr in 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 ob icei
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 Int erface), 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 IP v4
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 pr otocoalele de pe nivelul rete a – 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.

138.12.43.9
10001010 . 00001100 . 00110001 . 00001001

Retele de calculatoare – MI anul 3 (2018 -2019)
5

Fig 4.1 : Conversia unei adrese IP in formatul cu punct
Notatie cu punct Notatie Binara
217.145.43.12 11011001 10010001 00101011 00001100
192.168.0.1 11000000 10101000 00000000 00000001
10.2.1.123 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 a dresă ș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 mult icast) î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:

Clasa Primul Octet Intervalul de adrese NetId
(octeți) HostId
(octeți) Nr. de rețele Nr. de host -uri
/rețea
A 0xxxxxxx 0.0.0.0 -127.255.255.255 1 3 128
(2 rezervate) 16.777.214
B 10xxxxxx 128.0.0.0 -191.255.255.255 2 2 16.384 65.534
C 110xxxxx 192.0.0.0 -223.255.255.255 3 1 2.097.152 254
D 1110xxxx 224.0.0.0 -239.255.255.255
– – – –
E 1111xxxx 240.0.0.0 -255.255.255.0 – – – –
Fig 4.3 Caracteristicile claselor de adrese IP

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 experimentale.Ultimul octet al unui identificator de gazdã nu poate fi 0 sau 255.
Adrese private: 10.0.0.0 –10.255.255.255 10.0.0.0 /8
172.16.0.0 –172.31.255.25 5 172.16.0.0 /12
192.168.0.0 –192.168.255.255 192.168.0.0 /16
2.4.3. Masca de subretea
Este o machetã de biti ce defineste portiunea din adres a IP ce reprezintã NetID. În plus, masca de
subretea permite subalocarea adresei de retea ( subne tting). 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 ca mpuri de 8 biti. Exemplu: 255.255.224.0 scrisa si /19 . Posibile valori ale unui octet

Retele de calculatoare – MI anul 3 (2018 -2019)
6
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
255.0.0.0 /8 255.255.0.0 /16 255.255.255.0 /24

2.4.3.1. 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 fiec are 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:205.101.55.91 in format binar 11001101 01100101 00110111 01011011
mascã: 255.255.255.224 in format bin ar 11111111 11111111 11111111 11100000

205.101.55.62  11001101 01100101 00110111 01000000

Retele de calculatoare – MI anul 3 (2018 -2019)
7
Rezultă că adresa 205.101.55.91 aparține subrețelei 205.101.55.6 2

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 255.255.255.224 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
Subretea 2 010_00001 – 010_11110 65 – 94
Subretea 3 001_00001 – 001_11110 97 – 156
Subretea 4 100_00001 – 100_11110 129 – 158
Subretea 5 101_00001 – 101_11110 161 – 190
Subretea 6 110_00 001 – 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 s ubretele cerute.
Pentru fiecare din subretelele prezentate, avem un numar de 25-2 = 30 de adrese IP pentru hosturi.

2.4.3.2. 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.
Grad de utilizare =

NT NH NS

2.4.3.3. Metode Java pentru lucrul cu clase de adrese (exemple)
2.4.3.3.1. Metoda care intoa rce clasa unei adrese IP
public static char getClass(InetAddress ia) {
byte[] address = ia.getAddress( );

int firstByte = address[0];
if ((firstByte & 0x80) == 0) return 'A';
else if ((firstByte & 0xC0) == 0x80) return 'B';
else if ((firs tByte & 0xE0) == 0xC0) return 'C';
else if ((firstByte & 0xF0) == 0xE0) return 'D';
else if ((firstByte & 0xF8) == 0xF0) return 'E';
else return 'F';
}
2.4.3.3.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;

AND 0 1
0 0 0
1 0 1

Retele de calculatoare – MI anul 3 (2018 -2019)
8
2.4.3 .4. Operatori pe biti ( Java / Python/ etc)

&(AND) 0 1
0 0 0
1 0 1
|(OR) 0 1
0 0 1
1 1 1
^(XOR) 0 1
0 0 1
1 1 0
~(NOT) 0 1
1 0
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 + L ab_2, http://www.cdsd.ro …F.F.F.Importante)
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
Varia nta “programare ” C++: OMNeT++ Network Simulation Framework , http://www.omnetpp.org/

Riverbed oferă o versiune academică ( Modeler Academic Edition ) – include modele standard pentr u
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 est e 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 (Descrip tive Statistics ) se ocupa cu colectarea, clasificarea si prezentarea
datelor numerice.
 Statistica inferentiala (Inferential S tatistics) 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

Retele de calculatoare – MI anul 3 (2018 -2019)
9
discrete event simulations . Only single simulation runs are supported.

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
Basic controls 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.
Values per statistic field —Sets the maximum number of values collected for each
statistic. This value sets the “num_collect_values” simulation preference.
Global
Attributes
page Use this page to define the values of global simulation attributes.
This page is similar to the Global Attributes page —Used to define the values of
global simulation attributes for the simulation. seen in Detailed mode, except that you
cannot set multiple values for an attribute or automatically reset the default value.
Reports page Use thi s page to select Statistic reports and Service Level Agreement (SLA) reports
for the simulation. Reports are predefined sets of statistic probes.
This page is identical to the Configure/Run DES Dialog Box (Detailed) —Report
Controls seen in Detailed mode.
Dialog box
controls 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
simulation. Running a simulation from here opens the Simulation Execution Dialog
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.

Retele de calculatoare – MI anul 3 (2018 -2019)
10
3. Partea practic a (tema – pag.22 !!!!!)
RECAPITULARE: 2_CRC_Error detection.pdf ; 3_CRC_exercises.pdf
3.1. Program Java ce permite calculul CRC -32 pentru un sir de caractere introdus de la tast atura
(se poate folosi fisierul 6_Lab_05_CRC_table.pdf ). Challenge: Aplicatie Python
Indicatii :

Retele de calculatoare – MI anul 3 (2018 -2019)
11

Retele de calculatoare – MI anul 3 (2018 -2019)
12

Exemplu 3.1.png

Continut folder java/3.1 (Model pentru trimiterea temei! )

Challenge: Aplicatie Python

3.2. Program pentru calculul sumei de verificare pentru un fisier. Se utilizeaza clas a
java.util.zip.CRC32 ; Challenge: Aplicatie Python

Retele de calculatoare – MI anul 3 (2018 -2019)
13
Indicatii :

Exemplu 3.2.png

Retele de calculatoare – MI anul 3 (2018 -2019)
14
Continut folde r java/3. 2 (Model pentru trimiterea temei! )

Challenge: Aplicatie Python

3.3. Exercitii Subnetting (Subalocarea unei adrese IP)

3.3.1. O organizatie a primit adresa de retea 192.168.1.0/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 adres e IP (determinati adresele subretelelor, adresele
hosturilor, adrese le de broadcast pentru toate subretelele obtinute ) si Tabelul de adres are IP
(adresele interfetelor ruterelor ( alocate descrescator, incepand cu ultima valoare! ), adresele
gateway -urilor retelelor conectate la rutere, a (n+3) -a adresa a hostului corespunza toare
apartenentei la reteaua n)

Tabelul de adrese IP:
Nr SR Adresa SR Interval adrese hosturi Adresa broadcast SR

Retele de calculatoare – MI anul 3 (2018 -2019)
15
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

3.4.2. O organizatie a primit adresa de retea 179.27.0.0/18 si are nevoie de 12 subretele. Cea mai mare
dintre aceste subretele trebuie sa contina 10 2 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 /hosturilor din subreteaua 2 (Obs . Subretelele sunt numerotate
de la 0). Calculati adresele de broadcast pentru fiecare din subretelele obtinute.

3.5. Planificarea (ca etapa a proiectarii) unei retele cu un numar diferit de
utilizatori, hosturi, servicii ( Indicatie: Network_Design_Mo deler.pdf )

 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 ), ale modelel or 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 etapelo r de baza privind planificarea unei retele, tinand cont de utilizatori,
servicii, hosturi, localizarea hosturilor.
Indicatie:
a. 4_Intro_Modeler.pdf
b. Network_Design_Modeler.pdf

ATENTIE:
 Cursantii sunt incurajati sa foloseasca materialele 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.

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

Retele de calculatoare – MI anul 3 (2018 -2019)
16
VARIANTA
se arhiveaza intreg folderul Folder creat mai jos…el contine proiectul opnet propriu -zis
 In director ul ….\Studenti \MI3\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
 Se selectează directorul în care vor fi plasate fișierele proiectului.
o File → Model Files → Add Model Directory
o Se se lectează directorul în care se va lucra (în acest director vor fi salvate fișierele
proiectului curent)

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

…..similar omnet++….. (http://www.omnetpp.org)

4. Tema:
 Toate punctele din sectiunea 3 “partea practica” se vor relua de catre cursanti, folosind etapele de
lucru indic ate. Rezultatele experimentale:
 L5_nume+prenume .doc: capturi c omentate pentru aplicat iile Java rulate : 3.1, 3.2
(Challenge: Versiuni Python), exercitiile 3.3, 3.4, 3.5 (proiectul Modeler cu scenariile
respective, comentarii, Lab report + Tabelul de adresare);

Retele de calculatoare – MI anul 3 (2018 -2019)
17
 L5_nume+prenume_j ava : folder cu subfolderele 3.1 si 3.2 ce contin fiecare fisierele Java
pentru fiecare aplicatie (fisierul sursa .java , fisier ul .bat, fisierul .png (snipping tool) ,
insotite eventual de un readm e.txt pentru particularitati de rulare) /
Challenge: L5_nume+pre nume_ python folder cu subfolderele 3.1 si 3.2 ce contin fiecare
fisierele python pentru fiecare aplicatie (fisierul .py si fisierul .png (snipping tool) , insotite
eventual de un readm e.txt pentru particularitati de rulare)
 L5_nume+prenume_Modeler : folder cu proiectul Modeler de la pct 3.5
se vor arhiva cu numele L5_nume+prenume_mi 3.rar. ARHIVA se va trimite prin e -mail
(VARIANTA : http://www.wetransfer.com ) la adresa retelecdsd@gmail.com precizandu -se la subject:
L5_nume+prenume_mi 3, pana pe data de 26 martie 2019 , ora 08.00 a.m. (Atentie, gmail nu “prea
vrea” .rar in .rar http://www.makeuseof.com/tag/4 -ways -email -attachments -file-extension –
blocked/ ).
Cursantii sunt incurajati sa analizeze si sa comenteze rezultatele obtinute, studiind si materialele
(ACTUALIZATE AICI: http://www.cdsd.ro !) indicate in bibliografie si anexe.

Observatie: Studentii ”pasionati ” de programare C++ , dornici de afirmare….pot opta sa
foloseasca pe langa Modeler (sau ca varianta), framework -ul Omnet++ www. omnetpp .org/ , cu
pastrarea scenariilor pentru aplicatie, descrise in laborator. Se acorda ”bonusuri!
…SUBSTANTIALE! )

ATENTIE (pregatire testul grila!!!): 2_CRC_Error detection.pdf ; 3_CRC_exercises.pdf ;
Subnetting ; VLSM

Obs:
Punctaj maxim (Data trimiterii temei)
<= 26.03 . 201 9 30.03 . 201 9 3.04.2019 7.04.2019
100 pct 80 pct 60 pct 50 pct

OBSERVATIE :
 Cursantii sunt incurajati sa foloseasca materialele prezentate intr -un mod constructiv, astfel
incat sa evalueze caracteristicile legaturilor fizice si ale dispozitivelor de retea folosite ( click
dreapta, view link/node description ), a modelelor de rete a precum si elementele de baza privind
simularea sistemelor discrete de evenimente analizate; rezultatele obtinute grafic vor fi
analizate si interpretate in contextul cerintelor formulate

Sursa: http://www.funnfun.in/wp -content/uploads/2013/06/steps -of-success -encouraging -quote.jpg

Retele de calculatoare – MI anul 3 (2018 -2019)
18

How to send an e -mail
http://lifehacker.com/5803366/how -to-send-an-email -with-an-attachment -for-beginners
https://support.google.com/mail/answer/6584?hl=en “As a security measure to prevent potential
viruse s, Gmail doesn't allow you to send or receive executable files (such as files ending in .exe ).”
https://support.google.com/mail/ answer/2480713?hl=en
http://fastupload.ro/free.php
http://www.computerica.ro/siteuri -transfer -fisiere -mari-upload/

Bibliografie
Lab_01, Lab_02 , Lab_03, Lab_04, TL_01
http://www.cdsd.ro /cursuri
efg’ Mathematics , http://www.efg2.com/Lab/Mathematics/CRC.htm
Java API, https://docs.oracle.com/j avase/8/docs/api/
Java Tutorial, Writing Your Own Filtered Streams http://www.rgagnon.com/javadetails/java -0416.html
http://en.wikipedia.org/wiki/Cyclic_redundancy_check
http://www34.brinkster.com/dizzyk/crc32.asp
http://www.createwindow.com /programming/crc32/crcfile.htm
http://webnet77.com/cgi -bin/helpers/crc.pl
http://www.softpedia.com/get/Other s/Miscellaneous/CRC32 -Calculator.shtml
http://www.wikiera.net/EthernetCRC -readytouseexample.html
http://www.wireshark.org/docs/wsug_html_chunked/ChAdvChecksums.html
Modeler Tutorials
https://rpmapps.riverbed.com/ae/4dcgi/SIGNUP_NewUser
https://supportkb.riverbed.com/support/index?page=content&id=S24443
https://rpmapps.riverbed.com/ae/4dcgi/DOWNLOAD_HOME
https://rpmapps.riverbed.com/ae/4dcgi/REG_TransactionCode
 Install Riverved Modeler 17 5 Windows 10, 8 1, 8 and 7
(https://www.youtube.com/watch?v=TpenN2j YbHQ )
 Install Riverbed Modeler ( https://www.youtube.com/watch?v=DQ3XhHYuFGA )
 How to activate riverbed modeler 17.5 (https://www.youtube .com/watch?v=h -ImeJMqiSA )
 How to solve invalid activation of Opnet Modeler 17.5
(https://www.youtube.com/watch?v=13ZBcXkW46s )
 Riverbed Modeler 17.5 Tutorial – Switched Lan
(https://www.youtube.com/watch?v=XdebwQLrr0w )
 6-Virtual LAN (VLAN) configuration in OPNET Riverbed
(https://www.youtube.com/watch?v=Ajz7bVO5WJM )
 Riverbed Mod eler Configuracion VLAN
(https://www.youtube.com/watch?v=rP3jPMcyEFk )
 Ethernet (lab_04)
 Riverbed Opnet 17.5 Tutorial – The Ethernet network
(https://www.youtube.com/watch?v=fS_J6ApFJtc )
 6-Virtual LAN (VLAN) configuration in OPNET Riverbed
(https://www.you tube.com/watch?v=Ajz7bVO5WJM )
 Riverbed Modeler Tutorial 3 Configuracion VLAN
(https://www.youtube.com/watch?v=rP3jPMcyEFk )

https://www.python.org/

Retele de calculatoare – MI anul 3 (2018 -2019)
19
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 deselecte aza
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 pr oiectul 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 trebui e 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 fer eastra 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 intregu lui 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 argum ente 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 sel ecta
utilizand butonul Browse). Se introduc argumentele metodei principale in campul Arguments . Se
apasa Finish .

Retele de calculatoare – MI anul 3 (2018 -2019)
20
How do I run a Java program using a .bat file in Windows?
https://www.quora.com/How -do-I-run-a-Java -program -using -a-bat-file-in-Windows
Step 1: Create java file what you want to execute and place that file in some location. For example I am
creating Test.java in my desktop.
1. public class Test {
2. public static void main(String[] args) {
3. System.out.println("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 Sample.bat and saved in my desktop.
1. @ECHO OFF
2. set CLASSPATH=.
3. javac Test.java
4. java Test
5. pause
Step 3 : Run the Sample.bat 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: http://ftp.uni -kl.de /pub/wireshark/docs/user -guide -us.pdf )
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?
Checksums are used to ensure the integrity o f 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

Retele de calculatoare – MI anul 3 (2018 -2019)
21
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 togethe r 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 guara ntee 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 checksum s can be found at: http://en.wikipedia.org/wiki/Checksum .

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 t he 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 performa nce. 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 checks um 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 har dware.
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 unreassembl ed 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 sp ecific protocol in the Wireshark preferences.

Anexa 3 : Testarea unui program de tip Checksum verifier
Link util: https://emn178.github.io/online -tools/crc32_checksum.html

Retele de calculatoare – MI anul 3 (2018 -2019)
22
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 Under stands You

Similar Posts