TCP/IP

**TCP/IP** (целосно име: ***Трансмисиски контролен протокол/Интернетски протокол***) е протокол за стандардна интернетска комуникација, која овозможува компјутерите меѓусебно да комуникацираат на долги растојанија. Интернетот претставува пакет за приклучок кон мрежа во кој инфромациите се разбиваат во мали пакети, кои потоа се испраќаат поединечно преку различни рути, истовремено, а потоа повторно се собираат на страната кај примачот. **TCP** е компонента со чијашто помош се собираат и повторно се составуваат пакетите со податоци, додека **IP** служи за контрола дали пакетите се испратени на вистинското одредиште. TCP/IP бил развиен во текот на 70-тите години на XX век, а во 1983&nbsp;г. бил прифатен како стандарден протокол за **ARPANET** (претходник на интернетот).

### Трансмисиски контролен протокол / Интернет протокол

Трансмисискиот контролен протокол е еден од главните и најбитни Интернет протоколи кој овозможува за компјутерите да комуникацираат на долги растојанија. Преку Интернетот податоците се испраќаат поделени и во мали пакети кои патуваат поединечно по различни патеки, но на крајот стигнуваат кај примачот и повторно се собираат како една целина. За компонентите да се соберат и да се спојат повторно на страната на примачот служи TCP, а IP служи за контрола дали пакетите се испратени на вистинското одредиште. TCP/IP бил развиен во XX век, поточно во 70-тите години на XX век, а во 1983 бил прифатен како стандарден протокол за претходникот на интернетот – ARPANET.
TCP е протокол на кој големи апликации како World Wide Web, e-mail и трансвер на фајлови се подпираат, а други апликации кои не бараат толку сигурен пренос на податоци можат да го користат User Datagram Protocol.

## Историско потекло

Во мај 1974 година Институтот за електро и електронски инженери (IEEE) објави текст со наслов “Протокол за пакети на мрежата за интерврска”. Во овој текст беше опишано споделувањето на ресурси со користење на пакетна – комуникација меѓу јазли. Главна тема на овај модел беше Трансмициски контролен програм за меѓусебна линк комуникација и датаграм услуги меѓу домаќините. Подоцна овој програм бил неофицијално наречен Transmission Control Protocol – Трансмисиски контролен протокол, а официјално го крстиле Internet Protocol Suite.

### Функции на TCP

Следниве се основните пет задачи кои TCP ги врши:
•	Адресирање / Мултиплексирање: TCP се користи од многу различни апликации за нивниот транспортен протокол. Затоа многу важна работа за TCP е мултиплексирање на податоци кои се добиваат од различни процеси, за да можат да бидат пратени користејќи го протоколот на мрежниот слој.
•	Воспоставување врска, управување и прекинување: TCP предвидува сет на процедури со кои уредите воспоставуваат TCP врска преку кој податоците може да патуваат. Откако се отвори, TCP ги управува и ги контролира врските и проблемите. Откако некој уред завршил со TCP врската, следи посебен процес за да ја прекине.
•	Управување со податоци и пакување: TCP дефинира механизам со кој апликациите можат да пратат податоци до него од повисоките слоеви. Овие податоци потоа се спакувани во пораки за да бидат испратени до одредиштето на TCP софтверот. Дестинацискиот софтвер ги одпакова податоците и ги испраќа на апликациите од дестинациската машина.
•	Трансфер на податоци: Концепциски, TCP - предавателниот уред е одговорен за преносот на податоци до TCP - процесот на другиот уред. Трансфер на податоци се остварува со користење на TCP - софтвер на машината за испраќање на дата пакетите до мрежниот - протокол, кој нормално значи IP-адреса.
•	Обезбедување на доверливост и квалитет на услуги за пренос: TCP содржи сет на услуги и одлики кои овозможуваат апликацијата да го следи испраќањето на податоци, а со тоа се овозможува доверливост. Ова значи дека со примена на TCP не мора да се грижите за податоците кои се праќаат и никогаш не се појавуваат, или пристигнуваат во погрешна цел. Тоа исто така значи други вообичаени проблеми кои би можеле да произлезат, ако се користи IP-адреса директно се избегнуваат.
•	Обезбедување на контрола на проток и предности за одбегнување на застој: TCP овозможува протокот на податоци помеѓу два уреди да биде контролиран и управуван. Исто така вклучува функции за да се справи со застојот кој може да се појави за време на комуникацијата помеѓу уредите.
Јасно е дека, TCP е одговорен за прилично голем број на клучни функции. Овој список можеби не изгледа толку впечатлив. Причината е тоа што ова е само еден поглед на високо ниво на протоколот и овие функции се сумирани во листата погоре. Кога ќе ги разгледаме детално ќе видиме дека секој од нив всушност има многу битна функција за TCP и врши многу значајна работа.

## Воспоставување врска

За да воспостави врска TCP користи три начини на ракување – handshaking. Пред некој клиент да се обиде да сеповрзе со опслужувачот, опслужувачот мора прво да се поврзе со порт за да отвори врски (пасивна поврзаност). За да воспостави врска со handshaking TCP ги користи следните ракувања:
•	SYN: Активното отворање се врши од страна на клиентот кој испраќа SYN на опслужувачот. Тоа поставува реден број за сегментот на случајна вредност А.
•	SYN-ACK: Како одговор, опслужувачот одговара со SYN-ACK. Бројот на потврдата е поставен на еден повеќе од добиените редни броеви (a + 1), и редниот број за кој опслужувачот ќе одлучи, за пакет, е уште еден случаен број, b.
•	ACK: Конечно, клиентот праќа ACK назад до опслужувачот. Редниот број е поставен на добиената потврдна вредност т.е. а + 1, и потврдниот број е поставен на една повеќе од добиените редни броеви односно б + 1.
Во овој момент и клиентот и опслужувачот добиле потврда за врската.

## Пренос на податоци

TCP  и UDP (User Datagram Protocol) имаат многу сличности, но и многу разлики. Еве неколку разлики кои TCP го одделуваат од UDP:
•	Нареден трансфер на податоци – одредиштето или домаќинот се одредува според редниот број;
•	Реемитување на изгубени пакети;
•	Безгрешен пренос на податоци;
•	Контрола на проток - се гарантира сигурен испорака. Приемникот постојано го известува испраќачот за тоа колку податоци може да прими. Кога баферот на примачот се исполнува, следната порака до испраќачот содржи 0 во големината на слободен простор за да престане со трансфер и да му дозволи да ги обработи податоците;     
•	Надзор на загушувањето.

## Сигурен пренос на податоци

TCP предвидува обновување на сегменти кои се губат, се оштетени, дупликат или примени надвор од нивниот правилен редослед. TCP е опишан како „сигурен“ протокол, бидејќи се обидува да се опорави од овие грешки.
Во секвенцирањето секој сегмент има реден број. Овие броеви му служат на TCP да ги открива паднатите сегменти. Исто така TCP бара да се врати повратна, потврдна порака до него од примачот дека податоците се стигнати.
За да се потврди дека сегментите не се оштетени на секој сегмент се виши CRC тест – проверка на секој сегмент кој е испратен и примен. Поради тоа што секој пакет има време на живот кое постепено се троши за време на испраќањето, TCP мора да ја пресметува вредноста на CRC после секое препраќање – шпедиција. Сегментите кои не одговараат со CRC проверката одпаѓаат.

## Детекција на грешки

Секвенционалните броеви и потврдите го покриваат одфрлањето на дуплицираните пакети, препраќањето на изгубените пакети и наредениот пренос на податоци. За да се осигура точноста вклучено е поле за проверка (check).
Проверката на TCP е слаба проверка од современите стандарди. Data Link слоеви со висока стапка на битни грешки можат да побараат дополнителни врски за корегирање и детектирање на грешки.

## Контрола на проток

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

## Максималната големина на сегмент

Максималната големина на сегмент (MSS) е најголемата количина на податоци, наведени во бајти, кој TCP е подготвен да ги испрати во еден сегмент. За најдобри перформанси, MSS треба да биде поставена доволно мала за да се избегне IP фрагментацијата, која може да доведе до прекумерна ретрансмисија ако постои загуба на пакети. За да се постигне ова, обично компјутерите се договараат за користење на MSS кога TCP врска е воспоставена, во кој случај се утврдува од страна на максималната преносна единица, големината на слојот на податочната врска на мрежата на која испраќачот и приемникот се директно поврзани.

## TCP мултиплексирање

Мултиплексирање е процес на комбинирање на две или повеќе податочни текови во една врска. TCP овозможува мултиплексирање на објекти со користење на изворниот и дестинацискиот број на порт. Броевите на порта овозможуваат TCP да постави одреден број на виртуелни врски во текот на физичката врска и да мултиплексира податочен проток низ таа врска.
При пренесување на податоци типично за домаќинот е да се обиде да се поврзе со добро познат број на порта на домаќинот кој е одредиште. Неколку примери на "добро познати порти" на протоколи се:
•	25 - Simple Mail Transport Protocol (SMTP)
•	21 - протокол за пренос на податотеки
•	22 - Secure Shell
•	23 - Telnet
•	80 - HTTP
•	443 - HTTPS
Пренесувачката станицата ќе користи изворна порта која е со произволен број над 1023. Секоја порта на извор и одредиште идентификува посебена виртуелна врска, дозволувајќи мултиплексирање на физичката мрежна врска.

## Наводи

Категорија:Семрежје
Категорија:Семрежни протоколи
Категорија:TCP/IP
Категорија:Историја на семрежјето