Transmission Control Protocol - TCP
TCP - протокол управления передачей.
TCP один из основных сетевых протоколов Интернет, предназначенный для управления передачей данных в сетях и подсетях TCP/IP. Он выполняет функции протокола транспортного уровня модели OSI.
TCP — это транспортный механизм, предоставляющий поток данных, с предварительной установкой соединения, за счёт этого дающий уверенность в достоверности получаемых данных, осуществляет повторный запрос данных в случае потери данных и устраняет дублирование при получении двух копий одного пакета. В отличие от UDP, гарантирует, что приложение получит данные точно в такой же последовательности, в какой они были отправлены, и без потерь.
Реализация TCP, как правило, встроена в ядро системы, хотя есть и реализации TCP в контексте приложения. Когда осуществляется передача от компьютера к компьютеру через Интернет, TCP работает на верхнем уровне между двумя конечными системами, например, Интернет-браузер и Интернет-сервер. Также TCP осуществляет надежную передачу потока байт от одной программы на некотором компьютере в другую программу на другом компьютере. Программы для электронной почты и обмена файлами используют TCP. TCP контролирует длину сообщения, скорость обмена сообщениями, сетевой трафик.
TCP протокол базируется на IP для доставки пакетов, но добавляет две важные вещи:
- установление соединения — это позволяет ему, в отличие от IP, гарантировать доставку пакетов;
- порты — для обмена пакетами между приложениями, а не просто узлами.
Протокол TCP предназначен для обмена данными — это «надежный» протокол, потому что:
1.Обеспечивает надежную доставку данных, так как предусматривает установления логического соединения;
2.Нумерует пакеты и подтверждает их прием квитанцией, а в случае потери организует повторную передачу;
3.Делит передаваемый поток байтов на части — сегменты - и передает их нижнему уровню, на приемной стороне снова собирает их в непрерывный поток байтов.
TCP-соединение
Соединение начинается с handshake (рукопожатия):
1.Узел A посылает узлу B специальный пакет SYN — приглашение к соединению
2.B отвечает пакетом SYN-ACK — согласием об установлении соединения
3.A посылает пакет ACK — подтверждение, что согласие получено
После этого TCP соединение считается установленным, и приложения, работающие в этих узлах, могут посылать друг другу пакеты с данными.
«Соединение» означает, что узлы помнят друг о друге, нумеруют все пакеты, идущие в обе стороны, посылают подтверждения о получении каждого пакета и перепосылают потерявшиеся по дороге пакеты.
Для узла A это соединение называется исходящим, а для узла B — входящим.
Отметим, что эти термины не имеют никакого отношения к входящему или исходящему трафику. Они показывают только инициатора соединения, то есть направление самого первого пакета (SYN). Любое установленное TCP соединение симметрично, и пакеты с данными по нему всегда идут в обе стороны.
Вернуться к списку...
|