de Cher Don

O introducere în HTTP: Explorarea telecomunicațiilor în sistemele informatice

Cunoașteți modelul de interconectare a sistemelor deschise

O introducere in HTTP Explorarea telecomunicatiilor in sistemele informatice

Prezentare generală

De-a lungul acestei serii, vom aborda elementele de bază, cum ar fi:
(Partea 1) Cum funcționează DNS?
(Partea 2) Stiva de rețea, model OSI [You are here!]
(Partea 3) Metode și formate HTTP
(Partea 4) Identificarea clientului
(Partea 5) Autentificare de bază / Digest
(Partea 6) HTTPS care funcționează cu SSL / TLS

Model OSI

Modelul de interconectare a sistemelor deschise (OSI) este un model standardizat pentru telecomunicații în sistemele informatice. Nu ține cont de tehnologia de bază, ci de straturile implicate în comunicare. Să explorăm diferitele straturi din modelul OSI:

O introducere in HTTP Explorarea telecomunicatiilor in sistemele informatice
Model tipic OSI cu 5 straturi

1. Stratul aplicației

Acest strat permite aplicațiilor să comunice prin rețea odată ce conexiunea a fost stabilită, cum ar fi de la browserul web (aplicație) la server. Exemple de protocoale din acest strat includ HTTP și TELNET.

HyperText Transfer Protocol (HTTP)

Un set de reguli pentru transferul de fișiere pe internet. De exemplu, atunci când introduceți adresa URL în browser, browserul trimite o cerere HTTP pentru pagina web. Gazda va returna apoi pagina web, împreună cu toate elementele din interior, cum ar fi imagini, text, videoclipuri, fonturi de stil etc.

2. Stratul de transport

Acest strat este responsabil pentru comunicarea de la gazdă la gazdă a mesajelor. Exemple de protocoale din acest strat includ TCP și UDP.

Protocolul de control al transmisiei (TCP)

Cel mai comun protocol orientat spre conexiune. Acesta definește modul de stabilire și menținere a unei conversații în rețea. Este responsabil pentru stabilirea unei conexiuni (numită a priză) între client și gazdă într-o strângere de mână în 3 direcții.

1611988689 994 O introducere in HTTP Explorarea telecomunicatiilor in sistemele informatice

Utilizatorul care solicită datele va trimite un pachet de date SYN către server, solicitând sincronizare. Serverul va răspunde apoi cu un SYN-ACK utilizatorului, indicând că are recunoscut pachetul de date și ar dori să se conecteze, de asemenea. Conexiunea este stabilită atunci când utilizatorul trimite ultimul ACK către server.

TCP este cel mai frecvent datorită eleganței sale, în care este capabil să ofere următoarele:

Comunicare orientată spre conexiune
Stabiliți un protocol de strângere de mână între punctele finale pentru a asigura conexiunea înainte de schimbul de date și transmiteți ca flux de date (pachete de date).

Fiabilitate
Folosind sumele de verificare, se asigură că pachetele de date transmise și primite sunt aceleași. Dacă există pachete lipsă / corupte, va solicita retransmiterea pachetelor de date prin trimiterea unui mesaj NACK către expeditor.

Ordin
Pachetele de date sunt numerotate și transmise. Ca atare, TCP se va asigura că pachetele primite sunt re-comandate înainte de livrarea aplicației.

Controlul debitului
Rata de transmitere a datelor este reglementată pentru a îmbunătăți eficiența, prevenind în același timp depășirea / depășirea bufferului, unde datele sunt trimise mai repede decât este capabil să le proceseze receptorul și invers.
Mecanica din spatele acesteia este explicată mai jos în secțiunea TCP Slow Start.

Multiplexare
Practic, este capabil să trimită simultan mai multe fluxuri de informații pe același socket. Acestea se fac prin diferite porturi de pe soclu. Vom discuta diferențele dintre multiplexare și conducte în continuare în acest articol.

User Datagram Protocol (UDP)

Deși este similar cu TCP, este un protocol fără conexiune. Este opusul complet al TCP, făcându-l nesigur și neordonat. Pachetele abandonate nu vor fi re-transmise, provocând lacune în date.

1611988689 435 O introducere in HTTP Explorarea telecomunicatiilor in sistemele informatice

Cu toate acestea, acest lucru este cel mai bun pentru aplicațiile sensibile la timp, cum ar fi apelurile vocale prin internet (VoIP). Acest lucru se datorează faptului că nu necesită o strângere de mână cu 3 căi înainte de a transmite, făcându-l rapid. În plus, pachetele de date scăzute nu reprezintă o problemă în VoIP, deoarece urechea umană este foarte bună la gestionarea golurilor scurte care sunt tipice cu pachetele scăzute.

3. Layer de rețea

Acest strat este responsabil pentru furnizarea căilor de rutare a datelor pentru conexiunile de rețea. Practic, mută pachete de date prin rețea cu cea mai logică cale.

Protocol Internet (IP)

Definește structura pachetelor de date, precum și etichetarea acesteia cu informațiile sursă și destinație.

Informațiile sursă și destinație sunt sub formă de adrese IP, în care pot fi sub formă 104.16.121.127(IPv4) sau 2001:db8:0:1234:0:567:8:1(IPv6).

Acest strat este rădăcina modelului OSI, unde informațiile sunt transmise fie în rețeaua locală (LAN) pentru stratul de legătură, cât și un semnal fizic, cum ar fi mediul electric, mecanic, sub formă de cuvinte de cod sau simboluri în stratul fizic. .

Vizualizarea rutelor

Folosind tracert google.com, ruta poate fi urmărită de la partea clientului (computerul dvs.) la gazdă (google.com).

1611988690 78 O introducere in HTTP Explorarea telecomunicatiilor in sistemele informatice

De sus, puteți vedea traseul pornind de pe dispozitivul meu 192.168.1.254 la router 10.243.128.1, înainte de a trece prin furnizorul de servicii Internet (ISP) situat în Portugalia și așa mai departe.

Straturi complementare

Model TCP / IP

1611988690 334 O introducere in HTTP Explorarea telecomunicatiilor in sistemele informatice
TCP va solicita re-transmiterea pachetelor de date abandonate și le va reordona

IP este responsabil numai pentru structura pachetului de date. Ca atare, acesta nu va face remedieri dacă pachetul de date este corupt sau scăpat. Aici intră în joc TCP, numerotând pachetele de date înainte de a le trimite clientului. În partea clientului, TCP va solicita retransmiterea pachetelor pierdute / corupte, apoi va rearanja pachetele de date.

Model HTTP / TCP

După cum am menționat mai devreme, HTTP poate face acum cereri prin conexiunea realizată de TCP Handshake. Dar cum se completează reciproc?

Conexiuni persistente HTTP
Acest lucru ar permite mai multe cereri / răspunsuri HTTP pe o singură conexiune TCP, spre deosebire de deschiderea unei noi conexiuni la fiecare cerere / răspuns.

1611988691 656 O introducere in HTTP Explorarea telecomunicatiilor in sistemele informatice
Eșantion de răspuns pentru conexiune persistentă

Acest lucru se face prin antetul HTTP, unde Connection: Keep-Alive. În mod implicit, conexiunea se va închide numai după un alt răspuns în care Connection: Close este trimis după 30 de secunde de repaus.

TCP Start lent
După cum sa menționat anterior, TCP acceptă controlul fluxului. Acest lucru se face prin TCP Slow Start, care este o formă de prevenire a congestiei rețelei.

1611988691 90 O introducere in HTTP Explorarea telecomunicatiilor in sistemele informatice

Expeditorul are o fereastră de congestie (CWND), iar receptorul are o fereastră de receptor (RWND). Dacă datele sunt mai mari decât fereastra de congestie / receptor, ar exista un buffer sub / overrun, respectiv.

Pentru a preveni acest lucru, expeditorul va începe prin trimiterea unui pachet de date cu o mică fereastră de congestie (CWND = 1), pentru a testa încet receptorul pentru fereastra receptorului său.

Receptorul va răspunde cu o confirmare, solicitând expeditorului să dubleze pachetele de date de fiecare dată până când nu se primește confirmare. În acest moment, a fost descoperit numărul optim de pachete de date, permițând altor algoritmi de control al congestiei să păstreze conexiunea la această viteză.

Lucrand impreuna
Prin urmare, TCP Slow Start este capabil să descopere numărul optim de pachete de date pe care să le trimită înainte de închiderea conexiunii. Acest lucru va permite optimizarea cantității de date trimise de la gazdă către client fără riscul depășirii bufferului (datele sunt trimise mai repede decât pot fi primite).

Alte caracteristici HTTP

HTTP Pipelining

1611988692 901 O introducere in HTTP Explorarea telecomunicatiilor in sistemele informatice

Această caracteristică din versiunea HTTP / 1.1 permite trimiterea simultană a mai multor cereri pe același socket, fără a aștepta un răspuns. Cu toate acestea, a fost înlocuit de TCP Multiplexing în cea mai nouă versiune de HTTP / 2.

Diferența esențială este că, deși ambele permit mai multe cereri simultan pe același socket, Pipelining ar necesita totuși trimiterea de răspunsuri în ordine. Înseamnă că dacă articolele solicitate sunt în comandă (A, B, C), clientul nu ar primi articolul C dacă articolul B nu a fost livrat corect.

În multiplexare, ordinea nu contează. Acest lucru ar permite un timp de livrare mai rapid.

Aceste metode sunt utilizate cel mai bine pentru metoda idempotentă, care sunt metode care răspund independent de numărul de ori solicitat – de exemplu, solicitarea unei pagini web de mai multe ori va răspunde la aceeași pagină web.

Conexiuni paralele

Ați deschis vreodată o pagină web și ați văzut mai multe componente ale paginii web (bara video, miniaturi, butoane) încărcate simultan?

O introducere in HTTP Explorarea telecomunicatiilor in sistemele informatice
Componente multiple care se încarcă simultan | Fotografie oferită de Cloudflare Mobile SDK

Acest lucru este posibil cu conexiunile paralele, unde există mai multe conexiuni TCP stabilite în același timp, permițând acestor componente să se încarce simultan în loc de una după alta.

Cu toate acestea, deși s-ar putea să se încarce mai repede, ar putea fi reținut de lățimea de bandă limitată a clientului. Dacă toate conexiunile paralele concurează pentru lățimea de bandă limitată, fiecare componentă se va încărca proporțional mai lent, rezultând un avantaj zero în viteza totală de încărcare.

Concluzie

Cu modelul OSI, putem înțelege cu ușurință imaginea de ansamblu a rețelelor și modul în care acestea interacționează între ele, de la hardware la software.

În general, este un instrument didactic excelent, precum și o referință pentru depanarea. Modelul este, de asemenea, util pentru proiectare, deoarece investighează funcțiile de la fiecare strat, forțându-l pe unul să mediteze asupra proiectului strat cu strat.

Ceea ce am trecut până acum este modelul OSI cu 5 straturi, în timp ce există și Model OSI cu 7 straturi care se ocupă și de identificare, autentificare și criptare a datelor.

Aceasta este partea a 2-a din seria Introduceri HTTP. Puteți citi primul articol despre importanța serverelor DNS în Partea 1. Să explorăm structura cererilor HTTP în partea 3!

Salut! Sunt Cher Don, urmând în prezent o diplomă în știința datelor. Sunt CTO al Paralegal Bot, și puteți găsi site-ul meu de mai jos. Mulțumesc pentru lectură!

Piqued;
Conținut de calitate Oferim cel mai bun conținut pentru concepte dificil de înțeles. Am fost acolo și am simțit la fel ca tine …www.piqued.co