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):
- Müştəri SYN bayrağı və başlanğıc seq nömrəsi ilə seqment göndərir.
- 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.
- 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
};