Middle
Čo môžete povedať o TCP okne?
sobes.tech AI
Odpoveď od AI
TCP okno (alebo TCP okno prijmu) je mechanizmus riadenia toku dát v protokole TCP. Určuje objem dát, ktorý môže odosielateľ odoslať, bez toho, aby čakal na potvrdenie od príjemcu (ACK). Veľkosť okna sa dynamicky prispôsobuje, zabraňuje preplneniu bufferu príjemcu a riadi rýchlosť prenosu.
Hlavné body:
- Riadenie toku: Hlavnou funkciou je zabrániť odosielateľovi posielať dáta rýchlejšie, než ich môže spracovať príjemca.
- Veľkosť okna: Je oznámená príjemcom v každom TCP segmente (v poli "Window Size") a ukazuje, koľko bajtov je pripravených prijať, začínajúc od nasledujúceho očakávaného bajtu.
- Dynamickosť: Veľkosť okna sa môže počas spojenia meniť v závislosti od zaťaženia bufferu príjemcu.
- Buffer na príjem: Skutočná veľkosť okna je obmedzená veľkosťou bufferu na strane príjemcu.
- Škálovanie okna (Window Scaling): TCP možnosť, ktorá umožňuje používať väčšie okná (až 1 GB) pre vysokorýchlostné siete alebo siete s veľkým oneskorením, pomocou násobiteľa oznámeného počas nadväzovania spojenia (SYN/SYN-ACK).
- "Syndróm úzkeho okna" (Slim Window): situácia, keď sa veľkosť okna stáva veľmi malá, čo môže viesť k neefektívnemu prenosu dát.
- Nulové okno: Ak je buffer príjemcu úplne zaplnený, veľkosť okna je oznámená ako 0. Odosielateľ musí zastaviť prenos dát, okrem segmentov Keep-Alive (ak je možnosť povolená), a znovu odoslať posledný segment, aby požiadal o aktualizáciu veľkosti okna.
// Príklad TCP hlavičky, kde je uvedená veľkosť okna
// (pole "Window Size")
// Zdrojový port: 12345
// Cieľový port: 80
// Číslo sekvencie: 1000
// Číslo potvrdenia: 2000
// Offset dát: 20 bajtov (5 slov)
// Rezervované: 0
// Vlajky: [ACK, PSH]
// Veľkosť okna: 65535 // Maximálna veľkosť okna bez škálovania
// Kontrolný súčet: 0xABCD
// Ukazovateľ urgentného: 0