Introduktion till OSI

När ARPA-nätverket just skulle utvecklas ville vi verkligen göra det så smart som möjligt. Men ju mer komplext nätverket är, desto svårare är det att utveckla och underhålla. Som en lösning föreslogs att dela upp alla nätverksfunktioner i logiska lager.

Nätverksdriftsmodellen hänvisas till som nätverksmodellen för ISO/OSI Open Systems Interconnection Base Reference Model. Kortfattat - OSI-modellen (Open Systems Interconnection).

OSI-modell

Totalt finns det 7 nivåer i denna modell. Interaktionen mellan nivåer är strikt standardiserad och minimerad. Den lägre nivån har ingen aning om förekomsten av högre nivåer och deras struktur.

Det lägsta lagret kan bara skicka bitar . Inte ens sända, nämligen skicka. Han har ingen aning om de kommer eller inte. Skickat och glömt.

En högre nivå arbetar redan med grupper av bits- frames , och vet lite om den fysiska enheten i nätverket, förstår MAC-adresser och liknande.

Nästa nivå är batch. Han är ännu smartare och vet hur man arbetar med nätverkets IP-adresser. Och så vidare.

Varför är allt detta nödvändigt? För att maximera flexibiliteten.

Föreställ dig att varje lager är ett Java-gränssnitt och det kan ha flera olika implementeringar. Så här också. På den fysiska nivån kan du skicka bitar över tråden, skicka via luften (Wi-Fi), skicka via satellit, och alla andra nivåer kommer inte ens veta något om det. Och allt kommer att fungera som det är tänkt.

OSI-protokollstack

Du kan studera protokollstacken mer i detalj på bilden nedan :

Men om du inte är systemadministratör behöver du inte sådan detaljering av protokoll. Mer intressant kan vara studiet av protokollstacken TCP (Transmission Control Protocol) / IP (Internet Protocol).

De tre översta lagren i OSI-modellen, det vill säga applikationslagret, presentationslagret och sessionslagret, särskiljs inte separat i TCP/IP-modellen, som bara har ett applikationslager ovanför transportlagret:

Fördelning av protokoll efter lager av OSI-modellen

TCP/IP OSI
Applicerad Applicerad HTTP, SMTP, SNMP, FTP, Telnet, SSH, SCP, SMB, NFS, RTSP, BGP
Representation XDR, AFP, TLS, SSL
session ISO 8327 / CCITT X.225, RPC, NetBIOS, PPTP, L2TP, ASP
Transport Transport TCP, UDP, SCTP, SPX, ATP, DCCP, GRE
nätverk nätverk IP, ICMP, IGMP, CLNP, OSPF, RIP, IPX, DDP
kanaliserad kanaliserad Ethernet, Token ring, HDLC, PPP, X.25, Frame relay, ISDN, ATM, SPB, MPLS, ARP/td>
Fysisk elektriska ledningar, radiokommunikation, fiberoptiska ledningar, infraröd strålning

TCP/IP-protokollstack

TCP/IP-protokollstacken innehåller fyra lager:

  • Applikationslager _
  • Transportlager _
  • Internetlager (nätverkslager) (internetlager)
  • Länklager (Network Access Layer)

Protokollen för dessa lager implementerar helt OSI-modellens funktionalitet. All användarinteraktion i IP-nätverk bygger på TCP/IP-protokollstacken.

TCP/IP-protokollstacken är oberoende av den fysiska hårdvaran, vilket bland annat säkerställer en helt transparent interaktion mellan trådbundna och trådlösa nätverk.

Applikationsskiktet är där de flesta nätverksapplikationer körs.

Appliceringsskikt

För samverkan mellan program finns protokoll på hög nivå för utbyte av information. Till exempel fungerar webbläsare med HTTP-protokollet, post skickas med SMTP-protokollet, Telegram arbetar med sitt eget krypterade protokoll.

Men vi är inte särskilt intresserade av privata protokoll. Oftast kommer du att stöta på bulkprotokoll som en ftp-klient för FTP (filöverföring), SSH (säker anslutning till en fjärrmaskin), DNS (översättning av tecken till IP-adress) och många andra.

Nästan alla dessa protokoll körs ovanpå TCP, även om vissa kör över UDP (User Datagram Protocol) för att påskynda saker och ting. Men, viktigare, dessa protokoll har standardportar. Exempel:

  • 20 FTP till TCP-port 20 (för dataöverföring) och 21 (för kontrollkommandon)
  • 22-SSH
  • 23 - Telnet
  • 53 - DNS-frågor
  • 80-HTTP
  • 443 - HTTPS

Dessa portar definieras av Naming Assignment and Unique Parameters Agency (IANA).

Det finns flera andra populära applikationslagerprotokoll: Echo, Finger, Gopher, HTTP, HTTPS, IMAP, IMAPS, IRC, NNTP, NTP, POP3, POPS, QOTD, RTSP, SNMP, SSH, Telnet, XDMCP.

transportlager

Transportlagerprotokoll är utformade för att lösa problemet med garanterad meddelandeleverans.

Ett meddelande (datapaket) kan skickas och förloras någonstans i nätverket. I det här fallet är det upp till transportlagret att övervaka dessa situationer och skicka meddelandet igen vid behov.

En annan viktig uppgift för transportlagerprotokollet är att kontrollera i vilken ordning meddelanden kommer. Det händer ofta att meddelanden skickades i en ordning och kom i en annan. Och sätter man ihop ett stort budskap från sådana bitar får man nonsens.

För att förhindra att detta inträffar, räknar transportlagret antingen upp meddelanden eller skickar inte ett nytt förrän det har fått en bekräftelse på mottagandet av det föregående. De automatiska routingprotokollen som finns logiskt i detta lager (eftersom de körs ovanpå IP) är faktiskt en del av nätverkslagerprotokollen.

TCP-protokollet är en "garanterad" anslutningsföretablerad transportmekanism som ger en applikation ett tillförlitligt dataflöde, säkerställer att mottagen data är felfri, begär data på nytt vid förlust och eliminerar dubbelarbete av data.

TCP låter dig reglera belastningen på nätverket, samt minska väntetiden för data vid överföring över långa avstånd. Dessutom garanterar TCP att mottagna data skickades i exakt samma sekvens. Detta är dess huvudsakliga skillnad från UDP.

UDP är ett anslutningslöst datagramprotokoll. Det kallas också ett "otillförlitligt" överföringsprotokoll, i betydelsen oförmågan att verifiera leveransen av ett meddelande till mottagaren, såväl som möjlig blandning av paket. Tillämpningar som kräver garanterad dataöverföring använder TCP-protokollet.

UDP används vanligtvis i applikationer som videoströmning och spel där paketförlust tolereras och att försöka igen är svårt eller omotiverat, eller i utmaningssvarsapplikationer (som DNS-frågor) där det tar mer resurser att upprätta en anslutning än att skicka om.

Både TCP och UDP använder ett nummer som kallas en port för att definiera det övre lagrets protokoll.