En introduktion til HTTP: Udforskning af telekommunikation i computersystemer

Lær kendskab til Open Systems Interconnection-modellen

Oversigt

I løbet af denne serie vil vi tackle det grundlæggende som:

(Del 1) Hvordan fungerer DNS?

(Del 2) Netværksstak, OSI-model [Du er her!]

(Del 3) HTTP-metoder og formater

(Del 4) Klientidentifikation

(Del 5) Grundlæggende / fordøjelsesgodkendelse

(Del 6) HTTPS, der arbejder med SSL / TLS

OSI-model

OSI-modellen (Open Systems Interconnection) er en standardiseret model til telekommunikation i computersystemer. Det betragter ikke den underliggende teknologi, men i stedet de lag, der er involveret i kommunikation. Lad os udforske de forskellige lag inden for OSI-modellen:

1. Applikationslag

Dette lag giver applikationer mulighed for at kommunikere over netværket, når forbindelsen er oprettet, f.eks. Fra webbrowseren (applikationen) til serveren. Eksempler på protokoller i dette lag inkluderer HTTP og TELNET.

HyperText Transfer Protocol (HTTP)

Et sæt regler for overførsel af filer over internettet. For eksempel, når du indtaster URL'en i browseren, sender browseren en HTTP-anmodning til websiden. Værten returnerer derefter websiden sammen med alle de elementer, der er indeni, såsom billeder, tekst, videoer, stylingfonte osv.

2. Transportlag

Dette lag er ansvarlig for vært-til-vært-kommunikation af meddelelser. Eksempler på protokoller i dette lag inkluderer TCP og UDP.

Transmission Control Protocol (TCP)

Den mest almindelige forbindelsesorienterede protokol. Den definerer, hvordan man opretter og vedligeholder en netværkssamtale. Det er ansvarligt for at etablere en forbindelse (kaldet en stikkontakt ) mellem klienten og værten i et 3-vejs håndtryk.

Den bruger, der anmoder om dataene, sender en SYN-datapakke til serveren og anmoder om synkronisering . Serveren svarer derefter med en SYN-ACK til brugeren, hvilket indikerer, at den har anerkendt datapakken og også gerne vil oprette forbindelse. Forbindelsen oprettes derfor, når brugeren sender den sidste ACK til serveren.

TCP er den mest almindelige på grund af sin elegance, hvor den er i stand til at tilbyde følgende:

Forbindelsesorienteret kommunikation

Opret en håndtryksprotokol mellem slutpunkter for at sikre forbindelse, før data udveksles, og send som en datastrøm (datapakker).

Pålidelighed

Ved hjælp af kontrolsummer sikrer det, at de sendte og modtagne datapakker er de samme. Hvis der mangler / ødelagte pakker, vil det bede om genoverførsel af datapakkerne ved at sende en NACK-besked til afsenderen.

Bestille

Datapakkerne nummereres og transmitteres. Som sådan vil TCP sikre, at de modtagne pakker genbestilles, inden de leverer applikationen.

Flow Control

Dataoverførselshastigheden reguleres for at forbedre effektiviteten, samtidig med at bufferoverskridelser / underkørsler forhindres, hvor data sendes hurtigere, end modtageren er i stand til at behandle det, og omvendt.

Mekanikken bag det forklares nedenfor i TCP Slow Start sektionen.

Multiplexing

Dybest set er det i stand til at sende flere informationsstrømme samtidigt over det samme stik. Disse udføres gennem forskellige porte på soklen. Vi vil diskutere forskellene mellem multiplexing og pipelining yderligere i artiklen.

User Datagram Protocol (UDP)

Mens det ligner TCP, er det en forbindelsesfri protokol. Det er det modsatte af TCP, hvilket gør det upålideligt og uordnet. Faldte pakker transmitteres ikke igen, hvilket medfører huller i dataene.

Det gør det dog bedst til tidsfølsomme applikationer, såsom stemmeopkald over internettet (VoIP). Dette skyldes, at det ikke kræver 3-vejs håndtryk inden transmission, hvilket gør det hurtigt. Derudover er tabte datapakker ikke et problem i VoIP, da det menneskelige øre er meget godt til at håndtere de korte huller, der er typiske for droppede pakker.

3. Netværkslag

Dette lag er ansvarlig for tilvejebringelse af datarutingstier til netværksforbindelser. Dybest set flytter den datapakker over hele netværket med den mest logiske sti.

Internetprotokol (IP)

Definerer datapakkernes struktur såvel som mærkning med kilde- og destinationsoplysningerne.

Kilde- og destinationsoplysningerne er i form af IP-adresser, hvor de kan være i form 104.16.121.127(IPv4) eller 2001:db8:0:1234:0:567:8:1(IPv6).

4. Link / fysisk lag

Dette lag er roden til OSI-modellen, hvor information transmitteres enten i Local Area Network (LAN) til Link Layer, og et fysisk signal såsom elektrisk, mekanisk medium i form af kodeord eller symboler i Physical Layer .

Visualisering af ruter

Ved hjælp tracert google.comaf kan ruten spores fra klientsiden (din computer) til værten (google.com).

Ovenfra kan du se ruten, der starter fra min enhed 192.168.1.254til routeren 10.243.128.1, før du går gennem internetudbyderen (ISP) i Portugal osv.

Supplerende lag

TCP / IP-model

IP er kun ansvarlig for datapakkens struktur. Som sådan vil det ikke rette op, hvis datapakken er beskadiget eller tabt. Det er her TCP kommer i spil og nummererer datapakkerne, før de sendes til klienten. På klientsiden vil TCP bede om re-transmission af mistede / beskadigede pakker og derefter omarrangere datapakkerne.

HTTP / TCP-model

Som vi tidligere har nævnt, kan HTTP nu stille anmodninger via forbindelsen foretaget af TCP Handshake. Men hvordan supplerer de hinanden?

HTTP vedvarende forbindelser

Dette ville muliggøre flere HTTP-anmodninger / svar på en enkelt TCP-forbindelse i modsætning til at åbne en ny forbindelse ved hver anmodning / svar.

Dette gøres via HTTP-headeren, hvor Connection: Keep-Alive. Som standard lukkes forbindelsen kun ved et andet svar, hvor Connection: Closedet sendes efter 30 sekunders inaktivitet.

TCP langsom start

Som nævnt før understøtter TCP flowkontrol. Dette gøres gennem TCP Slow Start, som er en form for forebyggelse for netværksbelastning.

Afsenderen har et overbelastningsvindue (CWND) og modtageren har et modtagervindue (RWND). Hvis dataene er større end overbelastnings- / modtagervinduet, vil der være henholdsvis en buffer under / overskridelse.

For at forhindre det, vil afsenderen begynde med at sende en datapakke med et lille overbelastningsvindue (CWND = 1) for langsomt at undersøge modtageren for modtagervinduet.

Modtageren vil svare med en kvittering og bede afsenderen om at fordoble datapakkerne hver gang, indtil der ikke modtages nogen kvittering. På dette tidspunkt er det optimale antal datapakker blevet opdaget, hvilket gør det muligt for andre overbelastningsstyringsalgoritmer at holde forbindelsen i denne hastighed.

Arbejde sammen

Derfor er TCP Slow Start i stand til at finde ud af det optimale antal datapakker, der skal sendes, før forbindelsen lukkes. Dette gør det muligt at optimere mængden af ​​data sendt fra værten til klienten uden risiko for bufferoverskridelse (data sendes hurtigere, end de kan modtages).

Andre HTTP-funktioner

HTTP-rørledning

Denne funktion i version HTTP / 1.1 tillader, at der sendes flere anmodninger på samme gang uden at vente på svar. Det er dog blevet erstattet af TCP Multiplexing i den nyere version af HTTP / 2.

Hovedforskellen er, at selvom begge tillader flere anmodninger på én gang på samme stikkontakt, vil rørledning stadig kræve, at der sendes svar i rækkefølge. Det betyder, at hvis de anmodede varer er i ordren (A, B, C), vil klienten ikke modtage vare C, hvis vare B ikke er leveret korrekt.

I Multiplexing betyder ordren ikke noget. Dette giver hurtigere leveringstid.

Disse metoder bruges bedst til den idempotente metode, som er metoder, der reagerer uafhængigt af antallet af anmodede gange - for eksempel vil anmodning om en webside flere gange svare på den samme webside.

Parallelle forbindelser

Har du nogensinde åbnet en webside og set flere komponenter på websiden (videobjælke, miniaturer, knapper) indlæses samtidigt?

Dette er muliggjort med Parallel Connections, hvor der er etableret mere end en TCP-forbindelse på samme tid, så disse komponenter kan indlæses samtidigt i stedet for den ene efter den anden.

Selvom det måske ser ud til at indlæse hurtigere, kan det dog holdes tilbage af klientens begrænsede båndbredde. Hvis alle parallelle forbindelser konkurrerer om den begrænsede båndbredde, indlæses hver komponent forholdsmæssigt langsommere, hvilket resulterer i nul fordel i den samlede belastningshastighed.

Konklusion

Med OSI-modellen kan vi let forstå det store billede af netværk og hvordan de interagerer med hinanden fra hardware til software.

Generelt er det et godt undervisningsværktøj såvel som en reference til fejlfinding. Modellen er også nyttig til design, da den undersøger funktionerne i hvert lag, hvilket tvinger en til at tænke over designet lag for lag.

Hvad jeg har gennemgået hidtil er OSI 5-Layer Model, hvorimod der også er OSI 7-Layer Model, der også beskæftiger sig med Identifikation, Authentication og Data Encryption.

Dette er del 2 af HTTP Introductions Series. Du kan læse den første artikel om vigtigheden af ​​DNS-servere i del 1. Lad os undersøge strukturen for HTTP-anmodninger næste i del 3!

Hej! Jeg er Cher Don, der i øjeblikket forfølger en major i datalogi. Jeg er CTO for Paralegal Bot, og du kan finde min hjemmeside nedenfor. Tak for læsningen!

Pikeret;

Kvalitetsindhold Vi tilbyder det bedste indhold til begreber, der er vanskelige at forstå. Vi har været der og følt det samme som du gør ... www.piqued.co