Sobes.tech
Junior

TCP protokolu necə işləyir?

sobes.tech Süni İntellekt

AI-dan cavab

TCP (Transmission Control Protocol) — bu, etibarlı, əlaqəyə yönəldilmiş məlumat çatdırılmasını təmin edən nəqliyyat səviyyəsi protokoludur.

Əsas iş prinsipləri:

  1. Üç tərəfli əl sıxma (Three-way Handshake):

    • Müştəri SYN (Synchronize) paketi göndərir və başlanğıc ardıcıllıq nömrəsini (ISN) təyin edir.
    • Server SYN-ni alır, SYN-ACK (Synchronize-Acknowledge) göndərir və öz ISN-ni və müştərinin ISN-ə təsdiq (ACK) göndərir (acknowledgement number = client ISN + 1).
    • Müştəri SYN-ACK-i alır, ACK göndərir və serverin ISN-ni təsdiqləyir (acknowledgement number = server ISN + 1).
    • Bağlantı qurulur, məlumatlar ötürülə bilər.
  2. Axın şəklində məlumat ötürülməsi: Məlumatlar ardıcıl bayt axını kimi ötürülür, ayrı-ayrı paketlər kimi deyil. TCP məlumat axınını seqmentlərə bölür.

  3. Sıralama nömrələməsi (Sequence Numbers): Hər bayt unikal nömrəyə malikdir. Seqmentlər ilk baytın nömrəsini (sequence number) və təsdiq nömrəsini (acknowledgement number) ehtiva edir, bu da göndərənin növbəti almasını gözlədiyi baytı göstərir.

  4. Təsdiqlər (Acknowledgements - ACK): Qəbul edən göndərənə hansı məlumatların uğurla alındığını bildirmək üçün ACK göndərir. Əgər göndərən müəyyən vaxtda (timeout) ACK almazsa, seqment təkrar göndərilir.

  5. Xəta nəzarəti (Error Control): Məlumatların bütövlüyünü yoxlamaq üçün yoxlama cəmindən (checksum) istifadə olunur. Əgər seqment pozulubsa, o, rədd edilir və göndərən vaxt aşımı və ya təkrarlanan ACK gözləyir.

  6. Axın idarəsi (Flow Control): Alıcının tamponunun dolmaması üçün istifadə olunan mexanizm. Alıcı, ACK paketlərində qəbul pəncərəsinin (receive window) ölçüsünü bildirir. Göndərən yalnız pəncərədə göstərilən qədər məlumat göndərə bilər.

  7. Tıxacın idarə olunması (Congestion Control): Şəbəkənin mövcud ötürmə qabiliyyətini müəyyən etmək və məlumat ötürmə sürətini dinamik tənzimləmək üçün mexanizm. Slow start, congestion avoidance, fast retransmit və fast recovery kimi alqoritmləri əhatə edir.

  8. Əlaqənin bağlanması: Adətən, dördbucaq əl sıxma ilə həyata keçirilir:

    • Bir tərəf FIN (Finish) paketi göndərir.
    • Digər tərəf FIN üçün ACK göndərir.
    • Digər tərəf öz FIN-ni göndərir (öz məlumatlarının ötürülməsini tamamladıqdan sonra).
    • Birinci tərəf bu FIN üçün ACK göndərir.
    • Əlaqə bağlanır.

TCP seqmentinin quruluşu:

Sahə Ölçüsü (bayt) Təsviri
Source Port 2 Göndərən portu
Destination Port 2 Qəbul edən portu
Sequence Number 4 Seqmentdəki ilk baytın nömrəsi
Acknowledgement Number 4 Növbəti gözlənilən baytın nömrəsi
Data Offset/Header Length 4 bit TCP başlığının uzunluğu
Reserved 6 bit Ayrılmışdır
Flags (Control Bits) 6 bit URG, ACK, PSH, RST, SYN, FIN
Window Size 2 Qəbul pəncərəsinin ölçüsü
Checksum 2 Başlıq və məlumatların yoxlama cəmi
Urgent Pointer 2 Təcili məlumatlara işarə edir (əgər URG qurulubsa)
Options Dəyişkən Əlavə seçimlər
Padding Dəyişkən Başlığın düzgün yerləşməsi üçün
Data Dəyişkən Göndərilən məlumatlar
// Control Bits (Flaglər):
// URG: Təcili göstərici sahəsi əhəmiyyətlidir
// ACK: Təsdiq sahəsi əhəmiyyətlidir
// PSH: Göndərmə funksiyası
// RST: Bağlantını sıfırla
// SYN: Sıralama nömrələrini sinxronizasiya et
// FIN: Göndərən tərəfindən daha çox məlumat yoxdur