Medan många protokoll erbjuder felhanteringsmekanismer,
TCP (transmissionskontrollprotokoll) I allmänhet ger de mest robusta och omfattande felhanteringskapaciteterna. Här är varför:
* Anslutningsorienterad: TCP skapar en anslutning före dataöverföring, vilket möjliggör tillförlitlig kommunikation genom en trevägs handskakning. Denna handskakning möjliggör förhandling av parametrar och en garanti för att båda sidor är redo att kommunicera.
* Tillförlitlig dataöverföring: TCP garanterar tillförlitlig dataleverans. Det gör detta genom flera mekanismer:
* sekvenserad leverans: TCP -segment (dataenheter) är numrerade, vilket säkerställer att de levereras i rätt ordning. Om segment anländer ur ordning, beställer mottagaren dem innan de skickar data till applikationslagret.
* erkännande (ACK): Mottagaren skickar ett bekräftelse (ACK) för varje mottagen segment. Detta bekräftar att uppgifterna kom framgångsrikt.
* Tillsyn: Om avsändaren inte får en ACK inom en viss timeout -period antar det att segmentet förlorades och återställer det. Detta säkerställer att all data så småningom anländer, även i närvaro av nätverkstoppning eller fel.
* checksum: Varje TCP -segment innehåller en kontrollsumma. Mottagaren beräknar kontrollsumman för det mottagna segmentet och jämför det med kontrollsumman som ingår i segmentet. Om kontrollsummorna inte matchar, indikerar det att uppgifterna skadades under överföringen och mottagaren kasserar segmentet. Avsändaren, som inte får en ACK, kommer sedan att vidarebefordra det skadade segmentet.
* Flödeskontroll: TCP använder flödeskontrollmekanismer (som ett skjutfönster) för att förhindra att avsändaren överväldigar mottagaren. Mottagaren annonserar sin fönsterstorlek, vilket indikerar hur mycket data den kan hantera. Avsändaren får inte skicka mer data än den annonserade fönsterstorleken.
* trängselskontroll: TCP inkluderar mekanismer för överbelastningskontroll (som långsam start, undvikande av trängsel, snabb överföring och snabb återhämtning) för att undvika överväldigande nätverket. Den upptäcker nätverksöverbelastning genom att övervaka paketförlust eller försening och justerar dess sändningshastighet i enlighet därmed.
Däremot är UDP (användardatagramprotokoll) ett anslutningsfritt protokoll som erbjuder minimal felhantering. UDP skickar data utan att skapa en anslutning eller garantera leverans. Det ger inte bekräftelser, vidarebefordran, sekvensering eller flödeskontroll. Detta gör UDP snabbare och effektivare för applikationer där viss dataförlust är acceptabelt (t.ex. strömmande video, onlinespel), men det är mindre tillförlitligt än TCP. Applikationer som använder UDP måste implementera sina egna felhanteringsmekanismer om tillförlitlighet är viktig.
Andra protokoll, såsom HTTP eller SMTP, bygger * på toppen * av TCP, ärver dess pålitliga transportfunktioner. HTTP förlitar sig till exempel på TCP för tillförlitlig leverans av webbinnehåll. SMTP, för e -post, använder också TCP för pålitlig meddelandeöverföring. Dessa protokoll tillhandahåller själva applikationsskiktsfelhantering (t.ex. HTTP-statuskoder, SMTP-felmeddelanden), men * underliggande * tillförlitlighet kommer från TCP.
Därför TCP sticker ut som protokollet som ger de mest robusta felhanteringsfunktionerna på grund av dess anslutningsorienterade natur och dess omfattande mekanismer för att säkerställa tillförlitlig dataöverföring.