Hvad er Silly Window Syndrome - Forklaring og forebyggelse

Indholdsfortegnelse:

Video: Hvad er Silly Window Syndrome - Forklaring og forebyggelse

Video: Hvad er Silly Window Syndrome - Forklaring og forebyggelse
Video: Windows 8 how to use a second screen 2024, Marts
Hvad er Silly Window Syndrome - Forklaring og forebyggelse
Hvad er Silly Window Syndrome - Forklaring og forebyggelse
Anonim

Data overføres via netværket og internettet ved hjælp af TCP / IP-protokol. TCP / IP er ikke perfekt, men er lettere at implementere i forhold til andre protokoller, der er teoretiseret til datakommunikation … som f.eks. ISO OSI-modellen. Som med enhver teknisk ting har TCP / IP også nogle fejl Silly Window Syndrome er en skabelse af en af disse fejl. For at forstå, hvad der er Silly Window Syndrome eller SWS, skal du først forstå den underliggende mekanisme for datakommunikation i TCP / IP.

Silly Window Syndrome

Image
Image

Forstå vinduet og dets størrelse

Når to punkter kommunikerer under TCP / IP, involverer det en anerkendelsesmekanisme. Denne anerkendelsesmekanisme er, hvad der forårsager Silly Window Syndrome som forklaret yderligere. Punkter kan referere til to computere, klient og server mv.

SWS is caused by the receiver advancing the right window edge whenever it has any new buffer space available to receive data and by the sender using any incremental window, no matter how small, to send more data. The result can be a stable pattern of sending tiny data segments, even though both sender and receiver have a large total buffer space for the connection, says MSDN.

Når en computer, siger A, sender en datapakke til en anden computer B, skal sidstnævnte anerkende og svare, at den modtog datapakken. Sammen med bekræftelsen skal den også sende størrelsen af buffer indstillet fra hinanden for den pågældende kommunikationstråd. Dette er generelt antallet af bytes fri for kommunikation.

Så når B siger 100B er tilgængelig til næste besked, er 100B vinduet i Silly Window Syndrome. Det vil sige, det er bufferstørrelsen. Med sin egen fejl kan TCP / IP-mekanismen reducere bufferstørrelsen for hver kommunikation / data, der kommer fra A. Det vil sige, når A sender en besked, antager B, at bufferstørrelsen er reduceret og sender et mindre antal. Vinduestørrelsen holder således reduceret, og på et tidspunkt standser kommunikationen bare, da B sender 0B som vinduestørrelse.

Hvordan virker dumt vinduessyndrom

Ifølge ovenstående eksempel på A og B, hvis B sender 1000B som vinduestørrelse, vil A dele det i to 500B og sende to pakker på 500B. Efter modtagelse af første pakke vil B sende et bekræftelsesmeddelelse 500B er tilgængeligt for vinduet, da den anden pakke endnu ikke skal modtages. Et antager 500B er vinduets størrelse og sender derfor to pakker på 250B. Mens i B, 500B er brugt og 500 er lige modtaget, vil den sende 0B som ledig. På dette tidspunkt antager A, at der ikke findes vinduer, selvom det kan ske, at bufferen er tom, da processoren har brugt dataene der. En vil stadig sende en mindre pakke for at se om et vindue er tilgængeligt. Hvis indholdet af buffer ved B endnu ikke er fjernet, vil det stadig modtage 0 som respons / bekræftelse.

Således fortsætter vinduets størrelse med at reducere, da B sender bekræftelse hver gang den modtager en pakke fra A. Denne størrelse er normalt mindre end tidligere bekræftelse, da B modtager datapakker i dele. Der ville ikke være noget problem, hvis A kunne sende en pakke stort nok til at dække bufferstørrelsen på B ad gangen. Men det vil kræve yderligere mekanismer og dermed dumme vinduessyndrom. Kommunikationen stopper efter A modtager 0 to eller tre gange.

Sådan forebygger du Silly Window Syndrome (SWS)

Der er en simpel algoritme, der skal implementeres for at slippe af med SWS. Ved modtagelse af initialpakke sender B halvdelen af det virkelig ledige rum som vinduet. Det vil gøre A send mindre pakker. Når pakkerne bliver for mindre, sender B derfor den samlede bufferstørrelse, så A kan begynde at sende større databyte igen.

Med andre ord, hvis 1000B er til rådighed, sender B 500B som bekræftelse. Derfor sender A 250B x 2 pakker. Til dette modtager A 100B som bekræftelse. Når den modtager 50B pakke, sender B 1000B - 50B til A. Det gør hele samtalen operationel igen. Dette kan medføre en lille forsinkelse i behandlingen, men vil forhindre, at dumme vinduessyndrom forekommer og stoppe hele samtalen.

Sammenfattende er SWS baseret på den bufferstørrelse, der er tilgængelig på modtageren, og den antagne størrelse, der er beregnet af afsenderen. For at forhindre SWS introduceres en forsinkelse, og bevidst mindre vinduestørrelse gengives frem til pakkestørrelsen bliver for lille. Derefter beskriver modtageren faktisk tilgængelig vinduestørrelse. Hele processen fortsætter med at gentage, indtil kommunikationen er færdig.

Selvom jeg muligvis har brugt ordvinduet og bufferen interchangeably. Jeg mener ikke nogen forskel mellem dem. I SWS-studier er buffer et vindue.

Hvis du har brug for flere oplysninger, findes der en detaljeret forklaring her på tcpipguide.com.

Anbefalede: