I ett nätverkslager som är både opålitligt och anslutet (som Internetprotokollet, IP) finns det ingen inneboende mekanism för att automatiskt återta förlorade data. Ansvaret för att säkerställa tillförlitlig dataleverans faller på högre lager av protokollstacken, vanligtvis transportskiktet (t.ex. TCP) eller till och med högre nivåer. Så här uppnås det:
1. Transportlagerprotokoll (som TCP):
* Anslutningsanläggning: TCP skapar en anslutning före dataöverföring, vilket möjliggör en dialog mellan avsändare och mottagare. Detta innebär ett trevägshandskakning för att bekräfta anslutningsviabilitet.
* Sekvensering: Varje datapaket är numrerat i följd. Detta gör det möjligt för mottagaren att upptäcka saknade paket och begära vidarebefordran.
* erkännande (ACK): Mottagaren skickar ACK -paket tillbaka till avsändaren som bekräftar mottagandet av data. Om en ACK inte mottas inom en tidsperiod återförs avsändaren det okända paketet.
* timeout och vidarebefordran: Avsändaren upprätthåller timers för varje skickat paket. Om en timer löper ut innan en ACK tas emot, skickas paketet.
* feldetektering: Kontrollsumman eller andra feldetekteringsmekanismer används för att upptäcka skadade paket. Korrupta paket kasseras och vidarebefordran begärs.
2. Applikationsskiktmekanismer (när du använder UDP eller ett liknande anslutningsfritt protokoll):
Eftersom nätverkslagret inte ger någon inbyggd tillförlitlighet måste applikationer som använder UDP eller andra anslutningsfria protokoll implementera sina egna mekanismer för tillförlitlig dataöverföring:
* Sekvensering och ACKS: Applikationen i sig måste numrera paket och implementera bekräftelse- och vidarebefordringsstrategier, efterlikna funktionaliteten för TCP.
* Tidsgranskning: I likhet med TCP ställer applikationen timeouts för varje paket. Om en timeout löper ut utan ett bekräftelse, återställer applikationen paketet.
* Positivt erkännande med vidarebefordran (par): Mottagaren erkänner mottagna paket, och avsändaren retransmits saknade paket baserat på dessa bekräftelser.
* go-back-n arq: Avsändaren återställer alla paket som börjar från det okända paketet.
* Selektiv upprepning ARQ: Avsändaren återställer bara de saknade paketen.
kort sagt: Även om nätverkslagerens opålitliga och anslutna natur inte tillhandahåller inbyggd dataåterställning, är protokoll på högre nivå och logik på applikationsnivå ansvariga för att implementera nödvändiga mekanismer för att upptäcka och återställa från förlorade data. Detta lägger till omkostnader, men det möjliggör tillförlitlig kommunikation över en i sig opålitlig infrastruktur.