Комуникациски протокол

**Комуникациски протокол** е формален опис на дигитални порака формати и правила за размена на тие пораки во компјутерски системи или помеѓу компјутерски системи и телекомуникациите. Протокол може да вклучува и сигнализација, проверка и исправка на грешка откривање и способности. Протоколот опишува синтакса, семантика, како и синхронизација на комуникацијата и може да се спроведува во хардвер, софтвер, или и во двете.

## Вовед

Во дипломатски контекст зборот протокол се однесува на дипломатски документ или правило, упатство итн. Синоними се процедура и политика. Иако не постои општо прифатено формална дефиниција на "протоколот" во компјутерската наука, неформалna дефиниција, врз основа на претходните, би можело да биде "опис на еден сет на процедури што треба да се следи при комуникација". Во компјутерската наука зборот алгоритам е синоним за зборот постапка, па протокол е на комуникациите што е тоа алгоритам е да се пресметки.

Комуникациски системи користат добро дефинирани формати за размена на пораки. Секоја порака има точно значење за цел да предизвика одредена реакција на примачот. А протокол затоа што опишува синтакса, семантика, како и синхронизација на комуникација. А програмскиот јазик ја опишува истата за пресметки, па постои блиска аналогија помеѓу протоколи и програмски јазици:. протоколи се на комуникациите што се пресметки на програмски јазици.

Дипломатски документи за изградба на едни со други, создавајќи документ-дрвја. Начинот на под-документи кои го сочинуваат еден документ-дрво се напишани и има влијание врз комплексноста на дрвото. Со наметнување на модел на развој на документите, вкупната читливост може да се подобри и комплексноста може да се намали.

Ефикасен модел за таа цел е да дели шема или модел. Да дели шема на документи кои го сочинуваат дрвото се смета дека припаѓаат на класите, наречени слоеви. Растојанието на под-документ за својот корен-документот се нарекува свое ниво. На ниво на под-документ ја одредува класата на која припаѓа. Под-документите им припаѓаат на класата и сите обезбедуваат слична функционалност, а кога формата ја следи функцијата имаат слична форма.

На комуникациските протоколи во употреба на интернет се дизајнирани да функционираат во многу сложени и разновидни поставки, па и тие имаат тенденција да бидат многу комплексни. Неверодостојни пренос врски додадете на ова со тоа што дури и основните барања на протоколи потешко се постигнуваат.

За да се олесни дизајнот, комуникациските протоколи се исто така структуирани со помош да дели шема како основа. Наместо да се користи еден универзален протокол да се справи со сите преносни задачи, се користи збир на протоколи за соработка и монтирање на дели шема.

## Комуникациски системи

Информациите разменети меѓу уредите во мрежа или друг комуникациски медиум е регулирано со правила (конвенции) кои можат да бидат дадени во техничката спецификација се нарекува стандарден комуникациски протокол. Природата на комуникацијата, вистинските податоци разменуваат и која било држава-зависи од  однесување се дефинира со спецификацијата. Овој пристап често се зема за протоколи во употреба од страна на телекомуникациите.
Во дигиталните компјутерски системи, правилата да бидат изразени со алгоритми и datastructures, зголемувајќи ја можноста за независност на хардвер. Изразување на алгоритми во преносни програмски јазик, го прави протокол софтвер независен оперативен систем.Протоколите се користат од страна на оперативниот систем сам по себе, се позајмуваат за да се опише овој начин и обично се, исто како остатокот од оперативниот систем, распоредени во бинарно, или изворна форма.

Оперативните системи обично се состојат од множество на соработка процеси кои манипулираат заедничка продавница (на самиот систем) да комуницираат едни со други. Оваа комуникација е регулирана со добро разбрани протоколи и е само мал дел од она што процесот би требало се да постигне (систем за управување ресурси, како на обработувачот, меморија, тајмери, I / O уреди итн, и обезбедување на контрола на пристап до ресурсите), па овие протоколи можат да бидат вградени во процесот кодови како мал дополнителен код фрагменти.

Спротивно на тоа, комуникациските системи мора да комуницираат едни со други со заеднички пренос на медиумите, бидејќи не постои заедничка меморија. За разлика од меморијата продавница операција, за пренос Преземањата треба да бидат сигурни и да можат да се вклучат различни хардвер и оперативни системи на различни системи. Ова ги комплицира работите до тој степен што некој вид на структуирање е потребно за освојување на комплексноста на мрежни протоколи, особено, кога се користи на интернет.Комуникациските системи може да го користат на различни оперативни системи, како додека тие се согласуваат да го користите истиот вид на структуирање и исти протоколи за комуникација.
За да се имплементира вмрежување на протокол, протоколот софтверски модули се interfaced со рамка претпоставува да биде спроведен на оперативниот систем на машината. Оваа рамка спроведува вмрежување на функционалноста на оперативниот систем. Очигледно, рамката треба да биде толку едноставна како што може да биде, за да се овозможи полесно инкорпорирање во оперативни системи.Најпознати рамки се на TCP / IP моделот и OSI моделот.

Во тоа време кога интернетот беше формиран, дели докажале да биде успешен дизајн за пристап и компајлер и оперативниот систем дизајн и со оглед на сличностите помеѓу програмските јазици и протоколите за комуникација, таа интуитивно чувствува што треба да се примени на протоколи, како и дели.Ова даде повод за концептот на слоевит протокол кои во денешно време претставува основа на протоколот дизајн.

Системите не користат ниту еден протокол да се справи со пренос. Наместо тоа, тие користат збир на протоколи за соработка, понекогаш се нарекува протокол семејството или протокол сопствена.Некои од најпознатите протокол апартмани вклучуваат:. IPX / SPX, X.25, AX.25, AppleTalk и TCP / IP. За да соработуваат протоколите треба да комуницираат едни со други, па не е анонимен "протокол", за да го направите тоа. А техника користена од страна на овој "протокол" се нарекува енкапсулација, што го прави возможно да се помине пораки од слој до слој во рамка.

Протоколите можат да бидат подредени на функционалноста во групи, на пример, постои група на транспортни протоколи. Функционалностите се одбележан на слоеви, што врз секој слој решавање посебна класа на проблеми поврзани со, на пример:. Апликација, транспортот, интернет и мрежниот интерфејс-функции За да се пренесе некоја порака, протокол треба да бидат избрани од секој слој, па некој вид на мултиплексирање / демултиплексирање се одвива. Изборот на следниот протокол, исто така, дел од горенаведените "протокол" се постигнува со проширување на порака со protocolselector за секој слој.

Има огромен број на протоколи, но сите тие се разликуваат само во деталите. Поради оваа причина на TCP / IP протокол може да се студира за да се добие целокупната сопствена слика за протоколот. Интернет Протокол (IP) и Пренос протоколот за контрола (TCP) се најважните од нив, а терминот Internet Protocol Suite, или TCP / IP протоколот, се однесува на наплата на своите најмногу користени протоколи. Повеќето од протоколите за комуникација во употреба на интернет се опишани во барањето за Коментари (RFC) документи на Интернет Инжинерство Task Force (IETF).

## Основни барања на протоколи
Податоците претставуваат пораки кои може да бидат испратени и примени на комуникациски системи за да воспостават комуникација. Протоколиte затоа треба да ги утврдat правилата за пренос. Во принцип, многу од следните треба да се однесуваат вака

     
* Податочни формати за размена на податоци. Во дигиталните порака bitstrings се разменуваат. На bitstrings се поделени во области и секоја област носи релевантни информации за протоколот. Концепциски на bitstring е поделена на два дела наречени заглавје област и податоци област. Вистинската порака е зачувана во областа на податоците, па насловот ги содржи полињата со поголема тежина на протоколот. На пренос се ограничени во големина, бидејќи бројот на грешки во преносот е пропорционална на големината на bitstrings кој се испраќа. Bitstrings повеќе од максималната трансфер единица (MTU) се поделени во парчиња на соодветната големина. Секој дел ја има речиси истата содржини во насловната област, бидејќи само некои полиња се зависни од содржината на податочната површина (особено КПД области, со содржина на контролен збир, што се пресметува од податочната содржина).
* Адресни формати за размена на податоци. Адресите се користат за идентификување на испраќачот и примачот за кои се наменети. Адресите се чуваат во заглавието на bitstrings, овозможувајќи и на приемниците да се утврди дали bitstrings се наменети за самите себе и треба да се обработи или (кога не се обработени) треба да бидат отфрлени. А врската помеѓу испраќачот и примачот може да се идентификува со користење на адреса пар (адреса на испраќачот, адреса на примачот). Обично некои адресни вредности имаат специјално значење. Сите 1s адреса може да се преземат за да се подразбираат сите места на мрежата, па испраќање на оваа адреса ќе резултира со емитување на локалната мрежа. Исто така, на сите '0s  адреса може да се преземат за да се подразбира испраќање на самата станица(како синоним за вистинската адреса). Станици имаат единствени адреси во локалната мрежа, па обично адресата е концептуално поделена во два дела: мрежна адреса и на адреса станица. Мрежна адреса уникатно идентификува во мрежата на меѓумрежова (мрежа на мрежи). Правилата за опишување на значењето на адресна вредност колективно се наречени адресни шеми.
* Адреса за мапирање. Понекогаш протоколот треба да се обраќа на мрежното место на една шема и на адресите на друга шема. На пример да се преведе една логичка IP-адреса утврдена со примена на хардвер адреса. Ова е познато како мапирање на адреса. Мапирањето е имплицирано во хиерархиски адресни шеми каде што само дел од адресата се користи за адреса на мрежното место. Другите случаи на мапирање треба да бидат опишани со користење на табели.
* Насочување. Кога системите не се директно поврзани, посреднички системи по должината на рутата на наменет приемник треба да очекуваме пораки (наместо ги отфрлајќи нив) во име на испраќачот. Утврдување на трасата на пораката треба да се нарекува насочување. На Интернет, мрежите се поврзани со насочувачи (gateways). Овој начин на поврзување на мрежи е наречен internetworking. За да се утврди следната насочувач на патот до целта, сите системи консултираат Локално зачуваните маси кои се состојат од (одредиште на мрежна адреса, адреса за испорака) - записи и специјален влез кој се состои од (а 'фати-сите "адреса, стандардна насочувач адреса). На која адреса е или адресата на насочувачот која се претпоставува дека е се поблиску до целта и хардвер интерфејс кој се користи за да се достигне тоа, или адресата на хардверски интерфејс на систем директно поврзување на мрежа. Стандардно се користи насочувач, кога нема друг влез планираното одредиште на мрежата.
* Детекција на грешки во преносот е неопходен, затоа што нема мрежа која е безгрешна. Делови на bitstring стануваат оштетени или изгубени. Обично, CRCS на податоците се додава на крајот на пакетите, со што се овозможува при трансфер да се забележат многу (скоро сите) разликите предизвикани од грешки, додека recalculating на CRCS на примените пакети и споредувајќи ги нив со CRCS дадени од страна на испраќачот. Приемникот го отфрла пакетите со разлика на CRC и ги организира некако за реемитување. 
* Признанија за коректниот прием на пакети од страна на примачот обично се користи за спречување на испраќачот од retransmitting на пакети. Некои протоколи, особено Datagram протокол како на Интернет Протокол (IP), не признаваат.
*  Губење на информациите - отчукувања и обиди. Понекогаш се губат пакети во мрежата или страдаат од долгите одложувања. За да се справат со ова, испраќачот очекува потврда за точниот прием од примачот во рок од одреден збир на време. На отчукувањето, пакетот е повторно пренослив. Во случај на скршени реемитување нема ефект, така што бројот на преносот е ограничен. Надминување на ограничениот број на Пробај повторно се смета за грешка.
*  Упатството за проток на информации како треба да се однесува ако преносот може да дојде само во една насока истовремено (полудуплекс врски). За да се здобијат со контрола на поврзување, испраќачот мора да почека до линија кога станува неактивен и потоа да ја испратите порака која ја означува својата желба да го стори тоа. Приемникот одговара признавајќи и го чека преносот да дојде. Испраќачот само почнува да емитува по потврдата. Договор треба да се направи за да се приспособат во случај кога двете страни сакаат да се здобијат со контрола во исто време.
* Контрола на секвенцирање . Ние видовме дека долго bitstrings се поделени на делови, кои се упатуваат на мрежата поединечно. На парчиња може да се "губат " во мрежата или пристигнуваат од низа, бидејќи личностите можат да имаат различни правци до нивното одредиште. Понекогаш непотребни парчиња се емитува, благодарение на мрежата метеж, што резултира со дупликат парчиња. Со секвенционирање на парчињата на испраќачот, примачот може да го утврди она што беше пропуштено или дупликат и да го побара за пренос. Исто така, може да се утврди цел кои парчиња како треба да се третираат.
* Контрола на проток е потребна доколку испраќачот пренесува побрзо од што процесот на примачот може да преноси, или кога мрежата станува пренатрупана. Понекогаш, аранжман може да се направи за да се забави испраќачот, но во многу случаи ова е надвор од контрола на протоколот.

## Наводи
* Gerard J. Holzmann: *Design and Validation of Computer Protocols.* Prentice Hall, 1991, ISBN 0-13-539925-4. Исто така достапно на http://spinroot.com/spin/Doc/Book91.html


Протокол
Протокол