TCP/IP: ce este, stiva de protocoale și transmiterea datelor

Autor: IT Sectr Publicat: 2026-03-06 Timp de citire: 8 min

TCP/IP este stiva de protocoale care stă la baza internetului și a majorității rețelelor de calculatoare. Acesta combină protocolul TCP, responsabil pentru livrarea fiabilă a datelor, și IP, care asigură rutarea pachetelor între noduri. Conform datelor IETF RFC 1180 (2024), stiva TCP/IP procesează peste 80% din traficul global de rețea, inclusiv aplicații mobile și web. Stiva de protocoale definește modul în care datele sunt împachetate, adresate și transmise între dispozitive în rețea.

Puncte cheie

  • TCP/IP este o stivă de protocoale care combină TCP (transport) și IP (rutare) pentru transmiterea datelor în rețele
  • Patru straturi ale modelului: aplicație, transport, rețea și legătură — fiecare își rezolvă sarcina
  • TCP garantează livrarea, ordinea pachetelor și controlul erorilor prin confirmări și retransmisii
  • IP asigură rutarea — selectarea căii pachetului de la expeditor la destinatar prin noduri intermediare
  • Înțelegerea TCP/IP este necesară pentru dezvoltarea aplicațiilor de rețea, depanarea conexiunilor și optimizarea performanței

Ce este TCP/IP?

TCP/IP (Transmission Control Protocol / Internet Protocol) este o stivă de protocoale dezvoltată în anii 1970 pentru ARPANET, care a devenit standardul de facto pentru rețeaua globală de internet. Acesta definește modul în care datele sunt împărțite în pachete, adresate, transmise și reasamblate la destinatar.

Arhitectura TCP/IP este construită pe principiul multistrat, unde fiecare strat abstractizează funcții specifice. Stratul de aplicație lucrează cu datele aplicației, stratul de transport asigură fiabilitatea, stratul de rețea se ocupă de rutare, iar stratul de legătură asigură transmisia prin mediul fizic. Modularitatea permite înlocuirea protocoalelor în cadrul unui strat fără modificarea straturilor adiacente.

În dezvoltarea mobilă, TCP/IP este utilizat de fiecare aplicație care efectuează solicitări de rețea. Bibliotecile URLSession, OkHttp, AFNetworking și Alamofire funcționează pe această stivă, ascunzând dezvoltatorului detaliile de împachetare și rutare a pachetelor. Cu toate acestea, înțelegerea TCP/IP este necesară pentru optimizarea performanței: configurarea parametrilor TCP prin URLSessionConfiguration permite gestionarea timeout-urilor, menținerea conexiunilor persistente HTTP și configurarea proxy-urilor pentru medii corporative.

Înțelegerea TCP/IP este necesară pentru diagnosticarea problemelor de rețea: dacă aplicația nu se poate conecta la server, problema poate fi la orice nivel al stivei — de la canalul fizic până la protocolul de aplicație. Instrumente precum tcpdump, Wireshark și Charles Proxy permit analiza traficului la fiecare nivel și identificarea blocajelor. Pentru dezvoltatorii mobili, Xcode oferă Network Debug Dashboard, iar Android Studio — Network Inspector pentru analiza conexiunilor TCP în timp real.

Straturile modelului TCP/IP

Modelul TCP/IP include patru straturi, fiecare îndeplinind funcții strict definite la transmiterea datelor. Înțelegerea acestei ierarhii este necesară pentru diagnosticarea problemelor de rețea și optimizarea aplicațiilor.

Stratul de aplicație

La nivelul stratului de aplicație funcționează protocoalele cu care aplicațiile interacționează direct: HTTP, HTTPS, FTP, SMTP, DNS, WebSocket. Acest strat formatează datele într-un format inteligibil pentru aplicație și le transmite stratului de transport. Dezvoltatorii de aplicații mobile lucrează tocmai la acest nivel prin intermediul bibliotecilor de rețea.

Stratul de transport

Stratul de transport asigură transmiterea datelor între aplicații pe dispozitive diferite. Protocoale principale: TCP (transmisie fiabilă cu confirmare) și UDP (transmisie rapidă fără garanții). TCP adaugă la date portul expeditorului și al destinatarului, gestionează ordinea pachetelor și controlează supraîncărcarea rețelei.

Stratul de rețea și stratul de legătură

Stratul de rețea este implementat prin protocolul IP, care definește adresarea (IPv4, IPv6) și rutarea pachetelor. Fiecare pachet conține adresa IP a expeditorului și a destinatarului, iar routerele pe calea de transmisie decid următorul nod pe baza tabelelor de rutare. IPv4 utilizează adrese pe 32 de biți (aproximativ 4,3 miliarde), iar IPv6 — adrese pe 128 de biți, ceea ce rezolvă problema epuizării adreselor.

Stratul de legătură lucrează cu mediul fizic de transmisie: Ethernet, Wi-Fi, Bluetooth. Acest strat convertește pachetele în semnale și invers, gestionează accesul la mediul de transmisie prin adrese MAC și detectează erorile la nivel fizic prin sume de control ale cadrelor (FCS).

La nivelul stratului de legătură funcționează protocoale precum ARP (Address Resolution Protocol), care convertește adresele IP în adrese MAC ale dispozitivelor din rețeaua locală, și PPP (Point-to-Point Protocol), utilizat în conexiunile VPN și rețelele mobile de transmisie a datelor.

StratProtocoaleFuncție
AplicațieHTTP, HTTPS, DNS, FTP, WebSocketFormarea datelor aplicației
TransportTCP, UDPTransmiterea între aplicații, controlul erorilor
RețeaIP, ICMP, ARPRutarea și adresarea pachetelor
LegăturăEthernet, Wi-Fi, PPPTransmiterea prin mediul fizic

Cum funcționează protocolul TCP

TCP (Transmission Control Protocol) este unul dintre principalele protocoale ale stratului de transport. Acesta asigură livrarea fiabilă, ordonată și verificabilă a fluxului de octeți între aplicații. Înainte de transmiterea datelor, TCP stabilește o conexiune printr-un handshake triplu (three-way handshake).

Handshake-ul triplu (three-way handshake) începe cu trimiterea de către client a pachetului SYN. Serverul răspunde cu un pachet SYN-ACK, confirmând primirea. Clientul finalizează handshake-ul cu un pachet ACK, după care începe transmiterea datelor. Acest proces garantează că ambele părți sunt pregătite pentru schimbul de date și sincronizate în ceea ce privește numerele de secvență.

python
import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('example.com', 80))
sock.send(b'GET / HTTP/1.1\r\nHost: example.com\r\n\r\n')
response = sock.recv(4096)
print(response.decode())
sock.close()

În exemplu, se creează un socket TCP de tip SOCK_STREAM, care execută automat handshake-ul triplu la apelarea connect. Metoda send trimite o solicitare HTTP, recv primește răspunsul. După finalizare, close trimite un pachet FIN pentru închiderea corectă a conexiunii.

Server TCP cu procesarea clienților

Să examinăm un exemplu de server TCP în Python care acceptă mai mulți clienți prin fire de execuție. Fiecare conexiune este procesată într-un fir separat, permițând deservirea simultană a mai multor clienți fără blocarea buclei principale.

python
import socket
import threading

def handle_client(conn, addr):
    print(f'Client conectat: {addr}')
    with conn:
        while True:
            data = conn.recv(1024)
            if not data:
                break
            conn.sendall(data.upper())
    print(f'Client {addr} deconectat')

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('0.0.0.0', 9090))
server.listen(5)
print('Server TCP pornit pe portul 9090')

while True:
    conn, addr = server.accept()
    thread = threading.Thread(target=handle_client, args=(conn, addr))
    thread.start()

Serverul TCP procesează fiecare conexiune într-un fir separat, apelând accept într-o buclă infinită. Funcția handle_client primește datele, le transformă în majuscule și le trimite înapoi prin sendall. La terminarea buclei recv (când clientul a închis conexiunea), firul se încheie și socketul se închide automat. În aplicațiile mobile, o astfel de lucrare la nivel scăzut cu socket-uri nu este utilizată direct — bibliotecile HTTP mobile gestionează conexiunile prin pool-uri de fire și reutilizează automat conexiunile TCP.

Diferențele dintre TCP și UDP

Alegerea între TCP și UDP este una dintre deciziile cheie în proiectarea interacțiunii de rețea. TCP garantează livrarea, ordinea și integritatea datelor cu prețul unor întârzieri suplimentare. UDP sacrifică fiabilitatea pentru o întârziere minimă și o încărcare mai mică a canalului.

CaracteristicăTCPUDP
ConexiuneStabilește (handshake)Nu stabilește
FiabilitateGarantează livrareaNu garantează
Ordinea pachetelorOrdoneazăNu ordonează
VitezăMai micăMai mare
UtilizareWeb, email, fișiereStreaming, jocuri, DNS

Pentru aplicațiile mobile, alegerea protocolului depinde de scenariu: REST-API și încărcarea datelor necesită TCP, iar apelurile video și jocurile online beneficiază de viteza UDP. Unele aplicații combină ambele protocoale — TCP pentru gestionare și UDP pentru fluxul media. Protocolul modern QUIC, care funcționează peste UDP și este utilizat în HTTP/3, combină avantajele ambelor abordări și este deja suportat pe iOS și Android prin URLSession în mod automat.

Exemple de cod TCP/IP

Să examinăm un exemplu de client TCP în Python cu gestionarea erorilor și timeout. Această abordare este utilizată în aplicațiile mobile pentru o conexiune fiabilă la server.

python
import socket
import sys

def tcp_client(host, port):
    try:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.settimeout(10)
        sock.connect((host, port))
        print(f'Conectat la {host}:{port}')
        return sock
    except socket.error as err:
        print(f'Eroare de conectare: {err}')
        sys.exit(1)

sock = tcp_client('api.example.com', 443)
sock.close()

Funcția tcp_client primește host și port, creează un socket cu un timeout de 10 secunde și încearcă să se conecteze. În caz de eroare de conectare — de exemplu, server indisponibil sau blocaj de firewall — se aruncă o excepție cu descrierea problemei. În aplicațiile mobile, timeout-ul de conectare este critic: prea scurt duce la erori false în rețelele lente, prea lung duce la înghețarea interfeței. Valoarea recomandată pentru rețelele mobile este de 10–15 secunde pentru timeoutIntervalForRequest și 30–60 secunde pentru timeoutIntervalForResource în configurația URLSession.

Întrebări frecvente

Care este diferența dintre TCP și IP?

IP este responsabil pentru rutare — livrarea pachetului de la expeditor la destinatar prin noduri intermediare. TCP asigură asamblarea fiabilă a datelor: controlează ordinea, verifică integritatea și solicită retransmiterea pachetelor pierdute. Împreună formează stiva TCP/IP.

Ce port utilizează TCP/IP în mod implicit?

TCP/IP nu utilizează un port fix — portul este atribuit de aplicație. Porturi standard: 80 (HTTP), 443 (HTTPS), 22 (SSH), 25 (SMTP). Portul 443 este principalul pentru traficul web securizat în aplicațiile mobile.

Ce este o conexiune TCP?

Conexiunea TCP este un canal logic între două aplicații, stabilit printr-un handshake triplu (SYN, SYN-ACK, ACK). Conexiunea este identificată prin perechea (adresă IP, port) a expeditorului și destinatarului. Handshake-ul garantează că ambele părți sunt pregătite pentru schimbul de date.

Se poate utiliza TCP/IP în aplicațiile mobile fără internet?

Da, TCP/IP funcționează în rețelele locale (LAN) fără acces la internet. Dispozitivele se conectează prin Wi-Fi Direct, Bluetooth PAN sau Ethernet și schimbă date prin adrese IP locale. TCP/IP local este utilizat în dispozitive IoT și aplicații peer-to-peer.

De ce este TCP mai lent decât UDP?

TCP este mai lent din cauza mecanismelor suplimentare: handshake triplu înainte de transmisie, confirmarea fiecărui pachet, retrimiterea segmentelor pierdute, controlul congestiei. UDP trimite datagrame fără aceste verificări, ceea ce reduce întârzierea cu prețul unor pierderi posibile.

Rezumat

  • TCP/IP — stiva fundamentală de protocoale care asigură transmiterea datelor în internet și rețele locale
  • Patru straturi (aplicație, transport, rețea, legătură) abstractizează diferite aspecte ale transmisiei
  • TCP garantează livrarea fiabilă cu controlul erorilor și confirmări
  • IP este responsabil pentru rutarea pachetelor și adresarea nodurilor în rețea
  • Alegerea TCP sau UDP depinde de cerințe: fiabilitate versus viteză
  • Fiecare aplicație mobilă care efectuează solicitări de rețea utilizează stiva TCP/IP

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și