Što je Silly Window sindrom - objašnjenje i prevencija

Sadržaj:

Što je Silly Window sindrom - objašnjenje i prevencija
Što je Silly Window sindrom - objašnjenje i prevencija
Anonim

Podaci se prenose putem mreže i Interneta pomoću programa TCP / IP protokol, TCP / IP nije savršen, ali je lakše implementirati u usporedbi s drugim protokolima koji su teoretizirani za podatkovnu komunikaciju … kao što je ISO OSI model. Kao i svaka tehnička stvar, TCP / IP ima i neke nedostatke Silly Window sindrom je stvaranje jednog od tih nedostataka. Da biste razumjeli što je Silly Window Syndrome ili SWS, prvo ćete morati razumjeti temeljni mehanizam podatkovne komunikacije u TCP / IP.

Silly Window sindrom

Image
Image

Razumijevanje prozora i njegove veličine

Kada dvije točke komuniciraju pod TCP / IP, to uključuje mehanizam priznavanja. Ovaj mehanizam priznavanja je ono što uzrokuje Silly Window sindrom kao što je objašnjeno dalje. Bodovi se mogu odnositi na dva računala, klijenta i poslužitelja itd.

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.

Kada računalo, recimo A, šalje paket podataka drugom računalu B, potonji mora potvrditi i odgovoriti da je primio paket podataka. Uz priznanje, ona također mora poslati veličinu međuspremnika za tu komunikacijsku nit. Ovo je općenito broj bajtova oslobođen za komunikaciju.

Dakle, kada B kaže 100B je dostupan za sljedeću poruku, 100B je prozor u Silly Window sindromu. To jest, to je veličina međuspremnika. TCP / IP mehanizam može smanjiti veličinu međuspremnika za svaku komunikaciju / podatke koji dolaze iz A. To jest, kad god A šalje poruku, B pretpostavlja da je veličina međuspremnika smanjena i šalje manji broj. Tako veličina prozora se smanjuje i na točki, komunikacija se samo zaustavlja dok B šalje 0B kao veličinu prozora.

Kako funkcionira sindrom blesavog prozora

Prema gornjem primjeru A i B, ako B pošalje 1000B kao veličinu prozora, A će ga podijeliti na dva 500B i poslati dva paketa od 500B. Po primitku prvog paketa, B će poslati priznanje, rekavši da 500B je dostupan za prozor jer još treba primiti drugi paket. A pretpostavlja da je veličina prozora 500B i time dva paketa od 250B. Dok je na B, 500B se koristi i 500 je upravo primljena, ona će poslati 0B kao dostupnu. U ovom trenutku, A neće preuzeti nikakav prozor, no može se dogoditi da je međuspremnik prazan dok je procesor iskoristio podatke tamo. A i dalje će poslati manji paket kako bi vidjeli je li dostupan neki prozor. Ako sadržaj međuspremnika u B još nije uklonjen, on će i dalje primiti 0 kao odgovor / potvrdu.

Dakle, veličina prozora se smanjuje dok B šalje priznanje svaki put kad prima paket od A. Ova je veličina obično manja od prijašnjeg priznavanja dok B prima pakete podataka u dijelovima. Ne bi bilo problema da A može poslati paket koji je dovoljno velik da pokrije veličinu međuspremnika na B po vremenu. Ali to bi zahtijevalo dodatne mehanizme i stoga Silly Window Syndrome. Komunikacija se zaustavi nakon što A prima 0 dva ili tri puta.

Kako spriječiti Silly Window Syndrome (SWS)

Postoji jednostavan algoritam koji će se provesti kako bi se riješio SWS. Po primitku početnog paketa, B šalje pola stvarno dostupnog prostora kao prozor. To će učiniti poslati manje pakete. Prema tome, kada paketi postanu previše manji, tada B šalje ukupnu veličinu međuspremnika tako da A može ponovno početi slati veće bajtove podataka.

Drugim riječima, ako je 1000B dostupan, B šalje 500B kao potvrdu. Prema tome, A šalje 250B x 2 paketa. Za ovo, A prima 100B kao potvrdu. Kada prima 50B paket, B šalje 1000B - 50B u A. To čini cijeli razgovor ponovno. To bi moglo potaknuti malo kašnjenja u obradi, ali će spriječiti Silly Window sindrom da se dogodi i zaustavlja cijeli razgovor.

Ukratko, SWS se temelji na veličini međumemorije dostupnom na primatelju i pretpostavljenoj veličini koju izračunava pošiljatelj. Kako bi spriječili SWS, uveo se kašnjenje i promišljeno se mijenja veličina prozora, sve dok veličina paketa ne postane premalena. Zatim primatelj otkriva stvarno dostupnu veličinu prozora. Cijeli postupak se nastavlja dok se komunikacija ne završi.

Iako sam možda koristio riječi prozor i međuspremnik. Ne znače nikakvu razliku među njima. U SWS studijama, buffer je prozor.

Ako trebate više informacija, ovdje možete pronaći detaljno objašnjenje na tcpipguide.com.

Preporučeni: