Sobes.tech
Middle

Čo viete o TCP okne?

sobes.tech AI

Odpoveď od AI

TCP okno (alebo okno prijatia) je mechanizmus riadenia toku v protokole TCP. Určuje množstvo dát, ktoré môže odosielateľ odoslať predtým, ako dostane potvrdenie (ACK) od príjemcu. Veľkosť okna ukazuje voľné miesto v prijímacom bufferi príjemcu.

Ciele použitia TCP okna:

  • Prevencia pretečenia buffera: Príjemca informuje odosielateľa o aktuálnej veľkosti svojho prijímacieho buffera, čím zabraňuje odoslaniu väčšieho objemu dát, než je schopný spracovať.
  • Riadenie toku: Dynamická zmena veľkosti okna umožňuje regulovať rýchlosť prenosu dát v závislosti od zaťaženia siete a výkonu príjemcu.

Mechanizmus fungovania:

  1. Príjemca odošle odosielateľovi segment s informáciami o veľkosti svojho okna prijatia (Window Size).
  2. Odosielateľ môže odoslať dáta, ktorých objem neprekračuje uvedenú veľkosť okna.
  3. Pri prijímaní dát príjemca znižuje veľkosť okna, odrážajúc zníženie voľného miesta v bufferi.
  4. Príjemca odošle ACK segmenty, ktoré potvrdzujú prijatie dát a obsahujú aktuálnu veľkosť okna prijatia.
  5. Po obdržaní ACK môže odosielateľ odoslať ďalšiu časť dát na základe aktualizovanej veľkosti okna.

Dynamická zmena veľkosti okna umožňuje optimalizovať šírku pásma a zabrániť stratám paketov spôsobeným pretečením buffera.

Príklad:

Príjemca hlási okno veľkosti 65535 bajtov. Odosielateľ môže odoslať až 65535 bajtov dát. Po prijatí 10000 bajtov príjemca odošle ACK s novým oknom veľkosti 55535 bajtov.

// Jednoduchý príklad (nie je to skutočný kód, len demonštrácia princípu)
struct tcp_header {
    // ... ďalšie polia
    uint16_t window_size; // Veľkosť okna prijatia v bajtoch
    // ...
};