За информацията в тази статия или раздел не са посочени източници. Въпросната информация може да е непълна, неточна или изцяло невярна. Имайте предвид, че това може да стане причина за изтриването на цялата статия или раздел. |
ТСР (на английски: Transmission Control Protocol) е мрежов протокол за управление на обмена на информация, един от основните, използвани в интернет. Използвайки TCP, приложенията в мрежата могат да създават връзки (connections) едно с друго и чрез тях да обменят данни в пакети. Образно казано, информацията, която трябва да бъде транспортирана, бива разделена на огромно множество от пакети, всеки от които съдържа достатъчно информация да бъде пренасочен към точната си дестинация. Надеждността на обмена се осигурява от контролни суми и сравнения между изпратените и пристигналите данни. Другата важна функция на протокола е да провери, че пакетите биват подредени в правилен ред по времето на пристигането си.
Протоколът се използва съвместно с IP протокола, като обикновено ги наричат TCP/IP комплект от протоколи (на английски: protocol suite).
TCP/IP комплектът може да бъде използван и в частни интранет и екстранет мрежи.
TCP/IP използва модела за клиент и сървър в комуникациите. При този модел клиентът (който може да бъде друга програма или потребител) прави заявка и получава услуга (например представяне на уеб страница) от друга програма сървър по мрежата.
TCP протоколът е проектиран за многозадачен режим на работа – т.е. в един и същи момент могат да бъдат стартирани повече от едно TCP приложение на един и същи компютър.
В сравнение с UDP, който може незабавно да започне да изпраща пакети, TCP изисква установяването на връзка преди изпращането на данни. Съществуват три фази при осъществяването на TCP комуникация:
TCP връзката се управлява от операционната система чрез програмен интерфейс. Този интерфейс, т.нар. интернет сокет, представя локалната крайна точка за комуникациите. Различните състояния на крайна точка на един интернет сокет са:
Клиентът изпраща към сървъра SYN пакет, след което сървърът би трябвало да отговори със SYN/ACK пакет. Най-накрая клиентът отговоря с ACK пакет, след което преносът на данни може да бъде започнат.
Има няколко ключови характеристики, които отличават TCP от User Datagram Protocol, някои от които са:
Съществуват различни механизми за осигуряването на цялостен пренос на данни – пакетите биват номерирани по реда си на изпращане, всеки пакет има сума за проверка на целостта си, както и показателите за изгубените пакети или за забавянето по мрежата.
По време на установяването на връзката сървърът раздава поредните номера, по които от потока на данни се разпознават отделните пакети за всяка връзка. За всеки получен пакет се изпраща известяване за получаването му. Ако известяването не бъде получено, пакетът трябва да се преизпрати.
И двете страни на връзката я прекъсват чрез изпращането на FIN пакет и двете страни известяват противната чрез ACK пакет.
Връзката може да бъде прекратена и чрез тристранно ръкостискане – единият хост изпраща FIN пакет, който бива известен от противоположната страна чрез FIN-ACK пакет. След това първоначалният хост известява получаването с ACK пакет.
Връзката може да бъде прекратена и чрез изпращането на RESET пакет.
+ | 0 – 3 | 4 – 9 | 10 – 15 | 16 – 31 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Порт на източника | Порт на получателя | ||||||||||||||||||||||||||||||
32 | Номер по ред | |||||||||||||||||||||||||||||||
64 | Сегментен номер | |||||||||||||||||||||||||||||||
96 | Дължина на заглавието (хедър) | Запазен | Кодове (за синхронизация) | Големина на рамката | ||||||||||||||||||||||||||||
128 | Сума за проверка | Указател за спешност | ||||||||||||||||||||||||||||||
160 | Опции и пълнеж | |||||||||||||||||||||||||||||||
192 | Данни |