Dažādi

Kas ir dumjš loga sindroms - skaidrojums un novēršana

Kas ir dumjš loga sindroms - skaidrojums un novēršana

Dati tiek pārsūtīti tīklā un internetā, izmantojot TCP / IP protokols. TCP / IP nav ideāls, taču to ir vieglāk ieviest salīdzinājumā ar citiem protokoliem, kas teorētiski izstrādāti datu saziņai ... piemēram, ISO OSI modelis. Tāpat kā jebkurai tehniskai lietai, arī TCP / IP ir daži trūkumi un Dumjš loga sindroms ir viena no šiem trūkumiem radīšana. Lai saprastu, kas ir Silly Window sindroms vai SWS, vispirms jums būs jāsaprot pamatā esošais datu komunikācijas mehānisms TCP / IP.

Dumjš loga sindroms

Izpratne par logu un tā lielumu

Kad divi punkti sazinās ar TCP / IP, tas ietver apstiprināšanas mehānismu. Šis atzīšanas mehānisms ir tas, kas izraisa Silly Window sindromu, kā paskaidrots tālāk. Punkti var attiekties uz diviem datoriem, klientu un serveri utt.

SWS izraisa uztvērējs, virzot labo loga malu ikreiz, kad tam ir pieejama jauna bufera vieta datu saņemšanai, un sūtītājs, izmantojot jebkuru papildu logu, neatkarīgi no tā, cik mazs, lai nosūtītu vairāk datu. Rezultāts var būt stabils sīku datu segmentu nosūtīšanas modelis, lai gan gan sūtītājam, gan uztvērējam ir liela kopējā bufera vieta savienojumam, saka MSDN.

Kad dators, teiksim, A, nosūta datu paketi uz citu datoru B, pēdējam ir jāapstiprina un jāatbild, ka tas ir saņēmis datu paketi. Kopā ar apstiprinājumu tai ir jānosūta arī bufera lielums, kas noteikts šim sakaru pavedienam. Parasti tas ir baitu skaits, kas ir atbrīvots saziņai.

Tātad, kad B saka, ka 100B ir pieejams nākamajam ziņojumam, 100B ir logs Silly Window sindromā. Tas ir, tas ir bufera lielums. Ar savu trūkumu TCP / IP mehānisms var samazināt bufera lielumu katram sakaram / datiem, kas nāk no A. Tas ir, ikreiz, kad A sūta ziņojumu, B pieņem, ka bufera izmērs ir samazināts, un nosūta mazāku numuru. Tādējādi loga izmērs tiek samazināts un vienā brīdī komunikācija vienkārši apstājas, jo B sūta 0B kā loga izmēru.

Kā darbojas dumjš logu sindroms

Saskaņā ar iepriekš minēto A un B piemēru, ja B sūta 1000B kā loga izmēru, A to sadalīs divās 500B un nosūtīs divas 500B paketes. Saņemot pirmo paketi, B nosūtīs apstiprinājumu, sakot, ka logam ir pieejams 500B, jo otra pakete vēl nav saņemta. Pieņem, ka loga lielums ir 500B, un attiecīgi nosūta divas 250B pakas. Kamēr B, 500B tiek izmantots un 500 ir tikko saņemts, tas nosūtīs 0B kā pieejams. Šajā brīdī A pieņems, ka logs nav pieejams, lai gan var gadīties, ka buferis ir tukšs, jo procesors tur izlietoja datus. A joprojām nosūtīs mazāku paketi, lai redzētu, vai ir pieejams kāds logs. Ja bufera saturs B vietā vēl nav noņemts, tas joprojām saņems 0 kā atbildi / apstiprinājumu.

Tādējādi loga izmērs turpina samazināties, jo B sūta apstiprinājumu katru reizi, kad saņem paketi no A. Šis izmērs parasti ir mazāks nekā iepriekšējais apstiprinājums, jo B saņem datu paketes pa daļām. Nebūtu problēmu, ja A varētu nosūtīt pietiekami lielu paketi, lai vienlaikus nosegtu B bufera lielumu. Bet tas prasītu papildu mehānismus un līdz ar to arī Silly Window sindromu. Sakari apstājas, kad A divas vai trīs reizes saņem 0.

Kā novērst Silly Window sindromu (SWS)

Lai atbrīvotos no SWS, ir jāievieš vienkāršs algoritms. Saņemot sākotnējo paketi, B kā logu nosūta pusi patiešām pieejamās vietas. Tas liks A sūtīt mazākas paketes. Līdz ar to, kad paketes kļūst pārāk mazas, tad B nosūta kopējo bufera izmēru, lai A varētu atsākt sūtīt lielākus datu baitus.

Citiem vārdiem sakot, ja pieejams 1000B, B nosūta 500B kā apstiprinājumu. Attiecīgi A sūta 250B x ​​2 paketes. Par to A saņem 100B kā apstiprinājumu. Saņemot 50B paketi, B nosūta A 1000B - 50B. Tas padara visu sarunu atkal darbspējīgu. Tas var izraisīt nelielu kavēšanos ar apstrādi, bet novērsīs Silly Window sindroma rašanos un pārtrauks visu sarunu.

Rezumējot, SWS pamatā ir saņēmējam pieejamais bufera lielums un sūtītāja aprēķinātais pieņemamais lielums. Lai novērstu SWS, tiek ieviesta aizkave un apzināti mazāks loga izmērs tiek mainīts, līdz pakešu lielums kļūst pārāk mazs. Tad saņēmējs atklāj faktiski pieejamo loga izmēru. Viss process turpinās atkārtoties, līdz saziņa ir pabeigta.

Lai gan es, iespējams, lietoju vārdus logs un buferis aizstājami. Es nedomāju, ka starp viņiem būtu atšķirība. SWS pētījumos buferis ir logs.

Ja jums nepieciešama plašāka informācija, šeit tcpipguide ir pieejams detalizēts paskaidrojums.com.

Top 5 spēļu tveršanas kartes
Mēs visi esam redzējuši un mīlējuši straumēšanas spēles pakalpojumā YouTube. PewDiePie, Jakesepticye un Markiplier ir tikai daži no labākajiem spēlētā...
Kā izstrādāt spēli Linux
Pirms desmit gadiem maz Linux lietotāju varētu paredzēt, ka viņu iecienītā operētājsistēma kādu dienu būs populāra spēļu platforma komerciālām videosp...
Komerciālo spēļu dzinēju atvērtā koda porti
Bezmaksas, atvērtā koda un starpplatformu spēļu dzinēju atpūtu var izmantot, lai spēlētu vecos, kā arī dažus no diezgan nesenajiem spēļu nosaukumiem. ...