TCP/IP: bu nədir, protokol yığını və məlumat ötürülməsi

Müəllif: IT Sectr Dərc olunub: 2026-03-06 Oxuma vaxtı: 8 dəq

TCP/IP internetin və əksər kompüter şəbəkələrinin təməlini təşkil edən protokol yığınıdır. O, etibarlı məlumat çatdırılmasına cavabdeh olan TCP protokolunu və paketlərin qovşaqlar arasında marşrutlaşdırılmasını təmin edən IP-ni birləşdirir. IETF RFC 1180 (2024) məlumatlarına görə, TCP/IP yığını mobil və veb proqramlar da daxil olmaqla, dünya şəbəkə trafikinin 80%-dən çoxunu emal edir. Protokol yığını məlumatların şəbəkədəki cihazlar arasında necə paketləndiyini, ünvanlandığını və ötürüldüyünü müəyyən edir.

Əsas məqamlar

  • TCP/IP şəbəkələrdə məlumat ötürmək üçün TCP (nəqliyyat) və IP (marşrutlaşdırma) birləşdirən protokol yığınıdır
  • Dörd təbəqə model: tətbiq, nəqliyyat, şəbəkə və kanal — hər biri öz vəzifəsini həll edir
  • TCP təsdiqləmələr və təkrar göndərmələr vasitəsilə çatdırılma, paket sırası və səhv nəzarətini təmin edir
  • IP marşrutlaşdırmanı təmin edir — paketin göndəricidən alıcıya ara qovşaqlar vasitəsilə yolunun seçilməsi
  • TCP/IP-ni anlamaq şəbəkə proqramlarının hazırlanması, bağlantıların sazlanması və performans optimallaşdırılması üçün zəruridir

TCP/IP nədir?

TCP/IP (Transmission Control Protocol / Internet Protocol) — 1970-ci illərdə ARPANET üçün hazırlanmış və qlobal internet şəbəkəsi üçün de-fakto standarta çevrilmiş protokol yığınıdır. O, məlumatların paketlərə bölünməsi, ünvanlanması, ötürülməsi və alıcı tərəfdə yığılması qaydalarını müəyyən edir.

TCP/IP arxitekturası çoxqatlı prinsip əsasında qurulub, burada hər təbəqə müəyyən funksiyaları abstraksiya edir. Tətbiq təbəqəsi proqram məlumatları ilə işləyir, nəqliyyat təbəqəsi etibarlılığı təmin edir, şəbəkə təbəqəsi marşrutlaşdırmanı, kanal təbəqəsi isə fiziki mühitdə ötürülməni həyata keçirir. Modulluq qonşu təbəqələri dəyişmədən təbəqə daxilində protokolları dəyişməyə imkan verir.

Mobil inkişafda TCP/IP şəbəkə sorğuları yerinə yetirən hər bir proqram tərəfindən istifadə olunur. URLSession, OkHttp, AFNetworking və Alamofire kitabxanaları bu yığının üzərində işləyir, proqramçıdan paketlərin qablaşdırılması və marşrutlaşdırılması detallarını gizlədir. Bununla belə, TCP/IP-ni anlamaq performans optimallaşdırması üçün zəruridir: URLSessionConfiguration vasitəsilə TCP parametrlərinin konfiqurasiyası vaxt aşımını idarə etməyə, HTTP Persistent Connections saxlanmasına və korporativ mühitlər üçün proksi qurmağa imkan verir.

TCP/IP-ni anlamaq şəbəkə problemlərinin diaqnostikası üçün zəruridir: əgər proqram serverə qoşula bilmirsə, problem yığının istənilən təbəqəsində ola bilər — fiziki kanaldan tutmuş tətbiq protokoluna qədər. tcpdump, Wireshark və Charles Proxy kimi alətlər hər təbəqədə trafiki təhlil etməyə və darboğazları tapmağa imkan verir. Mobil proqramçılar üçün Xcode Network Debug Dashboard, Android Studio isə real vaxtda TCP bağlantılarını təhlil etmək üçün Network Inspector təqdim edir.

TCP/IP modelinin təbəqələri

TCP/IP modeli dörd təbəqəni əhatə edir, hər biri məlumat ötürülməsi zamanı ciddi şəkildə müəyyən edilmiş funksiyaları yerinə yetirir. Bu iyerarxiyanı anlamaq şəbəkə problemlərinin diaqnostikası və proqramların optimallaşdırılması üçün zəruridir.

Tətbiq təbəqəsi

Tətbiq təbəqəsində proqramların birbaşa işlədiyi protokollar fəaliyyət göstərir: HTTP, HTTPS, FTP, SMTP, DNS, WebSocket. Bu təbəqə məlumatları proqram üçün anlaşılan formatda formalaşdırır və nəqliyyat təbəqəsinə ötürür. Mobil proqramçılar şəbəkə kitabxanaları vasitəsilə məhz bu təbəqədə işləyirlər.

Nəqliyyat təbəqəsi

Nəqliyyat təbəqəsi müxtəlif cihazlardakı proqramlar arasında məlumat ötürülməsini təmin edir. Əsas protokollar: TCP (təsdiqləmə ilə etibarlı ötürmə) və UDP (zəmanətsiz sürətli ötürmə). TCP məlumatlara göndərən və alan portu əlavə edir, paketlərin sırasını idarə edir və şəbəkənin həddindən artıq yüklənməsinə nəzarət edir.

Şəbəkə və kanal təbəqələri

Şəbəkə təbəqəsi IP protokolu ilə reallaşdırılır, o, ünvanlamanı (IPv4, IPv6) və paket marşrutlaşdırılmasını müəyyən edir. Hər paket göndərən və alanın IP ünvanını ehtiva edir, marşrutlaşdırıcılar isə marşrutlaşdırma cədvəlləri əsasında növbəti qovşaq haqqında qərar qəbul edir. IPv4 32-bit ünvanlardan (təxminən 4,3 milyard), IPv6 isə 128-bit ünvanlardan istifadə edir ki, bu da ünvan çatışmazlığı problemini həll edir.

Kanal təbəqəsi fiziki ötürmə mühiti ilə işləyir: Ethernet, Wi-Fi, Bluetooth. Bu təbəqə paketləri siqnallara çevirir və əksinə, MAC ünvanları vasitəsilə ötürmə mühitinə girişi idarə edir və çərçivənin yoxlama cəmi (FCS) vasitəsilə fiziki təbəqə səhvlərini aşkarlayır.

Kanal təbəqəsində lokal şəbəkədə cihazların IP ünvanlarını MAC ünvanlarına çevirən ARP (Address Resolution Protocol) və VPN bağlantılarında və mobil məlumat ötürmə şəbəkələrində istifadə olunan PPP (Point-to-Point Protocol) kimi protokollar işləyir.

TəbəqəProtokollarFunksiya
TətbiqHTTP, HTTPS, DNS, FTP, WebSocketProqram məlumatlarının formalaşdırılması
NəqliyyatTCP, UDPProqramlar arasında ötürmə, səhv nəzarəti
ŞəbəkəIP, ICMP, ARPPaket marşrutlaşdırılması və ünvanlanması
KanalEthernet, Wi-Fi, PPPFiziki mühitdə ötürmə

TCP protokolu necə işləyir

TCP (Transmission Control Protocol) — nəqliyyat təbəqəsinin əsas protokollarından biridir. O, proqramlar arasında bayt axınının etibarlı, sıralı və səhvlərə qarşı yoxlanılan çatdırılmasını təmin edir. Məlumat ötürülməsindən əvvəl TCP üçmərhələli əl sıxma (three-way handshake) vasitəsilə bağlantı qurur.

Üçmərhələli əl sıxma müştərinin SYN paketi göndərməsi ilə başlayır. Server SYN-ACK paketi ilə cavab verərək qəbulu təsdiqləyir. Müştəri ACK paketi ilə əl sıxmanı tamamlayır, bundan sonra məlumat ötürülməsi başlayır. Bu proses hər iki tərəfin mübadiləyə hazır olduğunu və sıra nömrələri üzrə sinxronlaşdığını təmin edir.

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ümunədə connect çağırışı zamanı avtomatik olaraq üçmərhələli əl sıxma yerinə yetirən SOCK_STREAM tipli TCP soketi yaradılır. send metodu HTTP sorğusu göndərir, recv cavabı qəbul edir. Başa çatdıqdan sonra close bağlantının düzgün bağlanması üçün FIN paketi göndərir.

Müştəriləri emal edən TCP serveri

Python dilində bir neçə müştərini axınlar vasitəsilə qəbul edən TCP server nümunəsinə baxaq. Hər bir bağlantı ayrıca axında emal olunur ki, bu da əsas dövrəni bloklamadan eyni anda çoxlu müştəriyə xidmət göstərməyə imkan verir.

python
import socket
import threading

def handle_client(conn, addr):
    print(f'Müştəri qoşuldu: {addr}')
    with conn:
        while True:
            data = conn.recv(1024)
            if not data:
                break
            conn.sendall(data.upper())
    print(f'Müştəri {addr} ayrıldı')

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('0.0.0.0', 9090))
server.listen(5)
print('TCP serveri 9090 portunda işə salındı')

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

TCP server hər bir bağlantını ayrıca axında emal edir, sonsuz dövrədə accept çağırır. handle_client funksiyası məlumatları qəbul edir, böyük hərflərə çevirir və sendall vasitəsilə geri göndərir. recv dövrəsi başa çatdıqda (müştəri bağlantını bağladıqda) axın sonlanır və soket avtomatik bağlanır. Mobil proqramlarda soketlərlə bu cür aşağısəviyyəli iş birbaşa istifadə olunmur — mobil HTTP kitabxanaları bağlantıları axın hovuzları vasitəsilə idarə edir və TCP bağlantılarını avtomatik təkrar istifadə edir.

TCP və UDP arasındakı fərqlər

TCP və UDP arasında seçim şəbəkə qarşılıqlı əlaqəsinin layihələndirilməsində əsas qərarlardan biridir. TCP əlavə gecikmələr bahasına çatdırılma, sıra və məlumat bütövlüyünə zəmanət verir. UDP minimal gecikmə və kanalda daha az yük naminə etibarlılığı qurban verir.

XüsusiyyətTCPUDP
BağlantıQurur (handshake)Qurmur
EtibarlılıqÇatdırılmaya zəmanət verirZəmanət vermir
Paket sırasıSıralayırSıralamır
SürətAşağıYüksək
TətbiqVeb, email, fayllarStreaming, oyunlar, DNS

Mobil proqramlar üçün protokol seçimi ssenaridən asılıdır: REST-API və məlumat yükləmə TCP tələb edir, video zənglər və onlayn oyunlar isə UDP-nin sürətindən faydalanır. Bəzi proqramlar hər iki protokolu birləşdirir — idarəetmə üçün TCP və media axını üçün UDP. UDP üzərində işləyən və HTTP/3-də istifadə olunan müasir QUIC protokolu hər iki yanaşmanın üstünlüklərini birləşdirir və iOS və Android-də URLSession vasitəsilə avtomatik dəstəklənir.

TCP/IP kod nümunələri

Səhv emalı və vaxt aşımı ilə Python dilində TCP müştəri nümunəsinə baxaq. Bu yanaşma mobil proqramlarda serverə etibarlı qoşulma üçün istifadə olunur.

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'{host}:{port} ünvanına qoşuldu')
        return sock
    except socket.error as err:
        print(f'Qoşulma xətası: {err}')
        sys.exit(1)

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

tcp_client funksiyası host və port qəbul edir, 10 saniyə vaxt aşımı ilə soket yaradır və qoşulmağa cəhd edir. Qoşulma xətası zamanı — məsələn, serverin əlçatmazlığı və ya firewall bloklaması — problemin təsviri ilə istisna atılır. Mobil proqramlarda qoşulma vaxt aşımı kritikdir: çox qısa olması yavaş şəbəkələrdə yanlış səhvlərə, çox uzun olması isə interfeysin donmasına səbəb olur. Mobil şəbəkələr üçün tövsiyə olunan dəyər URLSession konfiqurasiyasında timeoutIntervalForRequest üçün 10–15 saniyə, timeoutIntervalForResource üçün 30–60 saniyədir.

Tez-tez verilən suallar

TCP və IP arasında nə fərq var?

IP marşrutlaşdırmaya cavabdehdir — paketi göndəricidən alıcıya ara qovşaqlar vasitəsilə çatdırır. TCP məlumatların etibarlı yığılmasını təmin edir: sıraya nəzarət edir, bütövlüyü yoxlayır və itirilmiş paketlərin təkrar göndərilməsini tələb edir. Birlikdə TCP/IP yığınını təşkil edirlər.

TCP/IP default olaraq hansı portdan istifadə edir?

TCP/IP sabit portdan istifadə etmir — port proqram tərəfindən təyin edilir. Standart portlar: 80 (HTTP), 443 (HTTPS), 22 (SSH), 25 (SMTP). Port 443 — mobil proqramlarda təhlükəsiz veb trafiki üçün əsas portdur.

TCP bağlantısı nədir?

TCP bağlantısı — üçmərhələli əl sıxma (SYN, SYN-ACK, ACK) vasitəsilə qurulmuş iki proqram arasında məntiqi kanaldır. Bağlantı göndərən və alanın (IP ünvanı, port) cütü ilə identifikasiya olunur. Əl sıxma hər iki tərəfin məlumat mübadiləsinə hazır olduğuna zəmanət verir.

TCP/IP mobil proqramlarda internet olmadan istifadə edilə bilərmi?

Bəli, TCP/IP internetə çıxış olmadan lokal şəbəkələrdə (LAN) işləyir. Cihazlar Wi-Fi Direct, Bluetooth PAN və ya Ethernet vasitəsilə qoşulur və lokal IP ünvanları ilə məlumat mübadiləsi aparır. Lokal TCP/IP IoT cihazlarında və peer-to-peer proqramlarında istifadə olunur.

Niyə TCP UDP-dən yavaşdır?

TCP əlavə mexanizmlər səbəbindən yavaşdır: ötürmədən əvvəl üçmərhələli əl sıxma, hər paketin təsdiqlənməsi, itirilmiş seqmentlərin təkrar göndərilməsi, həddindən artıq yüklənməyə nəzarət. UDP bu yoxlamalar olmadan datagramlar göndərir ki, bu da mümkün itkilər bahasına gecikməni azaldır.

Xülasə

  • TCP/IP — internetdə və lokal şəbəkələrdə məlumat ötürülməsini təmin edən fundamental protokol yığını
  • Dörd təbəqə (tətbiq, nəqliyyat, şəbəkə, kanal) ötürmənin müxtəlif aspektlərini abstraksiya edir
  • TCP səhv nəzarəti və təsdiqləmələrlə etibarlı çatdırılmaya zəmanət verir
  • IP paket marşrutlaşdırılması və şəbəkədə qovşaqların ünvanlanmasına cavabdehdir
  • TCP və ya UDP seçimi tələblərdən asılıdır: etibarlılıq və sürət arasında
  • Hər bir mobil proqram şəbəkə sorğuları yerinə yetirərkən TCP/IP yığınından istifadə edir

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun