TCP: Разлика между версии

Изтрито е съдържание Добавено е съдържание
м Робот Добавяне {{без източници}}
м замяна с n-тире; козметични промени
Ред 10:
TCP протоколът е проектиран за многозадачен режим на работа — т.е. в един и същи момент могат да бъдат стартирани повече от едно TCP приложение на един и същи компютър.
 
== Механизъм на действие ==
В сравнение с [[User Datagram Protocol|UDP]], който може незабавно да започне да изпраща пакети TCP изисква установяването на връзка преди изпращането на данни. Съществуват три фази при осъществяването на TCP комуникация:
 
Ред 18:
 
TCP връзката (connection) се управлява от операционната система чрез програмен интерфейс. Този интерфейс, т. нар. [[Интернет сокет]], представя локалната крайна точка за комуникациите. Различните [[състояние (компютърни науки)|състояния]] на крайна точка на един [[Интернет сокет]] са:
# '''LISTEN''' - представя състоянието на изчакване за заявка за връзка от някой TCP хост на определен порт. (обикновено определен от TCP сървърите)
# '''SYN-SENT''' - представя изчакване на другият TCP хост да изпрати обратно TCP пакет със зададени SYN и ACK флагове (обикновено от TCP клиентите)
# '''SYN-RECEIVED''' - представя изчакване за отдалечения хост TCP да изпрати обратно известение след обратното изпращане на известението за установяване на връзката до TCP хоста. (обикновено изпратен от TCP сървърите)
# '''ESTABLISHED''' - представя състоянието на хоста, при което порта може да слуша / получава или изпраща данни от и към отдалечения хост (зададени и от сървърите и хостовете)
# '''FIN-WAIT-1'''
# '''FIN-WAIT-2'''
Ред 27:
# '''CLOSING'''
# '''LAST-ACK'''
# '''TIME-WAIT''' - представя изчакването на определен период от време да изтече за да се осигури, че отдалечения хост е получил заявката за прекратяването на връзката. Според [[RFC]] 793 връзката може да съществува в това състояние TIME-WAIT за най-много 4 минути
# '''CLOSED'''
 
Ред 36:
Има няколко ключови характеристики, които отличават TCP от User Datagram Protocol, някои от които са:
* Свободен от грешки трансфер на данни
* Контрол на потока ([[flow control]]) - ограничава скоростта на предаваните данни за да гарантира надеждна доставка.
 
Съществуват различни механизми за осигуряването на цялостен пренос на данни - пакетите биват номерирани по реда си на изпращане, всеки пакет има сума за проверка на целостта си, както и показателите за изгубените пакети или за забавянето по мрежата.
 
По време на установяването на връзката сървърът раздава поредните номера, по които от потока на данни се разпознават отделните пакети за всяка връзка. За всеки получен пакет се изпраща известяване за получаването му. Ако известяването не бъде получено пакета трябва да се преизпрати.
Ред 45:
И двете страни на връзката я прекъсват чрез изпращането на '''FIN''' пакет и двете страни известяват противната чрез '''ACK'''-пакет.
 
Връзката може да бъде прекратена и чрез тристранно ръкостискане - единият хост изпраща '''FIN'''-пакет, който бива известен от противоположната страна чрез '''FIN'''-'''ACK''' пакет. След това първоначалния хост известява получаването с '''ACK'''- пакет.
 
Връзката може да бъде прекратена и чрез изпращането на RESET-пакет.
 
== Строеж на TCP-пакета ==
 
 
Ред 55:
|-
! style="text-align:center;" colspan="1" | +
! style="text-align:center;" colspan="4" | 0 - 3
! style="text-align:center;" colspan="6" | 4 - 9
! style="text-align:center;" colspan="6" | 10 - 15
! style="text-align:center;" colspan="16" | 16 - 31
|-
! style="text-align:center;" colspan="1" | 0
Ред 90:
 
* [[SCTP]]
<!-- interwiki -->
 
[[Категория:Мрежови протоколи]]
 
<!-- interwiki -->
Взето от „https://bg.wikipedia.org/wiki/TCP“.