Modeemin virheenkorjausprotokollat ovat menetelmiä tiedonsiirtovirheiden havaitsemiseen ja korjaamiseen. Sekä laitteistopohjaisia että ohjelmistopohjaisia protokollia on olemassa ja niitä käytetään usein yhdessä. Yksittäinen modeemi käyttää yleensä sisäänrakennettua laitteistopohjaista protokollaa kompensoimaan viestintälinkin kohinaa. Linkin molemmissa päissä olevat järjestelmät käyttävät usein ohjelmistopohjaisia protokollia selviytyäkseen ongelmista, jotka eivät ole modeemin hallinnassa.
Lähetysvirheiden korjaus on yleensä monivaiheinen prosessi. Ennen kuin jokainen datapaketti lähetetään linkin yli, lähettävä modeemi laskee sen tarkistussumman ja sisällyttää sen pakettiin. Cyclic Redundancy Check (CRC) -algoritmia käytetään usein tarkistussumman määrittämiseen. Kun paketti saapuu, vastaanottava modeemi laskee myös tiedon tarkistussumman ja vertaa sitä paketissa jo olevaan. Jos nämä kaksi eivät täsmää, vastaanotin ilmoittaa lähettimelle, että sen on lähetettävä huono datapaketti uudelleen.
1980-luvulla Microcom, Inc. esitteli laitteistopohjaisten modeemien virheenkorjausprotokollien perheen. Microcom Networking Protocol (MNP) -niminen se koostuu kymmenestä numeroidusta luokasta, jotka paransivat suorituskykyä ajan myötä. MNP Class 3 eliminoi tarpeettomat kehystysbitit esimerkiksi yksittäisistä datatavuista. MNP Class 5 pakkaa tiedot ennen sen lähettämistä luokkien 1–4 parannusten pohjalta. MNP Class 6 muuttaa tiedon kaistanleveyttä suosien yhtä suuntaa tarpeen mukaan ja lyhentää yhteyden käynnistysaikaa.
MNP otettiin laajalti käyttöön, ja se on sisäänrakennettu useimpiin puhelinpohjaisiin modeemeihin. Yksi kehittyneimmistä laitteistopohjaisista modeemin virheenkorjausprotokollista otettiin käyttöön 1990-luvun alussa. Kansainvälisen televiestintäliiton televiestinnän standardointisektorin (ITU-T) V.42-standardi sisällytettiin nopeasti modeemeihin MNP:n rinnalle. Sen Link Access Procedure for Modems (LAPM) sisältää erinomaisen tiedonpakkauksen verrattuna MNP:hen. Se myös lisää lähetettävään dataan vähemmän lisäkustannuksia ja tukee paremmin vuonohjausta ja synkronista lähetystä.
Laitteistopohjaiset modeemin virheenkorjausprotokollat voivat olla erittäin hyviä varmistamaan, että jokainen datapaketti saapuu ehjänä. Monet tiedostojen siirrot voidaan kuitenkin hoitaa tehokkaammin käyttämällä sekä ohjelmisto- että laitteistoprotokollia yhdessä. Jos yhteys katkeaa lähetettäessä erittäin suurta tiedostoa, monet järjestelmät edellyttävät aloittamista alusta tiedoston alusta. Sitä vastoin jotkin ohjelmistopohjaiset virheenkorjausprotokollat muistavat, mihin lähetys päättyi, ja jatkavat siitä. Ohjelmistoprotokollat voivat myös paremmin hallita vuonohjausta järjestelmässä itse modeemiyhteyden ulkopuolella.
XMODEM oli yksi varhaisista ohjelmistopohjaisista modeemin virheenkorjausprotokollista, joka luotiin 1970-luvun lopulla. Se oli hyvin yksinkertainen, sisältäen lohkonumeron, primitiivisen tarkistussumman ja muutaman merkkitavun jokaisessa paketissa. Sen tarkistussumma-algoritmi oli ongelmallinen, ja monet ihmiset ottivat pian käyttöön muunnelmia lisäominaisuuksilla. Näitä olivat suuremmat lohkokoot, useiden tiedostojen siirrot ja uuden paketin aloittaminen ennen kuin edellinen oli vahvistettu. YMODEM, joka oli XMODEMin seuraaja 1980-luvun puolivälissä, listasi monet näistä valinnaisina parannuksina.
ZMODEM ja sen muunnelmat ovat paljon parannettuja ohjelmistopohjaisia modeemin virheenkorjausprotokollia. YMODEMin vuonna 1986 kehittämä ZMODEM sisältää paljon paremman CRC-algoritmin, joka käyttää 32 bittiä. Se voi siirtyä seuraavaan pakettiin odottamatta nykyisen kuittausta, mikä parantaa suorituskykyä tai viestin toimitusta. ZMODEM voi myös käynnistää suuren tiedostonsiirron uudelleen siitä, mihin se jäi, jos yhteys katkeaa. Myöhemmät muunnelmat sisälsivät vielä suuremmat lohkokoot ja pakettidatan automaattisen pakkaamisen.