Transportni sloj
Транспортни слој
Транспортни слој у референтним
OSI
и
TCP/IP
моделима рачунарских комуникација
задужен је за пренос података апликација између две комуникационе стране. Он чини слој
између слоја апликације и мрежног слоја.
У савременим рачунарским мрежама постоје два основна типа података у зависности од
критичног захтева при њиховом преносу:
подаци осетљиви на грешке
подаци осетљиви на кашњење
У складу са овим захтевима на транспортном слоју постоје два основна протокола за
пренос података:
протокол за контролу преноса (енгл.
Transmission Control Protocol, TCP
)
протокол корисничких датаграма (енгл.
User Datagram Protocol, UDP
)
Општа улога транспортног слоја иста је као и код осталих комуникационих слојева - да
омогући комуникацију слоја изнад и слоја испод (у овом случају слоја апликације са
слојем мреже). Конкретна улога транспортног слоја јесте да прихвати податке од
апликације на страни пошиљаоца и достави их апликацији одредишта старајући се о
преносу, контроли и исправљању грешака при преносу и о гарантовању испоруке.
Подршка за транспортни слој је углавном реализована на нивоу оперативних система
рачунара, с тим да сам транспортни слој у њима није експлицитно дефинисан већ се
реализје кроз подршку за протоколе тог слоја.
Пример комуникације протокола транспортног и суседних слојева
Након прихватања података од слоја апликације транспортни слој има задатак да их
преведе у облик погодан за транспорт. Функционалности које се углавном очекују од
транспортног слоја су:
Остваривање виртуелне везе за пренос података.
Превођење података у (углавном бинарни) формат погодан за пренос.
Сегментација података ради ефикаснијег искоришћења комуникационог
канала.
Испорука података апликацији на страни примаоца у идентичном облику у ком су
послати.
Омогућавање оптималне брзине преноса података у складу са пропусном моћи и
учесталошћу грешака на комуникационом каналу и прихватној моћи примаоца.
Ентитете апликативног слоја је могуће адресовати путем портова по сопственом
избору с тим да је за стандардизацију у овој области задужена организација
IANA
.
Ово тело на захтев произвођача софтвера анализује оправданост за званичним
додељивањем слободних портова (у складу са распрострањеношћу сервиса за који
се порт захтева) и додељује захтевани порт уколико је доступан. Пре званичног
додељивања порта сервису потребно је остварити одређену општост, односно
популарност сервиса.
TCP - протокол за контролу преноса
Протокол за контролу преноса (енгл.
Transmission Control Protocol, TCP
) података је
протокол задужен за рад са подацима у транспортном слоју. У питању је протокол са
успоставом везе дизајниран да за податке користи низове бајтова и да обезбеди поуздан
пренос података у оба смера (
full-duplex
). Овај протокол је погодан за рад на
комуникационим каналима високе поузданости а показује слабије перформансе на
комуникационим каналима са честим оштећењем података током преноса.
Протокол за контролу преноса један је од најчешће коришћених протокола на
транспортном слоју када су у питању Интернет и класичне локалне мреже. Овај протокол
је већ годинама у употреби а разлог томе је пре свега оптималан рад на Етернет
технологији. Иницијално је дефинисан у документу
RFC793
а касније је његова
спецификација неколико пута мењана у складу са новим потребама и могућностима
рачунарских мрежа. Неки параметри протокола за контролу преноса одређени су у складу
са ограничењима комуникационих канала (на пример,
MTU
параметар је ограничен на 536
бајтова за везе са странама које нису у локалној мрежи) али су се временом показали
неадекватним услед значајних унапређења брзина и поузданости комуникационих канала.
Савремена окружења за развој дистрибуираних апликација најчешће имају развијену
подршку за коришћење протокола за контролу преноса или протокола вишег нивоа који
користе његове услуге. То значи да овај протокол представља
de facto
стандард за развој
дистрибуираног софтвера који захтева поуздан пренос података. Неки од најпопуларнијих
сервиса интернета (Веб, електронска пошта и други) подразумевају коришћење овог
протокола.

Страна која иницира раскид шаље
TCP
сегмент са укљученим
FIN
индикатором.
Прималац одговара сегментом са укљученим
ACK
индикатором.
За потпуни раскид везе прималац шаље сегмент са укљученим
FIN
индикатором.
Иницијатор раскида шаље одговор у виду сегмента са укљученим
ACK
индикатором.
Страна која иницира раскид везе извршава активан раскид везе (енгл.
active close
)
док страна која прихвата раскид везе извршава пасиван раскид везе (енгл.
passive
close
). Уколико једна страна иницира раскид везе (пошаље сегмент
са
FIN
индикатором и прими сегмент са
ACK
индикатором) а друга задржи везу
успостављеном таква веза се назива полу-раскинутом (енгл.
half-close
) и њоме се
надаље могу слати само подаци у једном смеру.
Сегментација података
Протокол за контролу преноса на страни пошиљаоца од слоја апликације преузима
податке у виду низа битова условно неограничене дужине. Међутим, за потребе преноса
добијени низ података се дели у сегменте мање битске дужине. Ови сегменти се преносе
појединачно а на пријемној страни се спајају у низ идентичан послатом. Добијени низ
битова се испоручује слоју апликације.
Иако се протокол за контролу преноса може користити у спрези са различитим
протоколима осталих слојева, он све функције неопходне за поуздан пренос подака
обезбеђује самостално. За сваки послати сегмент података захтева се потврда примаоца о
успешном пријему без грешке. Слање оштећених и изгубљених сегмената се понавља све
док се не обави успешан пренос.
Сегменти представљају основну јединицу података протокола за контролу преноса. Они
се састоје од заглавља (које генерише и интерпретира сам протокол) и података који се
преносе (које генерише/преузима слој апликације). Апликативни подаци нису обавезан
део сегмента и изостављени су код контролних сегмената (на пример сегмената задужених
за успостављање и прекид везе).
Структура сегмента протокола за контролу преноса
Заглавље сегмента се састоји од поља фиксне дужине која садрже информације везане за
протокол. Битска дужина заглавља је пет пута по 32 бита, уколико нису укључене опције.
Битска дужина целокупног сегмента једнака је битској дужини заглавља (уколико се
сегментом не преносе подаци апликације) или збиру битске дужине заглавља и битске
дужине података добијених од слоја апликације.
Сегменти
TCP
протокола се инкапсулирају у
IP
датаграме
Осим основног дела заглавље може садржати и додатне опције везане за протокол. Свака
опција заглављу додаје реч од 32 бита. Уколико опција не садржи довољно података да
испуни 32 бита, преостали битови се допуњавају нулама. Неке од најважнијих
опција
TCP
протокола су
MSS
(
Maximum Segment Size
),
WSOPT
(
Window Scale
Option
),
SACK
(
Selective ACK
) и
SACK
Permitted
. Садржај опција такође улази у контролну
суму сегмената (
TCP
checksum
).
Поузданост и перформансе
Перформансе протокола за контролу преноса углавном су знатно слабије у поређењу са
протоколима који раде без успостављања везе и не нуде поуздан пренос. Такође, овај
протокол не подржава
broadcasting
и
multicasting
већ омогућава комуникацију између
искључиво две стране. Међутим, главна карактеристика
TCP
протокола је поузданост. С
обзиром на то да
IP
протокол (протокол мрежног слоја) не гарантује поздан пренос
података, поузданост
TCP
протокола се остварује путем следећих правила:
Податке које апликација доставља транспортном слоју
TCP
дели у сегменте које шаље
појединачно. На тај начин се смањује јединица над којом се врши контрола и на тај начин
смањује могућност и цена исправљања грешке.
TCP
захтева потврду да је сваки од послатих сегмената испоручен. Подаци се након слања
чувају у излазном баферу до добијања потврде о пријему. Уколико потврда о
испоручивању не стигне у одређеном временском року, сегмент се шаље поново.
TCP
елиминише исте сегменте које је мрежни слој грешком доставио два или више пута.
TCP
реорганизује примљене сегменте по изворном редоследу без обзира на редослед
којим их мрежни слој доставља.
TCP
приликом слања сегмената генерише контролне параметре везане за заглавље и
садржај. Уколико приликом преноса сегмента дође до измена заглавља или садржаја, ове
суме указују на њих и захтева се поновно слање сегмента.
TCP
прилагођава фреквенцију слања сегмената прихватној моћи примаоца чиме спречава
одбацивање сегмената (и непотребно оптерећење комуникационог канала) и смањује

Протокол корисничких датаграма (енгл.
User Datagram Protocol, UDP
) поред протокола за
контролу преноса представља један од најчешће коришћених транспортних протокола
Интернета и локалних рачунарских мрежа. Насупрот протоколу за контролу преноса,
протокол корисничких датаграма не омогућава поуздан пренос података путем
остваривања виртуелне везе, контроле грешака, контроле редоследа сегмената и не
прилагођава брзину слања података пријемној моћи одредишта. Недостатак ових
функционалности чини протокол корисничких датаграма једноставнијим од протокола за
контролу преноса, али и протоколом који не гарантује поуздан пренос података.
Међутим, намена протокола корисничких датаграма није поуздан пренос података, већ
пренос са што мањим временским неслагањима између генерисања података на страни
изворишта и пријема података на одредишту. Главне примене овог протокола су код
проточног преноса гласа и видео материјала (Интернет телефонија, видео конференције,
рачунарске игрице и слично). Предност протокола корисничких датаграма у односу на
протокол за контролу преноса је могућност емисионог слања података, односно
истовременог слања података свим члановима мреже. Јединица за пренос података
протокола корисничких датаграма је датаграм. Структура датаграма овог протокола је
знатно једноставнија од структуре сегмената протокола за контролу преноса јер је у њима
изостављена већина контролних информација.
Недостатак контролних информација чини
UDP
протокол знатно ефикаснијим у смислу
мањег оптерећења комуникационог канала контролним подацима и мањег оптерећења
примаоца датаграма у смислу његове једноставније обраде.
Структура датаграма протокола корисничких датаграма
Сва поља у заглављу датаграма
UDP
протокола имају дужину од 16 битова а у њих
спадају:
Број порта на изворишту (енгл.
Source port number
) - одређује порт преко кога се
комуникација врши на страни пошиљаоца.
Број порта на одредишту (енгл.
Destination port number
) - одређује порт преко кога
се комуникација врши на страни примаца.
Дужина (енгл.
Length
) - битска дужина података које датаграм носи.
Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.
Slični dokumenti