Hvad er Silly Window Syndrome - Forklaring og forebyggelse

Data overføres over netværket og internettet(Internet) ved hjælp af TCP/IP Protocol . TCP / TCP/IP er ikke perfekt, men er nemmere at implementere sammenlignet med andre protokoller, der er teoretiseret til datakommunikation... såsom ISO OSI - modellen. Som med enhver teknisk ting, har TCP/IP også nogle fejl, og 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

fjollet vindue syndrom

Forstå vinduet og dets størrelse

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

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, f.eks. A, sender en datapakke til en anden computer B, skal denne anerkende og svare, at den har modtaget datapakken. Sammen med bekræftelsen skal den også sende størrelsen på bufferen, der er adskilt for den kommunikationstråd. Dette er generelt antallet af bytes, der er frigivet til kommunikation.

Så når B siger, at 100B er tilgængelig for den næste besked, er 100B vinduet i Silly Window Syndrome . Det vil sige, at 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. Således bliver vinduesstørrelsen ved med at blive reduceret, og på et tidspunkt stopper kommunikationen bare, da B sender 0B som vinduesstørrelse.

Hvordan virker Silly Window Syndrome

Ifølge ovenstående eksempel på A og B, hvis B sender 1000B som vinduesstørrelse, vil A opdele det i to 500B og sende to pakker på 500B. Efter modtagelse af den første pakke vil B sende en bekræftelse, der siger, at 500B er tilgængelig for vinduet, da den anden pakke endnu ikke er modtaget. A antager, at 500B er vinduesstørrelsen og sender derfor to pakker på 250B. Mens der ved B bruges 500B, og 500 lige er modtaget, vil den sende 0B som tilgængelig. På dette tidspunkt vil A antage, at intet vindue er tilgængeligt, selvom det kan ske, at bufferen er tom, da processoren brugte dataene der. A vil stadig sende en mindre pakke for at se, om et vindue er tilgængeligt. Hvis indholdet af bufferen ved B endnu ikke er fjernet, vil den stadig modtage 0 som svar/bekræftelse.

Vinduesstørrelsen bliver således ved med at blive mindre, da B sender en bekræftelse, hver gang den modtager en pakke fra A. Denne størrelse er normalt mindre end den tidligere bekræftelse, da B modtager datapakker i dele. Der ville ikke være noget problem, hvis A kunne sende en pakke stor nok til at dække bufferstørrelsen på B ad gangen. Men at det ville kræve yderligere mekanismer og dermed Silly Window Syndrome . Kommunikationen stopper, efter at A har modtaget 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 . Efter at have modtaget den indledende pakke, sender B halvdelen af ​​den virkelig tilgængelige plads som vinduet. Det vil få A til at sende mindre pakker. Når pakkerne bliver for mindre, sender B derfor den samlede bufferstørrelse, så A kan begynde at sende større databytes igen.

Med andre ord, hvis 1000B er tilgængelig, sender B 500B som bekræftelse. Derfor sender A 250B x ​​2 pakker. For dette modtager A 100B som kvittering. Når den modtager 50B pakke, sender B 1000B – 50B til A. Det gør hele samtalen operationel igen. Dette kan forårsage en lille forsinkelse i behandlingen, men vil forhindre Silly Window Syndrome i at opstå og stoppe hele samtalen.

For at opsummere er SWS baseret på den bufferstørrelse, som er tilgængelig for modtageren, og den antagede størrelse beregnet af afsenderen. For at forhindre SWS indføres en forsinkelse, og en bevidst mindre vinduesstørrelse gentages, indtil pakkestørrelsen bliver for lille. Så afslører modtageren faktisk tilgængelig vinduesstørrelse. Hele processen bliver ved med at gentage sig, indtil kommunikationen er fuldført.

Selvom jeg måske har brugt ordene vindue og buffer i flæng. Jeg mener ikke nogen forskel på dem. I SWS- undersøgelser er bufferen vinduet.



About the author

Efter næsten 20 år i teknologibranchen har jeg lært meget om Apple-produkter, og hvordan man kan tilpasse dem til mine behov. Især ved jeg, hvordan jeg bruger iOS-platformen til at skabe brugerdefinerede udseender og interagere med mine brugere gennem applikationspræferencer. Denne oplevelse har givet mig værdifuld indsigt i, hvordan Apple designer sine produkter, og hvordan man bedst kan forbedre deres brugeroplevelse.



Related posts