STAW 08/12: Programare Web. Suita de tehnologii HTML5
Computer Networks. TCP/IP
1. Retele de calculatoare
Retele de calculatoare
Protocoale de comunicatie II
Sabin-Corneliu Buraga
busaco@infoiasi.ro
http://www.infoiasi.ro/~busaco
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [1]
2. Retele de calculatoare
Cuprins
• ISO/OSI versus TCP/IP
• Modelul TCP/IP
• Protocolul IP
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [2]
3. Retele de calculatoare
Modelul ISO/OSI
• Privire de ansamblu
– nivelul fizic – responsabil de transmiterea de biti
pe un canal de comunicatie
– nivelul legatura de date – ofera o legatura
pentru comunicarea fara erori, datele fiind divizate
in cadre (frames)
01100010011
10110110101 10110000001
01100010011
10110110101 10110000001
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [3]
4. Retele de calculatoare
Modelul ISO/OSI
• Privire de ansamblu (cont.)
– nivelul retea – dirijare, controlul fluxului,
fragmentare & reasamblare a pachetelor,
interconectare retele incompatibile; circuite virtuale
– nivelul transport – ofera legaturi virtuale
end-to-end intre procese perechi, controleaza fluxul
– nivelurile sesiune/prezentare – rar intilnite
in practica
– nivelul aplicatie – responsabil de orice nu poate fi
oferit de nivelele inferioare
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [4]
5. Retele de calculatoare
Modelul ISO/OSI
• Echipamente folosite:
– repetor – nivelul fizic
Repetor
– punte (bridge) – nivelul legatura de date
Bridge
– router – nivelul retea
– poarta (gateway) – nivelul retea sau superior
– puntile, routerele si portile pot fi si componente soft
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [5]
6. Retele de calculatoare
Modelul ISO/OSI
• Echipamente folosite:
– router
Router
Router
– poarta de translatare a protocoalelor
Gateway
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [6]
8. Retele de calculatoare
ISO/OSI
• Avantaje
– Sistem deschis
– Protocoale standardizate
– Usor de inteles
• Dezavantaje
– Overhead, overhead, overhead…
– Nu ia in calcul arhitectura retelelor
• Pentru retele locale (LAN) se foloseste
practic un subset al nivelurilor ISO/OSI
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [8]
9. Retele de calculatoare
ISO/OSI vs. TCP/IP
• Asemanari
– ambele se bazeaza
pe o stiva de protocoale
– functionalitatea straturilor
este oarecum asemanatoare
– ambele au nivelul aplicatie
ca nivel superior
– se bazeaza (direct sau indirect)
pe nivelul transport
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [9]
10. Retele de calculatoare
ISO/OSI vs. TCP/IP
• Deosebiri
– ISO/OSI face distinctia clara intre serviciu,
interfata si protocol, pe cind TCP/IP nu
– ISO/OSI este indicat ca model teoretic,
TCP/IP este eficient la implementare
– ISO/OSI pune la dispozitie protocoale care asigura
o comunicare fiabila
(detectare & tratare erori la fiecare nivel)
– TCP/IP este mai putin fiabil, verificarea comunicarii
fiind doar in responsabilitatea nivelului transport
– la ISO/OSI controlul si decizia sunt centralizate,
la TCP/IP sunt distribuite
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [10]
11. Retele de calculatoare
Modelul TCP/IP
• Ofera posibilitatea de a interconecta
fara probleme mai multe tipuri de retele
• Axat pe nivelurile retea si transport
• Poate fi utilizat pe o multitudine de tipuri
de nivel legatura de date
(suport pentru implementari hardware multiple)
• Implementat cu succes peste Ethernet
(IEEE 802.3) – suportat de multe implementari
ale nivelului fizic
(cablu coaxial, twisted pair, fibra optica)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [11]
12. Retele de calculatoare
TCP/IP|anteturi
DATA
Process Process
Transport H DATA Transport
Network HH DATA Network
Data Link HHH DATA Data Link
Anteturile atasate de fiecare nivel
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [12]
13. Retele de calculatoare
TCP/IP|termeni
• Sistem terminal (end-system) ≡ gazda (host)
• Retea (network) ≡ ofera transfer de date
intre sisteme terminale
• Internet ≡ colectie de retele (interconectate)
• Subretea (subnetwork) ≡ componenta a unui
internet
• Sistem intermediar (intermediate system)
≡ conecteaza doua subretele
• Port ≡ proces al unei aplicatii rulind pe un host
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [13]
14. Retele de calculatoare
Modelul TCP/IP
• Ethernet
– ofera acces multiplu (mediu partajat de transmisie)
intr-o retea cu difuzare
– fiecare interfata Ethernet are o adresa unica de
48 biti: adresa hardware – e.g., C0:B3:44:17:21:17
– adresa de broadcast are toti bitii setati (1)
– adresele sunt asignate producatorilor
de placi de retea (NIC – Network Interface Card)
de catre o autoritate centrala
– detectia coliziunilor: CSMA/CD (Carrier Sense
Multiple Access with Collision Detection)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [14]
15. Retele de calculatoare
Modelul TCP/IP
• Ethernet
– adresa hardware (MAC)
– remarca: desi fiecare interfata (placa) de retea
are o adresa MAC unica, unele sisteme de operare
permit modificarea prin software a acestei adrese
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [15]
16. Retele de calculatoare
Modelul TCP/IP
• Ethernet
– Exemplu
de configuratie
initiala
a unei retele
Ethernet
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [16]
18. Retele de calculatoare
Modelul TCP/IP
• Ethernet
– forma unui cadru (frame) de date:
Destination Source
DATA
Preamble Len CRC
Address Address
8 bytes 6 6 2 0-1500 4
– CRC (Cyclic Redundancy Check/Code)
– fiecare interfata de retea inspecteaza pentru orice cadru
adresa de destinatie
– daca adresa de destinatie nu se potriveste cu adresa
hardware sau cea de broadcast, atunci cadrul este ignorat
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [18]
19. Retele de calculatoare
Modelul TCP/IP
• Ethernet versus Fast Ethernet
Ethernet Fast Ethernet
Viteza 10 Mbiti/s 100 Mbiti/s
Protocolul MAC CSMA/CD CSMA/CD
Diametrul retelei 2.5 km 205 m
Topologie Magistrala, stea Stea
Tip cablu Coax, UTP, fibra UTP, fibra
Standard 802.3 802.3u
Cost c 2*c
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [19]
20. Retele de calculatoare
Modelul TCP/IP
• Gigabit Ethernet
– Implementari atit pentru cabluri de cupru (802.3ab),
cit si pentru fibra optica (802.3z)
– Diferenta fata de alte implementari Ethernet
este la nivelul fizic
– Un bit este transmis intr-o nanosecunda
• 10 Gigabit Ethernet
– Doar pentru fibra optica (802.3ae)
– Opereaza la distante de 40 km
(util pentru retele MAN si WAN)
– Formatul cadrelor este similar celui de la celelalte
implementari Ethernet
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [20]
21. Retele de calculatoare
Modelul TCP/IP
• Retea LAN comutata 802.3
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [21]
25. Retele de calculatoare
Modelul TCP/IP
• Nivelul transport
– TCP (Transmission Control Protocol)
– RFC 793, 761
– UDP (User Datagram Protocol) – RFC 768
• Nivelul aplicatie
– SMTP (Simple Mail Transfer Protocol) – RFC 821
– POP3 (Post Office Protocol) – RFC 1081
– TELNET – RFC 854, 764
– FTP (File Transfer Protocol) – RFC 454
– NFS (Network File System) – RFC 1094
– DNS (Domain Name System) – RFC 1034, 1035
– HTTP (HyperText Transfer Protocol) – RFC 2616
– HTTP over TLS (Transport Layer Security) – RFC 2818
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [25]
26. Retele de calculatoare
Cuprins
• Nivelul retea – Protocolul IP
– Caracterizare
– Adrese IP
– Subretele
– Datagrame
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [26]
27. Retele de calculatoare
Protocolul IP
• Utilizat de sisteme autonome
in vederea interconectarii
• Serviciu de transmitere de pachete (host-to-host)
• Translatare dintre diferite protocoale legatura de date
• Ofera servicii neorientate-conexiune, nesigure:
datagrame
• Fiecare datagrama este independenta de celelalte
• Nu se garanteaza transmiterea corecta a datagramelor
(pierdere, multiplicare,...)
• Adresele IP nu sunt identice cu cele ale nivelului MAC
(e.g., adresele hardware ale placilor de retea)
pentru ca IP trebuie sa suporte
diferite implementari hardware (retele eterogene)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [27]
28. Retele de calculatoare
Protocolul IP
• Protocolul IP foloseste doar adresele logice
ale gazdelor
• Servicii:
– Transmitere (send):
aplicatie (utilizator) ↦IP
– Distribuire (deliver):
IP ↦ aplicatie (utilizator)
– Raportare a erorilor (optionala):
IP ↦ aplicatie (utilizator)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [28]
29. Retele de calculatoare
Protocolul IP
• Adrese:
– logice, nu fizice – 32 biti: x.x.x.x
– includ un identificator de retea (NetID) si
un identificator de gazda (HostID)
– fiecare gazda trebuie sa aiba o adresa IP unica
– adresele IP sunt asignate de o autoritate centrala
(NIC – Network Information Center)
– sunt divizate in clase de adrese: A, B, C, D, E
– clasa E nu este utilizata (experimentala)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [29]
30. Retele de calculatoare
Adresele IP
Clasa
A 0 NetID HostID
0 NetID HostID
10 NetID HostID
10 HostID
NetID
B
110 HostID
NetID
110 HostID
NetID
C
1110 Multicast Address
D
8 biti 8 biti 8 biti 8 biti
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [30]
31. Retele de calculatoare
Protocolul IP
• Adrese:
– clasa A: 128 retele posibile,
peste 4 milioane de gazde/retea
– clasa B: 16K retele posibile, 64K gazde/retea
– clasa C: peste 2 milioane de retele, 256 gazde/retea
– NetID-ul este asignat unei organizatii de
o autoritate centrala
– HostID-ul e asignat local de administratorul retelei
– ambii identificatori se utilizeaza pentru dirijare
– exemplu:
193.231.30.197 (fenrir.infoiasi.ro) – clasa C
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [31]
32. Retele de calculatoare
Protocolul IP
• Adrese:
– o interfata (placa) de retea are asignata
o unica adresa IP – numita adresa host
– o gazda poate avea mai multe placi de retea,
deci mai multe adrese host (adrese IP)
– gazdele unei aceleasi retele vor avea aceeasi
adresa network (acelasi NetID)
– adresele de broadcast au ca HostID toti bitii 1
– adresa IP care are ca HostID toti bitii 0 se numeste
adresa retelei – refera intreaga retea
– exemplu: 193.231.30.0 (adresa network a masinilor
fenrir – 193.231.30.197 si thor – 193.231.30.231)
– 127.0.0.1 – adresa de loopback (“eu” – localhost)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [32]
33. Retele de calculatoare
Protocolul IP
• Din spatiul de adrese ce pot fi alocate efectiv,
sunt rezervate urmatoarele – RFC 1918:
– 0.0.0.0 – 0.255.255.255
– 10.0.0.0 – 10.255.255.255 (adrese private)
– 127.0.0.0 – 127.255.255.255 (pentru loopback)
– 172.16.0.0 – 172.31.255.255 (adrese private)
– 192.168.0.0 – 192.168.255.255 (adrese private)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [33]
34. Retele de calculatoare
Protocolul IP
• Adrese de subretea:
– spatiul de adrese host se poate divide in grupuri
numite subretele
– identificatorul subretelei (SubnetID) e utilizat in
general sa grupeze calculatoare pe baza topologiei
fizice 10 NetID SubnetID HostID
10 NetID SubnetID HostID
– se poate simplifica dirijarea
– este posibil sa avem acelasi cablu
pentru subretele multiple
(e.g., domeniul .info.uaic.ro)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [34]
35. Retele de calculatoare
Protocolul IP
• Adrese de subretea:
– Divizarea in subretele se face via masca de retea
(netmask): bitii NetID sunt 1, bitii HostID sunt 0
– Adresa IP: 192.78.2.213
11000000 01001110 00000010 11010101
– Masca de retea: 255.255.255.192
11111111 11111111 11111111 11000000
– Adresa retea: 192.78.2.192
11000000 01001110 00000010 11000000
– Adresa retelei = masca de retea AND adresa IP
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [35]
36. Retele de calculatoare
Subretele IP
router
Subnet 1 Subnet 2 Subnet 3
128.213.1.x 128.213.2.x 128.213.3.x
• Broadcast-urile de subretea vor avea ca HostID toti bitii 1
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [36]
37. Retele de calculatoare
Protocolul IP
• Masti de subretea implicite:
– 255.0.0.0 clasa A
– 255.255.0.0 clasa B
– 255.255.255.0 clasa C
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [37]
38. Retele de calculatoare
Protocolul IP
• Conventii de notare: x.x.x.x/m inseamna
ca se aplica o masca de m biti adresei IP
precizata de x.x.x.x
• Exemple:
– 193.231.30.0/26 – se aplica o masca de 26 biti
adresei 193.231.30.0, selectindu-se ultimii
6 biti (=32–26) ai adresei
(rezulta 26 = 64 de valori distincte)
– 10.0.0.0/12 – se aplica o masca de 12 biti
adresei 10.0.0.0, selectindu-se toate valorile
posibile in ultimii 20 biti din adresa
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [38]
39. Retele de calculatoare
Datagrama IP
1 byte 1 byte 1 byte 1 byte
VERS HL Service/TOS Fragment Length
Identifier Flags Fragment Offset
TTL Protocol Header Checksum
Source Address
Destination Address
Options (if any)
Data
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [39]
40. Retele de calculatoare
Protocolul IP
• Valorile uzuale ale cimpului VERS sunt:
– 4 – protocolul IP (RFC 791)
– 6 – protocolul IPv6 (RFC 1883)
• Cimpul Service specifica actiunile speciale ce
pot fi efectuate asupra pachetului; divizat in:
Precedenta si
TOS (Type
of Service)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [40]
41. Retele de calculatoare
Protocolul IP
• Cimpul Protocol specifica protocolul
(de nivel superior) caruia ii este destinata
informatia inclusa in datagrama:
– 1 ICMP (Internet Control Message Protocol)
– 2 IGMP (Internet Group Management Protocol)
– 4 IP in IP
– 6 TCP (Transmission Control Protocol)
– 8 EGP (Exterior Gateway Protocol)
– 17 UDP (User Datagram Protocol)
– 46 RSVP (Resource Reservation Protocol)
– 89 OSPF (Open Shortest Path First)
– etc.
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [41]
42. Retele de calculatoare
Protocolul IP
• Cimpul TTL (Type To Live) specifica “viata” pachetului
(numarul va fi decrementat de fiecare router prin care
trece pachetul) – valori uzuale: 64, 32 ori 15
• Cimpul Identifier, in conjunctie cu Flags si
Fragment Offset, identifica fragmentele de pachete
(daca lungimea datelor depaseste valoarea
MTU – Maximum Transmission Unit)
• Cimpul Flags are 3 biti:
– 1 bit – nefolosit
– Don’t Fragment (DF) bit – datagrama nu poate fi
fragmentata (daca routerul nu poate transmite pachetul
nefragmentat, il va distruge)
– More Fragments (MF) bit – semnaleaza ca pachetul este
un fragment, urmat de altele (ultimul fragment are MF=0)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [42]
43. Retele de calculatoare
Protocolul IP
• Fragmentarea datagramelor
– fiecare fragment (pachet) are aceeasi structura
ca datagrama IP
– reasamblarea datagramelor se face la destinatar
– daca un fragment al unei datagrame e pierdut, acea
datagrama este distrusa (se trimite la expeditor un
mesaj ICMP – Internet Control Message Protocol)
– mecanismul de fragmentare a fost folosit pentru
unele atacuri (un fragment “special” e considerat ca
fiind parte a unei conexiuni deja stabilite, astfel incit
ii va fi permis accesul via firewall) – firewall piercing
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [43]
44. Retele de calculatoare
Protocolul IP
• Controlul fluxului, detectia erorilor
– daca pachetele ajung prea rapid, receptorul
acestora va elimina pe cele in exces
(va trimite si un mesaj ICMP la destinatar)
– daca apare o eroare (checksum error),
pachetul este distrus
• Filtrarea pachetelor (datagramelor)
– se realizeaza de un firewall: ofera accesul din
exterior in reteaua interna, conform unor politici
(reguli) de acces, doar pentru anumite tipuri de
pachete (utilizate de anumite protocoale/servicii)
– in Linux, firewall la nivel de nucleu: iptables
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [44]
45. Retele de calculatoare
Protocolul IP
• Filtrarea datelor
– Structura conceptuala a unui firewall
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [45]
46. Retele de calculatoare
Rezumat
• ISO/OSI versus TCP/IP
• Modelul TCP/IP
• Protocolul IP
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [46]