Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сети_лекции.doc
Скачиваний:
553
Добавлен:
11.03.2015
Размер:
1.38 Mб
Скачать

9. Транспортные протоколы тсряр

В стеке протоколов TCP/IP определены два стандартных протоко­ла транспортного уровня: TCP (Transmission Control Protocol - прото­кол управления передачей), описанный в документе RFC 793, и UDP (User Datagram Protocol - протокол пользовательских дейтаграмм), описанный в документе RFC 768.

9.1. По pi ы

После того, как IP-пакет доставлен на сетевой уровень интерфей­са-получателя, данные из этого пакета необходимо передать конкрет­ному прикладному процессу, который выступает в качестве получате­ля данных.

Протоколы TCP и UDP обладают средствами идентификации при­кладных процессов по номерам портов (не надо путать с портами сете­вых адаптеров и устройств). Номера портов делятся на три диапазона:

  1. Хороню извесгные номера портов (от 0 до 1023). Присваиваются базовым системным службам. К примеру. 68 яазяется портом DHCP-клиеита;

  2. Зарегистрированные номера пор юн (от 1024 до 49 151). При­сваиваются промышленным приложениям. К примеру. 1433 явля­ется портом Microsoft SQL Server. Однако некоторые операцион­ные системы применяют этот диапазон значения для назначения временных номеров портов;

  3. Динамические номера портов (от 49 152 до 65 535). Если про­цесс явно не определяет номер порта, то операционная система назначает ему временный номер порта из данного диапазона.

92. Протокол udp

Протокол UDP является протоколом без установления соединения между отправителем и получателем, т.е. работает в режиме простой передачи данных. UDP не пытается обеспечивать упорядоченный при­ем данных, поэтому порядок принятых данных может отличаться от порядка, использовавшегося при их отправке. Приложения, требую­щие сохранения порядка приема данных, должны реализовать меха­низм упорядочения самостоятельно.

Также следует отметить, что протокол UDP не содержит механиз­мов, позволяющих разбивать достаточно крупные сообщения на от-

S3

дельные фрагменты для передачи, или проводить повторную сборку последовательностей таких фрагментов после их получения.

Протокол UDP эффективен в приложениях, работающих по схеме «запрос/ответ». В этом случае приложение не тратит ресурсы на от­крытие и закрытие соединений для пересылки данных. Другое пре­имущество UDP проявляется при групповой рассылке. Например, при использовании протокола UDP для рассылки сообщений большому числу получателей отправитель может передать данные протоколу IP с запросом на широковещательный адрес. В этом случае для отправки данных не требуется создавать множества соединений, передавать данные в каждом соединении по отдельности, а затем закрыть все эти соединения.

UDP-д ей та грамм а

Передаваемые данные инкапсулируются в UDP-дейтаграмме, снабжаются заголовком и передаются на сетевой уровень. Заголовок UDP-дейтаграммы имеет фиксированную длину, равную 8 байтам. На рис 9.1. представлен формат заголовка UDP-дейтаграммы [8).

Рис. 9.1. Заголовок UDP-дейтаграммы

Поле «Порт отравителя» имеет длину 2 байта и является необя­зательным. Если поле заполнено пулями, то номер порта отправителя не используется. Иначе, оно определяет номер порта процесса-отправителя; этот номер должен использоваться для отправки ответов при отсутствии дополнительной информации.

Поле «Порт получателя» длиной 2 байта идентифицирует про­цесс-получатель, которому передаются данные UDP. Если UDP полу­чает пакет с неиспользуемым номером порта (то есть номером, с кото­рым не связано ни одно приложение), он генерирует ICMP-сообщение о недоступности порта и отвергает пакет.

Поле «Длина» длиной 2 байта содержит длину пакета UDP в бай­тах, с учетом как длины заголовка UDP, так и длины данных. Мини­мальное значение поля длины равно 8 и указывает на то, что поле дан­ных имеет нулевой размер.

Поле «Контрольная сумма» имеет длину 2 байта и является не­обязательным. Если это поле используется, вычисление контрольной суммы производится по отношению ко всему содержимому дейта-

83

граммы, в который входит UDP-заголовок (кроме самого поля «Кон­трольная сумма») и данные, а также псевдозаголовока, получаемого из IP-заголовка. Псевдозаголовок протокола UDP фактически не входит в состав пакета; он применяется лишь при вычислении контрольной суммы UDP-заголовка. Псевдозаголовок (рис. 9.2) содержит поля «IP-адрес отправителя». «IP-адрес получателя», неиспользуемое поле (зна­чение которого приравнивается нулю), «Протокол» (значение которого равно 17) и «Длина».

Рис. 9.2. Псевдозаголовок UDP-дсйтафаммы