Modemfelkorrigerande protokoll är metoder för att upptäcka och korrigera dataöverföringsfel. Både hårdvarubaserade och mjukvarubaserade protokoll finns och används ofta tillsammans. Ett enskilt modem använder vanligtvis ett inbyggt hårdvarubaserat protokoll för att kompensera för brus i kommunikationslänken. System i båda ändarna av en länk använder ofta mjukvarubaserade protokoll för att hantera problem utanför modemets kontroll.
Korrigering av överföringsfel är i allmänhet en process i flera steg. Innan varje datapaket skickas över länken, beräknar det sändande modemet sin kontrollsumma och inkluderar den i paketet. En cyklisk redundanskontroll (CRC)-algoritm används ofta för att bestämma kontrollsumman. När paketet anländer beräknar det mottagande modemet även datans kontrollsumma och jämför den med den som redan finns i paketet. Om de två inte stämmer överens meddelar mottagaren sändaren att den måste skicka om det dåliga datapaketet.
På 1980-talet introducerade Microcom, Inc. en familj av hårdvarubaserade modemfelkorrigerande protokoll. Kallas Microcom Networking Protocol (MNP) och består av tio numrerade klasser som förbättrade prestandan över tiden. MNP klass 3 eliminerar onödiga rambitar från till exempel individuella databytes. MNP Class 5 komprimerar data innan den skickar den, och bygger vidare på förbättringarna i klass 1 till 4. MNP Class 6 varierar databandbredden, gynnar en riktning framför den andra efter behov, och minskar anslutningsstarttiden.
MNP användes allmänt och är inbyggt i de flesta telefonbaserade modem. Ett av de mer avancerade hårdvarubaserade modemfelkorrigerande protokollen introducerades i början av 1990-talet. International Telecommunication Unions Telecommunication Standardization Sector (ITU-T) V.42-standard inkluderades snabbt i modem vid sidan av MNP. Dess Link Access Procedure for Modems (LAPM) inkluderar överlägsen datakomprimering jämfört med MNP. Den lägger också till mindre overhead till överförda data och har bättre stöd för flödeskontroll och synkron överföring.
Hårdvarubaserade modemfelkorrigerande protokoll kan vara mycket bra för att säkerställa att varje datapaket kommer intakt. Många filöverföringar kan dock hanteras mer effektivt genom att använda både mjukvara och hårdvaruprotokoll tillsammans. Om en anslutning bryts när en mycket stor fil skickas, kräver många system att börja om från början av filen. Däremot kommer vissa mjukvarubaserade felkorrigerande protokoll att komma ihåg var överföringen slutade och fortsätta därifrån. Programvaruprotokoll kan också bättre hantera flödeskontroll i systemet utöver själva modemanslutningen.
XMODEM var ett av de tidiga mjukvarubaserade modemfelkorrigerande protokollen som skapades i slutet av 1970-talet. Det var väldigt enkelt, inklusive ett blocknummer, en primitiv kontrollsumma och några markörbytes i varje paket. Dess kontrollsummaalgoritm var problematisk, och många implementerade snart varianter med extra funktioner. Dessa inkluderade större blockstorlekar, överföringar av flera filer och start av ett nytt paket innan det föregående verifierades. YMODEM, som var XMODEMs efterträdare i mitten av 1980-talet, listade många av dessa som valfria förbättringar.
ZMODEM och dess varianter är mycket förbättrade mjukvarubaserade modemfelkorrigerande protokoll. ZMODEM utvecklades 1986 av författaren till YMODEM och inkluderar en mycket bättre CRC-algoritm som använder 32 bitar. Det kan gå vidare till nästa paket utan att vänta på att det aktuella paketet ska bekräftas, förbättra genomströmningen eller meddelandeleverans. ZMODEM kan också starta om en stor filöverföring där den slutade om anslutningen bryts. Senare varianter inkluderade ännu större blockstorlekar och automatisk komprimering av paketdata.