Протоколы транспортного уровня
ICMP (Internet Control Message Protocol) – это сетевой протокол, входящий в стек протоколов TCP/IP. ICMP-протокол имеет очень простой формат пакета – состоит только из заголовка, в котором находится код команды, номер порта не указывается. Данный протокол используется, чтобы проверить работоспособность узла и оценить время передачи пакета до узла и обратно (например, используется командой ping). Код протокола вIP-пакете будет ICMP.
Протокол UDP
Общие сведения
UDP– это протокол транспортного уровня без установки соединения, обеспечивающий передачу дейтаграмм фиксированного размера без гарантий доставки, без установки соединения (без «рукопожатий»), без подтверждения о доставке (без квитирования пакетов), без упорядочивания принимаемых пакетов в порядке отправления.
Вывод:UDP предоставляет ненадёжный сервис, и дейтаграммы могут прийти не по порядку, дублироваться или вовсе исчезнуть. UDP подразумевает, что проверка ошибок и их исправление либо не нужны, либо должны исполняться в приложении.
UDP, в сравнении с TCP, обеспечивает более высокую скорость передачи данных, но не предоставляет гарантий надежности.
Сферы использования протокола UDP
Вопрос: когда хорошо применять протокол UDP?
Ответ: для передачи потока данных, где данные могут пропадать (например, данные о погоде, передача мультимедийных данных).
Используется в:
1. Чувствительные ко времени приложения (программы для видео и аудио звонков и прочие приложения, где не важна гарантия полной передачи данных, а важна скорость их получения);
2. Сервера, отвечающие на большое количество запросов (DNS, IPTV, онлайн-игры).
Многие приложения, ориентирующиеся на UDP, вообще не используют систему контроля над потерянными пакетами. Поэтому, если требуется бо́льшая надежность, лучше использовать TCP.
Формат пакета
Имеется заголовок, кратный 4м байтам, за которым следуют данные.
IP-протокол позволяет передавать данные между узлами, но не между программами (абонентами). Для того чтобы передавать данные между программами, необходимо мультиплексировать и демультиплексировать канал между узлами, что приводит к необходимости идентификации программы абонента на узле.
В качестве идентификатора абонента используется номер порта.
Номер порта– это логический идентификатор программы (абонента), который работает на узле.Номера портов являются сквозными (0, 1, 2, 3и т.д.). На номер порта выделяется 2 байта, следовательно, номера портов могут иметь значения из промежутка [0..65535].
| Смещение/ Биты | 0 - 15 | 16 - 31 |
| 0-31 | Порт отправителя (Source port) | Порт получателя (Destination port) |
| 32-63 | Длина дейтаграммы (Length) | Контрольная сумма (Checksum) |
| 64-… | Данные (Data) | |
| Область пакета | Описание |
| Порт отправителя | Номер порта отправителя. Предполагается, что это значение задаёт порт, на который при необходимости будет посылаться ответ. Иначе значение должно быть равным 0. |
| Порт получателя | Номер порта получателя. Это поле является обязательным. |
| Длина дейтаграммы | Длина дейтаграммы (заголовка и данных) в байтах. Минимальная длина равна длине заголовка – 8 байт. Теоретически, максимальный размер поля — 65535 байт. Фактический предел для длины данных при использовании IPv4 — 65507 (помимо 8 байт на UDP-заголовок, требуется ещё 20 на IP-заголовок). |
| Контрольная сумма | Контрольная сумма UDP-заголовка и части IP-заголовка. Контрольная сумма рассчитывается как добавление к единице суммы байтов заголовка UDP + значения полей в IP-заголовка, где содержатся IP-адреса. Поле контрольной суммы используется для проверки заголовка и данных на ошибки. Если сумма не сгенерирована передатчиком, то поле заполняется нулями. Не является обязательным для IPv4. |
Дата добавления: 2018-08-06; просмотров: 263; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!
