Pålitlig datalänkNätverksskiktet tillhandahåller en opålitlig datalänk. Paket kan förloras eller förvanskas på olika sätt. En av de tjänster som TCP tillhandahåller är att skapa en pålitlig datalänk, dvs se till transportsegmenten kommer fram, att de är felfria och att de kommer i rätt ordning.Det är Transportprotokollentiteterna hos sändaren och mottagaren som pratar med varandra för att ordna det. Till sin hjälp tar de sekvensnummer, felkontroller, kvittenser och, vid behov, omsändningar. De sekvenser av meddelanden de utväxlar definierar själva kommunikationsprotokollet. ProtokollspecifikationProtokoll blir lätt komplicerade och behöver beskrivas på ett entydigt sätt. Det finns flera olika sätt att beskriva/specificera kommunikationsprotokoll. Vi använder här ett sätt som kallas tillståndsmaskinmodellen. De två protokollentiteterna beskrivs som maskiner som kan hamna i olika tillstånd beroende på vilka meddelanden de just har tagit emot eller sänt. Tillstånden har olika namn och ritas som cirklar med med pilar emellan som anger möjliga tillståndsförändringar.Utgångspunkten är ett viloläge för båda transportentiteterna i väntan på ett anrop, endera uppifrån applikationsskiktet (via en socket) i den egna noden att skicka ett meddelande till den andra noden, eller underifrån nätverksskiktet att ta emot ett meddelande från den andra noden och efter kontroller skicka upp till applikationsskiktet (via den socket som anges i det inkommande transportsegemntet). Vi nöjer oss nedan med att titta på fallet att den ena sänder och den andra mottar. Fallet att sändaren istället blir mottagare och mottagaren sändare är helt symmetriskt. Den första tillståndsövergången sker när sändarens applikationsentitet skickar ett datapaket till transportentiteten via en socket. TCP är förbindelseorienterat och börjar med att försöka upprätta en förbindelse innan datapaketet skickas. Sändarentiteten skickar en uppkopplingsbegäran, Connection_Request (CR) och övergår till ett vänteläge där den förväntar sig att endera få en bekräftelse (ACK) att begäran kommit fram och accepterats eller ett avslag på begäran (NAK). Om det kommer ett NAK försöker entiteten igen med en viss fördröjning. Om det kommer ett ACK skickar entiteten paketet och övergår i ett nytt vänteläge fär att invänta ett ACK eller NAK |