Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
493.doc
Скачиваний:
18
Добавлен:
30.04.2022
Размер:
8.68 Mб
Скачать

2.1.2 Протокол tcp

2.1.2.1 Функции протокола tcp

Протокол TCP (Transmission Control Protocol) обеспечивает сквозную доставку данных между прикладными процессами, запущенными на узлах, взаимодействующих по сети. Стандарт протокола TCP содержится в RFC-793, уточнен в RFC-1122.

TCP — надежный потоковый (byte-stream) протокол с установлением соединения. TCP находится на транспортном уровне стека TCP/IP, между протоколом IP и собственно приложением. Протокол IP занимается пересылкой датаграмм по сети, никак не гарантируя доставку, целостность, порядок прибытия информации и готовность получателя к приему данных; все эти задачи возложены на протокол TCP.

При получении датаграммы, в поле Protocol которой указан код про­токола TCP, модуль IP передает данные этой датаграммы модулю TCP. Эти данные представляют собой TCP-сегмент, содержащий TCP-заголовок и данные пользователя (прикладного процесса). Модуль TCP анализирует служебную информацию заголовка, определяет, какому именно процессу предназначены данные пользователя, проверяет целостность и порядок прихода данных и подтверждает их прием другой стороне. По мере получения правильной последовательности неискаженных данных пользователя они передаются прикладному процессу [7].

2.1.2.2 Базовая передача данных

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

Протокол TCP рассматривает данные клиента как неинтерпретируемый поток октетов (в отличие от UDP, воспринимающего прикладные данные как отдельные сообщения). TCP разделяет этот поток на части для пересылки на другой узел в TCP-сегментах некоторого размера. Для отправки или получения сегмента модуль TCP вызывает модуль IP.

Немедленное отправление данных может быть затребовано процессом-клиентом от TCP-модуля с помощью установки флага PSH (push — протолкнуть), иначе TCP сам будет решать, как накапливать и когда отправлять данные клиента или когда передавать клиенту полученные данные. Очевидно, что применение флага PSH необходимо, например, при интерактивной работе с терминалом (программа telnet), поскольку введенную пользователем команду следует отправить на сервер немедленно, какой бы короткой она ни была. Также флаг PSH должен быть установлен приложением для последнего блока данных, отправляемых в сеансе [29].

Максимальный размер передаваемого сегмента устанавливается равным меньшей из двух величин: размера сегмента, который может принимать получатель (эта информация передается при установлении соединения) и минимального значения MTU на пути до получателя, установленного с помощью алгоритма Path MTU Discovery. Максимальный размер сегмента (без заголовков) по умолчанию равен 536 октетов.

2.1.2.3 Разделение каналов

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

Все распространенные сервисы Интернета имеют стандартизованные номера портов. Например, номер порта сервера электронной почты — 25, сервера WWW — 80. Список стандартных номеров портов можно найти в файле /etc/services (UNIX) или C:\winnt\ system32\ drivers\etc\services (Windows 2000) [7].

Совокупность IP-адреса и номера порта называется сокетом. Сокет уникально идентифицирует прикладной процесс в Интернете. Например, сокет сервера электронной почты на хосте 1.16.195.4 обозначается как 1.16.195.4:25; часто номер порта отделяется не двоеточием, а точкой.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]