Протокол доставки сообщений TCP
Протокол ТСР предоставляет надежную, ориентированную на соединение службу доставки. Данные протокола ТСР передаются сегментами, и соединение должно быть установлено до того, как узлы начнут обмениваться данными. ТСР использует потоки, в которых данные представлены в виде последовательности байт. ТСР обеспечивает надежность, присваивая номера последовательности (sequence number) каждому передаваемому сегменту. Если сегмент разбивается на мелкие пакеты, то узел-получатель сможет узнать, все ли части получены. Для этого используются подтверждения. Для каждого отправленного сегмента узел-получатель должен вернуть отправителю подтверждение (acknowledgement, AСК) в течение определенного времени (рис. 40). Если отправитель не получил АСК, то данные передаются повторно. Если сегмент поврежден, то узел-получатель отвергает его. Поскольку АСК в этом случае не посылается, отправитель передает сегмент еще раз. Порты. Приложения, использующие сокеты, идентифицируют себя на компьютере посредством номера порта протокола (protocol port number). Например, FТР-сервер использует определенный ТСР-порт, поэтому другие приложения могут связаться с ним. Порты могут иметь любой номер от 0 до 65 536. Номера портов для приложений клиентов динамически назначаются операционной системой при обработке запроса и обслуживания. Рис. 40. Мультиплексирование и демультиплексирование на транспортном уровне Сокеты. Сокет (socket) обеспечивает конечную точку сетевого соединения. Приложение, создавая сокет, указывает три параметра: IP-адреc узла, тип обслуживания (протокол ТСР для ориентированного на соединение обслуживания и UDP для неориентированного) и порт, используемый приложением. Порты протокола ТСР. Порт протокола ТСР указывает место доставки сообщений. Номера портов, меньшие 256, определены как широко используемые. Установка связи по протоколу ТСР. Инициализация ТСР-соединения происходит в три этапа. Делается это для синхронизации отправки и получения сегментов, извещения другого узла о количестве данных, которые можно послать за один раз, и установки виртуального соединения. Вот из каких операций состоит этот процесс (рис. 41). Рис. 41. Работа протокола ТСР 1. Узел-отправитель запрашивает соединение, посылая сегмент с установленным флагом синхронизации (SYN). 2. Узел-адресат подтверждает получение запроса, отправляя обратно сегмент с: • установленным флагом синхронизации; • порядковым номером начального байта сегмента, который может послать, или номером последовательности (sequence number); • подтверждением, включающим порядковый номер следующего сегмента, который он ожидает получить. 3. Запрашивающий узел посылает обратно сегмент с подтверждением номера последовательности и номером своего подтверждения (acknowledgement number). Для завершения соединения ТСР действует аналогично. Это гарантирует, что оба узла закончат передачу и примут все данные. Скользящие окна протокола ТСР. Протокол ТСР буферизует данные для передачи между двумя узлами, используя скользящие окна (sliding windows). Каждый ТСР/ IP-узел поддерживает два скользящих окна: одно – для приема данных, а другое – для отправки. Размер окна определяет объем данных, которые могут быть буферизованы на компьютере. Структура ТСР пакета. Все пакеты протокола ТСР имеют две части – данные и заголовок. В таблице приведены поля заголовка ТСР-пакета.
|