Трансмисиони контролни протокол

Трансмисиони контролни протокол (TCP, енгл. Transmision control protocol) је протокол који припада слоју 4 ОСИ референтног модела, има за улогу да обезбеди поуздан трансфер података у IP окружењу. Између осталих сервиса које нуди, неки су: поузданост, ефикасна контрола тока података, оперисање у фул-дуплексу (истовремено слање и примање података) и мултиплексирање које омогућава истовремен рад низа процеса са виших слојева путем једне конекције. TCP врши трансфер података као неструктурисан низ бајтова који се идентификују секвенцом. Овај протокол групише бајтове у сегменте додели им број секвенце, апликацијама додели број порта и проследи их IP протоколу.[1][2]

TCP обезбеђује поузданост покретањем алгоритама који пре размене података прво успоставе конекцију између корисника, а потом обезбеђује и низ механизама као што је слање ACK броја. Страна која прима податке шаље број секвенце бајта које је примио, у случају да дестинација не пошаље ACK да је примио одређену секвенцу бајтова у одређеном временском интервалу она бива накнадно поново послата. Механизми поузданости код TCP-а омогућују уређајима да се носе са губицима, кашњењима, дуплицирањем или погрешним ишчитавањем пакета. Time-out механизам омогућује уређају да детектује изгубљене пакете и да захтева њихову поновну трансмисију.

TCP заглављеУреди

бит 0-3 4-10 16-31
Изворишни порт Одредишни порт
Број сегмента (SEQ)
Број следећег бајта (ACK)
Дужина Резервисано

U R G

A C K

P S H

R S T

S Y N

F I  N

Величина динамичког прозора
Чексума (Провера битских грешака) Показивач приоритета (URG)
Опције
Податак

Поља:

  • Изворишни порт - додељен број (16 бита), идентификује апликацију која је иницијатор комуникације
  • Одредишни порт - порт који идентификује серверску апликацију (16 бита)
  • Број сегмента (SEQ) - редни број сегмента у односу на почетни (број бајта у односу на иницијални)(32 бита)
  • Број следећег бајта (ACK) - редни број бајта послат предајној страни који очекује да прими (32 бита)
  • Дужина - Дужина заглавља
  • Резервисана поља
  • URG, ACK, PSH, RST, SYN, FIN представљају контролне бите
  • Величина динамичког прозора - број октета које је могуће слати без потврде о њиховом пријему
  • Чексума - Провера битских грешака, комплемент суме TCP заглавља
  • Показивач приоритета (URG) - показује важност поруке која се шаље
  • Опције - Опциона информација
  • Податак - ако постоји опциона информација битови почевши са 192 представљају податак, иначе од 160. бита

Успостављање конекцијеУреди

Комуникација између апликација уз помоћ TCP протокола се одвија тако што се прво између клијента и сервера успостави веза (услуга са конекцијом), за разлику од комуникације UDP протоколом који је не захтева. Конекција се успоставља тако што се између пријемне и предајне стране из три пута размене поруке са подешеним одговарајућим контролним битима.

  1. Предајна страна A шаље поруку са подешеним контролним битом SYN=1 (енгл. SYNchronize Sequence Number), остали су подешени на 0, при чему насумично изабере редни број сегмента (SEQA).
  2. Пријемна страна B одговара поруком са контролним битима SYN и ACK=1, свој број сегмента бира такође насумично (SEQB), а за ACK број узима ACK=(SEQA)+1, овим је успостављена веза на линији од предајне ка пријемној страни.
  3. Слањем поруке са подешеним контролним битом SYN=1 од пријемне стране, она захтева да предајна страна потврди успостављање везе од пријемне ка предајној страни. Што она и чини тако што одговара поруком са подешеним контролним битом ACK=1 (енгл. ACKnowledgment number), док уз то узима вредност ACK броја ACK=(SEQB)+1. Овим је успостављена обострана конекција између клијента и сервера.

Прекидање конекцијеУреди

При завршетку слања података, сервер шаље поруку са подешеним контролним битом FIN=1 (енгл. FINish). Веза од сервера ка клијенту се прекида тиме што клијент на слање овакве поруке одговара са поруком са подешеним контролним битом ACK=1 (потврда о пријему). Уколико и клијент жели затворити конекцију он исто тако шаље поруку са подешеним битом FIN=1. Коначно обострано прекидање везе се потврђује од стране сервера који одговара са поруком у чијем је заглављу подешен бит ACK=1.

Види јошУреди

РеференцеУреди

  1. ^ Cerf, Vinton G.; Kahn, Robert E. (мај 1974). „A Protocol for Packet Network Intercommunication”. IEEE Transactions on Communications. 22 (5): 637—648. doi:10.1109/tcom.1974.1092259. Архивирано из оригинала|archive-url= захтева |url= (помоћ) на датум 4. 3. 2016. 
  2. ^ Bennett, Richard (септембар 2009). „Designed for Change: End-to-End Arguments, Internet Innovation, and the Net Neutrality Debate” (PDF). Information Technology and Innovation Foundation. стр. 11. Приступљено 11. 9. 2017. 

ЛитератураУреди

RFCУреди

Спољашње везеУреди