Sobes.tech
Middle

TCP терезесі туралы не білесіз?

sobes.tech AI

AI-дан жауап

TCP терезесі (немесе қабылдау терезесі) — бұл TCP протоколындағы ағынды басқару механизмі. Ол жіберуші қабылдаушыдан растау (ACK) алуға дейін жіберуге болатын деректердің мөлшерін анықтайды. Терезе мөлшері қабылдаушының қабылдау буферіндегі бос орын көлемін көрсетеді.

TCP терезесін пайдалану мақсаттары:

  • Буфердің толып кетуін болдырмау: Қабылдаушы өзінің ағымдағы қабылдау буферінің мөлшерін хабарлайды, бұл жіберушіге өңдей алатын деректердің көлемінен артық жіберуге жол бермейді.
  • Ағынды басқару: Терезе мөлшерінің динамикалық өзгеруі желінің жүктемесіне және қабылдаушының өнімділігіне байланысты деректерді жіберу жылдамдығын реттеуге мүмкіндік береді.

Жұмыс механизмі:

  1. Қабылдаушы жіберушіге өзінің қабылдау терезесінің мөлшері туралы сегмент жібереді (Window Size).
  2. Жіберуші көрсетілген терезе мөлшерінен аспайтын деректерді жібере алады.
  3. Деректерді қабылдау кезінде қабылдаушы терезе мөлшерін азайтады, бұл оның бос орынның азаюын көрсетеді.
  4. Қабылдаушы ACK сегменттерін жібереді, олар деректердің алынғанын растайды және ағымдағы қабылдау терезесінің мөлшерін қамтиды.
  5. Жіберуші ACK-ті алғаннан кейін, жаңартылған терезе мөлшеріне сәйкес келесі деректер партиясын жібере алады.

Динамикалық терезе мөлшерін өзгерту өткізу қабілеттілігін оңтайландыруға және буфердің толып кетуінен туындайтын пакеттердің жоғалуын болдырмауға мүмкіндік береді.

Мысал:

Қабылдаушы 65535 байттық терезе мөлшерін хабарлайды. Жіберуші 65535 байтқа дейін деректер жібере алады. 10000 байт қабылданғаннан кейін, қабылдаушы ACK жібереді, ол жаңа терезе мөлшерін 55535 байт деп көрсетеді.

// Қарапайым мысал (нағыз код емес, принципті көрсету)
struct tcp_header {
    // ... басқа өрістер
    uint16_t window_size; // Қабылдау терезесінің мөлшері байтта
    // ...
};