Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Поле «Порт отправителя» (Source port, 16 бит). Номер порта отравителя указывает
порт, на который хост получателя может послать ответ. Поле «Порт получателя»
(Destination port, 16 бит). Этот номер порта получателя задается хостом отправителя.
Поле «Позиция сегмента», порядковый номер (Sequence number, 32 бита). Поле
содержит порядковый номер первого байта данных в этом сегмента в сообщении, если
флаг SYN=0.
Поле «Первый ожидаемый байт» (Acknowledgement number, 32 бита). Содержит
порядковый номер первого ожидаемого байта. Равен максимальному номеру байта в
полученном сегменте, увеличенный на единицу. Используется тогда, когда сегмент
служит квитанцией (флагACK=1).
Поле «Длина заголовка» (Data offset, 4 бита). Длина заголовка, измеренная в 32-
разрядных словах. Поле «Резерв» (6 бит). Зарезервировано для использования в будущем.
Поле «Флаги» (Flags, 6 бит). Содержит различную управляющую информацию. В
состоянии «1» они означают следующее. URG (Urgent). Признак срочности данных (они
отправляется сразу, без буферизации). ACK. Признак подтверждения. Квитанция на
принятый сегмент. Для функционирующих соединений всегда установлен. PSH (Push).
Функция продвижения. Сегмент должен быть переслать эти данные немедленно и все
предыдущие сегменты сообщения. RST. Сброс соединения. Сегмент служит запросом на
установку первоначальных параметров соединения. SYN. Синхронизировать порядковые
номера. Сегмент служит для синхронизации счетчиков переданных данных при
установлении соединения. Этот флаг устанавливается (SYN=1) в первом пакете,
посылаемом при попытке установить сеанс TCP. Флаг SYN никогда не устанавливается
при работающем соединении (SYN=0). FIN. Отсутствие данных от отправителя. Означает,
что отправлен последний байт сообщения. Отправитель закончил передачу данных.
Поле «Размер окна» (Window, 16 бит). Указывает, сколько байтов готов принять
получатель (буферный объем, доступный для поступающих данных). Пересылается с
каждым пакетом подтверждения.
Поле «Контрольная сумма сегмента» (16 бит). Для проверки целостности сегмента.
Поле «Указатель срочности данных» (Urgent pointer, 16 бит). Указывает на последний
байт в последовательности срочных данных в пакете. Используется, когда флаг URG=1.
Поле «Опции и заполнитель» (Options and padding). Позволяет передать
необязательные параметры. Заполнитель дополняет заголовок до целого числа 32-
разрядных слов.
Поле «Данные» содержит информацию для передачи.
6.2 Протокол дейтаграмм пользователя (UDP)
UDP (User Data Protocol) - транспортный протокол без соединений. Задачей
протокола UDP является передача данных между прикладными процессами без гарантий
доставки, поэтому его пакеты могут быть потеряны, продублированы или прийти не в том
порядке, в котором они были отправлены.
Связь без установления соединения ненадежна, так как отправителю не сообщается,
правильно ли было принято его сообщение и получено ли оно вообще. Не предусмотрено
и исправление ошибок: они либо игнорируются, либо исправляются на выше- или
нижележащих уровнях. В вышележащий уровень данные передает в несортированном
виде. Протокол UDP намного проще, чем ТСР; он полезен в ситуациях, когда мощные
механизмы обеспечения надежности протокола ТСР не обязательны.
Заголовок UDP имеет всего четыре поля.
Поле «Порт отправителя» (Source port, 16 бит). Содержит номер порта процесса-
отправителя. Если поле не используется, то оно заполняется нулями. Поле «Порт
получателя» (Destination port, 16 бит). Содержит номер порта процесса-получателя.
Поле «Длина дейтаграммы» (Length, 16 бит). Содержит полную длину дейтаграммы.
Поле «Контрольная сумма дейтаграммы» (Checksum UDP, 16 бит). Обеспечивает
проверку целостности пакета. При обнаружении ошибки дейтаграмма отбрасывается.
Заполнение поля контрольной суммы нулями понимается как отказ от расчета
контрольной суммы. Для того чтобы этот отказ отличался от того (редкого, но
возможного) случая, когда рассчитанная контрольная сумма равна нулю, в последнем
случае все биты поля контрольной суммы устанавливаются в состояние 1.
Основная литература: 2[410-415], 3[70-74], 5[598-650].
Дополнительная литература:
Контрольные вопросы:
1. Какая длина заголовка TCP-сегмента?
2. Структура TCP сегмента.
3. Назначение флагов в заголовке TCP-сегмента?
4. Для чего используется поле «Размер окна» (16 бит) в TCP-сегменте?
5. Какая длина заголовка UDP-дейтаграммы?
6. Назначение полей заголовка UDP-дейтаграммы?
7. Структура UDP дейтаграммы.
8. Что означает заполнение нулями поля контрольной суммы UDP-дейтаграммы?