vindu i et datanettverk er en teknikk som brukes til å optimalisere dataoverføring mellom enheter ved å dele data i mindre, mer håndterbare enheter kalt vinduer. Både avsender- og mottaksenheten må støtte vindu for at den skal fungere effektivt.
Slik fungerer vinduet:
1. Windows med fast størrelse :Både sende- og mottaksenheter bestemmer en vindusstørrelse, vanligvis spesifisert som et antall datapakker eller byte. Dette definerer den maksimale mengden data som kan overføres i ett vindu.
2. Avsenderens vindu :Avsenderenheten deler dataene i biter av vindusstørrelse og sender disse bitene sekvensielt. Hvert vindu er nummerert for identifikasjon.
3. Mottakerens vindu :Mottakeren opprettholder vinduet sitt, som til å begynne med starter i samme posisjon som avsenderens vindu. Mottakeren sender "bekreftelser" til avsenderen for hvert mottatt vindu.
4. Flytkontroll :Mottakerens vindusstørrelse fungerer som et signal for senderen. Hvis mottakerens vindu er fullt (bufferen er opptatt), slutter den å bekrefte nye vinduer, noe som får avsenderen til å stoppe overføringen midlertidig inntil mottakerens vindu blir tilgjengelig. Dette forhindrer at mottakeren overveldes med data den ikke kan behandle raskt nok.
5. Skyvevinduer :Etter hvert som mottakeren bekrefter mottatte data, skyves både sender- og mottakervinduer gradvis eller beveger seg fremover til åpne områder for ytterligere vinduer som kan sendes og behandles.
6. Sekvensnummerering :Hver pakke i et vindu er tildelt et sekvensnummer, slik at begge enhetene kan holde styr på databiter og identifisere eventuelle hull, dupliseringer eller tap.
7. Reoverføringer og feilhåndtering :Hvis avsenderen ikke mottar en bekreftelse for et spesifikt vindu innen et angitt tidsavbrudd, sender den det tilsvarende vinduet på nytt. Windowing, kombinert med sekvensnummerering, hjelper til med effektiv feilhåndtering.
Windowing optimerer datakommunikasjonen ved å forhindre unødvendig dataoverføring når mottaksenheten ikke er klar eller har begrensede behandlingsmuligheter. Det gir også bedre flytkontroll, feilhåndtering og utnyttelse av tilgjengelig nettverksbåndbredde.