Протоколи ot LAYER 4 на OSI модела, UDP, TCP

Транспортният слой е разположен над Интернет слоя в четирислойния модел на ТСР/IP. Най- важните протоколи в този слой са Transmission Control Protokol (TCP) и User Datagram Protokol (UDP). ТСР осигурява надеждно предаване на данните, ориентирано към създаване на връзка между предавателя и приемника (connection- oriented), което означава, че на приложната програма, която използва ТСР се гарантира, че информацията ще достигне до получателя. UDP не е ориентиран към създаване на връзка (connectionless) и е ненадежден протокол, т.е. не гарантира, че дадено съобщение ще достигне до местоназначението си. Тези два протокола служат за интерфейс между приложния слой и Интернет слоя. На програмистите е предоставена възможност кой е по-подходящ за техните приложни програми?

Предназначение на ТСР и UDP nротоколи

TCP

TCP/IP Protocol
Протоколът за управление на предаването ТСР (Transmission Control Protocol) предоставя транспортни услуги на протоколите от по-горните нива, като използва IР протокола на по-ниския интернет слой. ТСР/IР групата протоколи е получила името си поради това, че повечето протоколи от по-високите нива в нея използват ТСР за транспортен протокол. Данните, обменяни по протокола ТСР, са организирани логически като поток от байтове. При това за по-високите слоеве се скрива, че фактическото предаване на данни в мрежата се извършва чрез дейтаграми. ТСР не вмъква автоматично никакви разделители между записите. Този начин на предаване се нарича обслужване на поток от данни (byte stream service). При предаване ТСР получава данни от приложните програми или от по-горните слоеве, разделя ги на части, наречени “сегменти”, и заедно с адреса на местоназначението ги изпраща на IР протокола. Той от своя страна опакова сегментите в дейтаграми и извършва маршрутизирането на всяка дейтаграма. При приемане IР протоколът разопакова пристигналите дейтаграми, след което предава получените сегменти на ТСР протокола, който сглобява сегментите в съобщения към по-горните слоеве. При това той подрежда сегментите така, че приложните програми да ги получат в реда, в който те са били изпратени.

UDP

UDP е по-прост транспортен протокол от ТСР, който осигурява на приложените програми възможност за изпращане на съобщения по Интернет с минимално натоварване на операционната система. UDP е ненадежден протокол, тъй като не предвижда средства за потвърждение, че данните са достигнали до получателя. Поради простотата има повишено бързодействие. UDP е подходящ за едновременно предаване на група хостове и е предпочитан транспортен протокол при предаване на мултимедийна информация в реално време.

Анализ на функциите на ТСР и UDP протоколи

UDP предлага бързо, ненадеждно доставяне на съобщения между приложения, изпълнявани на отдалечени хостове. Считан за опростен протокол, UDP предоставя тази бърза услуга като просто изпраща пакети от един хост до друг, разчитайки на протоколи от по-горен или приложен слой да осигурят надеждност. Въпреки това UDP има един главен недостатък: не дава гаранция, че дейтаграмите, които изпраща, реално ще пристигнат на другия край. ТСР предлага по-бавно, но гарантирано доставяне на данни. Той осигурява тази услуга като контролира потока и размера на изпращаните дейтаграми така, че мрежовият слой да може да извършва предаването. След това той преминава през серия от потвърждения и контрол на реда на следване, за да гарантира, че всеки сегмент достига местоназначението. Поради всички проверки и балансирания, през който преминава ТСР по време на доставянето, той може да предостави надеждно, но по-бавно разпространение на данни, което означава, че приложният слой не трябва да се занимава с гарантиране на доставянето, както при UDP.

Анализ на структурата на ТСР и UDP протоколи.

Структура на TCP/IP протокола

В мрежовото ниво /мрежови интерфейс/ за адресно преобразуване се използва само физическият MAC адрес. Дори и интерфеийсът да няма физически адрес /модем/, се използва логически физичен адрес. В интернет нивото се извършва преобразуване налогическия IP адрес към физическия MAC адрес. Всяко устрйство в TCP/IP мрежата има уникален IP адрес. Този адрес идентифицира устройството и подмрежата към която то принадлежи. Всички протоколи използвани в транспортното и интернет нивата се осигуряват от операционната система. Приложенията не подсигуряват техен собствен транспортен или мрежови протокол. Единственото необходимо е приложението да комуникира с TCP или UDP като транспортен протокол. Всички протоколи и софтуер, използвани в приложното ниво са зависими от приложението.

Мрежово ниво

Мрежовото ниво има за задача да изпраща и да получава рамки от мрежовата среда. Използвания формат на рамките зависи от приложената мрежова топология.
Мрежовото ниво добавя в началото на всяка памка CRC за осигуряване на защита от грешки. Когато рамката достигне местоназначението си CRC стойността се преизчислява, за да се определи дали данните не са повредени при пренасянето. Ако рамката не е повредена то тя се предава на по високо ниво. Ако е повредена, то тя се отхвърля.

Интернет ниво

Интернет нивото осигурява три основни функции: адресиране, пакетиране и маршрутизиране.
Това ниво включва в себе се IP протокола. IP осигурява независима от крайните точки, негарантирана доставка на информация. IP протоколът не извършва проверка дали информацията е била успешно получена от нейния получател. При това могатр да бъдат загубени пакети или те да пристигнат в неподреден вид. Тази проверка се прави от по-горните слоеве.
При пристигането на информацията от транспортното ниво, IP протоколът добавя към нея header. Той включва:

  1. IP адреса на източника;
  2. IP адреса на получателя;
  3. Транспортен протокол. Протокола използван от транспортното ниво се съхранява в header-а. По този начин, при пристигане на пакета при получателя, интернет нивото му ще знае дали да използва TCP или UDP протокола.
  4. Контролна сума /CRC/ – тя се използва за проверка дали данните пристигнали натова ниво не са били повредени при транспортирането.
  5. Time-To-Live /TTL/ – При преминаване на информацията през маршрутизатор, TTL намалява с 1. Когато дотигне 0, информацията се изхвърля от мрежата.

Интернет нивото определя как да маршрутизира пакетите от информация до получателя. Ако бъде определено, че IP-то на получателя се намира в същия мрежови сегмент то информацията се изпраща директно към него. Ако получателя е в отдалечен мрежови сегмент, IP протоколът използва маршрутната таблица наизточника, за да определи най-добрия маршрут до мрежата, където се намира отдалеченото устройство. Ако в маршрутната таблица няма определен маршрут към тази мрежа, то източника използва маршрутизатора си по подразбиране /Default Gateway/ за изпращане на данните към отдалечения получател.
Интернет нивото изпълнява още две функции: фрагментиране и реасемблиране. При трансфер на информация между мрежи с различна топология, има вероятност мрежовата топология на получателя да не може да работи с размера на пакета използван от източника. В този случай IP протокола разделя /фрагментира/ пакета информация на по-малки части. При получаването на малките пакети от получателя те се реасемблират в оригиналния пакет. В процеса на разделяне на пакета към всяка част от пакета се добавя следната информация:
1. Флаг – флага за фрагментиране в IP header-а се поставя в 1, за да се покаже, че данните са били фрагментирани. В последния фрагментиран пакет флага се оставя със стойност 0, за да се покаже, че след него няма повече фрагментиране.
2. Идентификатора на фрагмента – при разделяне на пакета информация нафрагменти, на всеки един от тях се поставя идентификатор. Тази информация се използва за реасемблиране.
3. Отместване на фрагмента – при реасемблиране на фрагментите от пакета, фрагментното отместване определя реда, в който трябва да бъде извършено реасемблирането.

Транспортно ниво

За транспортиране на данните в TCP/IP се използват TCP и UDP протоколите. При комуникиране на две устройства те трябва да установят сесия помежду си, като по този начин всяко устройство може да определи номера на поредицата от данни, която другото устройство ще използва. TCP връзката осигурява високо ниво нанадежност. По време на предаване се използват поредни номера и потвърждение за сигурност, че получателят успешно е приел данните.
При UDP протоколът не гарантира достигането на информацията до получателя. UDP протоколът има контролна сума в своя header, която гарантира че данните не са повредени.

Приложно ниво

Мрежовите приложения работещи в TCP/IP мрежите се разделят в две категории:
1. Winsock приложения – тези приложения използват Windows Sockets Application Programing Interface /API/. Това са FTP, Telnet, IRC, SNMP
2. NetBIOS приложения – използват NetBIOS имена и услуги в TCP/IP мрежата.

Описание на хедърите при ТСР и UDP протоколи

TCP хедъри

ТСР хедърът задава портовете на източника и местоназначението, стойностите на реда на следване и потвърждение (АСК) и ТСР флагове, използвани от хостовете за идентифициране на начина за обработка на информацията.

Порт на източника (Source Port)

2-байтовото поле за порт на източника идентифицира  комуникиращия процес (сокет) на изпращащия хост. Пример на такъв е клиентски порт 1024-65535 или сървърен порт 1- 1023. Тъй като ТСР поддържа двупосочна комуникация, стойността в това поле зависи от посоката, от която идва комуникацията. Ако запитването е инициирано от клиента, номерът на порта е в клиентския диапазон. Ако сървърът отговаря на клиентско запитване, номерът на порта е в сървърния диапазон.

Порт на местоназначението (Destination Port)

2-байтовото поле за порт на местоназначението идентифицира комуникиращия процес (сокет) на приемащия хост. Номерът на порта, визуализиран в това поле също зависи от посоката на комуникация: клиент към сървър или сървър към клиент.

Пореден номер (Sequence Number)

ТСР използва контрол на реда на следване, за да отчита всеки пореден байт от данни. Всеки октет от данни, изпратен по ТСР връзка, има пореден номер. Определен алгоритъм изчислява първоначалния пореден номер, който бива включван в кадъра за синхронизация по време на създаването на сесията и се намира в 4-байтовото поле за пореден номер. Този пореден номер идентифицира първия байт на всяка изпращана дейтаграма. Ако приемащата страна не потвърди (АСК) изпратените данни, изпращащата страна приема, че данните са изгубени и ги предава отново.

Номер на потвърждение (Acknowledgement Number)

4-байтовото поле за номер на потвърждение съдържа стойността, която идентифицира следващата поредна стойност, която хостът очаква да приеме от другата страна. Номерът на потвърждение трябва да е равен на изпратения преди това от другата страна
пореден номер, плюс дължината на съобщението. Приемащата страна предполага, че е приела всички данни, изпратени до този момент. Това се нарича предполагаемо потвърждение. Приемащата страна може да потвърди приемането на множество кадри с едно потвърждение (АСК). Този процес действа по- ефективно, отколкото отделното потвърждение на всеки кадър и свързаните с него допълнителни байтове. Размерът на прозореца определя максималния брой байтове, които изпращащата страна може да предаде. Изпращащият хост може да предава множество кадри, ако приемащата страна има достатъчно голям размер на прозореца, за да ги приеме. Когато размерът на прозореца на приемащата страна удовлетворява това условие, изпращащата страна спира и изчаква за позволение (потвърждение) от приемащата страна, преди за изпрати още.

Отместване (Data Offset)

4-битовото поле за отместване на данни индицира къде започва началото на данните от по-горен слой, които следват след ТСР хедъра. Тъй като дължината на ТСР хедъра може да варира по размер когато са използвани опции, отместването на данните е необходимо. ТСР го използва, за да предвиди точно на кое място в кадъра трябва да очаква първия байт данни от по-горен слой.

Запазено (Reserved)

Това шестбитово поле е запазено за бъдещо използване и винаги се запълва с нули.

Контролни флагове (Control Flags)

6-битовото поле за контролни флагове индицира на приемащата страна целта на кадъра. Следва описание на функциите на шестте еднобитови полета за контролни флагове:

  • URG (Urgent – спешно) Задава се от изпращащия хост, за да покаже, че данните, съдържащи се в този кадър, имат висок приоритет. Когато изпращащият хост зададе на този бит стойност 1, указателят за спешност Urgent Pointer, идентифицира (сочи към) следващият байт в кадъра, който следва след спешните данни.
  • ACK (Acknowledgement – потвърждение) Изпращащият хост задава на този бит стойност 1, за да индицира, че този кадър съдържа потвърждение на изпратените преди това данни.
  • PUSH (Push – изтласкване) Всяка ТСР сесия контролира кога приетите данни се подават за обработка към приложения от по-горен слой. Когато изпращащият хост зададе на този бит стойност 1, приемащата страна не трябва да изчаква; вместо това тя трябва да изпрати данните (да ги изтласка) незабавно към процеса от по- горен слой. Задавайки на този бит стойност 1, изпращащият ТСР хост задължава приемащия ТСР хост да подаде данните нагоре без закъснение.
  • RST (Reset – анулиране) Има стойност 1, когато потребителят прекъсне сесия или когато възникне грешка във връзката, за да покаже, че сесията трябва да бъде анулирана.
  • SYN (Synchronization – синхронизация) Изгражда сесия между портове/сокети чрез синхронизиране на поредни номера.
  • FIN(Finish – край) Затваря изградена сесия и показва, че изпращащата страна е завършила изпращането на данни.

Прозорец (Window)

Количеството на данните, които даден хост може да приеме, варира в зависимост от ресурсите на хоста и от количеството на предаванията, които този хост приема в момента. Двубайтовото поле за прозорец дефинира максималното количество данни в байтове, които даден ТСР хост може да приеме. Хостът използва това поле за контрол на потока. Размер на прозорец, равен на нула индицира, че в момента този хост не може да приеме данни. Това обикновено показва задръстване или недостиг на ресурси.

Контролна сума (Checksum)

Двубайтовото поле за контролна сума се използва за откриване на повреда на битове, която може да възникне по време на тяхното пренасяне. Контролната сума проверява за истинност битовете в ТСР хедъра, псевдо IP хедъра и данните от по-горен слой. Контролната сума се изчислява от изпращащия хост и се сравнява на приемащия хост за валидност. Ако контролната сума не отговаря, приемащият хост игнорира кадъра и не уведомява изпращащия хост. Изпращащият хост поема отговорността за откриване на изгубения кадър и за повторно предаване. ТСР следи информацията, съдържаща се в IP хедъра, съдържаща адресите на източника и местоназначението, за да открива проблеми, например неправилно маршрутизирани кадри.

Указател за спешност (Urgent Pointer)

2-байтовото поле Urgent Pointer съществува само когато е зададен битът за спешност URG. Когато изпращащият хост зададе на бита за спешност стойност 1, указателят Urgent Pointer идентифицира байта в кадъра, който следва след спешните данни, за да може ясно да бъде идентифицирано мястото, откъдето започват не-спешните данни.

Опции (Options)

Полето за ТСР опции може да бъде с променлива дължина, в зависимост от опциите, избрани от изпращащия хост. Например изпращащият хост може да избере опция за максимален размер на сегмент, индицираща най-големия размер на сегмент, който може да приеме този ТСР хост. Без тази опция хостът ще приема всеки размер на сегмент. Опцията за максимален размер на сегмент (MSS) е най-често използваната опция. Тъй като опциите са с променлива дължина, след тях полето се запълва с нули до границите на 4-байтова дума.

UDP хедъри

Като протокол без установяване на връзка, UDP не контролира реда на следване и потвърждаването на данните. Той просто идентифицира портовете на изпращаната страна (източника) и приемащата страна (местоназначението) в UDP хедъра и разчита на IP да пакетира и достави информацията. TCP хедърите варират по дължина в зависимост от използваните TCP опции, но винаги съдържат минимум 20 байта. UDP хедърите имат дължина само 8 байта. Подобно на TCP, UDP трябва да идентифицира портовете на източника и местоназначението. За разлика от TCP, UDP не включва контрол на реда на следване или потвърждения. UDP използва контролната сума в хедъра, която открива само повредени кадри.

Порт на източника (Source Port)

Първото поле в хедъра идентифицира порта на източника. Това 2-байтово поле, подобно на полето за порт на източника при TCP, идентифицира приложението или процеса от по- горен слой, изпълнявани на изпращащия хост/ Стойността на този порт зависи от това дали изпращащият хост е клиентски процес или сървърен процес. Ако това е клиентски процес,и изпращащият хост избира тази стойност на порт в диапазона от 1024 до 65535. Ако това е сървърен процес, стойността е в диапазона от 1 до 1023.

Порт на местоназначението (Destination Port)

Второто поле в UDP хедъра- портът на местоназначението е 2- байтово поле. Подобно на полето за порт на местоназначението при TCP, то идентифицира приложение или процес от по- горен слой, изпълнявани на приемащия хост. Стойността на този порт зависи от това дали приемащия хост е клиентски процес или сървърен процес. Ако е клиентски процес, тази стойност на порт в диапазона от 1024 до 65535. Ако това е сървърен процес, стойността е в диапазона от 1 до 1023.

Дължина (Length)

Полето за дължина- третото поле в UDP хедъра, задава в байтове колко данни се съдържат в дейтаграмата. Тази стойност включва UDP хедъра и данните, които следват след него(протоколи от по- горен слой и информация). Полето за дължина ще бъде минимум 8 байта, което е сумарната стойност на полетата в този хедър, плюс всички данни и информация от по- горен слой.

Контролна сума (Checksum)

Въпреки че е протокол без установяване на връзка и няма механизъм за откриване и коригиране на изгубени, липсващи или дублирани кадри, UDP притежава минимален метод за откриване на повредени кадри. 2-байтовата контролна сума – петото поле в UDP хедъра гарантира, че битовете не са повредени по време на пренасянето. Този метод не корегира повредени кадри, а просто ги открива и отхвърля. UDP процесът на изпращащият хост първоначално изчислява контролната сума, известна като CRC (Cyclic Redundancy Check), като записва резултатната стойност в UDP хедъра. При получаване UDP процесът на приемащия хост извършва същото изчисление, за да потвърди истинността на съдържанието на хедъра. Ако стойността не съвпадне, приемащия хост счита, че е възникнала грешка и отхвърля дейтаграмата.
Контролната сума проверява за валидност следните елементи:

  • UDP хедъра
  • Данните от по- висок слой
  • Информацията съдържаща се UDP псевдохедъра

Анализ на nредимствата и недостатъците на UDP в сравнение с ТСР.

UDP не създава сесии,за разлика от ТСР.
Тъй като е протокол без установяване на връзка, UDP не контролира реда на слеване на изпращаните данни и не потвърждава приетите данни.
UDP приема,че някой друг протокол ще контолира дали изпратените данни са достигнали до място.
Тъй като UDP не създава връзка,той не създава и логическа верига преди предаване.

UDP не фрагментира, той само идентифицирa пortoвете на източника и местонахождението .За разлика от ТСР,който разбива на сегменти потоците от битове ,между комуникирАщите устройства.
UDP разчита на iР за фрагментация и реасемблиране.
Докато ТСР гарантира доставянето на данните чрез контол на реда на следване и потвъждения на всеки един изпратен или приет байт , UDP предлага доставяне с най-малки усилия,разчитайки на други слоеве да откриват и възстановяват изгубени дейтаграми.

Сходни статии:

  1. Протоколи за отдалечен достъп и заплахи за компютърните мрежи Отдалеченият клиент и отдалеченият сървър трябва да използват най-малкото един и същ мрежов/транспортен протокол (понякога означаван като LAN протокол), например TCP/IP, IPX/SPX, AppleTalk или NetBEUI. Освен това е необходим и...
  2. Дистанционни векторни протоколи Дистанционни векторни протоколи. Разделен хоризонт. Порочно обръщане. Броене до безкрайност. Подтискане на премахването Дистанционни векторни маршрутизиращи протоколи бяха първо използвани в ARPANET, след което намериха широко приложение в Интернет под...
  3. VPN (Virtual Private Network) Това е виртуална частна мрежа, която е  достъпна само за ограничен брой потребители. Има две големи групи VPN технологии така наречените Carrier и Enterprise типове. Разликата между тях е следната:...
  4. Отдалечен достъп. Протоколи, използвани за отдалечен достъп В традиционната локална комютърна мрежа (LAN) компютрите се свързват към мрежата по кабел. Но всеки тип кабел има ограничения по отношение на разстоянието, което може да измине сигналът без значително...
  5. Развитие на масовите услуги в Интернет автор: Лилия Тицианова Великова специалност “Финанси” в Стопанска академия “Д. А. ЦЕНОВ” – Свищов Катедра “Бизнес информатика” За човека, който днес за първи път е в мрежата Интернет представлява едно...

Студио за уеб дизайн услуги, изработка на сайтове, SEO оптимизация и Интернет реклама Seven Web Design представя своите професионални уеб дизайн умения на високо ниво. Seven Web Design е продукт на Уеб Дизайн България Груп ООД ®
Comments are closed.