Joukko sääntöjä, joita tietokonejärjestelmät ja muut teknologiset laitteet käyttävät kommunikoidakseen tai välittääkseen tietoja edestakaisin muiden järjestelmien ja laitteiden kanssa, tunnetaan viestintäprotokollana. Protokolla määrittää lähetettävän datan muodon ja syntaksin. Tämä voi tapahtua erityisten komentojen muodossa, jotka lähetetään ennen todellisia tietoja, tai se voi olla tietyn tyyppisten kokonaisten sarjattujen objektien lähettäminen. Protokollat voidaan toteuttaa ohjelmistolla tai ne voidaan rakentaa laitteistoon ja sulautettuihin järjestelmiin. Käytössä on monia viestintäprotokollia, joista osa on suojattuja ja osa avoimen lähdekoodin kehittämistarkoituksia varten.
Viestintäprotokolla rakennetaan luomalla syntaksi, jonka järjestelmät voivat ymmärtää ja seurata. Vaikka protokollan todellinen semantiikka voi vaihdella, useimmat ovat samanlaisia, koska ne perustuvat samoihin periaatteisiin ja laitteistorajoituksiin. Kun protokolla on luotu, kaikki protokollaa ymmärtävät järjestelmät voivat lähettää ja vastaanottaa tietoja muiden tällaisten järjestelmien kanssa. Tällä tavoin viestintäprotokolla muistuttaa läheisesti yhteisen kielen kehitystä, jota käytetään välittämään tietoja jollekin toiselle, joka tuntee kyseisen kielen.
Laitteistoprotokollia käytetään usein kahden laitteen toimintaparametrien määrittämiseen. Nämä protokollat voivat määrittää vakioita, kuten siirtonopeuden, datalohkon enimmäiskoon ja salaus- ja pakkausmenetelmät. Vaikka ne ovat erittäin tehokkaita, laitteistoprotokollat käsittelevät ensisijaisesti kahden laitteen välisen fyysisen yhteyden luomista, toisin kuin tietojen tai muiden pyyntöjen todellista tulkintaa.
Ohjelmistoprotokollat voivat olla erittäin joustavia ja ne voivat tehdä paljon enemmän kuin vain siirtää mielivaltaisia tietoja. Kun kaksi ohjelmistoa on toteuttanut viestintäprotokollan, ne voivat ottaa käyttöön minkä tahansa määrän algoritmeja tai toimintoja. Yleisimpiä ovat virheiden havaitseminen ja virheiden korjaaminen.
Virheentunnistus ja -korjaus ovat tapoja, joilla tietyn protokollan kautta siirretyt tiedot voidaan tarkistaa tarpeettomasti virheiden varalta. Tämä voi olla tarpeen, kun laitteiden väliset fyysiset linjat ovat epäluotettavia tai niissä on paljon kohinaa, joka voi vioittaa signaalin. On kehitetty useita algoritmeja, joiden avulla voidaan tarkistaa ja palauttaa lähetettyjen tietojen eheys.
Pöytäkirjat eivät ole yksinomainen mekanismi, ja ne kerrotaan usein järjestelmän tai kehyksen sisällä. Verkkoprotokollat ovat lähes aina kerroksellisia. Tämä tarkoittaa, että eri tehtäviä varten on määritetty erilaisia protokollia. Jotkut tarjoavat pääsyn käyttöjärjestelmän resursseihin, kun taas toiset voivat yksinkertaisesti välittää tietoja sokeasti toiselle solmulle. Viestintäprotokollien kerrostaminen on yksi Internetin perusta, jonka avulla se voi toimia johdonmukaisesti niin monenlaisten tietokoneiden ja laitteiden kanssa.