RFC: 1180
Оригинал: A TCP/IP Tutorial
Категория: Информационный
Дата публикации:
Авторы: ,
Перевод: Николай Малых

7. Протокол TCP

Протокол TCP обеспечивает дополнительный сервис. TCP обеспечивает поддержку потоков данных на базе организованных соединений в отличие от передачи дейтаграмм без организации соединений, используемой протоколом UDP. Кроме того, протокол TCP обеспечивает гарантированную доставку.

TCP используется сетевыми приложениями, которым нужна гарантия доставки. Основными приложениями, использующими TCP, являются FTP (File Transfer Protocol — протокол передачи файлов) и TELNET. К популярным приложениям TCP относятся также X-Window, rcp (remote copy — удаленное копирование) и команды r-серии. Расширение возможностей TCP не проходит бесследно и для поддержки протокола требуются дополнительные ресурсы процессора и полоса канала связи. Устройство модуля TCP значительно сложнее по сравнению с модулем UDP.

Подобно UDP сетевые приложения подключаются к портам TCP. Хорошо известные номера портов выделены для популярных приложений. Например, сервер TELNET использует порт 23. Клиенты TELNET могут найти сервер, просто подключившись к порту 23 на нужном компьютере по протоколу TCP.

Когда приложение начинает сеанс работы с TCP, модули TCP на клиентском компьютере и сервере организуют между собой сеанс связи (сессию). Информация о состоянии соединения между конечными точками определяет виртуальное устройство (virtual circuit). Такое виртуальное устройство потребляет ресурсы на обеих сторонах соединения TCP. Виртуальное устройство является полнодуплексным — данные могут одновременно передаваться через него в обоих направлениях. Приложение записывает данные в порт TCP, эти данные передаются через сеть и прочитываются приложением на другом конце соединения.

TCP превращает поток байтов в пакеты, не сохраняя границ пользовательских сообщений. Например, если приложение делает 5 записей в порт TCP, приложение на другой стороне может прочесть из за 10 приемов или может случиться так, что все данные будут прочитаны за одно обращение к порту. Здесь нет корреляции между числом и размером записей в порт и числом обращений для прочтения данных на удаленной стороне соединения.

TCP является протоколом со скользящим окном (sliding window) и поддержкой тайм-аутов и повторных передач. Удаленная сторона должна подтвердить прием отправленных ей данных (подтверждения могут прицепляться к передаваемым данным). Управление потоком данных на обеих сторонах соединения предотвращает переполнение буферов.

Как и все протоколы со скользящим окном, TCP задает размер этого окна. Размер окна определяется количеством данных, которые можно передать до приема подтверждения. Для TCP размер окна задается не числом сегментов TCP, а числом передаваемых байтов.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.