Sobes.tech
Middle

TCP/IP modelinin nəqliyyat qatmanı (transport layer) haqqında danış.

sobes.tech Süni İntellekt

AI-dan cavab

TCP/IP nəqliyyat səviyyəsi müxtəlif hostlarda işləyən proseslər arasında əlaqəni təmin edir. Əsas vəzifələr:

  • Hostda tətbiqləri/prosesləri identifikasiya etmək (portlar vasitəsilə).
  • Məlumatların çatdırılması xidmətlərini təmin etmək:
    • Etibarlı, ardıcıl çatdırılma (TCP).
    • Etibarsız, zəmanətsiz çatdırılma (UDP).

İki əsas protokol:

  • Transmissiya Nəzarət Protokolu (TCP):
    • Bağlantıya əsaslanır.
    • Paketlərin çatdırılmasını təmin edir, ardıcıllığı saxlayır, axını idarə edir və tıxanmanı idarə edir.
    • Etibarlı ötürmə tələb edən tətbiqlər üçün istifadə olunur (HTTP, FTP, SMTP).
  • İstifadəçi Datagram Protokolu (UDP):
    • Bağlantısız.
    • Çatdırılma, ardıcıllıq və axın idarəsini zəmanət etmir.
    • Aşağı gecikmə, vaxt həssas tətbiqlər üçün uyğundur, kiçik məlumat itkisi qəbul edilə bilər (DNS, VoIP, video axını).

TCP seqmentləri aşağıdakı sahələri əhatə edir: mənbə/tuşun portları, ardıcıllıq nömrələri, təsdiqləmə nömrələri, bayraqlar (SYN, ACK, FIN), yoxlama cəmisi.

UDP datagramları aşağıdakı sahələri əhatə edir: mənbə/tuşun portları, uzunluq və yoxlama cəmisi.

Portlar (ports): proseslər arasında məlumatların çoxlaması/azlaması üçün istifadə olunan 16-bitli nömrələr.

  • Well-known ports (0-1023): Standart xidmətlər üçün ayrılmışdır (80 HTTP üçün, 443 HTTPS üçün, 22 SSH üçün).
  • Registered ports (1024-49151): IANA-da qeydiyyatdan keçmiş xüsusi tətbiqlər üçün istifadə olunur.
  • Dynamic/Private ports (49152-65535): Müştərilər tərəfindən çıxış əlaqələri üçün istifadə olunur.

TCP əlaqəsinin qurulması nümunəsi (Three-way Handshake):

  1. Müştəri SYN bayrağı və başlanğıc seq nömrəsi ilə seqment göndərir.
  2. Server SYN-ə cavab olaraq SYN və ACK bayraqları ilə seqment göndərir, öz başlanğıc seq nömrəsini və client_seq + 1-ə bərabər təsdiqləmə nömrəsini göndərir.
  3. Müştəri SYN+ACK-ı alır, ACK bayrağı və server_seq + 1-ə bərabər təsdiqləmə nömrəsi ilə seqment göndərir. Əlaqə qurulur.
// Sadələşdirilmiş TCP başlıq strukturu nümunəsi
struct tcp_header {
    unsigned short src_port;       // Mənbə portu
    unsigned short dest_port;      // Hədəf portu
    unsigned int   seq_num;        // Seq nömrəsi
    unsigned int   ack_num;        // Təsdiqləmə nömrəsi
    unsigned short flags;          // Bayraqlar (SYN, ACK, FIN və s.)
    // digər sahələr...
};
// Sadələşdirilmiş UDP başlıq strukturu nümunəsi
struct udp_header {
    unsigned short src_port;       // Mənbə portu
    unsigned short dest_port;      // Hədəf portu
    unsigned short length;         // UDP datagramının uzunluğu
    unsigned short checksum;       // Yoxlama cəmisi
};