Middle
TCP pəncərəsi haqqında nə bilirsiniz?
sobes.tech Süni İntellekt
AI-dan cavab
TCP pəncərəsi (və ya qəbul pəncərəsi) TCP protokolunda axın nəzarət mexanizmidir. O, göndərən tərəfin, qəbul edən tərəfdən təsdiqləmə (ACK) almadan əvvəl göndərə biləcəyi məlumatların miqdarını müəyyən edir. Pəncərə ölçüsü, qəbul edən tərəfin qəbul bufferində boş yerin miqdarını göstərir.
TCP pəncərəsinin istifadəsinin məqsədləri:
- Bufferin daşmasını qarşısını almaq: Qəbul edən tərəf, göndərənə, onun hazırkı qəbul bufferinin ölçüsünü bildirir və daha çox məlumat göndərilməsinin qarşısını alır.
- Axın nəzarəti: Pəncərə ölçüsünün dinamik dəyişməsi, şəbəkə yüklənməsinə və qəbul edən tərəfin performansına əsasən məlumatların ötürülmə sürətini tənzimləməyə imkan verir.
İş prinsipi:
- Qəbul edən tərəf, göndərənə, qəbul pəncərəsinin ölçüsü (Window Size) haqqında məlumat verən segment göndərir.
- Göndərən, göstərilən pəncərə ölçüsünü aşmayan məlumatlar göndərə bilər.
- Məlumatlar qəbul edilərkən, qəbul edən tərəf, boş yerin azaldığını əks etdirmək üçün pəncərə ölçüsünü kiçildir.
- Qəbul edən, məlumatların qəbulunu təsdiqləyən ACK segmentləri göndərir və cari qəbul pəncərəsinin ölçüsünü daxil edir.
- ACK alındıqda, göndərən, yenilənmiş pəncərə ölçüsünə əsasən növbəti məlumat partiyasını göndərə bilər.
Pəncərə ölçüsünün dinamik dəyişməsi, bant genişliyini optimallaşdırmağa və bufferin daşması nəticəsində paket itkisini qarşısını almağa imkan verir.
Nümunə:
Qəbul edən tərəf 65535 bayt ölçülü pəncərə bildirir. Göndərən, 65535 bayt məlumat göndərə bilər. 10000 bayt qəbul etdikdən sonra, qəbul edən tərəf yeni pəncərə ölçüsünü 55535 bayt kimi bildirir.
// Sadə nümunə (həqiqi kod deyil, yalnız prinsipi göstərir)
struct tcp_header {
// ... digər sahələr
uint16_t window_size; // Qəbul pəncərəsinin ölçüsü baytlarda
// ...
};