Transportskiktets viktigaste uppgift är att åstadkomma en förbindelse från ett slutenhet till ett annat. Denna förbindelse ska fungera så att överliggande skikten befrias från alla detaljer som rör datatransporten.
Transportskiktets syfte är därmed:
- Att datasegmentera och att datarekonstruera.
- Att förbereda dataöverföringen över nätverket.
- Att upprätta en till en förbindelse.
- Att följa upp varje enskild kommunikation genom att behålla aktiva alla kommunikationsströmmar.
- Att tillhandahålla datasegmentering och styr hur segmenten sätts ihop på destinationen.
Transportskiktets protokoll beskriver tjänster för datainkapsling så att varje segment hanteras med rätt applikation vid destinationen. För att skicka dataströmmar till rätt program måste programmet identifieras med hjälp av ett unikt portnummer som specificeras i varje segments header.
Applikationer genererar data och de lägre skikten levererar data till rätt enhet. Just därför kan man säga att transportskiktet är länken mellan applikationsskiktet och lägre skikten som är ansvariga för nätverkstransmissionen.
Kommunikationskontroller
Oftast kommunicerar flera applikationer med varandra samtidigt vilket kräver att enskilda dataströmmar identifieras så att de kan multiplexeras genom samma transmissionsmedia. Datasegmentering möjliggör multiplexering så att flera applikationer kan komma åt transmissionsmediet.
Fel kan uppstå och de ska identifieras och åtgärdas exempelvis genom att reglera dataflöde (inte för mycket, inte för litet) eller genom att återsända felaktiga leveranser. Dessa mekanismer möjliggörs när Transportskiktet först etablerar en session mellan kommunicerande applikationer innan data överförs. När avsändare och mottagare sammanbinds genom flera nätverk kan kommunikationskontroller utövas som kan identifiera, åtgärda fel och reglera dataflödet under samma pågående session.
Reglering av dataflödet (flödeskontroll) innebär att ett snabbt system inte överfyller ett långsammare, annars förekommer dataförlust. Denna flödeskontroll reglerar sändarens och mottagarens överföringsresurser som till exempel bandbredden och buffertminnet.
Tillförlitliga tjänster
Normalt erbjuder transportskiktet tillförlitliga tjänster till det överliggande skiktet eftersom det normala är att användarna vill föra data över nätverket på ett säkert och korrekt sätt samt i rätt ordning. Tillförlitlighet innebär att data kommer fram till destinationen i ordning och utan deformationer. I princip följer varje dataström tillförlitliga protokoll under dataöverföringen så att felfria leveranser kan garanteras och därmed kvitteras, annars återsänds felaktiga leveranser.
För att transportskiktet ska kunna erbjuda en tillförlitlig tjänst måste transportskiktet kunna ta hänsyn till de situationer som kan uppstå i de bindande nätverken mellan avsändaren och destinationen. I vissa situationer betyder hastigheten mer än tillförlitligheten, exempelvis för audio eller video. I dessa situationer kommer eventuella fel endast att uppträda som lite knaster på linjen eller som en liten förvrängning av bilden, medan varierande överföringstider helt ödelägger uppfattningen av mottagna data.
Otillförlitliga transportprotokoll/tjänst föredras om man vill ha en enkel och snabb transport utan ”overhead”, utan styrinformation förutom det nödvändiga. Applikationsutvecklare väljer lämplig transportprotokoll enligt applikationens krav.
Portadressering
TCP och UDP baserade tjänster identifierar de olika kommunicerande applikationerna med hjälp av deras portnummer. Portnummer genereras med 16 bitar (216 = 65536) och administreras av standardiseringsorganisationer som Internet Engineering Task Force (IETF) och Internet Assigned Numbers Authority (IANA)
De 65536 port nummer grupperas i:
- System Ports: 0 – 1023. De 1 024 lägsta numren kallas för ”wellknown ports” och används av välkända kommunikationsprotokoll. Till exempel:
- echo TCP och UDP 7
- FTP data TCP 20 och FTP kontroll TCP 21
- Telnet TCP 23
- SMTP TCP 25
- HTTP TCP 80
- POP3 TCP 110
- SNMP UDP 161
- User Ports: 1024 – 49151 (Registered Ports). De används fritt av klientapplikationer, oftast dynamiskt. Det vill säga att applikationer tilldelas ett portnummer helt godtyckligt.
- Dynamic/Private Ports: 49152 – 65535
Datasegmentering
Ett meddelande från användaren i övre skikt är ofta för stort för att rymmas i en PDU. Om så är fallet delar transportskiktet upp meddelandet i flera segment innan det levereras vidare till nätverksskiktet.
Det mottagande transportskiktet ska kunna se på ett segment att den inte utgör ett helt meddelande utan att flera segment ska kombineras ihop i rätt ordning till ett meddelande. Styrinformation i headern hjälper till så att dataströmmar sätts ihop i rätt ordning.
Frågan är nu hur stort ett segment/datagram ska vara. Det finns flera parametrar som kan ha betydelse för dataströmmars storlek. Först finns det underliggande nätverk genom vilket dataströmmar förs över till destinationen. Begränsningar i de mellanliggande nätverkshanterare och eventuella fel under överföringen skulle komplicera transporten av stora datamängder och öka leveranstiden rejält. Just därför kan data segmenteras i lämpliga storlekar så att de kan multiplexeras genom en och samma transmissionsmedia.