Acest curs explorează protocoalele fundamentale de comunicație utilizate în rețelele de calculatoare.
TCP este un protocol de transport orientat pe conexiune, care asigură transmiterea fiabilă a datelor printr-o rețea.
Caracteristici principale:
- Fiabilitate: Utilizează mecanisme de retransmisie și control al erorilor.
- Segmentare și reasamblare: Împarte datele în segmente și le reasamblează la destinație.
- Controlul fluxului și congestionării: Optimizează traficul pentru a preveni supraîncărcarea rețelei.
TCP stabilește conexiunea printr-un proces numit handshake în 3 pași:
1. SYN: Clientul trimite un pachet SYN către server.
2. SYN-ACK: Serverul răspunde cu un pachet SYN-ACK.
3. ACK: Clientul confirmă conexiunea printr-un pachet ACK.
Comandă pentru testarea unei conexiuni TCP:
telnet google.com 80
UDP este un protocol de transport fără conexiune, utilizat pentru transmisii rapide de date fără mecanisme de corecție a erorilor.
Caracteristici:
- Fără conexiune: Nu necesită stabilirea unei conexiuni.
- Fără retransmisie: Pachetele pierdute nu sunt retransmise.
- Utilizat pentru streaming, VoIP și DNS.
Comandă pentru trimiterea unui pachet UDP:
echo -n "test" | nc -u 192.168.1.1 12345
DHCP este utilizat pentru alocarea automată a adreselor IP într-o rețea.
Funcționare:
1. Clientul trimite un mesaj DHCP DISCOVER.
2. Serverul răspunde cu un mesaj DHCP OFFER.
3. Clientul acceptă oferta printr-un mesaj DHCP REQUEST.
4. Serverul confirmă alocarea printr-un mesaj DHCP ACK.
Comandă pentru a obține o adresă IP prin DHCP:
dhclient eth0
DNS este utilizat pentru a converti numele de domenii (ex: google.com) în adrese IP.
Tipuri de înregistrări DNS:
- A: Mapare domeniu -> IPv4.
- AAAA: Mapare domeniu -> IPv6.
- MX: Mail Exchange pentru servere de e-mail.
- CNAME: Alias pentru un domeniu existent.
Comandă pentru interogarea unui server DNS:
nslookup google.com
ICMP este utilizat pentru diagnosticarea problemelor de rețea și raportarea erorilor.
Mesaje ICMP importante:
- Echo Request / Echo Reply: Utilizate în comanda `ping`.
- Destination Unreachable: Indică faptul că o destinație nu este accesibilă.
- Time Exceeded: Utilizat în `traceroute` pentru a detecta ruta unui pachet.
Comenzi pentru testarea conectivității rețelei:
ping 8.8.8.8
Utilizează `tcpdump` sau `Wireshark` pentru a captura și analiza pachetele de rețea transmise prin TCP, UDP, DHCP, DNS și ICMP.
sudo tcpdump -i eth0 port 53
wireshark