Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
gosy.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2 Мб
Скачать
☆

3. Протоколы tcp и udp

UDP

Протокол дэйтаграмм пользователя UDP (User Datagram Protocol) является протоколом транспортного уровня и базируется на возможностях, предоставляемых межсетевым протоколом IP. Основная задача TCP - обеспечение "быстрой" передачи данных в сети.

Единица данных протокола UDP называется UDP-пакетом или пользовательской дейтаграммой. UDP-пакет состоит из заголовка и поля данных, в котором размещается пакет прикладного уровня. Заголовок имеет простой формат и состоит из четырех двухбайтовых полей:

  • Поле source port - номер порта процесса-отправителя.

  • Поле destination port - номер порта процесса-получателя.

  • Поле message length - длина UDP-пакета в байтах.

  • Поле checksum - контрольная сумма UDP-пакета.

  • реализует взаимодействие в режиме без установлением логического (виртуального) соединения;

  • организует поблочный (дэйтаграммный, пакетный) тип передачи данных;

  • для идентификации партнеров по взаимодействию на транспортном уровне использует 16-битовые "номера портов";

  • не гарантирует надежной передачи данных (возможна как потеря UDP-пакетов, так и их дублирование);

  • не имеет средств уведомления источника UDP-пакета о правильности/ошибочности в его приеме адресатом;

  • не обеспечивает правильный порядок доставки UDP-пакетов от источника к приемнику;

  • может гарантировать целостность данных в UDP-пакете за счет использования контрольной суммы;

  • очень прост (особенно, по сравнению с протоколом TCP).

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

TCP

Протокол управления передачей TCP (Transmission Control Protocol) является протоколом транспортного уровня и базируется на возможностях, предоставляемых межсетевым протоколом IP. Основная задача TCP - обеспечение надежной передачи данных в сети

Его основные характеристики перечислены ниже:

  • реализует взаимодействие в режиме с установлением логического (виртуального) соединения;

  • обеспечивает двунаправленную дуплексную связь;

  • организует потоковый (с точки зрения пользователя) тип передачи данных;

  • дает возможность пересылки части данных, как "экстренных";

  • для идентификации партнеров по взаимодействию на транспортном уровне использует 16-битовые "номера портов";

  • реализует принцип "скользящего окна" (sliding window) для повышения скорости передачи;

  • поддерживает ряд механизмов для обеспечения надежной передачи данных.

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

Номер в последовательности (sequence number) 32-битовое поле, содержимое которого определяет (косвенно) положение данных TCP-пакета внутри исходящего потока данных, существующего в рамках текущего логического соединения. Во время отправления TCP-пакетов с данными поле "номер в последовательности" содержит сумму начального номера и количества байт ранее переданных данных.

Номер подтверждения (acknowledgement number) 32-битовое поле, содержимое которого определяет (косвенно) количество принятых данных из входящего потока к TCP-модулю, формирующему TCP-пакет.

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

Флаг URG бит, установленное в 1 значение которого означает, что TCP-пакет содержит важные (urgent) данные

Флаг ACK бит, установленное в 1 значение которого означает, что TCP-пакет содержит в поле "номер подтверждения" верные данные.

Флаг PSH бит, установленное в 1 значение которого означает, что данные содержащиеся в TCP-пакете должны быть немедленно переданы прикладной программе, для которой они адресованы. Подтверждение для TCP-пакета, содержащего единичное значение во флаге PSH, означает, что и все предыдущие TCP-пакеты достигли адресата.

Флаг RST бит, установливаемый в 1 в TCP-пакете, отправляемом в ответ на получение неверного TCP-пакета. Также может означать запрос на переустановление логического соединения.

Флаг SYN бит, установленное в 1 значение которого означает, что TCP-пакет представляет собой запрос на установление логического соединения. Получение пакета с установленым флагом SYN должно быть подтверждено принимающей стороной.

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

Размер окна 16-битовое поле, содержащее количество байт информации, которое может принять в свои внутренние буфера TCP-модуль, отправляющий партнеру данный TCP-пакет. Данное поле используется принимающим поток данных TCP-модулем для управления интенсивностью этого потока: так, установив значение поля в 0, можно полностью остановить передачу данных, которая будет возобновлена только, когда размер окна примет достаточно большое значение. Максимальный размер окна зависит от реализации, в некоторых реализациях максимальный размер может устанавливаться системным администратором (типичное значение максимального размера окна - 4096 байт).

Указатель 16-битовое поле, содержащее указатель (в виде смещения) на первый байт в теле TCP-пакета, начинающий последовательность важных (urgent) данных

Дополнительные данные заголовка последовательность полей произвольной длины, описывающих необязательные данные заголовка. Протокол TCP определяет только три типа дополнительных данных заголовка:

    • конец списка полей дополнительных данных;

    • пусто (No Operation);

    • максимальный размер пакета.

Дополнительные данные последнего типа посылаются в TCP-заголовке в момент установления логического соединения для выражения готовности TCP-модулем принимать пакеты длиннее 536 байтов. В UNIX-реализациях длина пакета обычно определяется максимальной длиной IP-сегмента для сети.

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