Sobes.tech
Middle

Ką galite pasakyti apie TCP langą?

sobes.tech AI

Atsakymas iš AI

TCP langas (arba TCP priėmimo langas) — tai duomenų srauto valdymo mechanizmas TCP protokole. Jis nustato duomenų kiekį, kurį siuntėjas gali perduoti, nelaukiant patvirtinimo iš gavėjo (ACK). Langelio dydis dinamiškai prisitaiko, užkertant kelią gavėjo buferio perpildymui ir valdant perdavimo greitį.

Pagrindiniai punktai:

  • Srauto valdymas: Pagrindinė funkcija - neleisti siuntėjui siųsti duomenų greičiau, nei gali apdoroti gavėjas.
  • Langelio dydis: Nustatomas TCP segmento "Window Size" lauke ir nurodo, kiek baitų gavėjas yra pasiruošęs priimti, pradedant nuo kito laukiamo baito.
  • Dinamiškumas: Langelio dydis gali keistis ryšio metu, priklausomai nuo gavėjo buferio apkrovos.
  • Priėmimo buferis: Faktinis langelio dydis yra ribojamas gavėjo priėmimo buferio dydžio.
  • Langelio mastelio keitimas (Window Scaling): TCP parinktis, leidžianti naudoti didesnius langelius (iki 1 GB) aukšto greičio tinklams arba didelės delsos tinklams, naudojant daugyklėlę, paskelbtą ryšio nustatymo metu (SYN/SYN-ACK).
  • "Slim Window" sindromas: Situacija, kai langelio dydis tampa labai mažas, kas gali lemti neefektyvų duomenų perdavimą.
  • Zero Window: Jei gavėjo buferis yra visiškai užpildytas, langelio dydis yra paskelbtas kaip 0. Siuntėjas turi sustabdyti duomenų perdavimą, išskyrus Keep-Alive segmentą (jei parinktis įjungta), ir pakartotinai siųsti paskutinį segmentą, kad būtų atnaujintas langelio dydis.
// TCP antraštės pavyzdys, kuriame nurodytas langelio dydis
// ("Window Size" laukas)
// Šaltinio prievadas: 12345
// Tikslinio prievado numeris: 80
// Sekos numeris: 1000
// Patvirtinimo numeris: 2000
// Duomenų nuoroda: 20 baitų (5 žodžiai)
// Rezervuotas: 0
// Žymės: [ACK, PSH]
// Langelio dydis: 65535 // didžiausias dydis be mastelio
// Patikrinimas: 0xABCD
// Skubus rodyklė: 0