**Sakaru protokols** jeb **komunikācijas protokols** telesakaru jomā ir noteikumu sistēma, kas ļauj divām vai vairākām sakaru sistēmas vienībām pārsūtīt informāciju, izmantojot jebkāda veida fizikāla lieluma izmaiņas (sakaru kanāls). Protokols definē sakaru noteikumus, sintaksi, semantiku un sinhronizāciju, kā arī iespējamo kļūdu atkopšanas metodes. Protokolus var ieviest aparatūrā, programmatūrā vai abu kombinācijā.

Sakaru sistēmās dažādu ziņojumu apmaiņai tiek izmantoti precīzi definēti formāti. Katram ziņojumam ir precīza nozīme, lai radītu atbildes reakciju no iespējamo reakciju klāsta, kas iepriekš noteikts attiecībā uz konkrēto situāciju. Norādītā darbība parasti nav atkarīga no tā, kā tā ir ieviesta. Iesaistītajām pusēm jāvienojas par saziņas protokoliem. Lai panāktu vienošanos, protokolu var izstrādāt tehniskā standartā.

Vairāki protokoli bieži apraksta vienas datu pārsūtīšanas dažādus aspektus. Protokolu grupa, kas izveidota, lai strādātu kopā, ir pazīstama kā protokola komplekts; ja to ievieš programmatūrā, tas ir protokola steks.

Interneta sakaru protokolus publicē standartu organizācija *Internet Engineering Task Force* (*IETF*). Elektronikas un Elektrotehnikas inženieru institūta (*IEEE*) pārziņā ir vadu un bezvadu tīklošanas standarti, un Starptautiskā standartizācijas organizācija (*ISO*) ir atbildīga par citiem standartu veidiem. *ITU-T* pārziņā ir publiskā komutējamā telefonu tīkla (*PSTN*) telesakaru protokoli un formāti. Telefonu tīkla un interneta konverģences rezultātā standarti tiecas uz saplūšanu.

Sakaru sistēmas
---------------

Informācijas apmaiņu starp ierīcēm, izmantojot tīklu vai citus informācijas nesējus, reglamentē noteikumi un vienošanās, ko var aprakstīt sakaru protokola specifikācijās. Šīs specifikācijas nosaka sakaru veidu, faktiskos datus, ar kuriem notiek apmaiņa, un jebkādu no stāvokļa atkarīgu rīcību. Ciparu skaitļošanas sistēmās noteikumus var izteikt ar algoritmiem un datu struktūrām.

Operētājsistēmās parasti satur sadarbības procesu kopu, kas manipulē ar koplietojamiem datiem, lai savstarpēji sazinātos. Šo komunikāciju nosaka labi saprotami protokoli, kurus var iestrādāt pašā procesa kodā. Savukārt, tā kā sakaru ierīcēm nav koplietojamās atmiņas, sakaru sistēmām ir jāsazinās savā starpā, izmantojot koplietojamu pārraides vidi. Sakaru sistēmas sarežģī arī tas, ka pārsūtīšana ne vienmēr ir uzticama, kā arī atsevišķas sistēmas var izmantot dažādas aparatūras platformas vai operētājsistēmas.

Lai ieviestu tīklošanas protokolu, protokola programmatūras moduļiem ir jāmijiedarbojas ar ietvaru, kas ieviests iekārtas operētājsistēmā. Šis ietvars realizē operētājsistēmas tīklošanas funkcionalitāti. Ja protokola algoritmi ir izteikti pārnesamā programmēšanas valodā, protokola programmatūru var padarīt neatkarīgu no operētājsistēmas. Vislabāk zināmie ietvari ir *TCP/IP* modelis un *OSI* modelis.

Laikā, kad tika izstrādāts internets, abstrakciju slāņošana bija izrādījusies veiksmīga pieeja gan kompilatora, gan operētājsistēmas konstrukcijā, un, ņemot vērā programmēšanas valodu un sakaru protokolu līdzību, sākotnēji monolītās tīklošanas programmas tika sadalītas sadarbības protokolos. Tas radīja daudzslāņu protokolu koncepciju, kas mūsdienās veido protokolu izstrādes pamatu.

Sistēmas parasti neizmanto vienu protokolu, lai veiktu datu pārsūtīšanu. Tā vietā tie izmanto sadarbības protokolu kopu, ko dažkārt sauc par protokola komplektu. Daži no zināmākajiem protokolu komplektiem ir *TCP/IP*, *IPX/SPX*, *X.25*, *AX.25* un *AppleTalk*.

Protokolus var klasificēt, pamatojoties uz grupu funkcionalitāti, piemēram, pastāv transporta protokolu grupa. Funkcionalitātes tiek grupētas slāņos, katrā slānī risinot atsevišķu problēmu klasi, kas attiecas, piemēram, uz lietojumprogrammu, transporta, interneta un tīkla interfeisa funkcijām. Lai pārsūtītu ziņojumu, jāizvēlas katra slāņa protokols.

Pamatprasības
-------------

Datu iegūšana tīklā ir tikai protokola problēmas daļa. Saņemtie dati jānovērtē kontekstā ar sakaru seansa norisi, tāpēc protokolā jāiekļauj noteikumi, kas apraksta kontekstu. Šis noteikumu veids ir domāts, lai izteiktu sakaru sintaksi. Citi noteikumi nosaka, vai dati ir nozīmīgi kontekstam, kurā notiek datu apmaiņa; tie pauž sakaru semantiku.

Protokolos ir jānorāda noteikumi, kas reglamentē ziņojumi (datu vienību) nosūtīšanu sakaru sistēmās. Galvenās problēmas, kas jārisina sakaru protokolos:

Datu formāti datu apmaiņai
Pārsūtot datus, starpposmos notiek ziņojuma bitu virknes izmaiņas. Bitu virknes ir sadalītas pa laukiem, un katrā laukā ir informācija, kas attiecas uz protokolu. Konceptuāli bitu virkne ir sadalīta divās daļās: galvenē un vērtumā. Faktiskais ziņojums tiek pārsūtīts vērtumā. Galvenes apgabals satur laukus, kas atbilst protokola darbībai. Bitu virknes, kas ir garākas par maksimālo pārraides bloku (*MTU*), ir sadalītas attiecīgā lieluma gabalos.
Adrešu formāti datu apmaiņai
Adreses izmanto, lai identificētu gan sūtītāju, gan paredzēto(-os) saņēmēju(-us). Adreses tiek norādītas bitu virknes galvenē, ļaujot saņēmējiem noteikt, vai bitu virknes ir jāapstrādā vai arī tās ir jāignorē. Savienojumu starp sūtītāju un saņēmēju var identificēt, izmantojot adrešu pāri "(sūtītāja adrese, adresāta adrese)". Parasti dažām adrešu vērtībām ir īpaša nozīme. Piemēram, var norādīt, ka ziņojumi jāsūta uz lokālā tīkla visu staciju adresēm. Noteikumus, kas apraksta adreses vērtības nozīmi, sauc par adresācijas shēmu.
Adrešu kartēšana
Dažreiz protokoliem vienas shēmas adreses jākartē uz citas shēmas adresēm. Piemēram, lietojumprogrammas norādītā loģiskā IP adrese jātulko uz *Ethernet MAC* adresi; to sauc par adrešu kartēšanu.
Maršrutēšana
Ja sistēmas nav tieši savienotas, starpnieku sistēmām maršrutā līdz paredzētajam(-iem) saņēmējam(-iem) ir jāpārsūta ziņojumi sūtītāja vārdā. Internetā tīkli ir savienoti, izmantojot maršrutētājus. Tīklu savienošanu caur maršrutētājiem sauc par starptīklošanu.
Pārsūtīšanas kļūdu konstatēšana
Kļūdu noteikšana ir nepieciešama tīklos, kur iespējama datu bojāšana. Vispārējā pieejā datu apgabala cikliskās redundances pārbaudes kods (*CRC*) tiek pievienotas pakešu beigās, ļaujot saņēmējam noteikt atšķirības, ko izraisa datu bojājumi. Saņēmējs noraida paketes par *CRC* atšķirībām un kaut kā organizē atkārtotu datu pārsūtīšanu.
Apliecinājumi
Apstiprinājums par paketes pareizu saņemšanu ir nepieciešams uz savienojumu orientētiem sakariem. Apliecinājumi tiek nosūtīti no saņēmējiem atpakaļ saviem attiecīgajiem izsūtītājiem.
Informācijas zudums - noildzes un atkārtošanas
Paketes var pazust tīklā vai kavēties tranzītā. Lai ar to tiktu galā, saskaņā ar dažiem protokoliem sūtītājs noteiktā laikā var saņemt apstiprinājumu par pareizu saņemšanu no saņēmēja. Tādējādi noildzē sūtītājam, iespējams, vajadzēs atkārtoti pārraidīt informāciju. Ja saites pārtraukumi notiek pastāvīgi, atkārtotai pārsūtīšanai nav nozīmes, tāpēc atkārtotu pārsūtīšanu skaits ir ierobežots.
Informācijas plūsmas virziens
Virzienu nepieciešams adresēt, ja nosūtīšana vienlaikus var notikt tikai vienā virzienā kā pusdupleksās saites vai no viena sūtītāja vienlaikus koplietotā sakaru vidē. To sauc par vides piekļuves vadību. Jāveic pasākumi, lai regulētu sadursmes vai sāncensības gadījumus, ja attiecīgi divas puses pārraida vai vēlas pārraidīt.
Secības vadība
Ja garās bitu virknes tiek sadalītas gabalos un pēc tam nosūtītas tīklā atsevišķi, gabali var pazust vai aizkavēties, vai arī (dažu veidu tīklos) nokļūt līdz to galamērķim pa dažādiem maršrutus. Rezultātā gabali var nonākt secībā, kas atšķiras no sākotnējās secības. Atkārtotas pārsūtīšanas var izraisīt gabalu dublikātus. Pie sūtītāja atzīmējot gabalus ar secības informāciju, saņēmējs var noteikt, kas ir pazaudēts vai dublēts, pieprasīt nepieciešamās atkārtotas pārsūtīšanas un no jauna samontēt sākotnējo ziņojumu.
Plūsmas vadība
Plūsmas vadība ir nepieciešama, ja sūtītājs pārsūta ātrāk nekā uztvērējs vai starptīkla iekārta var apstrādāt pārsūtīšanas. Plūsmas vadību var ieviest ar ziņojumapmaiņu no saņēmēja sūtītājam.

Atsauces
--------

1. ↑  Marsden 1986, Chapter 3 - Fundamental protocol concepts and problem areas, p. 26-42, explains much of the following.

Ārējās saites
-------------

* Communication Protocol techopedia.com
* Communication Protocol sciencedirect.com