FANDOM


ТСР (англ. Transmission Control Protocol) е мрежов протокол за управление на обмена на информация, един от основните, използвани от Интернет. Използвайки TCP, приложенията в мрежата могат да създават връзки (connections) едно с друго и чрез тях да обменят данни в пакети. Образно казано информацията, която трябва да бъде транспортирана бива разделена на огромно множество от пакети, всеки от които съдържа достатъчно информация да бъде пренасочен към точната си дестинация. Надеждността на обмена се осигурява от контролни суми и сравнения между изпратените и пристигналите данни. Другата важна функция на протокола е да провери, че пакетите биват подредени в правилен ред по времето на пристигането си.

Протоколът се използва съвместно с IP протокола, като обикновено ги наричат TCP/IP комплект от протоколи (от англ. protocol suite).

TCP/IP комплекта може да бъде използван и в частни интранет и екстранет мрежи.

TCP/IP използва моделът за клиент и сървър в комуникациите. При този модел клиентът (който може да бъде друга програма или потребител) прави заявка и получава услуга (например представяне на уеб страница) от друга програма сървър по мрежата.

TCP протоколът е проектиран за многозадачен режим на работа - т.е. в един и същи момент могат да бъдат стартирани повече от едно TCP приложение на един и същи компютър.

Механизъм на действиеРедактиране

В сравнение с UDP, който може незабавно да започне да изпраща пакети TCP изисква установяването на връзка преди изпращането на данни. Съществуват три фази при осъществяването на TCP комуникация:

  1. установяване на връзката
  2. пренос на данни
  3. преустановяване на връзката

Преди описанието на тези три фази е добре да се разберат различните състояния на крайна точка на един Интернет сокет:

  1. LISTEN
  2. SYN-SENT
  3. SYN-RECEIVED
  4. ESTABLISHED
  5. FIN-WAIT-1
  6. FIN-WAIT-2
  7. CLOSE-WAIT
  8. CLOSING
  9. LAST-ACK
  10. TIME-WAIT
  11. CLOSED
LISTEN 
представя състоянието на изчакване за заявка за връзка от някой TCP хост на определен порт . (обикновено определен от TCP сървърите)
SYN-SENT 
представя изчакване на другият TCP хост да изпрати обратно TCP пакет със зададени SYN и ACK флагове (обикновено от TCP клиентите)
SYN-RECEIVED 
представя изчакване за отдалечения хост TCP да изпрати обратно известение след обратното изпращане на известението за установяване на връзката до TCP хоста . (обикновено изпратен от TCP сървърите)
ESTABLISHED 
представя състоянието на хоста, при което порта може да слуша / получава или изпраща данни от и към отдалечения хост (зададени и от сървърите и хостовете )
TIME-WAIT 
представя изчакването на определен период от време да изтече за да се осигури, че отдалечения хост е получил заявката за прекратяването на връзката. Според RFC 793 връзката може дa съществува в това състояние TIME-WAIT за най-много 4 минути

.

Установяване на връзката Редактиране

Клиентът изпраща към сървъра SYN-пакет, слек което сървърът би трябвало да отговори със SYN/ACK-пакет. Най-накрая клиента отговоря с ACK- пакет след което преноса на данни може да бъде започнат.

Пренос на данни Редактиране

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

По времето на установяването на връзката сървърът раздава поредните номера, по които от потока на данни се разпознават отделните пакети за всяка връзка. За всеки получен пакет се изпраща известяване за получаването му. Ако известяването не бъде получено пакета трябва да се преизпрати.

Прекратяване на връзкатаРедактиране

И двете страни на връзката я прекъсват чрез изпращането на FIN пакет и двете страни известяват противната чрез ACK-пакет.

Връзката може да бъде прекратена и чрез тристранно ръкостискане - единият хост изпраща FIN-пакет, който бива известен от противоположната страна чрез FIN-ACK пакет. След това първоначалния хост езвестява получаването с ACK- пакет.

Връзката може да бъде прекратена и чрез изпращането на RESET-пакет, след което връзката бива терминирана незабавно.



Строеж TCP-пакетаРедактиране

+ 0 - 3 4 - 9 10 - 15 16 - 31
0 Порт на източника Порт на получателя
32 Номер по ред
64 Сегментен номер
96 Дължина на заглавието (хедъра) Запазен Кодови (за синхронизация) Големина на рамката
128 Сума за проверка Указател за спешност
160 Опции и пълнеж
192
Данни