Hoppa till innehållet

Transportskikt

Från Wikipedia
(Omdirigerad från Transportlager)
OSI-modellen

7. Applikationsskikt
6. Presentationsskikt
5. Sessionsskikt
4. Transportskikt
3. Nätverksskikt
2. Datalänkskikt
1. Fysiskt skikt

Transportskiktet är skikt nummer fyra i den sjulagrade OSI-modellen för kommunikation i datanätverk. Det tar emot uppdrag från det ovanliggande sessionsskiktet och använder sig av funktionerna i nätverksskiktet för att tillhandahålla sina tjänster.

Transportskiktet tillhandahåller funktioner för pålitlig, uppkopplingsbaserad dataöverföring mellan värdar. Det ansvarar vanligen för felkontroll och att all den sända informationen kommer fram till mottagaren i intakt skick. Bland de nätverksprotokoll som används på Internet är det protokollet TCP som uppfyller denna roll. (Det i mindre utsträckning använda protokollet User Datagram Protocol (UDP) tillhandahåller vare sig felhantering eller flödeskontroll, utan överlåter dessa istället till den anropande applikationen.) Syftet med transportskiktet är att tillhandahålla ett säkert, pålitligt och enkelt gränssnitt för överföring av data mellan värddatorer, så att inga av de övre skikten i OSI-modellen behöver bekymra sig över de tekniska omständigheterna kring den fysiska nätverksöverföringen.

Transportskiktet omvandlar den relativt primitiva sändningsfunktionaliteten hos nätverksskiktet till ett kraftfullare, enklare och pålitligare gränssnitt. Det finns en lång lista av tjänster som kan tillhandahållas på denna nivå i arkitekturen. Inga av dem är nödvändiga, eftersom inte alla applikationer har behov av dem. Vissa av funktionerna kan utgöra ett slöseri med nätverkets och värdarnas systemresurser, och kan rentav vara direkt kontraproduktiva för vissa applikationer.

  • Uppkopplingsbaserad. Uppkopplingsbaserade överföringslägen är generellt räknat enklare att handskas med än uppkopplingslösa. Överföringsläget i nätverksskiktet är uppkopplingslöst, så funktioner för uppkopplingshantering byggs ofta in i det ovanliggande transportskiktet.
  • Likaordnad leverans. Nätverksskiktet garanterar inte att sända datapaket anländer till mottagaren i samma ordning som de sändes i. Transportskiktet tillhandahåller denna funktionalitet, då den efterfrågas. Det gör detta genom att numrera varje paket vid sändning, och pussla ihop paketen i rätt ordning igen när alla paket i serien anlänt till mottagarsidan.
  • Pålitlighet. Datanätverket som modellen vilar på kan inte alltid garantera överföringspålitlighet. Signaler kan bli försenade, råka bli kopierade, eller tappas bort helt på vägen. Transportskiktet ansvarar vanligen för pålitligheten i dataöverföringar. Skiktet måste försäkra sig om att varje datasändning faktiskt ankommit till mottagaren i precis det skick som avsågs. Information som har tappats bort på vägen kan till exempel behöva sändas på nytt. Detta gör transportskiktet då automatiskt vid behov.
  • Flödeskontroll. Mängden tillgängligt minne på en dator är begränsat, och utan flödeskontroll kan en större, snabbare dator översvämma en mindre med mer information än den kan hantera. Nuförtiden är detta inte längre något stort problem eftersom datalagringskapacitet är så mycket billigare än bandbredd, men tidigare var det kritiskt. Flödeskontroll tillåter en mottagare att ropa "Stopp!" innan den blir helt överväldigad av den inkommande informationen. Ibland tillhandahålls dylika funktioner av näverket, men där detta inte är fallet ligger det på transportskiktets ansvar att hantera problemet.
  • Byte-orientering. Transportskiktet kan omvandla abstrakta tekniska dataenheter som dataramar, datapaket och datasegment till vad som för övre lager ser ut som en kontinuerlig ström av bytes. Det är i regel i denna form som den överförda informationen är intressant för applikationen.
  • Processadressering. Transportskiktet tillhandahåller ett extra lager av adresseringsfunktionalitet, som tillåter en process på en sändare att hitta till den avsedda mottagarprocessen på en mottagade dator, även om flera serverprocesser körs samtidigt på den mottagande datorn. Den vanligaste benämningen på denna typ av processadresser i transportskiktet (och som används av till exempel TCP och UDP) är "portar". Inom TCP/IP, till exempel anger IP-adressen adressen för en given värdmaskin på nätverket, och portnumret anger adressen för den process som anses som mottagare för sändningen.

På Internet finns det en uppsjö olika transporttjänster, av vilka de i särklass mest använda är TCP och UDP. TCP är den mest komplexa av dessa, då den tillhandahåller avancerad funktionalitet som uppkopplingshantering, flödes- och felkontroll och likaordnad ankomst. UDP är i jämförelse ett väldigt enkelt protokoll, som delar upp information i små datapaket som skickas iväg på nätverket utan kontroll av huruvida och när de över huvud taget anländer. UDP tillför knappast någonting utöver vad nätverket erbjuder utom just möjligheten att adressera paket till en process på en viss värddator, snarare än enbart till datorn själv. Begränsade felhanteringsfunktioner finnes också i UDP.

Vissa tjänster, som exempelvis uppkopplingshantering, kan implementeras antingen transport- eller nätverksnivån i skikthierarkin. I regel implementeras den lösning som är tekniskt enklast givet det underliggande nätverket i nätverksskiktet, och transportskiktet implementerar det resterande överföringsalternativet.