Middle
Mit tud a TCP-ablakról?
sobes.tech MI
Válasz az MI-től
TCP-ablak (vagy TCP fogadóablak) egy adatfolyam-ellenőrző mechanizmus a TCP protokollban. Meghatározza az adatmennyiséget, amit a küldő küldhet anélkül, hogy várna a fogadótól (ACK) megerősítésre. Az ablak mérete dinamikusan alkalmazkodik, megakadályozva a fogadó buffer túlcsordulását és szabályozva az átvitel sebességét.
Fő pontok:
- Áramlásvezérlés: A fő funkció az, hogy megakadályozza, hogy a küldő gyorsabban küldjön adatokat, mint a fogadó képes feldolgozni.
- Ablak mérete: Minden TCP szegmensben ("Window Size" mezőben) a fogadó jelenti be, és megmutatja, hány bájtot hajlandó elfogadni, a következő várt bájtól kezdve.
- Dinamikus: Az ablak mérete a kapcsolat során változhat a fogadó buffer terheltségétől függően.
- Fogadó buffer: A tényleges ablakméret a fogadó oldalán lévő fogadó buffer méretével korlátozott.
- Ablak skálázás (Window Scaling): TCP opció, amely lehetővé teszi nagyobb ablakok (akár 1 GB) használatát nagy sebességű vagy magas késleltetésű hálózatokon, a kapcsolat létrehozásakor (SYN/SYN-ACK) bejelentett szorzóval.
- "Szűk ablak" szindróma (Slim Window): Olyan helyzet, amikor az ablak mérete nagyon kicsi lesz, ami hatékonytalan adatátvitelhez vezethet.
- Nulla ablak: Ha a fogadó bufferje teljesen megtelt, az ablak méretét 0-ként jelentik be. A küldőnek le kell állítania az adatátvitelt, kivéve a Keep-Alive szegmenseket (ha az opció be van kapcsolva), és újra kell küldenie az utolsó szegmenst az ablak méretének frissítéséhez.
// TCP fejléc példája, ahol az ablak mérete meg van adva
// ("Window Size" mező)
// Forrás port: 12345
// Célport: 80
// Sorszám: 1000
// Acknowledgment szám: 2000
// Adatmódosítás: 20 bájt (5 szó)
// Foglalt: 0
// Zászlók: [ACK, PSH]
// Ablak mérete: 65535 // Maximális ablak méret skálázás nélkül
// Ellenőrző összeg: 0xABCD
// Sürgős mutató: 0