Modemski protokoli za odpravljanje napak so metode za odkrivanje in popravljanje napak pri prenosu podatkov. Protokoli, ki temeljijo na strojni in programski opremi, obstajajo in se pogosto uporabljajo skupaj. Posamezni modem običajno uporablja vgrajen protokol, ki temelji na strojni opremi, da kompenzira šum komunikacijske povezave. Sistemi na obeh koncih povezave pogosto uporabljajo protokole, ki temeljijo na programski opremi, za obvladovanje težav, na katere modem ne more vplivati.
Odpravljanje napak pri prenosu je na splošno večstopenjski postopek. Preden se vsak podatkovni paket pošlje prek povezave, oddajni modem izračuna svojo kontrolno vsoto in jo vključi v paket. Za določitev kontrolne vsote se pogosto uporablja algoritem Cyclic Redundancy Check (CRC). Ko paket prispe, sprejemni modem izračuna tudi kontrolno vsoto podatkov in jo primerja s tisto, ki je že v paketu. Če se ne ujemata, sprejemnik obvesti oddajnik, da mora znova poslati napačen podatkovni paket.
V osemdesetih letih prejšnjega stoletja je Microcom, Inc. predstavil družino protokolov za odpravljanje napak modemov, ki temeljijo na strojni opremi. Imenuje se Microcom Networking Protocol (MNP) in je sestavljen iz desetih oštevilčenih razredov, ki so sčasoma izboljšali zmogljivost. MNP razred 1980 na primer odpravlja nepotrebne bite za okvirjanje iz posameznih bajtov podatkov. Razred MNP 3 stisne podatke, preden jih pošlje, na podlagi izboljšav v razredih 5 do 1. Razred MNP 4 spreminja pasovno širino podatkov, daje prednost eni smeri pred drugo po potrebi in skrajša čas zagona povezave.
MNP je bil široko sprejet in je vgrajen v večino telefonskih modemov. Eden od naprednejših protokolov za odpravljanje napak modema, ki temelji na strojni opremi, je bil uveden v zgodnjih devetdesetih letih prejšnjega stoletja. Standard Mednarodne telekomunikacijske zveze za standardizacijo telekomunikacij (ITU-T) V.1990 je bil hitro vključen v modeme poleg MNP. Njegov postopek dostopa do povezave za modeme (LAPM) vključuje vrhunsko stiskanje podatkov v primerjavi z MNP. Prav tako dodaja manj obremenitev za posredovane podatke in ima boljšo podporo za nadzor pretoka in sinhroni prenos.
Protokoli za odpravljanje napak modema, ki temeljijo na strojni opremi, so lahko zelo dobri pri zagotavljanju, da vsak podatkovni paket prispe nedotaknjen. Veliko prenosov datotek pa je mogoče učinkoviteje obravnavati z uporabo tako programskih kot strojnih protokolov skupaj. Če se povezava izgubi med pošiljanjem zelo velike datoteke, mnogi sistemi zahtevajo začetek od začetka datoteke. Nasprotno pa si bodo nekateri protokoli za odpravljanje napak, ki temeljijo na programski opremi, zapomnili, kje se je prenos končal, in nadaljevali od tam. Programski protokoli lahko tudi bolje upravljajo nadzor pretoka v sistemu zunaj same modemske povezave.
XMODEM je bil eden od zgodnjih protokolov za odpravljanje napak modemov, ki temeljijo na programski opremi, ustvarjenih v poznih sedemdesetih letih prejšnjega stoletja. Bilo je zelo preprosto, vključno s številko bloka, primitivno kontrolno vsoto in nekaj označevalnimi bajti v vsakem paketu. Njegov algoritem kontrolne vsote je bil problematičen in mnogi ljudje so kmalu uvedli različice z dodatnimi funkcijami. Ti vključujejo večje velikosti blokov, prenose več datotek in zagon novega paketa, preden je bil prejšnji preverjen. YMODEM, ki je bil XMODEMov naslednik sredi osemdesetih let, je mnoge od teh navedel kot neobvezne izboljšave.
ZMODEM in njegove različice so bistveno izboljšani protokoli za odpravljanje napak modema, ki temeljijo na programski opremi. ZMODEM, ki ga je leta 1986 razvil avtor YMODEM, vključuje veliko boljši algoritem CRC, ki uporablja 32 bitov. Lahko se premakne na naslednji paket, ne da bi čakal na potrditev trenutnega, izboljšal prepustnost ali dostavo sporočil. ZMODEM lahko tudi znova zažene prenos velikih datotek od mesta, kjer je bil prekinjen, če je povezava prekinjena. Kasnejše različice so vključevale še večje velikosti blokov in samodejno stiskanje paketnih podatkov.