Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Sfat
  • Fereastra glisanta. Introducerea dimensiunii ferestrei glisante în calculatorul științific al comerciantului

Fereastra glisanta. Introducerea dimensiunii ferestrei glisante în calculatorul științific al comerciantului

În cazurile în care alte metode de fiabilitate eșuează și pachetele sunt pierdute, se folosesc metode de retransmisie a pachetelor. Aceste metode necesită utilizarea de protocoale orientate spre conexiune.

Pentru a se asigura că este nevoie de retransmitere a datelor, emițătorul numește cadrele trimise și pentru fiecare cadru așteaptă de la receptor o așa-numită confirmare pozitivă (ACK) - un cadru de serviciu care anunță că cadrul original a fost primit și datele din este corect. Pentru a organiza o astfel de numerotare este nevoie de o procedură de conectare logică - oferă un punct de plecare de la care începe numerotarea. Timpul de așteptare pentru chitanță este limitat - la trimiterea fiecărui cadru, emițătorul pornește un cronometru, iar dacă după un timp specificat nu este primită o chitanță pozitivă, cadrul este considerat pierdut. Receptorul, în cazul în care primește un cadru cu date corupte, poate trimite o confirmare negativă (Negative Acknowledgment, NACK) - o indicație explicită că acest cadru trebuie retransmis.

Există două metode de organizare a schimbului de chitanțe: metoda sursei inactiv și metoda ferestrei glisante.

Metoda sursă inactivă necesită ca sursa care trimite cadrul să aștepte o chitanță (pozitivă sau negativă) de la receptor și abia apoi să trimită următorul cadru (sau să îl repete pe cel corupt). Dacă chitanța nu vine în intervalul de timp expirat, atunci cadrul (sau chitanța) este considerat pierdut și transmiterea sa se repetă. În fig. 6.6, dar se poate observa că în acest caz performanța schimbului de date este mai mică decât cea potențial posibilă, deși emițătorul ar putea trimite următorul cadru imediat după trimiterea celui precedent.

mai mult, este obligat să aștepte sosirea unei chitanțe pozitive. (În continuare, în cazul în care acest lucru nu denaturează substanța problemei în discuție, chitanțele pozitive vor fi denumite pur și simplu „chitanțe” pentru concizie.)


Dezavantajele acestei metode de corectare se remarcă mai ales pe canalele de comunicații cu viteză redusă, adică în rețelele teritoriale.

A doua metodă se numește metoda ferestrei glisante. În această metodă, pentru a crește viteza de transfer de date, sursei i se permite să transmită un anumit număr de cadre într-un mod continuu, adică la rata maximă posibilă pentru sursă fără a primi chitanțe pentru aceste pachete. Numărul de pachete care pot fi transmise în acest mod se numește dimensiunea ferestrei. Figura 6.6, b ilustrează aplicarea acestei metode pentru o fereastră de pachete W.

La momentul inițial, când încă nu au fost trimise pachete, fereastra definește gama de pachete cu numere de la 1 la W inclusiv. Sursa începe să trimită pachete și să primească chitanțe ca răspuns. Pentru simplitate, să presupunem că chitanțele sosesc în aceeași secvență ca și pachetele pe care le primesc.

corespund. La momentul t t de la primirea primei chitanțe Kj, fereastra este deplasată cu o poziție, definind un nou interval de la 2 la (W + 1).

Procesele de trimitere a pachetelor și de primire a chitanțelor sunt destul de independente unele de altele. Luați în considerare un moment de timp arbitrar t n când sursa primește o chitanță pentru un pachet numerotat n. Fereastra este deplasată la dreapta și determină intervalul de pachete permis pentru transmisie de la (n + 1) la (W + n). Tot setul de pachete care părăsesc sursa poate fi împărțit în grupurile enumerate mai jos (vezi Fig. 6.6, b).

Pachetele cu numerele de la 1 la η au fost deja trimise și au fost primite chitanțe pentru ele, adică sunt în afara ferestrei din stânga.

Pachetele, care încep cu numărul (η + 1) și se termină cu numărul (W + n), sunt în fereastră și, prin urmare, pot fi trimise fără a aștepta sosirea vreunei chitanțe. Această gamă poate fi împărțită în încă două sub-grupe:

Pachetele cu numere de la (η + 1) la m au fost deja trimise, dar chitanțele pentru acestea nu au fost încă primite;

Pachetele cu numere de la m la (W + n) nu au fost încă trimise, deși nu există nicio interdicție în acest sens.

Toate pachetele cu numere mai mari sau egale cu (W + η + 1) sunt în afara ferestrei din dreapta și, prin urmare, nu pot fi trimise încă.

Deplasarea ferestrei de-a lungul secvenței de numere de pachet este ilustrată în Fig. 6.6, c. Aici t〇 este momentul inițial, tļ și t n sunt momentele de primire a chitanțelor pentru primul și, respectiv, al η-lea pachet. De fiecare dată când sosește o chitanță, fereastra este deplasată spre stânga, dar dimensiunea acesteia nu se modifică și rămâne egală cu W.

Când un pachet este trimis, este setat un timeout la sursă. Dacă în acest timp nu ajunge chitanța pentru pachetul trimis, pachetul (sau o chitanță pentru acesta) este considerat pierdut și pachetul este transmis din nou.

Dacă fluxul de încasări ajunge regulat în toleranța de pachete W, atunci cursul de schimb atinge valoarea maximă posibilă pentru canalul dat și protocolul adoptat.

În unele implementări cu ferestre glisante, receptorul nu este obligat să trimită chitanțe pentru fiecare pachet valid primit. Dacă nu există „goluri” între pachetele care au sosit, atunci receptorul trebuie să trimită doar o chitanță pentru ultimul pachet primit, iar această chitanță va indica expeditorului că toate pachetele anterioare au sosit și în siguranță.

Alte metode folosesc chitanțe negative. Există două tipuri de chitanțe negative - chitanțe de grup și chitanțe selective. Chitanța de grup conține numărul pachetului, începând de la care este necesar să se repete transmiterea tuturor pachetelor trimise de emițător în rețea. O confirmare selectivă negativă necesită o singură retransmisie de pachet.

Metoda ferestrei glisante are doi parametri care pot afecta în mod semnificativ eficiența transmisiei de date între emițător și receptor - dimensiunea ferestrei și intervalul de timp de așteptare pentru primire. Alegerea timeout-ului nu depinde de fiabilitatea rețelei, ci de întârzierile în transmiterea pachetelor de către rețea.

În rețelele fiabile, în care pachetele sunt distorsionate și rareori pierdute, pentru a crește rata de schimb de date, dimensiunea ferestrei trebuie mărită, deoarece transmițătorul va trimite pachete cu mai puține pauze. În rețelele nesigure, dimensiunea ferestrei ar trebui redusă, deoarece cu pierderi și distorsiuni frecvente de pachete, volumul pachetelor transmise secundar prin rețea crește brusc, ceea ce înseamnă că lățimea de bandă a rețelei este în mare parte irosită, iar lățimea de bandă utilă a rețelei scade.

Dimensiunea ferestrei poate fi un parametru constant al algoritmului ferestrei glisante. În acest caz, este selectat când se stabilește conexiunea și nu se modifică în timpul sesiunii. Există, de asemenea, versiuni adaptive ale algoritmului, când dimensiunea ferestrei se modifică în timpul sesiunii în conformitate cu starea curentă a rețelei și nodul destinație.

Fiabilitatea rețelei în astfel de algoritmi este determinată de semne de pierdere a pachetelor, cum ar fi expirarea unui timeout pentru o primire pozitivă sau sosirea unei chitanțe duplicate pentru un anumit pachet. Dublatul indică faptul că nodul destinație a expirat în așteptarea următorului pachet, iar nodul solicită să trimită acest pachet a doua oară. Când apar astfel de evenimente, nodul expeditor reduce dimensiunea ferestrei, încercând să găsească modul optim de transfer de date.

Fereastra poate fi redimensionată și de către nodul destinație. Motivul scăderii dimensiunii ferestrei este supraîncărcarea nodului destinație, care nu are timp să proceseze pachetele primite. Vom reveni la această problemă mai târziu, în secțiunea Feedback din Capitolul 7, când vom explora tehnicile pentru a face față congestiei.

Există, de asemenea, implementări ale metodei ferestrei glisante în care numărul de octeți, mai degrabă decât numărul de pachete, este utilizat ca dimensiune a ferestrei. Cel mai faimos exemplu al acestei abordări este TCP.

În cazul general, metoda ferestrei glisante este mai dificil de implementat decât metoda sursă inactivă, deoarece transmițătorul trebuie să stocheze în buffer toate pachetele pentru care încă nu au fost primite chitanțe pozitive. În plus, atunci când utilizați această metodă, este necesar să monitorizați mai mulți parametri ai algoritmului: dimensiunea ferestrei W, numărul pachetului pentru care a fost primită chitanța, numărul pachetului care poate fi încă transmis înainte de a primi un nou chitanta.

Mai multe despre subiectul Retransmisie și fereastră glisantă:

  1. § 29 Transferul și transferul drepturilor în temeiul obligațiilor. - Construcția romană a dreptului de transfer. - Facilitarea transmiterii cu cea mai recentă legislație. - Inscripția de transfer. - Restricții de transfer. - Acțiune de transfer. - Responsabilitatea transmițătorului și drepturile cumpărătorului. - Intrarea în dreptul creditorului sau subrogarea. - Legea rusă a transmiterii. - Transferul scrisorilor de împrumut. - Transferul creanțelor către creditori.

TCP folosește tehnologia ferestrei glisante pentru a specifica numărul de segmente pe care le poate primi receptorul, transmise de la numărul de confirmare. Această secțiune acoperă Fereastra glisantă TCP.

Când utilizați o fereastră de dimensiune fixă, dimensiunea ferestrei este determinată o dată și nu se modifică în viitor. Când se folosește o fereastră glisantă, dimensiunea ferestrei este negociată la începutul transmisiei și poate fi modificată dinamic pe parcursul întregii sesiuni de comunicare TCP. O fereastră glisantă ajută la utilizarea lățimii de bandă mai eficient, deoarece o dimensiune mai mare a ferestrei permite transmiterea mai multor date înainte de a primi o confirmare. De asemenea, dacă receptorul reduce dimensiunea ferestrei la 0, atunci această acțiune oprește efectiv transmisia ulterioară de date până când este trimisă o valoare a ferestrei mai mare decât 0.

În figură, dimensiunea ferestrei este 3. Emițătorul poate transmite trei segmente către receptor. Din acest moment, expeditorul așteaptă o confirmare de la destinatar. Odată ce receptorul confirmă primirea a trei segmente de date, expeditorul poate transmite următoarele trei segmente. Cu toate acestea, atunci când posibilitatea de a primi segmente scade, receptorul va reduce dimensiunea ferestrei, astfel încât datele primite să nu provoace o depășire a tamponului și segmentele să fie aruncate.

Fiecare confirmare trimisă de receptor conține dimensiunea declarată a ferestrei, exprimată în numărul de octeți pe care receptorul este de acord să-i accepte (în caz contrar, dimensiunea ferestrei). Acest lucru permite ferestrei să se extindă sau să se contracte după cum este necesar pentru a controla dimensiunea tamponului și rata la care receptorul poate procesa datele.

TCP acceptă un parametru special, Dimensiunea ferestrei de congestionare (CWS), care are de obicei aceeași dimensiune ca fereastra receptorului, dar CWS este înjumătățit când segmentele încep să se piardă. Pierderea segmentelor este percepută ca o congestie a rețelei. TCP invocă un mecanism sofisticat de rollback și repornește algoritmii pentru a evita congestionarea în continuare a rețelei.

PROCESUL DE APLICARE CU FERASTRĂ CULISANTE.

Acțiune

Un comentariu

Expeditorul și destinatarul schimbă valorile inițiale ale ferestrei: în acest exemplu, dimensiunea ferestrei este de 3 segmente înainte de a primi o confirmare.

Acest lucru se întâmplă în timpul procedurii de stabilire a conexiunii.

Expeditorul trimite segmentele 1, 2 și 3 către receptor

După trimiterea segmentului 3, expeditorul va aștepta o confirmare de la destinatar.

Receptorul primește segmentele 1 și 2, dar acum setează dimensiunea ferestrei la 2

Receptorul poate fi lent din multe motive, cum ar fi o unitate centrală de procesare (CPU) care caută o valoare într-o bază de date sau descărcarea unui fișier grafic mare.

Expeditorul transmite segmentele 3 și 4.

După trimiterea a două segmente, expeditorul așteaptă sosirea unei confirmări de la destinatar.

Receptorul recunoaște segmentele 3 și 4, dar continuă să mențină dimensiunea ferestrei de 2.

Receptorul confirmă recepția cu succes a segmentelor anterioare 3 și 4, necesitând transmiterea segmentului 5.

MAXIMIZAREA CAPACITĂȚII DE DEBUT.

Algoritmul de ferestre controlează rata de transfer de date. Acest lucru reduce la minimum cantitatea de date aruncate, deoarece „se pierde timp suplimentar la transferul datelor pierdute și, prin urmare, eficiența este crescută”.

SINCRONIZARE GLOBALĂ.

Pe de altă parte, algoritmul ferestrei de congestie determină sincronizarea generală a operațiunii TCP, care afectează negativ eficiența. Sincronizarea partajată are loc atunci când toți expeditorii folosesc aceiași algoritmi și acțiunile expeditorilor sunt aceleași. Expeditorii percep aceeași supraîncărcare în același mod și stabilesc rollback pentru aceeași perioadă de timp. Acum, din moment ce toți expeditorii folosesc aceiași algoritmi, ei vor continua să transmită în același interval de timp, ceea ce, la rândul său, va duce la aglomerație ondulată.

Ce este o fereastră glisantă?

TCP nu trimite un pachet, așteptând o confirmare pentru a trimite următorul. În schimb, folosește principiul ferestrei glisante. Acest principiu vă permite să trimiteți mai multe mesaje și abia apoi să așteptați confirmarea.

Fereastra glisantă TCP

Ce este un protocol de transport?

Figurat vorbind, TCP impune o fereastră fluxului de date care așteaptă să fie transmise și transmite toate datele care au căzut în fereastră. După ce primește confirmarea livrării tuturor datelor, TCP mută fereastra în aval și transmite următoarele mesaje care intră în ea. Lucrând cu mai multe mesaje simultan, TCP le poate „expune” simultan canalului de rețea și abia apoi aștepta să sosească confirmarea. Metoda ferestrei glisante crește semnificativ performanța conexiunii, precum și eficiența ciclurilor de schimb de mesaje și de confirmare.

Transmiterea mesajelor și confirmările de livrare conform schemei ferestrei glisante.

Emițătorul și receptorul folosesc o fereastră glisantă cu o lățime de trei rafale. Adică, emițătorul trimite mai întâi trei pachete și abia apoi așteaptă să sosească confirmarea. După ce a primit confirmarea livrării celui de-al treilea ultimul pachet, emițătorul poate trimite următoarele trei.

TCP ajustează lățimea de bandă a rețelei prin negocierea anumitor parametri ai fluxului de date cu cealaltă parte. Mai mult, procesul de ajustare are loc pe toată durata conexiunii TCP. În special, reglarea constă în redimensionarea ferestrei glisante. Dacă rețeaua nu este încărcată puternic și probabilitatea de coliziuni de date este minimă, TCP poate crește dimensiunea ferestrei glisante. Acest lucru crește rata la care datele sunt trimise către canal și face conexiunea mai eficientă pe măsură ce mai multe date trec prin rețea în același timp.

Dacă, dimpotrivă, există o probabilitate mare de coliziune a datelor, TCP reduce dimensiunea ferestrei glisante. Dacă dimensiunea ferestrei glisante este luată egală cu opt pachete pentru traficul de rețea normal, atunci în cele mai proaste condiții, atunci când Internetul este încărcat puternic, dimensiunea acestuia poate fi redusă la cinci. În schimb, atunci când există puține date în rețea, dimensiunea ferestrei poate crește, de exemplu, până la 10-20 de pachete.

Rețineți că diagrama descrisă în paragrafele anterioare a fost oarecum simplificată. De fapt, TCP specifică dimensiunea ferestrei în octeți. Adică, dimensiunea implicită a ferestrei poate fi de câteva mii de octeți, mai degrabă decât opt, zece și doisprezece octeți, ca în exemplul anterior. De obicei, modulul TCP transmite mai multe segmente înainte ca fereastra glisantă să se umple complet. Majoritatea sistemelor de pe Internet setează fereastra implicită la 4096 de octeți. Uneori dimensiunea ferestrei este de 8192 sau 16384 de octeți.

Stratul de transport utilizează serviciile oferite de stratul de rețea:

servicii de selectare a căilor și adresare logică. Aceste servicii Layer 3 oferă conectivitate end-to-end între expeditor și receptor. Acest capitol descrie modul în care stratul de transport reglează fluxul de informații de la emițător la receptor. Stratul de transport are următoarele caracteristici:

Fluxul de date din stratul de transport este o conexiune logică între punctele finale ale rețelei;

- mecanismul ferestrei glisante oferă control și fiabilitate end-to-end a conexiunii, permite urmărirea secvenței numerelor de pachete și a notificărilor;

 așa-numitele porturi(port).

Stiva de straturi de transportTCP/IP

După cum sugerează și numele, stratul de transport al stivei de protocoale TCP / IP este responsabil pentru transportul datelor între aplicațiile dispozitivului de primire și de expediere. Cunoașterea principiilor stratului de transport este un punct cheie care este necesar pentru o înțelegere profundă a tehnologiilor de rețea moderne. Următoarele secțiuni detaliază funcțiile și serviciile unuia dintre cele mai importante straturi ale modelului TCP/IP, transportul.

Introducere în stratul de transport al stiveiTCP/IP

Pentru a descrie al patrulea, transportul, stratul, expresia este adesea folosită calitatea serviciului... UDP, care este discutat în detaliu mai jos, este un nivel de transport și oferă servicii de transport fără conexiune. Cu toate acestea, protocolul principal care operează la acest nivel este TCP, care utilizează un mecanism de stabilire a conexiunii. Principalele funcții ale acestui protocol sunt transportul și controlul fiabil al fluxului de informații de la expeditor la destinatar. Principalele funcții ale stratului de transport sunt de a asigura controlul transmisiei de la capăt la capăt, controlul fluxului printr-un mecanism de fereastră glisantă și garantarea fiabilității livrării prin setarea numerelor secvențiale și utilizarea confirmărilor.

Pentru a înțelege la ce servește fiabilitatea și controlul fluxului, imaginați-vă un străin care vorbește foarte repede. Cel mai probabil, ascultătorul său va trebui uneori să ceară cuvinte individuale (analog al fiabilității transmisiei) și să ceară să vorbească mai încet (analog al unui flux).

Stratul de transport oferă un mijloc pentru transferul fiabil al datelor de la un nod de trimitere la un nod de primire. La acest nivel, se creează o conexiune logică între punctele finale ale rețelei; în plus, sarcinile stratului de transport includ segmentarea și reasamblarea datelor transmise de diverse aplicatii straturile superioare într-un singur flux de date strat de transport. Acest flux oferă transfer de date de la un capăt la altul între punctele finale.

Un flux de date la nivel de transport este o conexiune logică între punctele finale dintr-o rețea; stratul de transport verifică și conectivitatea dintre aplicații. În fig. 11.2 ilustrează funcționarea stratului de transport.

Stratul de transport oferă următoarele funcții:

    segmentarea datelor din aplicațiile de nivel superior;

    managementul comunicațiilor end-to-end;

    transferul de segmente de la un nod final la altul;

    controlul fluxului prin redimensionarea ferestrei;

    asigurarea fiabilității prin atribuirea de numere și utilizarea confirmărilor.

Pentru stratul de transport, rețeaua externă poate fi reprezentată ca un mediu (de obicei reprezentat ca un nor) prin care pachetele de date sunt transmise de la expeditor la destinatar. Acest mediu este responsabil pentru ruta care este optimă pentru un anumit destinatar. Deja în această etapă, puteți înțelege ce rol important joacă routerele în procesul de transmitere a datelor în rețea.

Suita de protocoale TCP/IP constă din două protocoale separate: TCP și IP. IP este un protocol de nivel 3 fără conexiune care permite transmiterea eficientă a datelor printr-o rețea. TCP este un protocol Layer 4, este un serviciu orientat spre conexiune și oferă control al fluxului și, prin urmare, fiabilitate ridicată a transmisiei. Combinația acestor două protocoale permite rezolvarea unei game largi de probleme de transmisie a datelor. Desigur, stiva de protocoale TCP / IP constă din multe alte protocoale, dar TCP și IP sunt principalele. Apropo, întreaga rețea de internet se bazează tocmai pe stiva de protocoale TCP / IP.

Controlul debitului

Atunci când protocolul de transport TCP transmite segmente de date, acesta poate garanta integritatea datelor. Una dintre metodele de a atinge acest obiectiv este Controlul debitului (curgereControl) ceea ce evită problemele asociate cu situațiile în care un nod de la un capăt al unei legături debordează tampoanele unei stații la celălalt capăt. Overflow este o problemă serioasă, deoarece poate duce la pierderea datelor.

Serviciile de transport permit utilizatorilor să solicite transport fiabil de date între nodurile de expediere și de primire. Un mecanism orientat spre conexiune este utilizat pentru a asigura un transfer fiabil de date între sistemele partenere de comunicare. Transportul în siguranță oferă următoarele funcții:

    garantează că expeditorul va primi confirmarea livrării fiecărui segment;

    asigură retrimiterea oricăror segmente pentru care nu a fost primită confirmarea de livrare;

    vă permite să sortați segmentele de la destinație în ordinea corectă;

    previne congestionarea rețelei și controlează congestionarea dacă apare.

Instalare, control și încheiere a sesiunii

În modelul de referință OSI, mai multe aplicații pot folosi aceeași conexiune de transport în același timp. Funcția de transport de date este implementată segment cu segment. Aceasta înseamnă că diferite aplicații pot transmite date pe baza FIFO (primul intrat, primul ieșit). Segmentele pot fi destinate unui singur destinatar sau altora diferiți. Această regulă este uneori denumită mecanismul de multiplexare a dialogului aplicației de nivel superior (Figura 3).

Orez. 3. Diverse aplicații ale stratului superior al modelului OSI utilizează stratul de transport

Una dintre funcțiile principale ale stratului de transport este de a stabili o sesiune de conexiune cu un sistem peer-to-peer. Pentru a începe transferul de date, aplicațiile expeditor și destinatar își informează sistemele de operare să inițializeze conexiunea. Una dintre stații inițiază o conexiune, care trebuie să fie acceptată de cealaltă stație. Modulele sistemului de operare responsabile cu funcționarea protocoalelor comunică între ele prin trimiterea unui mesaj special și verifică posibilitatea transferului de date și pregătirea nodurilor finale.

După finalizarea procesului de sincronizare și stabilirea conexiunii, începe transferul de date. În timpul transferului, ambele posturi nu încetează să schimbe mesaje, ceea ce vă permite să vă asigurați că datele primite sunt corecte. În fig. 4 ilustrează o conexiune tipică între un emițător și un receptor. Primul mesaj de solicitare este necesar pentru a sincroniza nodurile finale. Al doilea și al treilea sunt necesare pentru a confirma cererea inițială de sincronizare; ele sincronizează și parametrii de conectare în sens invers. Ultima postare este confirmare(confirmare), care este utilizat pentru a informa destinatarul că ambele părți sunt gata să stabilească o conexiune. După stabilirea conexiunii, începe transferul de date.

Orez. 4. Procesul de stabilire a unei conexiuni cu un sistem peer-to-peer

În timpul transferului de date, supraîncărcarea poate apărea din două motive. Primul este că un computer rapid poate genera un flux de date mai rapid decât îl poate transmite rețeaua. Al doilea apare într-o situație în care mai multe computere trebuie să trimită simultan date unui singur destinatar. În acest caz, destinatarul se poate confrunta cu aglomerație, deși fiecare expeditor individual nu provoacă probleme.

În cazurile în care datagramele ajung prea repede și nodul final sau gateway-ul nu le poate procesa, acestea sunt stocate temporar în memorie. Dacă traficul de date nu scade, atunci nodul final sau gateway-ul, epuizându-și în cele din urmă resursele de memorie, va fi forțat să renunțe la toate datagramele ulterioare.

Pentru a preveni pierderea datelor, funcția de transport poate trimite expeditorului un mesaj informativ „dispozitivul nu este pregătit pentru a primi” ”. Acționând ca un semafor roșu, acest mesaj indicator îi semnalează expeditorului să nu mai trimită date. După ce destinatarul poate procesa din nou datele suplimentare, acesta trimite un mesaj indicator de trafic „dispozitiv gata să primească date” ”, care este ca un semafor verde. Primind un astfel de indicator, expeditorul poate relua transmiterea segmentelor.

După încheierea transferului de date, expeditorul trimite un semnal către receptor, care indică finalizarea transferului. Destinatarul confirmă deconectarea, după care conexiunea dintre mașini este întreruptă.

Recunoaștere în trei pași

TCP utilizează un algoritm orientat spre conexiune, deci trebuie stabilită o conexiune logică înainte de a transfera date. Pentru a stabili o conexiune de rețea între două stații de lucru, este necesară sincronizarea numerelor lor inițiale de secvență (ISN - Initial Sequence Number). Sincronizarea se realizează prin schimbul de segmente specializate care conţin bitul de control SYN (prescurtare de la ssincronizare) și ISN. Modulele care poartă bitul SYN sunt uneori denumite și mesaje SYN. Pentru a rezolva problema stabilirii, este necesar să se selecteze un mecanism adecvat pentru selectarea numerelor ISN prin stabilirea unei conexiuni inițiale pentru schimbul de numere ISN.

Sincronizarea necesită ca fiecare parte să își trimită ISN-ul inițial și să primească o confirmare sub forma unui ACK (prescurtare pentru confirmare) de la un alt participant la conexiune. În plus, fiecare parte trebuie să primească numărul ISN al partenerului de comunicare și să trimită o notificare ACK în acest sens. Secvența de schimb de mesaje între două noduri de rețea, A și B, este descrisă mai jos.

Acest mesaj este numit recunoaștere în trei etape (Trei- cale strângere de mână) (fig. 5).

Orez. 5. Recunoaștere în trei pași

1.AB SYN. ISN-ul meu inițial este X, ACK este 0, SYN este setat, dar ACK nu.

2.BUN ACK. Numărul dvs. de secvență este X + 1, ISN-ul meu este Y și biții SYN și ACK sunt setați.

3. AÎNAPOI. Numărul dvs. de secvență este Y + 1, numărul meu de secvență este X + 1, bitul ACK este setat și bitul SYN nu este setat.

Handshaking-ul în trei căi este un mecanism de conexiune asincronă care este necesar pentru a sincroniza numerele de secvență, deoarece astfel de numere sunt independente de un contor global virtual din rețea. Prin urmare, o rețea TCP utilizează diferite mecanisme pentru alocarea ISN-urilor. Una dintre ele este o strângere de mână în trei pași. Cu toate acestea, acest mecanism nu este destinat doar obținerii unui număr ISN. Folosind-o, dispozitivele finale fac schimb de informații despre dimensiunea ferestrei de transmisie a datelor, parametrul MTU și întârzierea transmisiei datelor în rețea. Destinatarul primului SYN nu are mijloacele pentru a determina dacă segmentul primit a fost un mesaj vechi sau nou în așteptare până la primirea următorului mesaj; singura excepție este atunci când receptorul stochează ultimul număr de secvență folosit pe conexiune (ceea ce nu este întotdeauna posibil). Astfel, receptorul trebuie să ceară expeditorului să verifice un astfel de mesaj SYN.

Mecanism de geam culisant

În cea mai generală formă de transfer de date fiabil orientat spre conexiune, pachetele de date trebuie să fie livrate la capătul receptor în aceeași ordine în care au fost trimise. Protocolul semnalează o eroare dacă orice pachet de date este pierdut, deteriorat, duplicat sau primit într-o ordine diferită. Cea mai simplă soluție la această problemă este să folosiți confirmarea de primire a destinatarului pentru fiecare segment de date.

Cu toate acestea, dacă expeditorul este forțat să aștepte o confirmare după trimiterea fiecărui segment, așa cum se arată în Fig. 6, rata de transmisie este redusă semnificativ cu această metodă. Întrucât se scurge un anumit interval de timp din momentul în care expeditorul termină de trimis pachetul de date până la finalizarea procesării oricărei confirmări primite, acesta poate fi utilizat pentru a transmite o porțiune suplimentară de date. Este apelat numărul de pachete de date care pot fi trimise expeditorului fără a primi confirmare fereastră(fereastră).

TCP utilizează ceea ce este cunoscut sub numele de confirmări în așteptare; ele conțin un număr de octet care este așteptat în continuare. Mecanismul ferestrei glisante este că dimensiunile ferestrelor sunt negociate dinamic în timpul sesiunii TCP. Mecanism de geam culisant este un mecanism de control al fluxului care cere receptorului să primească o confirmare de la expeditor după trimiterea unei anumite cantități de date.

Orez. 6. Dimensiunea ferestrei este una

Pentru a controla fluxul de date între două dispozitive, folosește TCP mecanism de control al fluxului(mecanism de control al fluxului). Destinatarul raportează expeditorului despre primirea datelor; primirea unei astfel de notificări vă permite să setați dimensiunea ferestrei. Fereastra definește numărul de octeți, numărați din numărul curent de confirmare, pe care dispozitivul TCP îi poate primi la un moment dat.

De exemplu, cu o dimensiune a ferestrei de 3, emițătorul poate transmite trei octeți către receptor. După aceea, trebuie să aștepte confirmarea destinatarului. Dacă destinatarul a primit trei octeți, el TREBUIE să trimită o confirmare expeditorului octeților. Expeditorul poate transmite apoi următorii trei octeți. Dacă destinatarul nu a primit trei octeți, de exemplu, din cauza depășirii tamponului, atunci nu va trimite o confirmare. Dacă expeditorul nu primește o confirmare, aceasta înseamnă că ultimii octeți trebuie retransmiși și rata de transmisie redusă.

Dimensiunea ferestrei TCP se poate modifica pe măsură ce un flux de date este transmis între două dispozitive de rețea. Fiecare confirmare trimisă de la receptor conține informații despre numărul de octeți pe care receptorul este capabil să îi primească. TCP prevede utilizarea unei așa-numite ferestre de control a congestionării, care este în mod normal egală cu fereastra dispozitivului destinatar, dar dimensiunea acesteia este redusă la jumătate dacă se pierde orice segment de date (de exemplu, din cauza congestiei rețelei). Acest mecanism vă permite să reduceți sau să măriți dimensiunea ferestrei după cum este necesar în procesul de gestionare a buffer-ului dispozitivului și de procesare a fluxului de date. O dimensiune mai mare a ferestrei permite transmiterea simultană a mai multor octeți.

Când expeditorul transmite trei octeți, trece la așteptarea unui semnal ACK pentru patru octeți. Dacă receptorul este capabil să proceseze un bloc de date de doi octeți, atunci el renunță la al treilea octet și îl desemnează ca următorul bloc de date așteptat. În acest caz, este indicată noua dimensiune a ferestrei, care este egală cu două. Expeditorul transmite următorii doi octeți, dar dimensiunea ferestrei este încă trei (să presupunem că dispozitivul poate procesa în continuare trei octeți în același timp). Receptorul solicită octetul numărul 5 și setează dimensiunea noii ferestre la doi.

Confirmare

Un mecanism de livrare fiabil asigură că un flux de date trimis de o stație va fi livrat printr-o altă legătură de date fără duplicare sau pierdere de date. Recunoașterea pozitivă cu retransmisie este o tehnică pentru a asigura livrarea fiabilă a fluxurilor de date. O confirmare pozitivă necesită ca destinatarul să comunice cu expeditorul trimițând înapoi un mesaj de confirmare după primirea datelor. Expeditorul înregistrează fiecare pachet pe care îl trimite și așteaptă confirmarea înainte de a trimite următorul pachet de date. În momentul trimiterii segmentului, expeditorul pornește și cronometrul și retransmite blocul de date dacă timpul stabilit de temporizator expiră înainte de a primi o confirmare.

În fig. 7 prezintă un expeditor care transmite pachetele 1, 2 și 3. Receptorul confirmă primirea pachetelor solicitând pachetul 4. Expeditorul, la primirea unei confirmări, trimite pachetele 4, 5 și 6. Dacă pachetul 5 nu este livrat către destinatarului, acesta trimite o confirmare corespunzătoare solicitând o reîncercare.trimiterea pachetului 5. Expeditorul retrimite pachetul 5 și trebuie să primească confirmarea corespunzătoare pentru a continua transmiterea pachetului 7.

TCP impune secvența de segmente urmată de confirmare. Fiecărei datagrame i se atribuie un număr înainte de transmitere (Figura 8). După ce destinatarul a primit toate datagramele, acestea sunt asamblate într-un mesaj complet. TCP este responsabil pentru recuperarea datelor deteriorate, pierdute, duplicate sau necomandate care au fost transmise prin Internet. Mecanismul de recuperare funcționează prin atribuirea unui număr de secvență fiecărui octet transmis, la primirea căruia receptorul trebuie să trimită o confirmare (ACK). Dacă nu a fost primită nicio confirmare în intervalul de expirare, datele sunt transmise din nou de către expeditor. După ce octeții sunt livrați destinatarului, numerele lor de secvență sunt folosite pentru a reasambla mesajul din fragmente și pentru a elimina duplicatele. Datele deteriorate sunt recuperate folosind o sumă de control care este adăugată fiecărui segment transmis. Suma de control este verificată de destinatar, iar dacă nu se potrivește, datele corupte sunt eliminate.

Orez. 7. Dimensiunea ferestrei este de trei

Orez. 8. Numere de serie și confirmări

ProtocolTCP

TCP(Transmission Control Protocol - protocol de control al transmisiei) este un protocol de nivel de transport orientat spre conexiune care oferă transmisie de date fiabilă, full-duplex. TCP face parte din stiva de protocoale TCP/IP. Într-un mediu orientat spre conexiune, trebuie stabilită o conexiune între două computere pentru a începe transferul de date. TCP este responsabil pentru segmentarea mesajelor în pachete, reasamblarea lor de către destinatar și retransmiterea oricăror bucăți de date care nu au fost primite. Protocolul este, de asemenea, capabil să creeze circuite virtuale între aplicațiile utilizatorului final.

Servicii de nivel superior și protocoale care utilizează mecanisme TCP:

    FTP (File Transfer Protocol);

    HTTP (Hypertext Transfer Protocol);

    SMTP (Simple Mail Transfer Protocol);

Câmpurile segmentului TCP afișate pe diapozitiv sunt descrise mai jos.

Port expeditor - numărul portului apelant.

Port destinatar - numit numărul de port.

Număr de serie - numărul folosit pentru a plasa datele primite în ordinea corectă.

Număr de confirmare este numărul următorului octet TCP așteptat.

HLEN - numărul de cuvinte de 32!-biți din antet.

Câmp rezervat- toți biții sunt setați la 0.

Biți de cod- funcții de serviciu (de exemplu, configurarea și terminarea sesiunii).

Fereastră- numărul de octeți pe care expeditorul este dispus să-i accepte.

Verificați suma- suma de control calculată a antetului și a câmpurilor de date.

Indicator de date urgente- indică sfârşitul datelor urgente.

Parametrii- în prezent este definit un parametru: dimensiunea maximă a segmentului TCP.

Date- date de protocol de nivel superior.

ProtocolUDP

UDP (Utilizator Datagrama Protocol- protocol pentru transferul datagramelor utilizatorului), al cărui format de segment este afișat în diapozitiv, este un protocol de transport fără conexiune în stiva de protocoale TCP / IP. UDP este un protocol simplu care face schimb de datagrame fără confirmare și fără garanție de livrare. Simplitatea protocolului devine evidentă când se compară formatele de segment ale protocoalelor UDP și TCP. Când se utilizează UDP, gestionarea erorilor și retransmiterea datelor trebuie gestionate de protocolul de nivel superior. De exemplu, dacă transferul este întrerupt în timpul transferului de date prin TFTP, atunci numai operatorul uman poate re-descărca informațiile.

Lista de mai jos listează câmpurile segmentului UDP care este afișat pe diapozitiv

    Port expeditor - numărul portului apelant.

    Port destinatar - numit numărul de port.

    Lungime- numărul de octeți, inclusiv antetul și datele.

    Verificați suma- suma de control calculată a antetului și a câmpurilor de date.

    Date- date de protocol de nivel superior.

Protocolul UDP nu folosește un mecanism de fereastră glisantă, așa că trebuie asigurată fiabilitatea transmiterii datelor protocoale la nivel de aplicație(protocol de nivel de aplicație). UDP a fost conceput pentru aplicații care nu au nevoie să însireze segmente secvențiale împreună.

UDP este utilizat de următoarele servicii și protocoale de nivel superior:

    TFTP (Trivial File Transfer Protocol - cel mai simplu protocol de transfer de fișiere);

    SNMP (Simple Network Management Protocol);

    DHCP (Dynamic Host Configuration Protocol);

    DNS (Domain Name System).

Numerele portului de protocolTCPșiUDP

Pentru a transfera informații în straturile superioare, atât TCP, cât și UDP folosesc un număr de port (port) sau așa-numitul socket (socket). Numerele de port sunt folosite pentru a ține evidența diferitelor comunicații care se desfășoară în același timp în rețea.

Dezvoltatorii de aplicații au fost de acord să utilizeze numere de porturi rezervate, care sunt administrate de Autoritatea pentru Numerele Alocate de Internet (IANA). De exemplu, orice schimb de date FTP ar trebui să utilizeze porturile standard 20 (pentru date) și 21 (pentru control). Pentru interacțiunile de rețea care nu sunt asociate cu aplicații care au un număr de port binecunoscut, numerele de porturi sunt atribuite aleatoriu, dar sunt selectate dintr-un interval specific de valori - peste 1023. Unele porturi sunt rezervate în protocoalele TCP și UDP. Deși unele porturi sunt rezervate în protocoalele TCP și UDP, este posibil ca aplicațiile să nu fie codificate hard la aceste numere.

După cum se arată în diapozitiv, sistemul final folosește numărul portului pentru a selecta aplicația corespunzătoare. Numărul portului expeditorului este de obicei un număr mai mare de 1023 și este atribuit dinamic de gazda expeditorului. De exemplu, o gazdă încearcă să se conecteze la o altă gazdă utilizând FTP, trimițând pachete care conțin numărul portului TCP al destinatarului 21 (FTP) și generează în mod dinamic numărul portului expeditorului 1028. Această pereche de porturi (exmițător și destinatar) determină unicitatea interacțiunea dintre două gazde.... Dacă aceeași gazdă inițiază o conexiune FTP la o a treia gazdă, atunci portul destinatar rămâne la 21, dar portul expeditor este selectat diferit de cel anterior (de exemplu, 1030) pentru a separa cele două sesiuni de comunicare.

Acum trebuie să introduceți dimensiunea ferestrei glisante pentru a calcula autocorelațiile. Fereastra glisantă este utilizată pentru a calcula valorile funcției de autocorelare pentru funcția specificată în intervalul finit pe care l-ați introdus pentru a calcula coeficientul de corelare. Fereastra glisantă captează primele M intervale de timp ale seriei temporale și apoi se deplasează la fiecare pas cu un interval de timp în intervalul pe care l-ați introdus pentru a calcula corelațiile celor două instrumente.

O fereastră glisantă poate lua în mod oficial valori de la două la 999. Nu are sens să setați o valoare peste 999, deoarece intervalul maxim utilizat în calcule este 1000. Dar, în realitate, dimensiunea ferestrei glisante nu poate depăși N- 1, unde N este dimensiunea intervalului selectat (numărul de linii utilizate în calcule).

O fereastră glisantă mai mică de 2 este lipsită de sens prin definiție.

Dacă nu trebuie să calculați autocorelarea, atunci introduceți dimensiunea ferestrei glisante mai mică de 2. În acest caz, Calculatorul științific al comerciantului va ignora calculul funcției de autocorelare.

Începătorii se întreabă de obicei ce dimensiune este mai bine să seteze fereastra glisantă. Acest lucru depinde de obicei de ce interval vă interesează în ceea ce privește studierea comportamentului autocorelației. Dar rețineți următoarele.

Dacă aveți de-a face cu o funcție foarte obișnuită, de exemplu, periodică, când se încadrează multe perioade în intervalul studiat, atunci o astfel de regularitate a funcției investigate este bine detectată printr-o fereastră scurtă de alunecare. Este posibilă, prin încercare și eroare, să alegeți dimensiunea ferestrei glisante care coincide aproximativ cu perioada de regularitate a funcției studiate.

Dacă aveți de-a face cu zgomot alb (în acest caz, cu analogul său discret, în care toate frecvențele din intervalul tăiat de valoarea intervalului de timp sunt prezente cu amplitudini aproximativ egale), atunci un astfel de proces este cel mai bine detectat printr-o fereastră lungă de alunecare cu o dimensiune apropiată de intervalul studiat.

Dacă efectuați propriile cercetări asupra autocorelațiilor diferitelor instrumente de piață, veți vedea că majoritatea dintre ele se află, parcă, într-o regiune intermediară între mișcarea pur regulată cu adăugarea de zgomot aleatoriu și zgomot alb pur. Adică, pe de o parte, acesta nu este un cazinou, dar, pe de altă parte, nu este o lege strictă a mișcării, la care s-a adăugat zgomot de o amplitudine atât de mare încât semnele de regularitate au fost înecate vizual în acest lucru. zgomot. Tot ce se spune aici despre cercetare se referă în primul rând la datele din timpul zilei, deoarece aceste date am fost supuse celor mai multe cercetări, datorită faptului că tocmai pe aceste date lucrez.

De exemplu, dacă vorbim despre principalele perechi valutare, atunci este imposibil să separați clar mișcarea obișnuită și zgomotul, deoarece este împărțit în teoria semnalelor, atunci când aveți un fel de semnal radio, dar este înecat în interferență. Unul dintre motivele pentru imposibilitatea unei împărțiri atât de clare a dinamicii monedei în regularitate și zgomot este că regularitatea dinamicii perechii valutare în sine este o serie infinită (sau o sumă finită cu un număr mare de termeni) de funcții regulate de descreștere. amplitudine, pe care zgomotele sunt suprapuse nu cu aceleași, ci cu amplitudini diferite. Plus non-staționaritatea întregului proces, când proprietățile tale statistice la sfârșitul intervalului studiat pot diferi foarte mult de proprietățile statistice de la începutul intervalului studiat. Dar discutarea acestor probleme depășește cu mult scopul acestui manual.

Deci ce avem.

Dacă dimensiunea ferestrei glisante este mult mai mică decât intervalul studiat, atunci veți primi o funcție lungă de autocorelare, deoarece fereastra glisantă va face multe diapozitive. Dar aceasta va fi o funcție neinformativă, cu excepția cazului în care, desigur, unele regularități de scurtă perioadă sunt găsite acolo. Dimpotrivă, dacă dimensiunea ferestrei glisante este prea apropiată de dimensiunea intervalului investigat, atunci o astfel de funcție de autocorelare conține o mulțime de informații, dar va fi foarte scurtă. O fereastră glisantă va face foarte puține alunecări și, de exemplu, nu va ajunge în punctul în care autocorelația se apropie de zero.

Prin urmare, vă recomand să începeți întotdeauna cercetarea pe un instrument de piață necunoscut, cu o dimensiune a ferestrei glisante de aproximativ jumătate din dimensiunea intervalului studiat. Și numai atunci, pe baza rezultatelor obținute, luați o decizie dacă să micșorați sau să măriți dimensiunea ferestrei glisante. De exemplu, dacă examinați un interval de trei luni pe un interval de timp zilnic, atunci acesta este de aproximativ 64-67 de rânduri. Aceasta înseamnă că dimensiunea ferestrei glisante poate fi luată la primele 33 de puncte. Apoi puteți vedea ce se va schimba dacă luați dimensiunea ferestrei glisante egală cu o lună (22 de puncte) și două luni (44 de puncte).

Top articole similare