Modemi veaparandusprotokollid on meetodid andmeedastusvigade tuvastamiseks ja parandamiseks. On olemas nii riistvara- kui ka tarkvarapõhised protokollid ja neid kasutatakse sageli koos. Üksikmodem kasutab sideühenduse müra kompenseerimiseks tavaliselt sisseehitatud riistvarapõhist protokolli. Süsteemid lingi mõlemas otsas kasutavad sageli tarkvarapõhiseid protokolle, et tulla toime probleemidega, mida modem ei kontrolli.
Edastusvigade parandamine on üldiselt mitmeastmeline protsess. Enne iga andmepaketi saatmist lingi kaudu arvutab edastav modem selle kontrollsumma ja lisab selle paketti. Kontrollsumma määramiseks kasutatakse sageli tsüklilise koondamise kontrolli (CRC) algoritmi. Kui pakett saabub, arvutab vastuvõttev modem välja ka andmete kontrollsumma ja võrdleb seda juba paketis olevaga. Kui need kaks ei ühti, teatab vastuvõtja saatjale, et tal on vaja vigane andmepakett uuesti saata.
1980. aastatel tutvustas Microcom, Inc. riistvarapõhiste modemi veaparandusprotokollide perekonda. Seda nimetatakse Microcomi võrguprotokolliks (MNP) ja see koosneb kümnest nummerdatud klassist, mis parandasid aja jooksul jõudlust. MNP klass 3 kõrvaldab näiteks üksikutest andmebaitidest mittevajalikud kadreerimisbitid. MNP klass 5 tihendab andmed enne nende saatmist, tuginedes klasside 1–4 täiustustele. MNP klass 6 muudab andmete ribalaiust, eelistades vastavalt vajadusele ühte suunda teisele ja vähendab ühenduse käivitamise aega.
MNP võeti laialdaselt kasutusele ja see on sisse ehitatud enamikesse telefonipõhistesse modemitesse. Üks täiustatumaid riistvarapõhiseid modemi veaparandusprotokolle võeti kasutusele 1990. aastate alguses. Rahvusvahelise Telekommunikatsiooni Liidu telekommunikatsiooni standardimise sektori (ITU-T) V.42 standard lisati kiiresti MNP kõrvale modemitesse. Selle modemite lingipääsuprotseduur (LAPM) sisaldab MNP-ga võrreldes paremat andmete tihendamist. Samuti lisab see edastatavatele andmetele vähem üldkulusid ning toetab paremini voo juhtimist ja sünkroonset edastamist.
Riistvarapõhised modemi veaparandusprotokollid võivad olla väga head tagamaks, et iga andmepakett saabub tervena. Paljusid failiedastusi saab aga tõhusamalt hallata, kasutades nii tarkvara- kui ka riistvaraprotokolle koos. Kui ühendus katkeb väga suure faili saatmisel, peavad paljud süsteemid alustama faili algusest. Seevastu mõned tarkvarapõhised veaparandusprotokollid jätavad meelde, kus edastamine pooleli jäi, ja jätkavad sealt. Tarkvaraprotokollid saavad ka paremini hallata voojuhtimist süsteemis väljaspool modemiühendust.
XMODEM oli üks varasemaid tarkvarapõhiseid modemi veaparandusprotokolle, mis loodi 1970. aastate lõpus. See oli väga lihtne, sisaldades igas paketis ploki numbrit, primitiivset kontrollsummat ja mõnda markerbaiti. Selle kontrollsumma algoritm oli problemaatiline ja paljud inimesed rakendasid peagi lisafunktsioonidega variatsioone. Nende hulka kuulusid suuremad ploki suurused, mitme faili ülekandmine ja uue paketi käivitamine enne eelmise kontrollimist. YMODEM, mis oli XMODEMi järglane 1980. aastate keskel, loetles paljud neist valikuliste täiustustena.
ZMODEM ja selle variandid on palju täiustatud tarkvarapõhised modemi veaparandusprotokollid. 1986. aastal YMODEMi autori poolt välja töötatud ZMODEM sisaldab palju paremat CRC-algoritmi, mis kasutab 32 bitti. See võib liikuda järgmise paketi juurde, ootamata praeguse kinnitust, parandades läbilaskevõimet või sõnumi edastamist. Kui ühendus katkeb, saab ZMODEM taaskäivitada suure failiedastuse sealt, kus see pooleli jäi. Hilisemad variatsioonid hõlmasid veelgi suuremaid plokkide suurusi ja pakettandmete automaatset tihendamist.