En värd kan använda olika mekanismer för att avgöra om ett datapaket inte togs emot. Några vanliga metoder inkluderar:
1. Sekvensnummer: Varje datapaket som skickas över ett nätverk innehåller vanligtvis ett sekvensnummer. Detta nummer identifierar unikt paketet inom en sekvens av paket som skickas från en källa till en destination. När mottagaren tar emot ett paket kontrollerar den sekvensnumret för att säkerställa att det är det förväntade paketet. Om det mottagna sekvensnumret skiljer sig från det förväntade sekvensnumret, indikerar det att ett paket har förlorats eller ombeställts.
2. Acknowledgements (ACKs): När en mottagare framgångsrikt tar emot ett datapaket skickar den ett bekräftelsepaket (ACK) tillbaka till avsändaren. Avsändaren upprätthåller ett register över paketen den har skickat och motsvarande ACK:er den har tagit emot. Om avsändaren inte tar emot ett ACK för ett paket inom en specificerad tidsram, antar den att paketet inte togs emot och kan återsända det.
3. Timeouts: Varje datapaket har en tillhörande timeout-period. Om avsändaren inte tar emot ett ACK för ett paket inom timeoutperioden, antar den att paketet inte togs emot och kan återsända det. Timeoutperioden kan justeras dynamiskt baserat på nätverksförhållanden och paketförlusthastigheter.
4. Återsändningar: Om en avsändare tar emot ett ACK för ett paket som den redan har sänt på nytt, kan den dra slutsatsen att originalpaketet togs emot ur funktion. I sådana fall kan avsändaren välja att kassera dubblettpaketet eller bekräfta det för att undvika förvirring.
5. Felupptäckande koder: Datapaket innehåller ofta felupptäckande koder, såsom kontrollsummor eller cykliska redundanskontroller (CRC), som gör att mottagaren kan upptäcka fel eller korrupta data i de mottagna paketen. Om ett fel upptäcks kan mottagaren kassera paketet och begära omsändning.
6. Keepalive-meddelanden: I vissa protokoll skickar värdar regelbundet keepalive-meddelanden till varandra för att upprätthålla en anslutning och upptäcka om en värd inte svarar. Om en värd inte tar emot keepalive-meddelanden från en annan värd under en viss period, kan den anta att fjärrvärden inte är nåbar eller att paket inte tas emot.
Det här är några av de vanliga mekanismerna som en värd kan använda för att veta att ett datapaket inte togs emot. Genom att använda dessa tekniker kan värdar säkerställa tillförlitlig och effektiv kommunikation över nätverk.